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:
@@ -45,8 +45,8 @@ public class DdiExampleClient implements Runnable {
|
|||||||
private final RootControllerResourceClient rootControllerResourceClient;
|
private final RootControllerResourceClient rootControllerResourceClient;
|
||||||
private final PersistenceStrategy persistenceStrategy;
|
private final PersistenceStrategy persistenceStrategy;
|
||||||
private DdiClientStatus clientStatus;
|
private DdiClientStatus clientStatus;
|
||||||
|
private final DdiDefaultFeignClient sdiDefaultFeignClient;
|
||||||
private FinalResult finalReusltOfCurrentUpdate;
|
private FinalResult finalResultOfCurrentUpdate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for the DDI example client.
|
* 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,
|
public DdiExampleClient(final String baseUrl, final String controllerId, final String tenant,
|
||||||
final PersistenceStrategy persistenceStrategy) {
|
final PersistenceStrategy persistenceStrategy) {
|
||||||
this.controllerId = controllerId;
|
this.controllerId = controllerId;
|
||||||
this.rootControllerResourceClient = new DdiDefaultFeignClient(baseUrl, tenant)
|
sdiDefaultFeignClient = new DdiDefaultFeignClient(baseUrl, tenant);
|
||||||
.getRootControllerResourceClient();
|
|
||||||
|
this.rootControllerResourceClient = sdiDefaultFeignClient.getRootControllerResourceClient();
|
||||||
this.actionIdOfLastInstalltion = null;
|
this.actionIdOfLastInstalltion = null;
|
||||||
this.persistenceStrategy = persistenceStrategy;
|
this.persistenceStrategy = persistenceStrategy;
|
||||||
this.clientStatus = DdiClientStatus.DOWN;
|
this.clientStatus = DdiClientStatus.DOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DdiDefaultFeignClient getSdiDefaultFeignClient() {
|
||||||
|
return sdiDefaultFeignClient;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
clientStatus = DdiClientStatus.UP;
|
clientStatus = DdiClientStatus.UP;
|
||||||
@@ -85,7 +90,7 @@ public class DdiExampleClient implements Runnable {
|
|||||||
final Long actionId = getActionIdOutOfLink(controllerDeploymentBaseLink);
|
final Long actionId = getActionIdOutOfLink(controllerDeploymentBaseLink);
|
||||||
final Integer resource = getResourceOutOfLink(controllerDeploymentBaseLink);
|
final Integer resource = getResourceOutOfLink(controllerDeploymentBaseLink);
|
||||||
if (actionId != actionIdOfLastInstalltion) {
|
if (actionId != actionIdOfLastInstalltion) {
|
||||||
finalReusltOfCurrentUpdate = FinalResult.NONE;
|
finalResultOfCurrentUpdate = FinalResult.NONE;
|
||||||
startDownload(actionId, resource);
|
startDownload(actionId, resource);
|
||||||
finishUpdateProcess(actionId);
|
finishUpdateProcess(actionId);
|
||||||
actionIdOfLastInstalltion = actionId;
|
actionIdOfLastInstalltion = actionId;
|
||||||
@@ -119,7 +124,7 @@ public class DdiExampleClient implements Runnable {
|
|||||||
final String[] downloadLinkSep = downloadLink.getHref().split(Pattern.quote("/"));
|
final String[] downloadLinkSep = downloadLink.getHref().split(Pattern.quote("/"));
|
||||||
final Long softwareModuleId = Long.valueOf(downloadLinkSep[8]);
|
final Long softwareModuleId = Long.valueOf(downloadLinkSep[8]);
|
||||||
for (final DdiArtifact ddiArtifact : artifactList) {
|
for (final DdiArtifact ddiArtifact : artifactList) {
|
||||||
if (finalReusltOfCurrentUpdate != FinalResult.FAILURE) {
|
if (finalResultOfCurrentUpdate != FinalResult.FAILURE) {
|
||||||
downloadArtifact(actionId, softwareModuleId, ddiArtifact.getFilename());
|
downloadArtifact(actionId, softwareModuleId, ddiArtifact.getFilename());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -144,7 +149,7 @@ public class DdiExampleClient implements Runnable {
|
|||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
sendFeedBackMessage(actionId, ExecutionStatus.PROCEEDING, FinalResult.NONE,
|
sendFeedBackMessage(actionId, ExecutionStatus.PROCEEDING, FinalResult.NONE,
|
||||||
"Downloaded of artifact " + artifact + "failed");
|
"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) {
|
private void finishUpdateProcess(final Long actionId) {
|
||||||
|
|
||||||
if (finalReusltOfCurrentUpdate == FinalResult.FAILURE) {
|
if (finalResultOfCurrentUpdate == FinalResult.FAILURE) {
|
||||||
sendFeedBackMessage(actionId, ExecutionStatus.CLOSED, FinalResult.FAILURE, "Error during update process");
|
sendFeedBackMessage(actionId, ExecutionStatus.CLOSED, FinalResult.FAILURE, "Error during update process");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (finalReusltOfCurrentUpdate == FinalResult.NONE) {
|
if (finalResultOfCurrentUpdate == FinalResult.NONE) {
|
||||||
sendFeedBackMessage(actionId, ExecutionStatus.CLOSED, FinalResult.SUCESS,
|
sendFeedBackMessage(actionId, ExecutionStatus.CLOSED, FinalResult.SUCESS,
|
||||||
"Simulated installation successful");
|
"Simulated installation successful");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,10 @@ public class DoNotSaveArtifactsStrategy implements PersistenceStrategy {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleInputStream(final InputStream in, final String artifactName) throws IOException {
|
public void handleInputStream(final InputStream in, final String artifactName) throws IOException {
|
||||||
// do nothing
|
|
||||||
|
while (in.read() != -1) {
|
||||||
|
;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class SaveArtifactsStrategy implements PersistenceStrategy {
|
|||||||
@Override
|
@Override
|
||||||
public void handleInputStream(final InputStream in, final String artifactName) throws IOException {
|
public void handleInputStream(final InputStream in, final String artifactName) throws IOException {
|
||||||
final File tempDir = Files.createTempDir();
|
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);
|
final OutputStream out = new FileOutputStream(file);
|
||||||
ByteStreams.copy(in, out);
|
ByteStreams.copy(in, out);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user