diff options
author | Ittay Stern <ittay.stern@att.com> | 2019-01-10 12:42:59 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2019-01-10 12:42:59 +0000 |
commit | 659874df80409170e57b6dd6197eb3a81eb3468e (patch) | |
tree | 08e79fd57aa0ed299586fd88f69f87a5a2f5ded1 /vid-app-common/src/main/java/org/onap/vid/job/command/VolumeGroupInProgressStatusCommand.java | |
parent | 143784a849ece4fc35cc290e33f829b72bf1fc79 (diff) | |
parent | 6ad41e3ccd398a2721f41ad61c80b7bb03f7d127 (diff) |
Merge "Merge from ECOMP's repository"
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/job/command/VolumeGroupInProgressStatusCommand.java')
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/job/command/VolumeGroupInProgressStatusCommand.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/job/command/VolumeGroupInProgressStatusCommand.java b/vid-app-common/src/main/java/org/onap/vid/job/command/VolumeGroupInProgressStatusCommand.java new file mode 100644 index 000000000..663696b32 --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/job/command/VolumeGroupInProgressStatusCommand.java @@ -0,0 +1,65 @@ +package org.onap.vid.job.command; + +import org.onap.vid.job.Job; +import org.onap.vid.job.JobType; +import org.onap.vid.job.NextCommand; +import org.onap.vid.job.command.CommandParentData.CommandDataKey; +import org.onap.vid.job.impl.JobSharedData; +import org.onap.vid.model.serviceInstantiation.VfModule; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +@Component +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class VolumeGroupInProgressStatusCommand extends ResourceWithChildrenInProgressCommand { + + public VolumeGroupInProgressStatusCommand( + JobSharedData sharedData, + String requestId, + String instanceId, + CommandParentData parentData) { + super(sharedData, requestId, instanceId, parentData); + } + + public VolumeGroupInProgressStatusCommand() { + } + + @Override + protected NextCommand processJobStatus(Job.JobStatus jobStatus) { + if (jobStatus == Job.JobStatus.FAILED) { + return new NextCommand(Job.JobStatus.FAILED); + } + VfModule request = (VfModule) getSharedData().getRequest(); + + if (jobStatus == Job.JobStatus.COMPLETED) { + //vf module creation + Map<String, Object> dataForChild = buildDataForChild(); + List<String> vfModuleJob = Arrays.asList(jobsBrokerService.add( + jobAdapter.createChildJob(JobType.VfmoduleInstantiation, Job.JobStatus.CREATING , request, getSharedData(), dataForChild)).toString()); + + return new NextCommand(Job.JobStatus.RESOURCE_IN_PROGRESS, new WatchingCommand(getSharedData(), vfModuleJob, false)); + } + + //in case of JobStatus.PAUSE we leave the job itself as IN_PROGRESS, for keep tracking job progress + if (jobStatus == Job.JobStatus.PAUSE) { + return new NextCommand(Job.JobStatus.RESOURCE_IN_PROGRESS, this); + } + return new NextCommand(jobStatus, this); + } + + @Override + protected Map<String, Object> buildDataForChild() { + commandParentData.addInstanceId(CommandDataKey.VG_INSTANCE_ID, this.instanceId); + return super.buildDataForChild(); + } + + @Override + protected ExpiryChecker getExpiryChecker() { + return x->false; + } +} |