2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.asdc.activity;
23 import java.util.ArrayList;
24 import java.util.List;
25 import org.springframework.beans.factory.annotation.Autowired;
26 import org.springframework.core.env.Environment;
27 import org.springframework.stereotype.Component;
28 import org.springframework.transaction.annotation.Transactional;
29 import org.onap.so.asdc.activity.beans.ActivitySpec;
30 import org.onap.so.asdc.activity.beans.Input;
31 import org.onap.so.asdc.activity.beans.Output;
32 import org.onap.so.db.catalog.beans.ActivitySpecActivitySpecCategories;
33 import org.onap.so.db.catalog.beans.ActivitySpecActivitySpecParameters;
34 import org.onap.so.db.catalog.beans.ActivitySpecParameters;
35 import org.onap.so.db.catalog.data.repository.ActivitySpecRepository;
36 import org.slf4j.Logger;
37 import org.slf4j.LoggerFactory;
40 public class DeployActivitySpecs {
42 private ActivitySpecsActions activitySpecsActions;
45 private Environment env;
48 private ActivitySpecRepository activitySpecRepository;
50 private static final String SDC_ENDPOINT = "mso.asdc.config.activity.endpoint";
51 private static final String DIRECTION_INPUT = "input";
52 private static final String DIRECTION_OUTPUT = "output";
54 protected static final Logger logger = LoggerFactory.getLogger(DeployActivitySpecs.class);
57 public void deployActivities() throws Exception {
58 String hostname = env.getProperty(SDC_ENDPOINT);
59 logger.debug("{} {}", "SDC ActivitySpec endpoint: ", hostname);
60 if (hostname == null || hostname.isEmpty()) {
63 List<org.onap.so.db.catalog.beans.ActivitySpec> activitySpecsFromCatalog = activitySpecRepository.findAll();
64 for (org.onap.so.db.catalog.beans.ActivitySpec activitySpecFromCatalog : activitySpecsFromCatalog) {
65 logger.debug("{} {}", "Attempting to create activity ", activitySpecFromCatalog.getName());
66 ActivitySpec activitySpec = mapActivitySpecFromCatalogToSdc(activitySpecFromCatalog);
67 String activitySpecId = activitySpecsActions.createActivitySpec(hostname, activitySpec);
68 if (activitySpecId != null) {
69 logger.info("{} {}", "Successfully created activitySpec", activitySpec.getName());
70 boolean certificationResult = activitySpecsActions.certifyActivitySpec(hostname, activitySpecId);
71 if (certificationResult) {
72 logger.info("{} {}", "Successfully certified activitySpec", activitySpec.getName());
74 logger.info("{} {}", "Failed to certify activitySpec", activitySpec.getName());
77 logger.info("{} {}", "Failed to create activitySpec", activitySpec.getName());
82 public ActivitySpec mapActivitySpecFromCatalogToSdc(
83 org.onap.so.db.catalog.beans.ActivitySpec activitySpecFromCatalog) {
84 ActivitySpec activitySpec = new ActivitySpec();
85 activitySpec.setName(activitySpecFromCatalog.getName());
86 activitySpec.setDescription(activitySpecFromCatalog.getDescription());
87 mapCategoryList(activitySpecFromCatalog.getActivitySpecActivitySpecCategories(), activitySpec);
88 mapInputsAndOutputs(activitySpecFromCatalog.getActivitySpecActivitySpecParameters(), activitySpec);
92 private void mapCategoryList(List<ActivitySpecActivitySpecCategories> activitySpecActivitySpecCategories,
93 ActivitySpec activitySpec) {
94 if (activitySpecActivitySpecCategories == null || activitySpecActivitySpecCategories.size() == 0) {
97 List<String> categoryList = new ArrayList<String>();
98 for (ActivitySpecActivitySpecCategories activitySpecCat : activitySpecActivitySpecCategories) {
99 if (activitySpecCat != null) {
100 if (activitySpecCat.getActivitySpecCategories() != null) {
101 categoryList.add(activitySpecCat.getActivitySpecCategories().getName());
105 activitySpec.setCategoryList(categoryList);
108 private void mapInputsAndOutputs(List<ActivitySpecActivitySpecParameters> activitySpecActivitySpecParameters,
109 ActivitySpec activitySpec) {
110 if (activitySpecActivitySpecParameters == null || activitySpecActivitySpecParameters.size() == 0) {
113 List<Input> inputs = new ArrayList<Input>();
114 List<Output> outputs = new ArrayList<Output>();
115 for (ActivitySpecActivitySpecParameters activitySpecParam : activitySpecActivitySpecParameters) {
116 if (activitySpecParam != null) {
117 if (activitySpecParam.getActivitySpecParameters() != null) {
118 ActivitySpecParameters activitySpecParameters = activitySpecParam.getActivitySpecParameters();
119 if (activitySpecParameters != null) {
120 if (activitySpecParameters.getDirection().equals(DIRECTION_INPUT)) {
121 Input input = new Input();
122 input.setName(activitySpecParameters.getName());
123 input.setType(activitySpecParameters.getType());
125 } else if (activitySpecParameters.getDirection().equals(DIRECTION_OUTPUT)) {
126 Output output = new Output();
127 output.setName(activitySpecParameters.getName());
128 output.setType(activitySpecParameters.getType());
135 activitySpec.setInputs(inputs);
136 activitySpec.setOutputs(outputs);