87008f1d8f8448fe16f432f335352eec3d07c3ad
[so.git] / asdc-controller / src / main / java / org / onap / so / asdc / activity / DeployActivitySpecs.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.so.asdc.activity;
22
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;
37
38 @Component
39 public class DeployActivitySpecs {
40     @Autowired
41     private ActivitySpecsActions activitySpecsActions;
42
43     @Autowired
44     private Environment env;
45
46     @Autowired
47     private ActivitySpecRepository activitySpecRepository;
48
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";
52
53     protected static final Logger logger = LoggerFactory.getLogger(DeployActivitySpecs.class);
54
55
56     public void deployActivities() throws Exception {
57         String hostname = env.getProperty(SDC_ENDPOINT);
58         if (hostname == null || hostname.isEmpty()) {
59             return;
60         }
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());
70                 } else {
71                     logger.info("{} {}", "Failed to certify activitySpec", activitySpec.getName());
72                 }
73             } else {
74                 logger.info("{} {}", "Failed to create activitySpec", activitySpec.getName());
75             }
76         }
77     }
78
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);
86         return activitySpec;
87     }
88
89     private void mapCategoryList(List<ActivitySpecActivitySpecCategories> activitySpecActivitySpecCategories,
90             ActivitySpec activitySpec) {
91         if (activitySpecActivitySpecCategories == null || activitySpecActivitySpecCategories.size() == 0) {
92             return;
93         }
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());
99                 }
100             }
101         }
102         activitySpec.setCategoryList(categoryList);
103     }
104
105     private void mapInputsAndOutputs(List<ActivitySpecActivitySpecParameters> activitySpecActivitySpecParameters,
106             ActivitySpec activitySpec) {
107         if (activitySpecActivitySpecParameters == null || activitySpecActivitySpecParameters.size() == 0) {
108             return;
109         }
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());
121                             inputs.add(input);
122                         } else if (activitySpecParameters.getDirection().equals(DIRECTION_OUTPUT)) {
123                             Output output = new Output();
124                             output.setName(activitySpecParameters.getName());
125                             output.setType(activitySpecParameters.getType());
126                             outputs.add(output);
127                         }
128                     }
129                 }
130             }
131         }
132         activitySpec.setInputs(inputs);
133         activitySpec.setOutputs(outputs);
134         return;
135     }
136 }