Added inputstream download not on disk and final result validation.

Signed-off-by: Jonathan Philip Knoblauch <JonathanPhilip.Knoblauch@bosch-si.com>
This commit is contained in:
Jonathan Philip Knoblauch
2016-04-27 11:38:50 +02:00
parent e5ddf075be
commit 6cbbcffc9d
3 changed files with 19 additions and 11 deletions

View File

@@ -45,8 +45,8 @@ public class DdiExampleClient implements Runnable {
private final RootControllerResourceClient rootControllerResourceClient;
private final PersistenceStrategy persistenceStrategy;
private DdiClientStatus clientStatus;
private FinalResult finalReusltOfCurrentUpdate;
private final DdiDefaultFeignClient sdiDefaultFeignClient;
private FinalResult finalResultOfCurrentUpdate;
/**
* Constructor for the DDI example client.
@@ -63,13 +63,18 @@ public class DdiExampleClient implements Runnable {
public DdiExampleClient(final String baseUrl, final String controllerId, final String tenant,
final PersistenceStrategy persistenceStrategy) {
this.controllerId = controllerId;
this.rootControllerResourceClient = new DdiDefaultFeignClient(baseUrl, tenant)
.getRootControllerResourceClient();
sdiDefaultFeignClient = new DdiDefaultFeignClient(baseUrl, tenant);
this.rootControllerResourceClient = sdiDefaultFeignClient.getRootControllerResourceClient();
this.actionIdOfLastInstalltion = null;
this.persistenceStrategy = persistenceStrategy;
this.clientStatus = DdiClientStatus.DOWN;
}
public DdiDefaultFeignClient getSdiDefaultFeignClient() {
return sdiDefaultFeignClient;
}
@Override
public void run() {
clientStatus = DdiClientStatus.UP;
@@ -85,7 +90,7 @@ public class DdiExampleClient implements Runnable {
final Long actionId = getActionIdOutOfLink(controllerDeploymentBaseLink);
final Integer resource = getResourceOutOfLink(controllerDeploymentBaseLink);
if (actionId != actionIdOfLastInstalltion) {
finalReusltOfCurrentUpdate = FinalResult.NONE;
finalResultOfCurrentUpdate = FinalResult.NONE;
startDownload(actionId, resource);
finishUpdateProcess(actionId);
actionIdOfLastInstalltion = actionId;
@@ -119,7 +124,7 @@ public class DdiExampleClient implements Runnable {
final String[] downloadLinkSep = downloadLink.getHref().split(Pattern.quote("/"));
final Long softwareModuleId = Long.valueOf(downloadLinkSep[8]);
for (final DdiArtifact ddiArtifact : artifactList) {
if (finalReusltOfCurrentUpdate != FinalResult.FAILURE) {
if (finalResultOfCurrentUpdate != FinalResult.FAILURE) {
downloadArtifact(actionId, softwareModuleId, ddiArtifact.getFilename());
}
}
@@ -144,7 +149,7 @@ public class DdiExampleClient implements Runnable {
} catch (final IOException e) {
sendFeedBackMessage(actionId, ExecutionStatus.PROCEEDING, FinalResult.NONE,
"Downloaded of artifact " + artifact + "failed");
finalReusltOfCurrentUpdate = FinalResult.FAILURE;
finalResultOfCurrentUpdate = FinalResult.FAILURE;
}
}
@@ -163,11 +168,11 @@ public class DdiExampleClient implements Runnable {
private void finishUpdateProcess(final Long actionId) {
if (finalReusltOfCurrentUpdate == FinalResult.FAILURE) {
if (finalResultOfCurrentUpdate == FinalResult.FAILURE) {
sendFeedBackMessage(actionId, ExecutionStatus.CLOSED, FinalResult.FAILURE, "Error during update process");
}
if (finalReusltOfCurrentUpdate == FinalResult.NONE) {
if (finalResultOfCurrentUpdate == FinalResult.NONE) {
sendFeedBackMessage(actionId, ExecutionStatus.CLOSED, FinalResult.SUCESS,
"Simulated installation successful");
}

View File

@@ -19,7 +19,10 @@ public class DoNotSaveArtifactsStrategy implements PersistenceStrategy {
@Override
public void handleInputStream(final InputStream in, final String artifactName) throws IOException {
// do nothing
while (in.read() != -1) {
;
}
}
}

View File

@@ -26,7 +26,7 @@ public class SaveArtifactsStrategy implements PersistenceStrategy {
@Override
public void handleInputStream(final InputStream in, final String artifactName) throws IOException {
final File tempDir = Files.createTempDir();
final File file = new File(tempDir + "\\" + artifactName);
final File file = new File(tempDir, artifactName);
final OutputStream out = new FileOutputStream(file);
ByteStreams.copy(in, out);
}