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.onap.so.asdc.activity.beans.ActivitySpec;
29 import org.onap.so.asdc.activity.beans.Input;
30 import org.onap.so.asdc.activity.beans.Output;
31 import org.onap.so.db.catalog.beans.ActivitySpecActivitySpecCategories;
32 import org.onap.so.db.catalog.beans.ActivitySpecActivitySpecParameters;
33 import org.onap.so.db.catalog.beans.ActivitySpecParameters;
34 import org.onap.so.db.catalog.data.repository.ActivitySpecRepository;
35 import org.slf4j.Logger;
36 import org.slf4j.LoggerFactory;
39 public class DeployActivitySpecs {
41 private ActivitySpecsActions activitySpecsActions;
44 private Environment env;
47 private ActivitySpecRepository activitySpecRepository;
49 private static final String SDC_ENDPOINT = "mso.asdc.config.activity.endpoint";
50 private static final String DIRECTION_INPUT = "input";
51 private static final String DIRECTION_OUTPUT = "output";
53 protected static final Logger logger = LoggerFactory.getLogger(DeployActivitySpecs.class);
56 public void deployActivities() throws Exception {
57 String hostname = env.getProperty(SDC_ENDPOINT);
58 if (hostname == null || hostname.isEmpty()) {
61 List<org.onap.so.db.catalog.beans.ActivitySpec> activitySpecsFromCatalog = activitySpecRepository.findAll();
62 for (org.onap.so.db.catalog.beans.ActivitySpec activitySpecFromCatalog : activitySpecsFromCatalog) {
63 ActivitySpec activitySpec = mapActivitySpecFromCatalogToSdc(activitySpecFromCatalog);
64 String activitySpecId = activitySpecsActions.createActivitySpec(hostname, activitySpec);
65 if (activitySpecId != null) {
66 logger.info("{} {}", "Successfully created activitySpec", activitySpec.getName());
67 boolean certificationResult = activitySpecsActions.certifyActivitySpec(hostname, activitySpecId);
68 if (certificationResult) {
69 logger.info("{} {}", "Successfully certified activitySpec", activitySpec.getName());
71 logger.info("{} {}", "Failed to certify activitySpec", activitySpec.getName());
74 logger.info("{} {}", "Failed to create activitySpec", activitySpec.getName());
79 public ActivitySpec mapActivitySpecFromCatalogToSdc(
80 org.onap.so.db.catalog.beans.ActivitySpec activitySpecFromCatalog) {
81 ActivitySpec activitySpec = new ActivitySpec();
82 activitySpec.setName(activitySpecFromCatalog.getName());
83 activitySpec.setDescription(activitySpecFromCatalog.getDescription());
84 mapCategoryList(activitySpecFromCatalog.getActivitySpecActivitySpecCategories(), activitySpec);
85 mapInputsAndOutputs(activitySpecFromCatalog.getActivitySpecActivitySpecParameters(), activitySpec);
89 private void mapCategoryList(List<ActivitySpecActivitySpecCategories> activitySpecActivitySpecCategories,
90 ActivitySpec activitySpec) {
91 if (activitySpecActivitySpecCategories == null || activitySpecActivitySpecCategories.size() == 0) {
94 List<String> categoryList = new ArrayList<String>();
95 for (ActivitySpecActivitySpecCategories activitySpecCat : activitySpecActivitySpecCategories) {
96 if (activitySpecCat != null) {
97 if (activitySpecCat.getActivitySpecCategories() != null) {
98 categoryList.add(activitySpecCat.getActivitySpecCategories().getName());
102 activitySpec.setCategoryList(categoryList);
105 private void mapInputsAndOutputs(List<ActivitySpecActivitySpecParameters> activitySpecActivitySpecParameters,
106 ActivitySpec activitySpec) {
107 if (activitySpecActivitySpecParameters == null || activitySpecActivitySpecParameters.size() == 0) {
110 List<Input> inputs = new ArrayList<Input>();
111 List<Output> outputs = new ArrayList<Output>();
112 for (ActivitySpecActivitySpecParameters activitySpecParam : activitySpecActivitySpecParameters) {
113 if (activitySpecParam != null) {
114 if (activitySpecParam.getActivitySpecParameters() != null) {
115 ActivitySpecParameters activitySpecParameters = activitySpecParam.getActivitySpecParameters();
116 if (activitySpecParameters != null) {
117 if (activitySpecParameters.getDirection().equals(DIRECTION_INPUT)) {
118 Input input = new Input();
119 input.setName(activitySpecParameters.getName());
120 input.setType(activitySpecParameters.getType());
122 } else if (activitySpecParameters.getDirection().equals(DIRECTION_OUTPUT)) {
123 Output output = new Output();
124 output.setName(activitySpecParameters.getName());
125 output.setType(activitySpecParameters.getType());
132 activitySpec.setInputs(inputs);
133 activitySpec.setOutputs(outputs);