6c9af14ea054d52a2cd307564d8a67c87ce62f17
[vid.git] / vid-app-common / src / main / java / org / onap / vid / job / command / NetworkCommand.kt
1 package org.onap.vid.job.command
2
3 import org.onap.vid.job.Job
4 import org.onap.vid.job.JobAdapter
5 import org.onap.vid.job.JobCommand
6 import org.onap.vid.job.JobsBrokerService
7 import org.onap.vid.model.Action
8 import org.onap.vid.model.serviceInstantiation.Network
9 import org.onap.vid.mso.RestMsoImplementation
10 import org.onap.vid.services.AsyncInstantiationBusinessLogic
11 import org.springframework.beans.factory.annotation.Autowired
12 import org.springframework.beans.factory.config.ConfigurableBeanFactory
13 import org.springframework.context.annotation.Scope
14 import org.springframework.http.HttpMethod
15 import org.springframework.stereotype.Component
16 import java.util.*
17
18
19 @Component
20 @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
21 class NetworkCommand @Autowired constructor(
22         private val asyncInstantiationBL: AsyncInstantiationBusinessLogic,
23         restMso: RestMsoImplementation,
24         private val msoRequestBuilder: MsoRequestBuilder,
25         msoResultHandlerService: MsoResultHandlerService,
26         inProgressStatusService:InProgressStatusService,
27         watchChildrenJobsBL: WatchChildrenJobsBL,
28         jobsBrokerService: JobsBrokerService,
29         jobAdapter: JobAdapter
30         ) : ResourceCommand(restMso, inProgressStatusService, msoResultHandlerService,
31         watchChildrenJobsBL, jobsBrokerService, jobAdapter), JobCommand {
32     override fun createChildren(): Job.JobStatus {
33         return Job.JobStatus.COMPLETED_WITH_NO_ACTION
34     }
35
36     override fun planCreateMyselfRestCall(commandParentData: CommandParentData, request: JobAdapter.AsyncJobRequest, userId: String, testApi: String?): MsoRestCallPlan {
37         val serviceInstanceId = serviceInstanceIdFromRequest()
38         val instantiatePath = asyncInstantiationBL.getNetworkInstantiationPath(serviceInstanceId)
39         val requestDetailsWrapper = msoRequestBuilder.generateNetworkInstantiationRequest(
40                 request as Network,
41                 serviceModelInfoFromRequest(),
42                 serviceInstanceId,
43                 userId,
44                 testApi
45         )
46
47         val actionDescription = "create network in $serviceInstanceId"
48
49         return MsoRestCallPlan(HttpMethod.POST, instantiatePath, Optional.of(requestDetailsWrapper), Optional.empty(), actionDescription)
50     }
51
52     override fun planDeleteMyselfRestCall(commandParentData: CommandParentData, request: JobAdapter.AsyncJobRequest, userId: String): MsoRestCallPlan {
53         val serviceInstanceId = serviceInstanceIdFromRequest()
54         val path = asyncInstantiationBL.getNetworkDeletePath(serviceInstanceId, getRequest().instanceId)
55         val requestDetailsWrapper = msoRequestBuilder.generateDeleteNetworkRequest(getRequest() as Network, userId)
56         return MsoRestCallPlan(HttpMethod.DELETE, path, Optional.of(requestDetailsWrapper), Optional.of(userId),
57                 "delete network ${getRequest().instanceId} from service instance $serviceInstanceId")
58     }
59
60     override fun isDescendantHasAction(phase: Action): Boolean {
61         return false
62     }
63 }