aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main/java/org/onap/vid/job/command/ServiceInstantiationCommand.java
diff options
context:
space:
mode:
authorEinat Vinouze <einat.vinouze@intl.att.com>2019-07-16 17:17:36 +0300
committerIttay Stern <ittay.stern@att.com>2019-07-30 06:01:44 +0300
commite601bbdc43bae9a08e2e10c5139a6f76b47860d7 (patch)
tree1913f0b369ead3f2ea5557e5649d8281eca9871c /vid-app-common/src/main/java/org/onap/vid/job/command/ServiceInstantiationCommand.java
parent76c6ee4a697617ec4cdee2f3b48bc83136c858c5 (diff)
Implant vid-app-common org.onap.vid.job (main and test)
Issue-ID: VID-378 Change-Id: I41b0bdc2c4e3635f3f3319b1cd63cefc61912dfc Signed-off-by: Einat Vinouze <einat.vinouze@intl.att.com> Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/job/command/ServiceInstantiationCommand.java')
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/job/command/ServiceInstantiationCommand.java126
1 files changed, 0 insertions, 126 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/job/command/ServiceInstantiationCommand.java b/vid-app-common/src/main/java/org/onap/vid/job/command/ServiceInstantiationCommand.java
deleted file mode 100644
index 414379b0d..000000000
--- a/vid-app-common/src/main/java/org/onap/vid/job/command/ServiceInstantiationCommand.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * VID
- * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.vid.job.command;
-
-import com.google.common.collect.ImmutableMap;
-import org.apache.commons.lang3.ObjectUtils;
-import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
-import org.onap.vid.aai.ExceptionWithRequestInfo;
-import org.onap.vid.changeManagement.RequestDetailsWrapper;
-import org.onap.vid.exceptions.MaxRetriesException;
-import org.onap.vid.job.Job;
-import org.onap.vid.job.JobCommand;
-import org.onap.vid.job.NextCommand;
-import org.onap.vid.job.impl.JobSharedData;
-import org.onap.vid.model.RequestReferencesContainer;
-import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
-import org.onap.vid.mso.RestMsoImplementation;
-import org.onap.vid.mso.RestObject;
-import org.onap.vid.mso.model.ServiceInstantiationRequestDetails;
-import org.onap.vid.services.AsyncInstantiationBusinessLogic;
-
-import javax.inject.Inject;
-import java.util.Map;
-
-
-public abstract class ServiceInstantiationCommand extends BaseRootCommand implements JobCommand {
-
- private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(ServiceInstantiationCommand.class);
-
- @Inject
- protected AsyncInstantiationBusinessLogic asyncInstantiationBL;
-
- @Inject
- private RestMsoImplementation restMso;
-
- protected String optimisticUniqueServiceInstanceName;
-
- public ServiceInstantiationCommand() {
- }
-
- @Override
- public NextCommand call() {
- RequestDetailsWrapper<ServiceInstantiationRequestDetails> requestDetailsWrapper ;
- try {
- requestDetailsWrapper = generateServiceInstantiationRequest();
- }
-
- //Aai return bad response while checking names uniqueness
- catch (ExceptionWithRequestInfo exception) {
- return handleAaiNameUniquenessBadResponse(exception);
- }
-
- //Vid reached to max retries while trying to find unique name in AAI
- catch (MaxRetriesException exception) {
- return handleMaxRetryInNameUniqueness(exception);
- }
-
- String path = asyncInstantiationBL.getServiceInstantiationPath(getRequest());
-
- RestObject<RequestReferencesContainer> msoResponse = restMso.PostForObject(requestDetailsWrapper,
- path, RequestReferencesContainer.class);
-
- return handleRootResponse(msoResponse);
-
- }
-
- @Override
- protected ServiceInstantiation getRequest() {
- return (ServiceInstantiation) getSharedData().getRequest();
- }
-
- protected abstract RequestDetailsWrapper<ServiceInstantiationRequestDetails> generateServiceInstantiationRequest();
-
- private NextCommand handleMaxRetryInNameUniqueness(MaxRetriesException exception) {
- LOGGER.error("Failed to find unused name in AAI. Set the job to FAILED ", exception);
- return handleCommandFailed();
- }
-
- private NextCommand handleAaiNameUniquenessBadResponse(ExceptionWithRequestInfo exception) {
- LOGGER.error("Failed to check name uniqueness in AAI. VID will try again later", exception);
- //put the job in_progress so we will keep trying to check name uniqueness in AAI
- //And then send the request to MSO
- return new NextCommand(Job.JobStatus.IN_PROGRESS, this);
- }
-
- @Override
- public ServiceInstantiationCommand init(JobSharedData sharedData, Map<String, Object> commandData) {
-
- return init(
- sharedData,
- (String) commandData.get("optimisticUniqueServiceInstanceName")
- );
- }
-
- protected ServiceInstantiationCommand init(JobSharedData sharedData, String optimisticUniqueServiceInstanceName) {
- init(sharedData);
- this.optimisticUniqueServiceInstanceName = ObjectUtils.defaultIfNull(optimisticUniqueServiceInstanceName,
- (getRequest()).getInstanceName());
- return this;
- }
-
- @Override
- public Map<String, Object> getData() {
- return ImmutableMap.of(
- "optimisticUniqueServiceInstanceName", optimisticUniqueServiceInstanceName
- );
- }
-}