summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authormukesh.paliwal <mukesh.paliwal1@huawei.com>2021-02-05 12:44:04 +0530
committermukesh.paliwal <mukesh.paliwal1@huawei.com>2021-02-05 12:44:04 +0530
commit36e6d007799eb76a941c7ece38f35860baa8b303 (patch)
tree3cabb652d08674af6585838390f78726cf1c5b7a /src/main
parenta152547937fe212232120131d927156623c24425 (diff)
Split mso-cnf-adapter from the so
Issue-ID: SO-3517 Signed-off-by: mukesh.paliwal <mukesh.paliwal1@huawei.com> Change-Id: I99732559aa259c7a39854409819553d46aa0c080
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java52
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java35
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java66
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java87
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/Config.java31
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java42
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java54
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java22
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java53
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java23
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java63
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java66
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java62
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java45
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java99
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java84
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java87
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java23
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java71
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java74
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/Resource.java54
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java65
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/Response.java39
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/model/Tag.java20
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java677
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java251
-rw-r--r--src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java94
-rw-r--r--src/main/resources/META-INF/services/org.onap.so.client.RestProperties1
-rw-r--r--src/main/resources/application.yaml61
29 files changed, 2401 insertions, 0 deletions
diff --git a/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java b/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java
new file mode 100644
index 0000000..0ba40e2
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java
@@ -0,0 +1,52 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
+import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration;
+import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
+import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+@SpringBootApplication
+@ComponentScan(basePackages = {"org.onap.so.adapters.cnf"})
+@EnableAutoConfiguration(exclude = {LiquibaseAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
+ DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class,
+ SecurityAutoConfiguration.class})
+@Configuration
+public class MSOCnfApplication {
+
+ public static void main(String... args) {
+ SpringApplication.run(MSOCnfApplication.class, args);
+ }
+
+ @Bean
+ public RestTemplate restTemplate() {
+ return new RestTemplate();
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java b/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java
new file mode 100644
index 0000000..03bfd54
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java
@@ -0,0 +1,35 @@
+
+package org.onap.so.adapters.cnf;
+/*
+ * ============LICENSE_START==================================================== === ONAP - SO
+ * ============================================================================= === Copyright (C) 2020 Huawei
+ * Technologies Co., Ltd. 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====================================================== ===
+ *
+ */
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+
+@EnableWebSecurity
+
+@Configuration
+public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+
+ @Override
+ protected void configure(HttpSecurity http) throws Exception {
+ http.csrf().disable();
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java b/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java
new file mode 100644
index 0000000..c950cf6
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java
@@ -0,0 +1,66 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.exceptions;
+
+import static org.onap.so.adapters.cnf.util.CNfAdapterUtil.marshal;
+import org.onap.so.adapters.cnf.model.ErrorResponse;
+import org.springframework.http.ResponseEntity;
+
+public class ApplicationException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ private int errorCode;
+
+ private String errorMsg;
+
+ public ApplicationException(int errorCode, String errorMsg) {
+ this.errorCode = errorCode;
+ this.errorMsg = errorMsg;
+ }
+
+ public int getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(int errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public String getErrorMsg() {
+ return errorMsg;
+ }
+
+ public void setErrorMsg(String errorMsg) {
+ this.errorMsg = errorMsg;
+ }
+
+ public ResponseEntity buildErrorResponse() {
+ String message;
+ try {
+ ErrorResponse err = new ErrorResponse(errorCode, errorMsg);
+ message = marshal(err);
+ } catch (ApplicationException e) {
+ return ResponseEntity.status(500).body("Internal Server Error");
+ }
+ return ResponseEntity.status(errorCode).body(message);
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java b/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java
new file mode 100644
index 0000000..2e76d51
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java
@@ -0,0 +1,87 @@
+package org.onap.so.adapters.cnf.model;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class BpmnInstanceRequest {
+
+ @JsonProperty(value = "modelInvariantId")
+ private String modelInvariantId;
+
+ @JsonProperty(value = "modelVersionId")
+ private String modelVersionId;
+
+ @JsonProperty(value = "k8sRBProfileName")
+ private String k8sRBProfileName;
+
+ @JsonProperty(value = "cloudRegionId")
+ private String cloudRegionId;
+
+ @JsonProperty(value = "vfModuleUUID")
+ private String vfModuleUUID;
+
+ @JsonProperty(value = "labels")
+ private Map<String, String> labels;
+
+ @JsonProperty(value = "overrideValues")
+ private Map<String, String> overrideValues;
+
+ public String getModelInvariantId() {
+ return modelInvariantId;
+ }
+
+ public void setModelInvariantId(String modelInvariantId) {
+ this.modelInvariantId = modelInvariantId;
+ }
+
+ public String getModelVersionId() {
+ return modelVersionId;
+ }
+
+ public void setModelVersionId(String modelVersionId) {
+ this.modelVersionId = modelVersionId;
+ }
+
+ public String getK8sRBProfileName() {
+ return k8sRBProfileName;
+ }
+
+ public void setK8sRBProfileName(String k8sRBProfileName) {
+ this.k8sRBProfileName = k8sRBProfileName;
+ }
+
+ public String getCloudRegionId() {
+ return cloudRegionId;
+ }
+
+ public void setCloudRegionId(String cloudRegionId) {
+ this.cloudRegionId = cloudRegionId;
+ }
+
+ public String getVfModuleUUID() {
+ return vfModuleUUID;
+ }
+
+ public void setVfModuleUUID(String vfModuleUUID) {
+ this.vfModuleUUID = vfModuleUUID;
+ }
+
+ public Map<String, String> getLabels() {
+ return labels;
+ }
+
+ public void setLabels(Map<String, String> labels) {
+ this.labels = labels;
+ }
+
+ public Map<String, String> getOverrideValues() {
+ return overrideValues;
+ }
+
+ public void setOverrideValues(Map<String, String> overrideValues) {
+ this.overrideValues = overrideValues;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/Config.java b/src/main/java/org/onap/so/adapters/cnf/model/Config.java
new file mode 100644
index 0000000..b901a39
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/Config.java
@@ -0,0 +1,31 @@
+package org.onap.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class Config {
+
+ @JsonProperty(value = "config-version")
+ private String configVersion;
+
+ @JsonProperty(value = "config-tag")
+ private String configTag;
+
+ public Object getConfigVersion() {
+ return configVersion;
+ }
+
+ public void setConfigVersion(String configVersion) {
+ this.configVersion = configVersion;
+ }
+
+ public Object getConfigTag() {
+ return configTag;
+ }
+
+ public void setConfigTag(String configTag) {
+ this.configTag = configTag;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java
new file mode 100644
index 0000000..2ed35b8
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java
@@ -0,0 +1,42 @@
+package org.onap.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class ConfigTemplateEntity {
+
+ @JsonProperty(value = "template-name")
+ private String templateName;
+
+ @JsonProperty(value = "description")
+ private String description;
+
+ @JsonProperty(value = "chart-name")
+ private String chartName;
+
+ public String getTemplateName() {
+ return templateName;
+ }
+
+ public void setTemplateName(String templateName) {
+ this.templateName = templateName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getChartName() {
+ return chartName;
+ }
+
+ public void setChartName(String chartName) {
+ this.chartName = chartName;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java
new file mode 100644
index 0000000..7f6ae86
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java
@@ -0,0 +1,54 @@
+package org.onap.so.adapters.cnf.model;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class ConfigurationEntity {
+
+ @JsonProperty(value = "template-name")
+ private String templateName;
+
+ @JsonProperty(value = "config-name")
+ private String configName;
+
+ @JsonProperty(value = "description")
+ private String description;
+
+ @JsonProperty(value = "values")
+ private Map<String, Object> values;
+
+ public String getTemplateName() {
+ return templateName;
+ }
+
+ public void setTemplateName(String templateName) {
+ this.templateName = templateName;
+ }
+
+ public String getConfigName() {
+ return configName;
+ }
+
+ public void setConfigName(String configName) {
+ this.configName = configName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, Object> getValues() {
+ return values;
+ }
+
+ public void setValues(Map<String, Object> values) {
+ this.values = values;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java
new file mode 100644
index 0000000..bf78d9c
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java
@@ -0,0 +1,22 @@
+package org.onap.so.adapters.cnf.model;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class ConfigurationRollbackEntity {
+
+ // TODO
+ @JsonProperty(value = "anyOf")
+ private List<Config> anyOf;
+
+ public List<Config> getAnyOf() {
+ return anyOf;
+ }
+
+ public void setAnyOf(List<Config> anyOf) {
+ this.anyOf = anyOf;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java b/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java
new file mode 100644
index 0000000..a2554d1
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java
@@ -0,0 +1,53 @@
+package org.onap.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class ConnectivityInfo {
+
+ @JsonProperty(value = "cloud-region")
+ private String cloudRegion;
+
+ @JsonProperty(value = "cloud-owner")
+ private String cloudOwner;
+
+ @JsonProperty(value = "kubeconfig")
+ private String kubeconfig;
+
+ @JsonProperty(value = "other-connectivity-list")
+ private OtherConnectivityListEntity otherConnectivityListEntity;
+
+ public String getCloudRegion() {
+ return cloudRegion;
+ }
+
+ public void setCloudRegion(String cloudRegion) {
+ this.cloudRegion = cloudRegion;
+ }
+
+ public String getCloudOwner() {
+ return cloudOwner;
+ }
+
+ public void setCloudOwner(String cloudOwner) {
+ this.cloudOwner = cloudOwner;
+ }
+
+ public OtherConnectivityListEntity getOtherConnectivityListEntity() {
+ return otherConnectivityListEntity;
+ }
+
+ public void setOtherConnectivityListEntity(OtherConnectivityListEntity otherConnectivityListEntity) {
+ this.otherConnectivityListEntity = otherConnectivityListEntity;
+ }
+
+ public String getKubeconfig() {
+ return kubeconfig;
+ }
+
+ public void setKubeconfig(String kubeconfig) {
+ this.kubeconfig = kubeconfig;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java b/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java
new file mode 100644
index 0000000..06cfdf1
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java
@@ -0,0 +1,23 @@
+package org.onap.so.adapters.cnf.model;
+
+import java.util.Map;
+
+public class ConnectivityRecords {
+
+ /*
+ * private String connectivityRecordName; private String fQDNOrIP; private String caCertToVerifyServer; private
+ * String sslInitiator; private String userName; private String password; private String privateKey; private String
+ * certToPresent;
+ */
+
+ private Map<String, String> records;
+
+ public Map<String, String> getRecords() {
+ return records;
+ }
+
+ public void setRecords(Map<String, String> records) {
+ this.records = records;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java b/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java
new file mode 100644
index 0000000..135adcc
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java
@@ -0,0 +1,63 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model;
+
+public class ErrorResponse {
+
+ private int status;
+
+ private String error;
+
+ private String message;
+
+ public ErrorResponse(int status, String message) {
+ this.status = status;
+ this.message = message;
+ this.error = "Bad Request";
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+ public String getError() {
+ if (status == 500) {
+ this.error = "Internal Server Error";
+ }
+ return error;
+ }
+
+ public void setError(String error) {
+ this.error = error;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java b/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java
new file mode 100644
index 0000000..bfa5505
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java
@@ -0,0 +1,66 @@
+
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({"Group", "Version", "Kind"})
+public class GroupVersionKind {
+ @JsonProperty("Group")
+ private String group;
+ @JsonProperty("Version")
+ private String version;
+ @JsonProperty("Kind")
+ private String kind;
+
+ @JsonProperty("Group")
+ public String getGroup() {
+ return group;
+ }
+
+ @JsonProperty("Group")
+ public void setGroup(String group) {
+ this.group = group;
+ }
+
+ @JsonProperty("Version")
+ public String getVersion() {
+ return version;
+ }
+
+ @JsonProperty("Version")
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ @JsonProperty("Kind")
+ public String getKind() {
+ return kind;
+ }
+
+ @JsonProperty("Kind")
+ public void setKind(String kind) {
+ this.kind = kind;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java b/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java
new file mode 100644
index 0000000..5804082
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java
@@ -0,0 +1,62 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class InstanceMiniResponse extends Response {
+
+ private String id;
+ private MulticloudInstanceRequest request;
+ private String nameSpace;
+
+ public InstanceMiniResponse(String errorMsg) {
+ super(errorMsg);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public MulticloudInstanceRequest getRequest() {
+ return request;
+ }
+
+ public void setRequest(MulticloudInstanceRequest request) {
+ this.request = request;
+ }
+
+ public String getNameSpace() {
+ return nameSpace;
+ }
+
+ public void setNameSpace(String nameSpace) {
+ this.nameSpace = nameSpace;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java b/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java
new file mode 100644
index 0000000..ad70fbb
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java
@@ -0,0 +1,45 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class InstanceMiniResponseList extends Response {
+
+ public InstanceMiniResponseList(String errorMsg) {
+ super(errorMsg);
+ }
+
+ private List<InstanceMiniResponse> instancList;
+
+ public List<InstanceMiniResponse> getInstancList() {
+ return instancList;
+ }
+
+ public void setInstancList(List<InstanceMiniResponse> instancList) {
+ this.instancList = instancList;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java b/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java
new file mode 100644
index 0000000..ae63f86
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java
@@ -0,0 +1,99 @@
+
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({"id", "request", "namespace", "release-name", "resources"})
+@JsonIgnoreProperties(value = "true")
+public class InstanceResponse {
+
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("request")
+ private MulticloudInstanceRequest request;
+
+ @JsonProperty("namespace")
+ private String namespace;
+
+ @JsonProperty("release-name")
+ private String releaseName;
+
+ @JsonProperty("resources")
+ private List<Resource> resources;
+
+ @JsonProperty("id")
+ public String getId() {
+ return id;
+ }
+
+ @JsonProperty("id")
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ @JsonProperty("request")
+ public MulticloudInstanceRequest getRequest() {
+ return request;
+ }
+
+ @JsonProperty("request")
+ public void setRequest(MulticloudInstanceRequest request) {
+ this.request = request;
+ }
+
+ @JsonProperty("namespace")
+ public String getNamespace() {
+ return namespace;
+ }
+
+ @JsonProperty("namespace")
+ public void setNamespace(String namespace) {
+ this.namespace = namespace;
+ }
+
+ @JsonProperty("resources")
+ public List<Resource> getResources() {
+ return resources;
+ }
+
+ @JsonProperty("resources")
+ public void setResources(List<Resource> resources) {
+ this.resources = resources;
+ }
+
+ @JsonProperty("release-name")
+ public String getReleaseName() {
+ return releaseName;
+ }
+
+ @JsonProperty("release-name")
+ public void setReleaseName(String releaseName) {
+ this.releaseName = releaseName;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java b/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java
new file mode 100644
index 0000000..2472684
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java
@@ -0,0 +1,84 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class InstanceStatusResponse extends Response {
+
+ public InstanceStatusResponse(String errorMsg) {
+ super(errorMsg);
+ }
+
+ private MulticloudInstanceRequest request;
+
+ private boolean ready;
+
+ private String resourceCount;
+
+ private List<PodStatus> podStatuses;
+
+ private List<?> servicesStatuses;
+
+ public MulticloudInstanceRequest getRequest() {
+ return request;
+ }
+
+ public void setRequest(MulticloudInstanceRequest request) {
+ this.request = request;
+ }
+
+ public boolean isReady() {
+ return ready;
+ }
+
+ public void setReady(boolean ready) {
+ this.ready = ready;
+ }
+
+ public String getResourceCount() {
+ return resourceCount;
+ }
+
+ public void setResourceCount(String resourceCount) {
+ this.resourceCount = resourceCount;
+ }
+
+ public List<PodStatus> getPodStatuses() {
+ return podStatuses;
+ }
+
+ public void setPodStatuses(List<PodStatus> podStatuses) {
+ this.podStatuses = podStatuses;
+ }
+
+ public List<?> getServicesStatuses() {
+ return servicesStatuses;
+ }
+
+ public void setServicesStatuses(List<?> servicesStatuses) {
+ this.servicesStatuses = servicesStatuses;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java b/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java
new file mode 100644
index 0000000..b1719cb
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java
@@ -0,0 +1,87 @@
+package org.onap.so.adapters.cnf.model;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class MulticloudInstanceRequest {
+
+ @JsonProperty(value = "cloud-region")
+ private String cloudRegion;
+
+ @JsonProperty(value = "rb-name")
+ private String rbName;
+
+ @JsonProperty(value = "rb-version")
+ private String rbVersion;
+
+ @JsonProperty(value = "profile-name")
+ private String profileName;
+
+ @JsonProperty(value = "labels")
+ private Map<String, String> labels;
+
+ @JsonProperty(value = "override-values")
+ private Map<String, String> overrideValues;
+
+ @JsonProperty(value = "release-name")
+ private String vfModuleUuid;
+
+ public String getCloudRegion() {
+ return cloudRegion;
+ }
+
+ public void setCloudRegion(String cloudRegion) {
+ this.cloudRegion = cloudRegion;
+ }
+
+ public String getRbName() {
+ return rbName;
+ }
+
+ public void setRbName(String rbName) {
+ this.rbName = rbName;
+ }
+
+ public String getRbVersion() {
+ return rbVersion;
+ }
+
+ public void setRbVersion(String rbVersion) {
+ this.rbVersion = rbVersion;
+ }
+
+ public String getProfileName() {
+ return profileName;
+ }
+
+ public void setProfileName(String profileName) {
+ this.profileName = profileName;
+ }
+
+ public Map<String, String> getLabels() {
+ return labels;
+ }
+
+ public void setLabels(Map<String, String> labels) {
+ this.labels = labels;
+ }
+
+ public Map<String, String> getOverrideValues() {
+ return overrideValues;
+ }
+
+ public void setOverrideValues(Map<String, String> overrideValues) {
+ this.overrideValues = overrideValues;
+ }
+
+ public String getVfModuleUuid() {
+ return vfModuleUuid;
+ }
+
+ public void setVfModuleUuid(String vfModuleUuid) {
+ this.vfModuleUuid = vfModuleUuid;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java
new file mode 100644
index 0000000..dd10252
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java
@@ -0,0 +1,23 @@
+package org.onap.so.adapters.cnf.model;
+
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class OtherConnectivityListEntity {
+
+ @JsonProperty(value = "connectivity-records")
+ private List<Map<String, String>> connectivityRecordsList;
+
+ public List<Map<String, String>> getConnectivityRecordsList() {
+ return connectivityRecordsList;
+ }
+
+ public void setConnectivityRecordsList(List<Map<String, String>> connectivityRecordsList) {
+ this.connectivityRecordsList = connectivityRecordsList;
+ }
+
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java b/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java
new file mode 100644
index 0000000..ed04601
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model;
+
+public class PodStatus {
+
+ private String name;
+ private String nameSpace;
+ private boolean ready;
+ private String status;
+ private String[] ipAddresses;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getNameSpace() {
+ return nameSpace;
+ }
+
+ public void setNameSpace(String nameSpace) {
+ this.nameSpace = nameSpace;
+ }
+
+ public boolean isReady() {
+ return ready;
+ }
+
+ public void setReady(boolean ready) {
+ this.ready = ready;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String[] getIpAddresses() {
+ return ipAddresses;
+ }
+
+ public void setIpAddresses(String[] ipAddresses) {
+ this.ipAddresses = ipAddresses;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java
new file mode 100644
index 0000000..875ef0d
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java
@@ -0,0 +1,74 @@
+package org.onap.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class ProfileEntity {
+
+ @JsonProperty(value = "rb-name")
+ private String rbName;
+
+ @JsonProperty(value = "rb-version")
+ private String rbVersion;
+
+ @JsonProperty(value = "profile-name")
+ private String profileName;
+
+ @JsonProperty(value = "release-name")
+ private String releaseName;
+
+ @JsonProperty(value = "namespace")
+ private String nameSpace;
+
+ @JsonProperty(value = "kubernetes-version")
+ private String kubernetesVersion;
+
+ public String getRbName() {
+ return rbName;
+ }
+
+ public void setRbName(String rbName) {
+ this.rbName = rbName;
+ }
+
+ public String getRbVersion() {
+ return rbVersion;
+ }
+
+ public void setRbVersion(String rbVersion) {
+ this.rbVersion = rbVersion;
+ }
+
+ public String getProfileName() {
+ return profileName;
+ }
+
+ public void setProfileName(String profileName) {
+ this.profileName = profileName;
+ }
+
+ public String getReleaseName() {
+ return releaseName;
+ }
+
+ public void setReleaseName(String releaseName) {
+ this.releaseName = releaseName;
+ }
+
+ public String getNameSpace() {
+ return nameSpace;
+ }
+
+ public void setNameSpace(String nameSpace) {
+ this.nameSpace = nameSpace;
+ }
+
+ public String getKubernetesVersion() {
+ return kubernetesVersion;
+ }
+
+ public void setKubernetesVersion(String kubernetesVersion) {
+ this.kubernetesVersion = kubernetesVersion;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/Resource.java b/src/main/java/org/onap/so/adapters/cnf/model/Resource.java
new file mode 100644
index 0000000..d18cd76
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/Resource.java
@@ -0,0 +1,54 @@
+
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({"GVK", "Name"})
+public class Resource {
+ @JsonProperty("GVK")
+ private GroupVersionKind gVK;
+ @JsonProperty("Name")
+ private String name;
+
+ @JsonProperty("GVK")
+ public GroupVersionKind getGVK() {
+ return gVK;
+ }
+
+ @JsonProperty("GVK")
+ public void setGVK(GroupVersionKind gVK) {
+ this.gVK = gVK;
+ }
+
+ @JsonProperty("Name")
+ public String getName() {
+ return name;
+ }
+
+ @JsonProperty("Name")
+ public void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java
new file mode 100644
index 0000000..bc3a8ad
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java
@@ -0,0 +1,65 @@
+package org.onap.so.adapters.cnf.model;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class ResourceBundleEntity {
+
+ @JsonProperty(value = "rb-name")
+ private String rbName;
+
+ @JsonProperty(value = "rb-version")
+ private String rbVersion;
+
+ @JsonProperty(value = "chart-name")
+ private String chartName;
+
+ @JsonProperty(value = "description")
+ private String description;
+
+ @JsonProperty(value = "labels")
+ private Map<String, String> labels;
+
+ public String getRbName() {
+ return rbName;
+ }
+
+ public void setRbName(String rbName) {
+ this.rbName = rbName;
+ }
+
+ public String getRbVersion() {
+ return rbVersion;
+ }
+
+ public void setRbVersion(String rbVersion) {
+ this.rbVersion = rbVersion;
+ }
+
+ public String getChartName() {
+ return chartName;
+ }
+
+ public void setChartName(String chartName) {
+ this.chartName = chartName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Map<String, String> getLabels() {
+ return labels;
+ }
+
+ public void setLabels(Map<String, String> labels) {
+ this.labels = labels;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/Response.java b/src/main/java/org/onap/so/adapters/cnf/model/Response.java
new file mode 100644
index 0000000..4230223
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/Response.java
@@ -0,0 +1,39 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model;
+
+public class Response {
+
+ private String errorMsg;
+
+ public Response(String errorMsg) {
+ this.errorMsg = errorMsg;
+ }
+
+ public String getErrorMsg() {
+ return errorMsg;
+ }
+
+ public void setErrorMsg(String errorMsg) {
+ this.errorMsg = errorMsg;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/model/Tag.java b/src/main/java/org/onap/so/adapters/cnf/model/Tag.java
new file mode 100644
index 0000000..70faefa
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/model/Tag.java
@@ -0,0 +1,20 @@
+package org.onap.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonIgnoreProperties(value = "true")
+public class Tag {
+
+ @JsonProperty(value = "tag-name")
+ private String tagName;
+
+ public String getTagName() {
+ return tagName;
+ }
+
+ public void setTagName(String tagName) {
+ this.tagName = tagName;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java b/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java
new file mode 100644
index 0000000..c69b63f
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java
@@ -0,0 +1,677 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.rest;
+
+import java.io.File;
+import java.io.IOException;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.entity.mime.HttpMultipartMode;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+import org.apache.http.entity.mime.content.FileBody;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.onap.so.adapters.cnf.model.BpmnInstanceRequest;
+import org.onap.so.adapters.cnf.model.ConfigTemplateEntity;
+import org.onap.so.adapters.cnf.model.ConfigurationEntity;
+import org.onap.so.adapters.cnf.model.ConfigurationRollbackEntity;
+import org.onap.so.adapters.cnf.model.ConnectivityInfo;
+import org.onap.so.adapters.cnf.model.ProfileEntity;
+import org.onap.so.adapters.cnf.model.ResourceBundleEntity;
+import org.onap.so.adapters.cnf.model.Tag;
+import org.onap.so.adapters.cnf.service.CnfAdapterService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+
+@RestController
+public class CnfAdapterRest {
+
+ private static final Logger logger = LoggerFactory.getLogger(CnfAdapterRest.class);
+ private final CloseableHttpClient httpClient = HttpClients.createDefault();
+
+ @Autowired
+ private CnfAdapterService cnfAdapterService;
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/healthcheck"}, method = RequestMethod.GET,
+ produces = "application/json")
+ public String healthCheck() throws Exception {
+
+ logger.info("healthCheck called.");
+ return cnfAdapterService.healthCheck();
+
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/instance"}, method = RequestMethod.POST,
+ produces = "application/json", consumes = "application/json")
+ public String createInstance(@RequestBody BpmnInstanceRequest bpmnInstanceRequest)
+ throws JsonParseException, JsonMappingException, IOException {
+
+ logger.info("createInstance called.");
+ return cnfAdapterService.createInstance(bpmnInstanceRequest);
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instID}"}, method = RequestMethod.GET,
+ produces = "application/json")
+ public String getInstanceByInstanceId(@PathVariable("instID") String instanceId)
+ throws JsonParseException, JsonMappingException, IOException {
+
+ logger.info("getInstanceByInstanceId called.");
+
+ return cnfAdapterService.getInstanceByInstanceId(instanceId);
+
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instID}/status"}, method = RequestMethod.GET,
+ produces = "application/json")
+ public String getInstanceStatusByInstanceId(@PathVariable("instID") String instanceId)
+ throws JsonParseException, JsonMappingException, IOException {
+
+ logger.info("getInstanceStatusByInstanceId called.");
+
+ return cnfAdapterService.getInstanceStatusByInstanceId(instanceId);
+
+ }
+
+ @RequestMapping(value = {"/api/cnf-adapter/v1/instance"}, method = RequestMethod.GET, produces = "application/json")
+ public String getInstanceByRBNameOrRBVersionOrProfileName(
+ @RequestParam(value = "rb-name", required = false) String rbName,
+ @RequestParam(value = "rb-version", required = false) String rbVersion,
+ @RequestParam(value = "profile-name", required = false) String profileName)
+ throws JsonParseException, JsonMappingException, IOException {
+
+ logger.info("getInstanceByRBNameOrRBVersionOrProfileName called.");
+ return cnfAdapterService.getInstanceByRBNameOrRBVersionOrProfileName(rbName, rbVersion, profileName);
+
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instID}"}, method = RequestMethod.DELETE,
+ produces = "application/json")
+ public String deleteInstanceByInstanceId(@PathVariable("instID") String instanceID)
+ throws JsonParseException, JsonMappingException, IOException {
+
+ logger.info("deleteInstanceByInstanceId called.");
+ return cnfAdapterService.deleteInstanceByInstanceId(instanceID);
+
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition"}, method = RequestMethod.POST,
+ produces = "application/json")
+ public String createRB(@RequestBody ResourceBundleEntity rB) throws Exception {
+
+ logger.info("ResourceBundleEntity:" + rB.toString());
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/rb/definition");
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+ String requestBody = objectMapper.writeValueAsString(rB);
+ StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON);
+ post.setEntity(requestEntity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}"}, method = RequestMethod.GET,
+ produces = "application/json")
+ public String getRB(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion)
+ throws Exception {
+
+ logger.info("get RB called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion);
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}"}, method = RequestMethod.DELETE,
+ produces = "application/json")
+ public String deleteRB(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion)
+ throws Exception {
+
+ logger.info("delete RB called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}"}, method = RequestMethod.GET,
+ produces = "application/json")
+ public String getListOfRB(@PathVariable("rb-name") String rbName) throws Exception {
+
+ logger.info("getListOfRB called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition"}, method = RequestMethod.GET,
+ produces = "application/json")
+ public String getListOfRBWithoutUsingRBName() throws Exception {
+
+ logger.info("getListOfRBWithoutUsingRBName called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition");
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/content"},
+ method = RequestMethod.POST, produces = "multipart/form-data")
+ public String uploadArtifactForRB(@RequestParam("file") MultipartFile file, @PathVariable("rb-name") String rbName,
+ @PathVariable("rb-version") String rbVersion) throws Exception {
+
+ logger.info("Upload Artifact For RB called.");
+
+ File convFile = new File(file.getOriginalFilename());
+ file.transferTo(convFile);
+ FileBody fileBody = new FileBody(convFile, ContentType.DEFAULT_BINARY);
+ MultipartEntityBuilder builder = MultipartEntityBuilder.create();
+ builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
+ builder.addPart("file", fileBody);
+ HttpEntity entity = builder.build();
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post =
+ new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/content");
+ post.setHeader("Content-Type", "multipart/form-data");
+ logger.info(String.valueOf(post));
+ post.setEntity(entity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile"},
+ method = RequestMethod.POST, produces = "application/json")
+ public String createProfile(@RequestBody ProfileEntity fE, @PathVariable("rb-name") String rbName,
+ @PathVariable("rb-version") String rbVersion) throws Exception {
+
+ logger.info("create Profile called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post =
+ new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile");
+ ObjectMapper objectMapper = new ObjectMapper();
+ String requestBody = objectMapper.writeValueAsString(fE);
+ StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON);
+ post.setEntity(requestEntity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile/{pr-name}"},
+ method = RequestMethod.GET, produces = "application/json")
+ public String getProfile(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion,
+ @PathVariable("pr-name") String prName) throws Exception {
+
+ logger.info("get Profile called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpGet req = new HttpGet(
+ "http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile/" + prName);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile"},
+ method = RequestMethod.GET, produces = "application/json")
+ public String getListOfProfile(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion)
+ throws Exception {
+
+ logger.info("getListOfProfile called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpGet req =
+ new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile");
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile/{pr-name}"},
+ method = RequestMethod.DELETE, produces = "application/json")
+ public String deleteProfile(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion,
+ @PathVariable("pr-name") String prName) throws Exception {
+
+ logger.info("delete Profile called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpDelete req = new HttpDelete(
+ "http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile/" + prName);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile/{pr-name}/content"},
+ method = RequestMethod.POST, produces = "multipart/form-data")
+ public String uploadArtifactForProfile(@RequestParam("file") MultipartFile file,
+ @PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion,
+ @PathVariable("pr-name") String prName) throws Exception {
+
+ logger.info("Upload Artifact For Profile called.");
+
+ File convFile = new File(file.getOriginalFilename());
+ file.transferTo(convFile);
+ FileBody fileBody = new FileBody(convFile, ContentType.DEFAULT_BINARY);
+ MultipartEntityBuilder builder = MultipartEntityBuilder.create();
+ builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
+ builder.addPart("file", fileBody);
+ HttpEntity entity = builder.build();
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion
+ + "/profile/" + prName + "/content");
+ post.setHeader("Content-Type", "multipart/form-data");
+
+ logger.info(String.valueOf(post));
+ post.setEntity(entity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config"},
+ method = RequestMethod.POST, produces = "application/json")
+ public String createConfiguration(@RequestBody ConfigurationEntity cE, @PathVariable("rb-name") String rbName,
+ @PathVariable("rb-version") String rbVersion, @PathVariable("profile-name") String prName)
+ throws Exception {
+
+ logger.info("create Configuration called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion
+ + "/profile/" + prName + "/config");
+ ObjectMapper objectMapper = new ObjectMapper();
+ String requestBody = objectMapper.writeValueAsString(cE);
+ StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON);
+ post.setEntity(requestEntity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(
+ value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config/{cfg-name}"},
+ method = RequestMethod.GET, produces = "application/json")
+ public String getConfiguration(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion,
+ @PathVariable("profile-name") String prName, @PathVariable("cfg-name") String cfgName) throws Exception {
+
+ logger.info("get Configuration called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + "/profile/"
+ + prName + "/config/" + cfgName);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(
+ value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config/{cfg-name}"},
+ method = RequestMethod.DELETE, produces = "application/json")
+ public String deleteConfiguration(@PathVariable("rb-name") String rbName,
+ @PathVariable("rb-version") String rbVersion, @PathVariable("profile-name") String prName,
+ @PathVariable("cfg-name") String cfgName) throws Exception {
+
+ logger.info("delete Configuration called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion
+ + "/profile/" + prName + "/config/" + cfgName);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+
+ }
+
+ @ResponseBody
+ @RequestMapping(
+ value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config/{cfg-name}"},
+ method = RequestMethod.PUT, produces = "application/json")
+ public String updateConfiguration(@RequestBody ConfigurationEntity cE, @PathVariable("rb-name") String rbName,
+ @PathVariable("rb-version") String rbVersion, @PathVariable("profile-name") String prName,
+ @PathVariable("cfg-name") String cfgName) throws Exception {
+
+ logger.info("update Configuration called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPut post = new HttpPut("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + "/profile/"
+ + prName + "/config/" + cfgName);
+ ObjectMapper objectMapper = new ObjectMapper();
+ String requestBody = objectMapper.writeValueAsString(cE);
+ StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON);
+ post.setEntity(requestEntity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/tagit"},
+ method = RequestMethod.POST, produces = "application/json")
+ public String tagConfigurationValue(@RequestBody Tag tag, @PathVariable("rb-name") String rbName,
+ @PathVariable("rb-version") String rbVersion, @PathVariable("pr-name") String prName) throws Exception {
+ logger.info("Tag Configuration called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion
+ + "/profile/" + prName + "/config/tagit");
+
+ ObjectMapper objectMapper = new ObjectMapper();
+ String requestBody = objectMapper.writeValueAsString(tag);
+ StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON);
+ post.setEntity(requestEntity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/connectivity-info"}, method = RequestMethod.POST,
+ produces = "application/json")
+ public String createConnectivityInfo(@RequestBody ConnectivityInfo cIE) throws Exception {
+
+ logger.info("create ConnectivityInfo called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/connectivity-info");
+ ObjectMapper objectMapper = new ObjectMapper();
+ String requestBody = objectMapper.writeValueAsString(cIE);
+ StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON);
+ post.setEntity(requestEntity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/connectivity-info/{connname}"}, method = RequestMethod.GET,
+ produces = "application/json")
+ public String getConnectivityInfo(@PathVariable("connname") String connName) throws Exception {
+
+ logger.info("get Connectivity Info called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/connectivity-info/" + connName);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/connectivity-info/{connname}"}, method = RequestMethod.DELETE,
+ produces = "application/json")
+ public String deleteConnectivityInfo(@PathVariable("connname") String connName) throws Exception {
+
+ logger.info("delete Connectivity Info called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/connectivity-info/" + connName);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template"},
+ method = RequestMethod.POST, produces = "application/json")
+ public String createConfigTemplate(@RequestBody ConfigTemplateEntity tE, @PathVariable("rb-name") String rbName,
+ @PathVariable("rb-version") String rbVersion) throws Exception {
+
+ logger.info("createConfigTemplate called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post = new HttpPost(
+ "http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/config-template");
+ ObjectMapper objectMapper = new ObjectMapper();
+ String requestBody = objectMapper.writeValueAsString(tE);
+ StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON);
+ post.setEntity(requestEntity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template/{tname}"},
+ method = RequestMethod.GET, produces = "application/json")
+ public String getConfigTemplate(@PathVariable("rb-name") String rbName,
+ @PathVariable("rb-version") String rbVersion, @PathVariable("tname") String tName) throws Exception {
+
+ logger.info("getConfigTemplate called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion
+ + "/config-template/" + tName);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template/{tname}"},
+ method = RequestMethod.DELETE, produces = "application/json")
+ public String deleteTemplate(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion,
+ @PathVariable("tname") String tName) throws Exception {
+
+ logger.info("deleteTemplate called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion
+ + "/config-template/" + tName);
+
+ try (CloseableHttpResponse response = httpClient.execute(req)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+
+ }
+
+ @ResponseBody
+ @RequestMapping(
+ value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template/{tname}/content"},
+ method = RequestMethod.POST, produces = "multipart/form-data")
+ public String uploadTarFileForTemplate(@RequestParam("file") MultipartFile file,
+ @PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion,
+ @PathVariable("tname") String tName) throws Exception {
+
+ logger.info("uploadTarFileForTemplate called.");
+
+ File convFile = new File(file.getOriginalFilename());
+ file.transferTo(convFile);
+ FileBody fileBody = new FileBody(convFile, ContentType.DEFAULT_BINARY);
+ MultipartEntityBuilder builder = MultipartEntityBuilder.create();
+ builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
+ builder.addPart("file", fileBody);
+ HttpEntity entity = builder.build();
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion
+ + "/config-template/" + tName + "/content");
+ post.setHeader("Content-Type", "multipart/form-data");
+
+ logger.info(String.valueOf(post));
+ post.setEntity(entity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+ @ResponseBody
+ @RequestMapping(value = {"/api/cnf-adapter/v1/definition/{rbName}/{rbVersion}/profile/{prName}/config/rollback"},
+ method = RequestMethod.DELETE, produces = "application/json")
+ public String rollbackConfiguration(@RequestBody ConfigurationRollbackEntity rE,
+ @PathVariable("rbName") String rbName, @PathVariable("rbVersion") String rbVersion,
+ @PathVariable("prName") String prName) throws Exception {
+ logger.info("rollbackConfiguration called.");
+
+ // TODO
+ // Below URL should be changed as appropriate multicloud URL.
+ HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion
+ + "/profile/" + prName + "/config/rollback");
+
+ ObjectMapper objectMapper = new ObjectMapper();
+ String requestBody = objectMapper.writeValueAsString(rE);
+ StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON);
+ post.setEntity(requestEntity);
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault();
+ CloseableHttpResponse response = httpClient.execute(post)) {
+ logger.info("response:" + response.getEntity());
+ return EntityUtils.toString(response.getEntity());
+ }
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java b/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java
new file mode 100644
index 0000000..a134bac
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java
@@ -0,0 +1,251 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.service;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import javax.persistence.EntityNotFoundException;
+import javax.ws.rs.core.UriBuilder;
+import org.apache.http.HttpStatus;
+import org.onap.so.adapters.cnf.model.BpmnInstanceRequest;
+import org.onap.so.adapters.cnf.model.MulticloudInstanceRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.HttpClientErrorException;
+import org.springframework.web.client.HttpStatusCodeException;
+import org.springframework.web.client.RestTemplate;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+
+@Service
+public class CnfAdapterService {
+ private static final Logger logger = LoggerFactory.getLogger(CnfAdapterService.class);
+ @Autowired
+ private RestTemplate restTemplate;
+ private static final String INSTANCE_CREATE_PATH = "/v1/instance";
+ private static final String HEALTH_CHECK = "/v1/healthcheck";
+
+ public String healthCheck() {
+
+ logger.info("CnfAdapterService healthCheck called");
+ ResponseEntity<String> result = null;
+ try {
+
+ // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO:
+ // This needs to be added as well
+ // for configuration
+ String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri?
+ String endpoint = UriBuilder.fromUri(uri).path(HEALTH_CHECK).build().toString();
+ HttpEntity<?> requestEntity = new HttpEntity<>(getHttpHeaders());
+ result = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class);
+ return result.getBody();
+ } catch (HttpClientErrorException e) {
+ logger.error("Error Calling Multicloud, e");
+ if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+ throw new EntityNotFoundException(e.getResponseBodyAsString());
+ }
+ throw e;
+ } catch (HttpStatusCodeException e) {
+ logger.error("Error in Multicloud, e");
+ throw e;
+ }
+ }
+
+ public String createInstance(BpmnInstanceRequest bpmnInstanceRequest)
+ throws JsonParseException, JsonMappingException, IOException {
+ try {
+ logger.info("CnfAdapterService createInstance called");
+ MulticloudInstanceRequest multicloudInstanceRequest = new MulticloudInstanceRequest();
+ ResponseEntity<String> instanceResponse = null;
+ if (bpmnInstanceRequest.getK8sRBProfileName() != null) {
+ multicloudInstanceRequest.setCloudRegion(bpmnInstanceRequest.getCloudRegionId());
+ multicloudInstanceRequest.setLabels(bpmnInstanceRequest.getLabels());
+ multicloudInstanceRequest.setOverrideValues(bpmnInstanceRequest.getOverrideValues());
+ multicloudInstanceRequest.setProfileName(bpmnInstanceRequest.getK8sRBProfileName());
+ multicloudInstanceRequest.setRbName(bpmnInstanceRequest.getModelInvariantId());
+ multicloudInstanceRequest.setRbVersion(bpmnInstanceRequest.getModelVersionId());
+ multicloudInstanceRequest.setVfModuleUuid(bpmnInstanceRequest.getVfModuleUUID());
+ } else {
+ logger.error("k8sProfileName should not be null");
+ // return instanceResponse;
+ }
+ // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO:
+ // This needs to be added as well
+ // for configuration
+ String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri?
+ String endpoint = UriBuilder.fromUri(uri).path(INSTANCE_CREATE_PATH).build().toString();
+ HttpEntity<?> entity = getHttpEntity(multicloudInstanceRequest);
+ instanceResponse = restTemplate.exchange(endpoint, HttpMethod.POST, entity, String.class);
+ return instanceResponse.getBody();
+ } catch (HttpClientErrorException e) {
+ logger.error("Error Calling Multicloud, e");
+ if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+ throw new EntityNotFoundException(e.getResponseBodyAsString());
+ }
+ throw e;
+ } catch (HttpStatusCodeException e) {
+ logger.error("Error in Multicloud, e");
+ throw e;
+ }
+ }
+
+ public String getInstanceByInstanceId(String instanceId)
+ throws JsonParseException, JsonMappingException, IOException {
+
+ logger.info("CnfAdapterService getInstanceByInstanceId called");
+ ResponseEntity<String> instanceResponse = null;
+ try {
+
+ // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO:
+ // This needs to be added as well
+ // for configuration
+ String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri?
+ String path = "/v1/instance/" + instanceId;
+ String endpoint = UriBuilder.fromUri(uri).path(path).build().toString();
+ HttpEntity<?> requestEntity = new HttpEntity<>(getHttpHeaders());
+ instanceResponse = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class);
+ return instanceResponse.getBody();
+ } catch (HttpClientErrorException e) {
+ logger.error("Error Calling Multicloud, e");
+ if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+ throw new EntityNotFoundException(e.getResponseBodyAsString());
+ }
+ throw e;
+ } catch (HttpStatusCodeException e) {
+ logger.error("Error in Multicloud, e");
+ throw e;
+ }
+ }
+
+ public String getInstanceStatusByInstanceId(String instanceId)
+ throws JsonParseException, JsonMappingException, IOException {
+
+ logger.info("CnfAdapterService getInstanceStatusByInstanceId called");
+ ResponseEntity<String> instanceResponse = null;
+ try {
+
+ // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO:
+ // This needs to be added as well
+ // for configuration
+ String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri?
+ String path = "/v1/instance/" + instanceId + "/status";
+ String endpoint = UriBuilder.fromUri(uri).path(path).build().toString();
+ HttpEntity<?> requestEntity = new HttpEntity<>(getHttpHeaders());
+ instanceResponse = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class);
+ return instanceResponse.getBody();
+ } catch (HttpClientErrorException e) {
+ logger.error("Error Calling Multicloud, e");
+ if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+ throw new EntityNotFoundException(e.getResponseBodyAsString());
+ }
+ throw e;
+ } catch (HttpStatusCodeException e) {
+ logger.error("Error in Multicloud, e");
+ throw e;
+ }
+
+ }
+
+ public String getInstanceByRBNameOrRBVersionOrProfileName(String rbName, String rbVersion, String profileName)
+ throws JsonParseException, JsonMappingException, IOException {
+
+ logger.info("CnfAdapterService getInstanceByRBNameOrRBVersionOrProfileName called");
+ ResponseEntity<String> instanceMiniResponseList = null;
+ try {
+
+ // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO:
+ // This needs to be added as well
+ // for configuration
+ String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri?
+ String path =
+ "/v1/instance" + "?rb-name=" + rbName + "&rb-version=" + rbVersion + "&profile-name=" + profileName;
+ String endPoint = uri + path;
+ HttpEntity<?> requestEntity = new HttpEntity<>(getHttpHeaders());
+ instanceMiniResponseList = restTemplate.exchange(endPoint, HttpMethod.GET, requestEntity, String.class);
+ return instanceMiniResponseList.getBody();
+ } catch (HttpClientErrorException e) {
+ logger.error("Error Calling Multicloud, e");
+ if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+ throw new EntityNotFoundException(e.getResponseBodyAsString());
+ }
+ throw e;
+ } catch (HttpStatusCodeException e) {
+ logger.error("Error in Multicloud, e");
+ throw e;
+ }
+ }
+
+ public String deleteInstanceByInstanceId(String instanceId)
+ throws JsonParseException, JsonMappingException, IOException {
+
+ logger.info("CnfAdapterService deleteInstanceByInstanceId called");
+ ResponseEntity<String> result = null;
+ try {
+
+ // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO:
+ // This needs to be added as well
+ // for configuration
+ String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri?
+ String path = "/v1/instance/" + instanceId;
+ String endpoint = UriBuilder.fromUri(uri).path(path).build().toString();
+ HttpEntity<?> requestEntity = new HttpEntity<>(getHttpHeaders());
+ result = restTemplate.exchange(endpoint, HttpMethod.DELETE, requestEntity, String.class);
+ return result.getBody();
+ } catch (HttpClientErrorException e) {
+ logger.error("Error Calling Multicloud, e");
+ if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) {
+ throw new EntityNotFoundException(e.getResponseBodyAsString());
+ }
+ throw e;
+ } catch (HttpStatusCodeException e) {
+ logger.error("Error in Multicloud, e");
+ throw e;
+ }
+ }
+
+ protected HttpHeaders getHttpHeaders() {
+ HttpHeaders headers = new HttpHeaders();
+ List<MediaType> acceptableMediaTypes = new ArrayList<>();
+ acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
+ headers.setAccept(acceptableMediaTypes);
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ /*
+ * try { String userCredentials = CryptoUtils.decrypt(env.getRequiredProperty("mso.cnf.adapter.auth"),
+ * env.getRequiredProperty("mso.msoKey")); if (userCredentials != null) { headers.add(HttpHeaders.AUTHORIZATION,
+ * "Basic " + DatatypeConverter.printBase64Binary(userCredentials.getBytes())); } } catch
+ * (GeneralSecurityException e) { logger.error("Security exception", e); }
+ */
+ return headers;
+ }
+
+ protected HttpEntity<?> getHttpEntity(MulticloudInstanceRequest request) {
+ HttpHeaders headers = getHttpHeaders();
+ return new HttpEntity<>(request, headers);
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java b/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java
new file mode 100644
index 0000000..25e506c
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java
@@ -0,0 +1,94 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.util;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
+import org.onap.so.adapters.cnf.exceptions.ApplicationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.onap.logging.filter.base.ErrorCode;
+import static org.onap.so.logger.LoggingAnchor.THREE;
+import static org.onap.so.logger.MessageEnum.RA_NS_EXC;
+
+public class CNfAdapterUtil {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CNfAdapterUtil.class);
+
+ public static final int BAD_REQUEST = 400;
+
+ private static final String UNMARSHAL_FAIL_MSG = "Failed to unmarshal json";
+
+ private static final String MARSHAL_FAIL_MSG = "Failed to marshal object";
+
+ private static final ObjectMapper MAPPER = new ObjectMapper();
+
+ public static class StatusDesc {
+
+ public static final String ALLOCATE_NSS_SUCCESS = "Allocating nss is " + "successful";
+
+ public static final String CREATE_NSS_SUCCESS = "Creating nss is " + "successful";
+
+ public static final String DEALLOCATE_NSS_SUCCESS = "Deallocate nss " + "is successful";
+
+ public static final String ACTIVATE_NSS_SUCCESS = "Activate nss " + "is successful";
+
+ public static final String DEACTIVATE_NSS_SUCCESS = "Deactivate nss " + "is successful";
+
+ public static final String QUERY_JOB_STATUS_FAILED = "Query job " + "status failed";
+
+ public static final String QUERY_JOB_STATUS_SUCCESS = "Query job " + "status is successful";
+
+ private StatusDesc() {
+
+ }
+ }
+
+ private CNfAdapterUtil() {
+
+ }
+
+ public static void assertObjectNotNull(Object object) throws ApplicationException {
+ if (null == object) {
+ LOGGER.error("Object is null.");
+ throw new ApplicationException(BAD_REQUEST, "An object is null.");
+ }
+ }
+
+ public static <T> T unMarshal(String jsonstr, Class<T> type) throws ApplicationException {
+ try {
+ return MAPPER.readValue(jsonstr, type);
+ } catch (IOException e) {
+ LOGGER.error(THREE, RA_NS_EXC.toString(), ErrorCode.BusinessProcessError.getValue(), UNMARSHAL_FAIL_MSG, e);
+ throw new ApplicationException(BAD_REQUEST, UNMARSHAL_FAIL_MSG);
+ }
+ }
+
+ public static String marshal(Object srcObj) throws ApplicationException {
+ try {
+ return MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(srcObj);
+ } catch (IOException e) {
+ LOGGER.error(THREE, RA_NS_EXC.toString(), ErrorCode.BusinessProcessError.getValue(), MARSHAL_FAIL_MSG, e);
+ throw new ApplicationException(BAD_REQUEST, MARSHAL_FAIL_MSG);
+ }
+ }
+
+}
diff --git a/src/main/resources/META-INF/services/org.onap.so.client.RestProperties b/src/main/resources/META-INF/services/org.onap.so.client.RestProperties
new file mode 100644
index 0000000..bccd43a
--- /dev/null
+++ b/src/main/resources/META-INF/services/org.onap.so.client.RestProperties
@@ -0,0 +1 @@
+org.onap.so.adapters.cnf.extclients.aai.AaiClientPropertiesImpl \ No newline at end of file
diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml
new file mode 100644
index 0000000..5a9adbf
--- /dev/null
+++ b/src/main/resources/application.yaml
@@ -0,0 +1,61 @@
+#
+# ============LICENSE_START=======================================================
+# ONAP - SO
+# ================================================================================
+# Copyright (C) 2020 Huawei Technologies Co., Ltd. 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=========================================================
+#/
+#aai:
+# auth: 2A11B07DB6214A839394AA1EC5844695F5114FC407FF5422625FB00175A3DCB8A1FF745F22867EFA72D5369D599BBD88DA8BED4233CF5586
+# endpoint: https://aai.onap:30233
+#logging:
+# path: logs
+
+#spring:
+# datasource:
+ # driver-class-name: org.mariadb.jdbc.Driver
+# jdbcUrl: jdbc:mariadb://192.168.235.44:30444/requestdb
+ # username: root
+ # password: secretpassword
+
+ # jpa:
+ # show-sql: false
+ # hibernate:
+ # dialect: org.hibernate.dialect.MySQL5Dialect
+ # ddl-auto: validate
+ # naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+ # enable-lazy-load-no-trans: true
+server:
+ port: 9012
+ tomcat:
+ max-threads: 50
+
+#mso:
+ # key: 07a7159d3bf51a0e53be7a8f89699be7
+ # site-name: localSite
+# logPath: ./logs/cnf
+ # msb-ip: msb-iag.{{ include "common.namespace" . }}
+ # msb-port: 80
+ # adapters:
+ # requestDb:
+ # endpoint: https://so-request-db-adapter.{{ include "common.namespace" . }}:8083
+ # auth: Basic YnBlbDpwYXNzd29yZDEk
+
+#Actuator
+#management:
+# security:
+ # enabled: false
+ # basic:
+# enabled: false \ No newline at end of file