summaryrefslogtreecommitdiffstats
path: root/adapters/mso-openstack-adapters
diff options
context:
space:
mode:
Diffstat (limited to 'adapters/mso-openstack-adapters')
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAudit.java56
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAuditList.java25
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java90
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java30
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java (renamed from adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java)60
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java129
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java92
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java68
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java68
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java114
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/InventoryException.java14
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java1
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapter.java10
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterAsync.java6
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java4
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfCloudifyAdapterImpl.java2
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfPluginAdapterImpl.java61
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/openstack/factory/OpenstackClientFactoryImpl.java5
-rw-r--r--adapters/mso-openstack-adapters/src/main/resources/application-local.yaml2
-rw-r--r--adapters/mso-openstack-adapters/src/main/resources/application.yaml1
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java (renamed from adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditCreateStackServiceTest.java)83
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditVServerTest.java251
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/HeatStackAuditTest.java95
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateAAIInventoryTest.java122
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfMulticloudAdapterImplTest.java16
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/AuditResultsMissSub.json604
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/ExpectedVServerFound.json167
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/ExpectedVserversToAudit.json135
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface0Resources.json28
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface1Resources.json28
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface2Resources.json28
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Network_Sec_Server_Not_Found.json167
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Sec_Server_Not_Found2.json167
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/VServer_Found_network_Not_Found.json167
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/Vserver2_Found_VServer1_Not_Found.json167
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/Vservers_Not_Found.json167
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/application-test.yaml6
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/data.sql43
-rw-r--r--adapters/mso-openstack-adapters/src/test/resources/schema.sql2005
39 files changed, 3897 insertions, 1387 deletions
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAudit.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAudit.java
new file mode 100644
index 0000000000..a2c117b3d9
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAudit.java
@@ -0,0 +1,56 @@
+package org.onap.so.adapters.audit;
+
+import java.io.Serializable;
+import java.net.URI;
+
+import org.onap.so.client.aai.AAIObjectType;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+public class AAIObjectAudit implements Serializable{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -4560928512855386021L;
+ private boolean doesObjectExist = false;
+ private Object aaiObject;
+ private URI resourceURI;
+ private String aaiObjectType;
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).append("doesObjectExist", doesObjectExist).append("aaiObject", aaiObject)
+ .append("resourceURI", resourceURI).append("aaiObjectType", aaiObjectType).toString();
+ }
+
+ public String getAaiObjectType() {
+ return aaiObjectType;
+ }
+
+ public void setAaiObjectType(String aaiObjectType) {
+ this.aaiObjectType = aaiObjectType;
+ }
+
+ public boolean isDoesObjectExist() {
+ return doesObjectExist;
+ }
+
+ public void setDoesObjectExist(boolean doesObjectExist) {
+ this.doesObjectExist = doesObjectExist;
+ }
+
+ public Object getAaiObject() {
+ return aaiObject;
+ }
+
+ public void setAaiObject(Object aaiObject) {
+ this.aaiObject = aaiObject;
+ }
+
+ public URI getResourceURI() {
+ return resourceURI;
+ }
+ public void setResourceURI(URI resourceURI) {
+ this.resourceURI = resourceURI;
+ }
+} \ No newline at end of file
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAuditList.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAuditList.java
new file mode 100644
index 0000000000..a1a8d5b5ed
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AAIObjectAuditList.java
@@ -0,0 +1,25 @@
+package org.onap.so.adapters.audit;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+public class AAIObjectAuditList implements Serializable{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6712662349909726930L;
+ private List<AAIObjectAudit> auditList = new ArrayList<>();
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).append("auditList", auditList).toString();
+ }
+
+ public List<AAIObjectAudit> getAuditList() {
+ return auditList;
+ }
+
+} \ No newline at end of file
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java
deleted file mode 100644
index 66d8fbd47c..0000000000
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditDeleteStackService.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.adapters.audit;
-
-import org.camunda.bpm.client.task.ExternalTask;
-import org.camunda.bpm.client.task.ExternalTaskService;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.audit.beans.AuditInventory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.Environment;
-import org.springframework.stereotype.Component;
-
-@Component
-public class AuditDeleteStackService {
-
- private static final String UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI = "All VServers have not been deleted in A&AI";
-
- private static final int[] RETRY_SEQUENCE = new int[] { 1, 1, 2, 3, 5, 8, 13, 20};
-
-
- private static final Logger logger = LoggerFactory.getLogger(AuditDeleteStackService.class);
-
- @Autowired
- public HeatStackAudit heatStackAudit;
-
- @Autowired
- public Environment env;
-
- protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService){
- AuditInventory auditInventory = externalTask.getVariable("auditInventory");
- setupMDC(externalTask);
- boolean success = false;
- try {
- logger.info("Executing External Task Audit Inventory, Retry Number: {} \n {}", auditInventory,externalTask.getRetries());
- success=heatStackAudit.auditHeatStackDeleted(auditInventory.getCloudRegion(), auditInventory.getCloudOwner(),
- auditInventory.getTenantId(), auditInventory.getHeatStackName());
- } catch (Exception e) {
- logger.error("Error during audit of stack", e);
- }
-
- if (success) {
- externalTaskService.complete(externalTask);
- logger.debug("The External Task Id: {} Successful", externalTask.getId());
- } else {
- if(externalTask.getRetries() == null){
- logger.debug("The External Task Id: {} Failed, Setting Retries to Default Start Value: {}", externalTask.getId(),RETRY_SEQUENCE.length);
- externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, RETRY_SEQUENCE.length, 10000);
- }else if(externalTask.getRetries() != null &&
- externalTask.getRetries()-1 == 0){
- logger.debug("The External Task Id: {} Failed, All Retries Exhausted", externalTask.getId());
- externalTaskService.complete(externalTask);
- }else{
- logger.debug("The External Task Id: {} Failed, Decrementing Retries: {} , Retry Delay: ", externalTask.getId(),externalTask.getRetries()-1, calculateRetryDelay(externalTask.getRetries()));
- externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, externalTask.getRetries()-1, calculateRetryDelay(externalTask.getRetries()));
- }
- logger.debug("The External Task Id: {} Failed", externalTask.getId());
- }
- }
- private void setupMDC(ExternalTask externalTask) {
- String msoRequestId = (String)externalTask.getVariable("mso-request-id");
- if(msoRequestId != null && !msoRequestId.isEmpty())
- MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
- }
- protected long calculateRetryDelay(int currentRetries){
- int retrySequence = RETRY_SEQUENCE.length - currentRetries;
- long retryMultiplier = Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier","6000"));
- return RETRY_SEQUENCE[retrySequence] * retryMultiplier;
- }
-}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java
index 6ea14dcac7..499c1137c7 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackService.java
@@ -46,30 +46,10 @@ public class AuditStackService {
public Environment env;
@Autowired
- private AuditCreateStackService auditCreateStack;
-
- @Autowired
- private AuditDeleteStackService auditDeleteStack;
+ private AuditStackServiceData auditStack;
@PostConstruct
- public void auditAddAAIInventory() {
- String auth = "";
- try {
- auth = CryptoUtils.decrypt(env.getRequiredProperty("mso.auth"), env.getRequiredProperty("mso.msoKey"));
- } catch (IllegalStateException | GeneralSecurityException e) {
- logger.error("Error Decrypting Password", e);
- }
- ClientRequestInterceptor interceptor = new BasicAuthProvider(env.getRequiredProperty("mso.config.cadi.aafId"),
- auth);
- ExternalTaskClient client = ExternalTaskClient.create()
- .baseUrl(env.getRequiredProperty("mso.workflow.endpoint")).maxTasks(1).addInterceptor(interceptor)
- .asyncResponseTimeout(120000).build();
- client.subscribe("InventoryAddAudit").lockDuration(60000)
- .handler(auditCreateStack::executeExternalTask).open();
- }
-
- @PostConstruct
- public void auditDeleteAAIInventory() {
+ public void auditAAIInventory() {
String auth = "";
try {
auth = CryptoUtils.decrypt(env.getRequiredProperty("mso.auth"), env.getRequiredProperty("mso.msoKey"));
@@ -80,9 +60,9 @@ public class AuditStackService {
auth);
ExternalTaskClient client = ExternalTaskClient.create()
.baseUrl(env.getRequiredProperty("mso.workflow.endpoint")).maxTasks(1).addInterceptor(interceptor)
- .asyncResponseTimeout(120000).build();
- client.subscribe("InventoryDeleteAudit").lockDuration(60000)
- .handler(auditDeleteStack::executeExternalTask).open();
+ .asyncResponseTimeout(120000).backoffStrategy(new ExponentialBackoffStrategy(10000, 2, 120000)).build();
+ client.subscribe("InventoryAudit").lockDuration(60000)
+ .handler(auditStack::executeExternalTask).open();
}
}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java
index 24980ae4e0..da6bea7dec 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditCreateStackService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditStackServiceData.java
@@ -22,26 +22,29 @@
package org.onap.so.adapters.audit;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+
import org.camunda.bpm.client.task.ExternalTask;
import org.camunda.bpm.client.task.ExternalTaskService;
import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.onap.so.audit.beans.AuditInventory;
+import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
-public class AuditCreateStackService {
+public class AuditStackServiceData {
private static final String UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI = "Unable to find all VServers and L-Interaces in A&AI";
- private static final int[] RETRY_SEQUENCE = new int[] { 1, 1, 2, 3, 5, 8, 13, 20};
-
-
- private static final Logger logger = LoggerFactory.getLogger(AuditCreateStackService.class);
+ private static final Logger logger = LoggerFactory.getLogger(AuditStackServiceData.class);
@Autowired
public HeatStackAudit heatStackAudit;
@@ -51,35 +54,39 @@ public class AuditCreateStackService {
protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService){
AuditInventory auditInventory = externalTask.getVariable("auditInventory");
+ Map<String, Object> variables = new HashMap<>();
setupMDC(externalTask);
boolean success = false;
try {
logger.info("Executing External Task Audit Inventory, Retry Number: {} \n {}", auditInventory,externalTask.getRetries());
- success=heatStackAudit.auditHeatStackCreate(auditInventory.getCloudRegion(), auditInventory.getCloudOwner(),
+ Optional<AAIObjectAuditList> auditListOpt= heatStackAudit.auditHeatStack(auditInventory.getCloudRegion(), auditInventory.getCloudOwner(),
auditInventory.getTenantId(), auditInventory.getHeatStackName());
+ if (auditListOpt.isPresent()) {
+ GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
+ variables.put("auditInventoryResult", objectMapper.getMapper().writeValueAsString(auditListOpt.get()));
+ success = !didAuditFail(auditListOpt);
+ }
} catch (Exception e) {
logger.error("Error during audit of stack", e);
}
-
+ variables.put("auditIsSuccessful", success);
if (success) {
- externalTaskService.complete(externalTask);
+ externalTaskService.complete(externalTask,variables);
logger.debug("The External Task Id: {} Successful", externalTask.getId());
} else {
if(externalTask.getRetries() == null){
- logger.debug("The External Task Id: {} Failed, Setting Retries to Default Start Value: {}", externalTask.getId(),RETRY_SEQUENCE.length);
- externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, RETRY_SEQUENCE.length, 10000);
+ logger.debug("The External Task Id: {} Failed, Setting Retries to Default Start Value: {}", externalTask.getId(),getRetrySequence().length);
+ externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, getRetrySequence().length, 10000);
}else if(externalTask.getRetries() != null &&
externalTask.getRetries()-1 == 0){
- logger.debug("The External Task Id: {} Failed, All Retries Exhausted", externalTask.getId());
- externalTaskService.handleBpmnError(externalTask, "AuditAAIInventoryFailure", "Number of Retries Exceeded auditing inventory");
+ logger.debug("The External Task Id: {} Failed, All Retries Exhausted", externalTask.getId());
+ externalTaskService.complete(externalTask, variables);
}else{
logger.debug("The External Task Id: {} Failed, Decrementing Retries: {} , Retry Delay: ", externalTask.getId(),externalTask.getRetries()-1, calculateRetryDelay(externalTask.getRetries()));
externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, externalTask.getRetries()-1, calculateRetryDelay(externalTask.getRetries()));
}
logger.debug("The External Task Id: {} Failed", externalTask.getId());
}
-
-
}
private void setupMDC(ExternalTask externalTask) {
String msoRequestId = externalTask.getVariable("mso-request-id");
@@ -87,8 +94,29 @@ public class AuditCreateStackService {
MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
}
protected long calculateRetryDelay(int currentRetries){
- int retrySequence = RETRY_SEQUENCE.length - currentRetries;
+ int retrySequence = getRetrySequence().length - currentRetries;
long retryMultiplier = Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier","6000"));
- return RETRY_SEQUENCE[retrySequence] * retryMultiplier;
+ return Integer.parseInt(getRetrySequence()[retrySequence]) * retryMultiplier;
+ }
+
+ /**
+ * @param auditHeatStackFailed
+ * @param auditList
+ * @return
+ */
+ protected boolean didAuditFail(Optional<AAIObjectAuditList> auditList) {
+ if (auditList.get().getAuditList() != null && !auditList.get().getAuditList().isEmpty()) {
+ if (logger.isInfoEnabled()) {
+ logger.info("Audit Results: {}", auditList.get().toString());
+ }
+ return auditList.get().getAuditList().stream().filter(auditObject -> !auditObject.isDoesObjectExist())
+ .findFirst().map(v -> true).orElse(false);
+ } else {
+ return false;
+ }
}
+ public String[] getRetrySequence() {
+ return env.getProperty("mso.workflow.topics.retrySequence",String[].class);
+ }
+
}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java
index c81dac7c6f..519e1c92b1 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/AuditVServer.java
@@ -24,97 +24,106 @@ import java.util.Optional;
import java.util.Set;
import org.onap.aai.domain.yang.LInterface;
-import org.onap.aai.domain.yang.LInterfaces;
import org.onap.aai.domain.yang.Vserver;
-import org.onap.so.client.aai.AAIObjectPlurals;
import org.onap.so.client.aai.AAIObjectType;
-import org.onap.so.client.aai.entities.AAIResultWrapper;
import org.onap.so.client.aai.entities.uri.AAIResourceUri;
import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
+import com.fasterxml.jackson.core.JsonProcessingException;
+
@Component
public class AuditVServer extends AbstractAudit {
private static final Logger logger = LoggerFactory.getLogger(AuditVServer.class);
- public boolean auditAllVserversDoExist(Set<Vserver> vServersToAudit, String tenantId, String cloudOwner, String cloudRegion) {
+ public Optional<AAIObjectAuditList> auditVservers(Set<Vserver> vServersToAudit, String tenantId, String cloudOwner, String cloudRegion) {
if (vServersToAudit == null || vServersToAudit.isEmpty()){
- return false;
+ return Optional.empty();
}
- return vServersToAudit.stream()
- .filter(vServer -> !doesVServerExistInAAI(vServer, tenantId, cloudOwner, cloudRegion,true)).findFirst()
- .map(v -> false).orElse(true);
- }
-
- public boolean auditAllVserversDoNotExist(Set<Vserver> vServersToAudit, String tenantId, String cloudOwner, String cloudRegion) {
- if (vServersToAudit == null || vServersToAudit.isEmpty()){
- return true;
- }
- return vServersToAudit.stream()
- .filter(vServer -> doesVServerExistInAAI(vServer, tenantId, cloudOwner, cloudRegion,false)).findFirst()
- .map(v -> false).orElse(true);
+ GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
+ vServersToAudit.stream().forEach(vserver -> {
+ try {
+ logger.debug("Vserver to Audit: {}",objectMapper.getMapper().writeValueAsString(vserver));
+ } catch (JsonProcessingException e) {
+
+ }
+ });
+ AAIObjectAuditList auditList = new AAIObjectAuditList();
+ vServersToAudit.stream()
+ .forEach(vServer -> auditList.getAuditList().addAll(doesVServerExistInAAI(vServer, tenantId, cloudOwner, cloudRegion).getAuditList()));
+ return Optional.of(auditList);
}
- private boolean doesVServerExistInAAI(Vserver vServer, String tenantId, String cloudOwner, String cloudRegion, boolean checkLinterfaces) {
+ private AAIObjectAuditList doesVServerExistInAAI(Vserver vServer, String tenantId, String cloudOwner, String cloudRegion) {
+ AAIObjectAuditList auditList = new AAIObjectAuditList();
+ AAIObjectAudit vServerAudit = new AAIObjectAudit();
AAIResourceUri vserverURI = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
tenantId, vServer.getVserverId());
+ Vserver vServerShallow = new Vserver();
+ BeanUtils.copyProperties(vServer,vServerShallow,"LInterfaces");
boolean vServerExists = getAaiClient().exists(vserverURI);
- boolean doesExist = getAaiClient().exists(vserverURI);
- logger.info("v-server {} exists: {}", vServer.getVserverId(), doesExist);
- boolean allNeutronNetworksExist = true;
- if (vServerExists && vServer.getLInterfaces() != null && checkLinterfaces) {
- allNeutronNetworksExist = vServer.getLInterfaces()
- .getLInterface().stream().filter(lInterface -> !doesLinterfaceExistinAAI(lInterface,
- vServer.getVserverId(), tenantId, cloudOwner, cloudRegion))
- .findFirst().map(v -> false).orElse(true);
+ logger.info("v-server {} exists: {}", vServer.getVserverId(), vServerExists);
+ vServerAudit.setAaiObject(vServerShallow);
+ vServerAudit.setDoesObjectExist(vServerExists);
+ vServerAudit.setResourceURI(vserverURI.build());
+ vServerAudit.setAaiObjectType(AAIObjectType.VSERVER.typeName());
+ auditList.getAuditList().add(vServerAudit);
+ if (vServer.getLInterfaces() != null) {
+ vServer.getLInterfaces().getLInterface().stream().forEach(lInterface -> auditList.getAuditList().addAll(doesLinterfaceExistinAAI(lInterface,
+ vServer.getVserverId(), tenantId, cloudOwner, cloudRegion).getAuditList()));
}
- return vServerExists && allNeutronNetworksExist;
+ return auditList;
}
- private boolean doesLinterfaceExistinAAI(LInterface lInterface, String vServerId, String tenantId,
+ private AAIObjectAuditList doesLinterfaceExistinAAI(LInterface lInterface, String vServerId, String tenantId,
String cloudOwner, String cloudRegion) {
- boolean doesLInterfaceExist = false;
- boolean doSubInterfacesExist = true;
+ AAIObjectAuditList auditList = new AAIObjectAuditList();
+ AAIObjectAudit lInterfaceAudit = new AAIObjectAudit();
AAIResourceUri linterfaceURI = AAIUriFactory
- .createResourceUri(AAIObjectPlurals.L_INTERFACE, cloudOwner, cloudRegion, tenantId, vServerId)
- .queryParam("interface-id", lInterface.getInterfaceId());
- Optional<LInterfaces> queriedLInterface = getAaiClient().get(LInterfaces.class, linterfaceURI);
+ .createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner, cloudRegion, tenantId, vServerId, lInterface.getInterfaceName());
+ Optional<LInterface> queriedLInterface = getAaiClient().get(LInterface.class, linterfaceURI);
if (queriedLInterface.isPresent()) {
- if (queriedLInterface.get().getLInterface().size() > 1) {
- logger.error("Non-Unique LInterface Found stopping audit, L-Interface Id: " +lInterface.getInterfaceId());
- doesLInterfaceExist = false;
- } else {
- doesLInterfaceExist = true;
- lInterface.setInterfaceName(queriedLInterface.get().getLInterface().get(0).getInterfaceName());
- }
+ lInterfaceAudit.setDoesObjectExist(true);
+ lInterface.setInterfaceName(lInterface.getInterfaceName());
}
- logger.info("l-interface id:{} name: {} exists: {}", lInterface.getInterfaceId(), lInterface.getInterfaceName(),
- doesLInterfaceExist);
+ LInterface lInterfaceShallow = new LInterface();
+ BeanUtils.copyProperties(lInterface,lInterfaceShallow,"LInterfaces");
+ lInterfaceAudit.setAaiObject(lInterface);
+ lInterfaceAudit.setResourceURI(linterfaceURI.build());
+ lInterfaceAudit.setAaiObjectType(AAIObjectType.L_INTERFACE.typeName());
+ auditList.getAuditList().add(lInterfaceAudit);
+ logger.info("l-interface id:{} name: {} exists: {} ", lInterface.getInterfaceId(), lInterface.getInterfaceName(),
+ lInterfaceAudit.isDoesObjectExist());
- if (doesLInterfaceExist && lInterface.getLInterfaces() != null) {
- doSubInterfacesExist = lInterface.getLInterfaces().getLInterface()
- .stream().filter(subInterface -> !doesSubInterfaceExistinAAI(subInterface,
- lInterface.getInterfaceName(), vServerId, tenantId, cloudOwner, cloudRegion))
- .findFirst().map(v -> false).orElse(true);
- } else
- logger.debug("l-interface {} does not contain any sub-iterfaces", lInterface.getInterfaceId());
+ if (lInterface.getLInterfaces() != null) {
+ lInterface.getLInterfaces().getLInterface().stream()
+ .forEach(subInterface -> auditList.getAuditList().add(doesSubInterfaceExistinAAI(subInterface,
+ lInterface.getInterfaceName(), vServerId, tenantId, cloudOwner, cloudRegion)));
+ }
+ logger.debug("l-interface {} does not contain any sub-iterfaces, skipping audit of sub-interfaces", lInterface.getInterfaceId());
- return doesLInterfaceExist && doSubInterfacesExist;
+ return auditList;
}
- private boolean doesSubInterfaceExistinAAI(LInterface subInterface, String linterfaceName, String vServerId,
+ private AAIObjectAudit doesSubInterfaceExistinAAI(LInterface subInterface, String linterfaceName, String vServerId,
String tenantId, String cloudOwner, String cloudRegion) {
logger.info("checking if sub-l-interface {} , linterfaceName: {} vserverId: {} exists",
- subInterface.getInterfaceId(), linterfaceName, vServerId);
-
- AAIResourceUri linterfaceURI = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE, cloudOwner,
- cloudRegion, tenantId, vServerId, linterfaceName)
- .queryParam("interface-id", subInterface.getInterfaceId());
-
- boolean doesExist = getAaiClient().exists(linterfaceURI);
- logger.info("sub-l-interface {} exists: {}", subInterface.getInterfaceId(), doesExist);
- return doesExist;
+ subInterface.getInterfaceName(), linterfaceName, vServerId);
+ AAIObjectAudit subInterfaceAudit = new AAIObjectAudit();
+
+
+ AAIResourceUri subInterfaceURI = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner,
+ cloudRegion, tenantId, vServerId, linterfaceName, subInterface.getInterfaceName());
+ subInterfaceAudit.setResourceURI(subInterfaceURI.build());
+ boolean doesExist = getAaiClient().exists(subInterfaceURI);
+ logger.info("sub-l-interface-id:{} exists: {}", subInterface.getInterfaceId(), doesExist);
+ subInterfaceAudit.setAaiObject(subInterface);
+ subInterfaceAudit.setDoesObjectExist(doesExist);
+ subInterfaceAudit.setAaiObjectType(AAIObjectType.SUB_L_INTERFACE.typeName());
+ return subInterfaceAudit;
}
}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java
index 72dee07379..31e913dc27 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/audit/HeatStackAudit.java
@@ -21,6 +21,7 @@
package org.onap.so.adapters.audit;
import java.net.URI;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
@@ -32,6 +33,8 @@ import java.util.stream.Stream;
import org.onap.aai.domain.yang.LInterface;
import org.onap.aai.domain.yang.LInterfaces;
+import org.onap.aai.domain.yang.Vlan;
+import org.onap.aai.domain.yang.Vlans;
import org.onap.aai.domain.yang.Vserver;
import org.onap.so.openstack.utils.MsoHeatUtils;
import org.onap.so.openstack.utils.MsoNeutronUtils;
@@ -55,61 +58,38 @@ public class HeatStackAudit {
@Autowired
protected MsoHeatUtils heat;
-
+
@Autowired
protected MsoNeutronUtils neutron;
@Autowired
protected AuditVServer auditVservers;
- public boolean auditHeatStackCreate(String cloudRegion, String cloudOwner, String tenantId, String heatStackName) {
+ public Optional<AAIObjectAuditList> auditHeatStack(String cloudRegion, String cloudOwner, String tenantId, String heatStackName) {
try {
- return auditStack(cloudRegion,cloudOwner,tenantId,heatStackName,true);
- } catch (Exception e) {
- logger.error("Error during auditing stack resources", e);
- return false;
- }
- }
-
- public boolean auditHeatStackDeleted(String cloudRegion, String cloudOwner, String tenantId, String heatStackName) {
- try {
- return auditStack(cloudRegion,cloudOwner,tenantId,heatStackName,false);
+ logger.debug("Fetching Top Level Stack Information");
+ Resources resources = heat.queryStackResources(cloudRegion, tenantId, heatStackName);
+ List<Resource> novaResources = resources.getList().stream()
+ .filter(p -> "OS::Nova::Server".equals(p.getType())).collect(Collectors.toList());
+ List<Resource> resourceGroups = resources.getList().stream()
+ .filter(p -> "OS::Heat::ResourceGroup".equals(p.getType()) && p.getName().contains("subinterfaces"))
+ .collect(Collectors.toList());
+ List<Optional<Port>> neutronPortDetails = retrieveNeutronPortDetails(resources, cloudRegion, tenantId);
+ if (novaResources.isEmpty())
+ return Optional.of(new AAIObjectAuditList());
+ else {
+ Set<Vserver> vserversToAudit = createVserverSet(resources, novaResources, neutronPortDetails);
+ Set<Vserver> vserversWithSubInterfaces = processSubInterfaces(cloudRegion, tenantId, resourceGroups,
+ vserversToAudit);
+ return auditVservers.auditVservers(vserversWithSubInterfaces,
+ tenantId, cloudOwner, cloudRegion);
+ }
} catch (Exception e) {
logger.error("Error during auditing stack resources", e);
- return false;
- }
- }
-
- private boolean auditStack(String cloudRegion, String cloudOwner, String tenantId, String heatStackName,boolean isCreateAudit) throws Exception{
- logger.debug("Fetching Top Level Stack Information");
- Resources resources = heat.queryStackResources(cloudRegion, tenantId, heatStackName);
- List<Resource> novaResources = extractNovaResources(resources);
- if(novaResources.isEmpty())
- return true;
- else{
- List<Optional<Port>> neutronPortDetails = retrieveNeutronPortDetails(resources,cloudRegion,tenantId);
- List<Resource> resourceGroups = extractResourceGroups(resources);
- Set<Vserver> vserversToAudit = createVserverSet(resources, novaResources,neutronPortDetails);
- Set<Vserver> vserversWithSubInterfaces = processSubInterfaces(cloudRegion, tenantId, resourceGroups,
- vserversToAudit);
- if(isCreateAudit){
- return auditVservers.auditAllVserversDoExist(vserversWithSubInterfaces, tenantId, cloudOwner, cloudRegion);
- }else{
- return auditVservers.auditAllVserversDoNotExist(vserversWithSubInterfaces, tenantId, cloudOwner, cloudRegion);
- }
+ return Optional.empty();
}
}
- private List<Resource> extractResourceGroups(Resources resources) {
- return resources.getList().stream()
- .filter(p -> "OS::Heat::ResourceGroup".equals(p.getType()) && p.getName().contains("subinterfaces")).collect(Collectors.toList());
- }
-
- private List<Resource> extractNovaResources(Resources resources) {
- return resources.getList().stream()
- .filter(p -> "OS::Nova::Server".equals(p.getType())).collect(Collectors.toList());
- }
-
protected Set<Vserver> processSubInterfaces(String cloudRegion, String tenantId, List<Resource> resourceGroups,
Set<Vserver> vServersToAudit) throws Exception {
for (Resource resourceGroup : resourceGroups) {
@@ -137,7 +117,6 @@ public class HeatStackAudit {
logger.error("Error Parsing Link to obtain Path", e);
throw new Exception("Error finding Path from Self Link");
}
-
}
}
@@ -182,7 +161,24 @@ public class HeatStackAudit {
}
LInterface subInterface = new LInterface();
subInterface.setInterfaceId(contrailVm.getPhysicalResourceId());
+ subInterface.setIsPortMirrored(false);
+ subInterface.setInMaint(false);
+ subInterface.setIsIpUnnumbered(false);
+ String macAddr = (String) subinterfaceStack.getParameters().get("mac_address");
+ subInterface.setMacaddr(macAddr);
+ String namePrefix = (String) subinterfaceStack.getParameters().get("subinterface_name_prefix");
+ Integer vlanIndex = Integer.parseInt((String) subinterfaceStack.getParameters().get("counter"));
+ String vlanTagList = (String) subinterfaceStack.getParameters().get("vlan_tag");
+ List<String> subInterfaceVlanTagList = Arrays.asList(vlanTagList.split(","));
+ subInterface.setInterfaceName(namePrefix+"_"+subInterfaceVlanTagList.get(vlanIndex));
+ subInterface.setVlans(new Vlans());
+ Vlan vlan = new Vlan();
+ vlan.setInMaint(false);
+ vlan.setIsIpUnnumbered(false);
+ vlan.setVlanIdInner(Long.parseLong(subInterfaceVlanTagList.get(vlanIndex)));
+ vlan.setVlanInterface(namePrefix+"_"+subInterfaceVlanTagList.get(vlanIndex));
+ subInterface.getVlans().getVlan().add(vlan);
if(lInterface.getLInterfaces() == null)
lInterface.setLInterfaces(new LInterfaces());
@@ -197,11 +193,12 @@ public class HeatStackAudit {
for (Resource novaResource : novaResources) {
Vserver auditVserver = new Vserver();
auditVserver.setLInterfaces(new LInterfaces());
- auditVserver.setVserverId(novaResource.getPhysicalResourceId());
+ auditVserver.setVserverId(novaResource.getPhysicalResourceId());
Stream<Port> filteredNeutronPorts = filterNeutronPorts(novaResource, neutronPortDetails);
filteredNeutronPorts.forEach(port -> {
LInterface lInterface = new LInterface();
lInterface.setInterfaceId(port.getId());
+ lInterface.setInterfaceName(port.getName());
auditVserver.getLInterfaces().getLInterface().add(lInterface);
});
vserversToAudit.add(auditVserver);
@@ -228,9 +225,9 @@ public class HeatStackAudit {
* @return List of optional neutron ports found within the cloud site and tenant
*/
protected List<Optional<Port>> retrieveNeutronPortDetails(Resources resources,String cloudSiteId,String tenantId){
- return resources.getList().stream()
+ return resources.getList().parallelStream()
.filter(resource -> "OS::Neutron::Port".equals(resource.getType()))
- .map(resource -> neutron.getNeutronPort(resource.getPhysicalResourceId(),cloudSiteId,tenantId)).collect(Collectors.toList());
+ .map(resource -> neutron.getNeutronPort(resource.getPhysicalResourceId(),tenantId,cloudSiteId)).collect(Collectors.toList());
}
@@ -262,5 +259,6 @@ public class HeatStackAudit {
return Optional.empty();
}
+
}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java
new file mode 100644
index 0000000000..efced9d9f9
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateAAIInventory.java
@@ -0,0 +1,68 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.inventory.create;
+
+import java.util.Optional;
+import java.util.stream.Stream;
+
+import org.onap.aai.domain.yang.LInterface;
+import org.onap.so.adapters.audit.AAIObjectAudit;
+import org.onap.so.adapters.audit.AAIObjectAuditList;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIResourcesClient;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CreateAAIInventory{
+
+ private AAIResourcesClient aaiClient;
+
+ public void createInventory(AAIObjectAuditList auditList) throws InventoryException {
+ if(didAuditFailVserverLInterfaces(auditList)){
+ throw new InventoryException("Audit failed for VServer or LInterface cannot write Sub-Interfaces");
+ }
+ auditList.getAuditList().parallelStream().filter(auditObject -> !auditObject.isDoesObjectExist() && AAIObjectType.SUB_L_INTERFACE.typeName().equals(auditObject.getAaiObjectType())).
+ forEach(auditObject -> getAaiClient().createIfNotExists(AAIUriFactory.createResourceFromExistingURI(AAIObjectType.fromTypeName(auditObject.getAaiObjectType()), auditObject.getResourceURI()), Optional.of(auditObject.getAaiObject())));
+ }
+
+
+ /**
+ * @param auditHeatStackFailed
+ * @param auditList
+ * @return
+ */
+ protected boolean didAuditFailVserverLInterfaces(AAIObjectAuditList auditList) {
+ Stream<AAIObjectAudit> issue = auditList.getAuditList().stream().filter(auditObject -> auditObject.getAaiObjectType().equals(AAIObjectType.VSERVER.typeName()) || auditObject.getAaiObjectType().equals(AAIObjectType.L_INTERFACE.typeName()));
+
+ return issue.filter(auditObject -> !auditObject.isDoesObjectExist()).findFirst().map(v -> true).orElse(false);
+ }
+
+ protected AAIResourcesClient getAaiClient(){
+ if(aaiClient == null)
+ return new AAIResourcesClient();
+ else
+ return aaiClient;
+ }
+ protected void setAaiClient(AAIResourcesClient aaiResource){
+ aaiClient = aaiResource;
+ }
+}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java
new file mode 100644
index 0000000000..b2eadaf3c8
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryService.java
@@ -0,0 +1,68 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.inventory.create;
+
+import java.security.GeneralSecurityException;
+
+import javax.annotation.PostConstruct;
+
+import org.camunda.bpm.client.ExternalTaskClient;
+import org.camunda.bpm.client.backoff.ExponentialBackoffStrategy;
+import org.camunda.bpm.client.interceptor.ClientRequestInterceptor;
+import org.camunda.bpm.client.interceptor.auth.BasicAuthProvider;
+import org.onap.so.utils.CryptoUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Profile;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+@Component
+@Profile("!test")
+public class CreateInventoryService {
+
+ private static final Logger logger = LoggerFactory.getLogger(CreateInventoryService.class);
+
+ @Autowired
+ public Environment env;
+
+ @Autowired
+ private CreateInventoryTask createInventory;
+
+ @PostConstruct
+ public void auditAAIInventory() {
+ String auth = "";
+ try {
+ auth = CryptoUtils.decrypt(env.getRequiredProperty("mso.auth"), env.getRequiredProperty("mso.msoKey"));
+ } catch (IllegalStateException | GeneralSecurityException e) {
+ logger.error("Error Decrypting Password", e);
+ }
+ ClientRequestInterceptor interceptor = new BasicAuthProvider(env.getRequiredProperty("mso.config.cadi.aafId"),
+ auth);
+ ExternalTaskClient client = ExternalTaskClient.create()
+ .baseUrl(env.getRequiredProperty("mso.workflow.endpoint")).maxTasks(1).addInterceptor(interceptor)
+ .asyncResponseTimeout(120000).backoffStrategy(new ExponentialBackoffStrategy(10000, 2, 120000)).build();
+ client.subscribe("InventoryCreate").lockDuration(60000)
+ .handler(createInventory::executeExternalTask).open();
+ }
+
+}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
new file mode 100644
index 0000000000..4a14b1460e
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
@@ -0,0 +1,114 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.inventory.create;
+
+import java.io.IOException;
+
+import org.camunda.bpm.client.task.ExternalTask;
+import org.camunda.bpm.client.task.ExternalTaskService;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.adapters.audit.AAIObjectAuditList;
+import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CreateInventoryTask {
+
+ private static final String UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI = "Unable to write all inventory to A&AI";
+
+ private static final Logger logger = LoggerFactory.getLogger(CreateInventoryTask.class);
+
+ @Autowired
+ CreateAAIInventory createInventory;
+
+ @Autowired
+ public Environment env;
+
+ protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
+ boolean success = true;
+ String auditInventoryString = externalTask.getVariable("auditInventoryResult");
+ GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
+ AAIObjectAuditList auditInventory = null;
+ try {
+ auditInventory = objectMapper.getMapper().readValue(auditInventoryString, AAIObjectAuditList.class);
+ } catch (IOException e1) {
+ success = false;
+ }
+ setupMDC(externalTask);
+
+ if (auditInventory != null) {
+ try {
+ logger.info("Executing External Task Create Inventory, Retry Number: {} \n {}", auditInventory,
+ externalTask.getRetries());
+ createInventory.createInventory(auditInventory);
+ } catch (Exception e) {
+ logger.error("Error during inventory of stack", e);
+ success = false;
+ }
+ if (success) {
+ externalTaskService.complete(externalTask);
+ logger.debug("The External Task Id: {} Successful", externalTask.getId());
+ } else {
+ if (externalTask.getRetries() == null) {
+ logger.debug("The External Task Id: {} Failed, Setting Retries to Default Start Value: {}",
+ externalTask.getId(), getRetrySequence().length);
+ externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI,
+ UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, getRetrySequence().length, 10000);
+ } else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
+ logger.debug("The External Task Id: {} Failed, All Retries Exhausted", externalTask.getId());
+ externalTaskService.handleBpmnError(externalTask, "AAIInventoryFailure");
+ } else {
+ logger.debug("The External Task Id: {} Failed, Decrementing Retries: {} , Retry Delay: ",
+ externalTask.getId(), externalTask.getRetries() - 1,
+ calculateRetryDelay(externalTask.getRetries()));
+ externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI,
+ UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, externalTask.getRetries() - 1,
+ calculateRetryDelay(externalTask.getRetries()));
+ }
+ logger.debug("The External Task Id: {} Failed", externalTask.getId());
+ }
+ } else {
+ logger.debug("The External Task Id: {} Failed, No Audit Results Written", externalTask.getId());
+ externalTaskService.handleBpmnError(externalTask, "AAIInventoryFailure");
+ }
+ }
+
+ private void setupMDC(ExternalTask externalTask) {
+ String msoRequestId = (String)externalTask.getVariable("mso-request-id");
+ if(msoRequestId != null && !msoRequestId.isEmpty())
+ MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
+ }
+ protected long calculateRetryDelay(int currentRetries){
+ int retrySequence = getRetrySequence().length - currentRetries;
+ long retryMultiplier = Long.parseLong(env.getProperty("mso.workflow.topics.retryMultiplier","6000"));
+ return Integer.parseInt(getRetrySequence()[retrySequence]) * retryMultiplier;
+ }
+
+ public String[] getRetrySequence() {
+ return env.getProperty("mso.workflow.topics.retrySequence",String[].class);
+ }
+}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/InventoryException.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/InventoryException.java
new file mode 100644
index 0000000000..22c6902ed2
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/InventoryException.java
@@ -0,0 +1,14 @@
+package org.onap.so.adapters.inventory.create;
+
+public class InventoryException extends Exception {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 912652713891488731L;
+
+ public InventoryException(String errorMessage) {
+ super(errorMessage);
+ }
+
+}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
index 2e8c7990db..73e7143ae3 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
@@ -1315,7 +1315,6 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
networkResource = nrc.getNetworkResource();
}
}
-
String mode = "";
if (networkResource != null) {
logger.debug("Got Network definition from Catalog: {}", networkResource.toString());
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapter.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapter.java
index aafcb1c600..349aa78d44 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapter.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapter.java
@@ -28,6 +28,7 @@ import javax.jws.WebParam;
import javax.jws.WebParam.Mode;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.ws.Holder;
import org.onap.so.adapters.vnf.exceptions.VnfAlreadyExists;
@@ -35,6 +36,7 @@ import org.onap.so.adapters.vnf.exceptions.VnfException;
import org.onap.so.entity.MsoRequest;
import org.onap.so.openstack.beans.VnfRollback;
import org.onap.so.openstack.beans.VnfStatus;
+import org.onap.so.openstack.mappers.MapAdapter;
@WebService (name="VnfAdapter", targetNamespace="http://org.onap.so/vnf")
public interface MsoVnfAdapter
@@ -51,7 +53,7 @@ public interface MsoVnfAdapter
@WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
@WebParam(name="requestType") @XmlElement(required=false) String requestType,
@WebParam(name="volumeGroupHeatStackId") @XmlElement(required=false) String volumeGroupHeatStackId,
- @WebParam(name="inputs") Map<String,Object> inputs,
+ @WebParam(name="inputs") @XmlJavaTypeAdapter(MapAdapter.class) Map<String,Object> inputs,
@WebParam(name="failIfExists") Boolean failIfExists,
@WebParam(name="backout") Boolean backout,
@WebParam(name="enableBridge") Boolean enableBridge,
@@ -70,7 +72,7 @@ public interface MsoVnfAdapter
@WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
@WebParam(name="requestType") @XmlElement(required=false) String requestType,
@WebParam(name="volumeGroupHeatStackId") @XmlElement(required=false) String volumeGroupHeatStackId,
- @WebParam(name="inputs") Map<String,Object> inputs,
+ @WebParam(name="inputs") @XmlJavaTypeAdapter(MapAdapter.class) Map<String,Object> inputs,
@WebParam(name="request") MsoRequest msoRequest,
@WebParam(name="outputs", mode=Mode.OUT) Holder<Map<String,String>> outputs,
@WebParam(name="rollback", mode=Mode.OUT) Holder<VnfRollback> rollback )
@@ -114,7 +116,7 @@ public interface MsoVnfAdapter
@WebParam(name="volumeGroupHeatStackId") @XmlElement(required=false) String volumeGroupHeatStackId,
@WebParam(name="baseVfHeatStackId") @XmlElement(required=false) String baseVfHeatStackId,
@WebParam(name = "modelCustomizationUuid") @XmlElement(required = false) String modelCustomizationUuid,
- @WebParam(name="inputs") Map<String,Object> inputs,
+ @WebParam(name="inputs") @XmlJavaTypeAdapter(MapAdapter.class) Map<String,Object> inputs,
@WebParam(name="failIfExists") Boolean failIfExists,
@WebParam(name="backout") Boolean backout,
@WebParam(name="enableBridge") Boolean enableBridge,
@@ -145,7 +147,7 @@ public interface MsoVnfAdapter
@WebParam(name="baseVfHeatStackId") @XmlElement(required=false) String baseVfHeatStackId,
@WebParam(name="vfModuleStackId") @XmlElement(required=false) String vfModuleStackId,
@WebParam(name = "modelCustomizationUuid") @XmlElement(required = false) String modelCustomizationUuid,
- @WebParam(name="inputs") Map<String,Object> inputs,
+ @WebParam(name="inputs") @XmlJavaTypeAdapter(MapAdapter.class) Map<String,Object> inputs,
@WebParam(name="request") MsoRequest msoRequest,
@WebParam(name="outputs", mode=Mode.OUT) Holder<Map<String,String>> outputs,
@WebParam(name="rollback", mode=Mode.OUT) Holder<VnfRollback> rollback )
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterAsync.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterAsync.java
index 70afb1c69c..5642e01a72 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterAsync.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterAsync.java
@@ -28,9 +28,11 @@ import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.onap.so.entity.MsoRequest;
import org.onap.so.openstack.beans.VnfRollback;
+import org.onap.so.openstack.mappers.MapAdapter;
/**
* This webservice defines the Asynchronous versions of VNF adapter calls.
@@ -54,7 +56,7 @@ public interface MsoVnfAdapterAsync
@WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
@WebParam(name="requestType") @XmlElement(required=false) String requestType,
@WebParam(name="volumeGroupHeatStackId") @XmlElement(required=false) String volumeGroupHeatStackId,
- @WebParam(name="inputs") Map<String,Object> inputs,
+ @WebParam(name="inputs") @XmlJavaTypeAdapter(MapAdapter.class) Map<String,Object> inputs,
@WebParam(name="failIfExists") Boolean failIfExists,
@WebParam(name="backout") Boolean backout,
@WebParam(name="enableBridge") Boolean enableBridge,
@@ -72,7 +74,7 @@ public interface MsoVnfAdapterAsync
@WebParam(name="vnfName") @XmlElement(required=true) String vnfName,
@WebParam(name="requestType") @XmlElement(required=false) String requestType,
@WebParam(name="volumeGroupHeatStackId") @XmlElement(required=false) String volumeGroupHeatStackId,
- @WebParam(name="inputs") Map<String,Object> inputs,
+ @WebParam(name="inputs") @XmlJavaTypeAdapter(MapAdapter.class) Map<String,Object> inputs,
@WebParam(name="messageId") @XmlElement(required=true) String messageId,
@WebParam(name="request") MsoRequest msoRequest,
@WebParam(name="notificationUrl") @XmlElement(required=true) String notificationUrl );
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java
index b99e34eb9d..6e9656a213 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java
@@ -876,7 +876,7 @@ public class MsoVnfAdapterImpl implements MsoVnfAdapter {
logger.debug("version: {}", vfVersion);
if (useMCUuid) {
// 1707 - db refactoring
- vfmc = vfModuleCustomRepo.findByModelCustomizationUUID(mcu);
+ vfmc = vfModuleCustomRepo.findFirstByModelCustomizationUUIDOrderByCreatedDesc(mcu);
if(vfmc != null)
vf=vfmc.getVfModule();
else
@@ -1638,7 +1638,7 @@ public class MsoVnfAdapterImpl implements MsoVnfAdapter {
VfModule vf = null;
VfModuleCustomization vfmc = null;
if (useMCUuid){
- vfmc = vfModuleCustomRepo.findByModelCustomizationUUID(modelCustomizationUuid);
+ vfmc = vfModuleCustomRepo.findFirstByModelCustomizationUUIDOrderByCreatedDesc(modelCustomizationUuid);
vf = vfmc != null ? vfmc.getVfModule() : null;
if (vf == null) {
logger.debug("Unable to find a vfModule matching modelCustomizationUuid={}", mcu);
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfCloudifyAdapterImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfCloudifyAdapterImpl.java
index a07fff024b..dc695615cb 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfCloudifyAdapterImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfCloudifyAdapterImpl.java
@@ -640,7 +640,7 @@ public class MsoVnfCloudifyAdapterImpl implements MsoVnfAdapter {
VfModuleCustomization vfmc = null;
try {
- vfmc = vfModuleCustomRepo.findByModelCustomizationUUID(modelCustomizationUuid);
+ vfmc = vfModuleCustomRepo.findFirstByModelCustomizationUUIDOrderByCreatedDesc(modelCustomizationUuid);
if (vfmc == null) {
String error = "Create vfModule error: Unable to find vfModuleCust with modelCustomizationUuid="
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfPluginAdapterImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfPluginAdapterImpl.java
index 62c373bea8..584c934843 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfPluginAdapterImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfPluginAdapterImpl.java
@@ -681,7 +681,7 @@ public class MsoVnfPluginAdapterImpl implements MsoVnfAdapter {
VfModuleCustomization vfModuleCust = null;
try {
- vfModuleCust = vfModuleCustomRepo.findByModelCustomizationUUID(modelCustomizationUuid);
+ vfModuleCust = vfModuleCustomRepo.findFirstByModelCustomizationUUIDOrderByCreatedDesc(modelCustomizationUuid);
if (vfModuleCust == null) {
String error = "Create vfModule error: Unable to find vfModuleCust with modelCustomizationUuid="
@@ -707,29 +707,32 @@ public class MsoVnfPluginAdapterImpl implements MsoVnfAdapter {
// Perform a version check against cloudSite
// Obtain the cloud site information where we will create the VF Module
+ Boolean usingMulticloud = false;
Optional<CloudSite> cloudSiteOp = cloudConfig.getCloudSite (cloudSiteId);
if (!cloudSiteOp.isPresent()) {
- throw new VnfException (new MsoCloudSiteNotFound (cloudSiteId));
- }
- CloudSite cloudSite = cloudSiteOp.get();
- MavenLikeVersioning aicV = new MavenLikeVersioning();
- aicV.setVersion(cloudSite.getCloudVersion());
- Boolean usingMulticloud = getUsingMulticloud(cloudSite);
-
- String vnfMin = vnfResource.getAicVersionMin();
- String vnfMax = vnfResource.getAicVersionMax();
-
- if ((vnfMin != null && !(aicV.isMoreRecentThan(vnfMin) || aicV.isTheSameVersion(vnfMin))) || (vnfMax != null
- && aicV.isMoreRecentThan(vnfMax))) {
- // ERROR
- String error =
- "VNF Resource type: " + vnfResource.getModelName() + ", ModelUuid=" + vnfResource.getModelUUID()
- + " VersionMin=" + vnfMin + " VersionMax:" + vnfMax + " NOT supported on Cloud: " + cloudSiteId
- + " with AIC_Version:" + cloudSite.getCloudVersion();
- logger.error("{} {} {} {} {}", MessageEnum.RA_CONFIG_EXC.toString(), error, "OpenStack",
- ErrorCode.BusinessProcesssError.getValue(), "Exception - setVersion");
- logger.debug(error);
- throw new VnfException(error, MsoExceptionCategory.USERDATA);
+ // If cloudSiteId is not present in the catalog DB, then default to multicloud
+ usingMulticloud = true;
+ } else {
+ CloudSite cloudSite = cloudSiteOp.get();
+ MavenLikeVersioning aicV = new MavenLikeVersioning();
+ aicV.setVersion(cloudSite.getCloudVersion());
+ usingMulticloud = getUsingMulticloud(cloudSite);
+
+ String vnfMin = vnfResource.getAicVersionMin();
+ String vnfMax = vnfResource.getAicVersionMax();
+
+ if ((vnfMin != null && !(aicV.isMoreRecentThan(vnfMin) || aicV.isTheSameVersion(vnfMin))) || (vnfMax != null
+ && aicV.isMoreRecentThan(vnfMax))) {
+ // ERROR
+ String error =
+ "VNF Resource type: " + vnfResource.getModelName() + ", ModelUuid=" + vnfResource.getModelUUID()
+ + " VersionMin=" + vnfMin + " VersionMax:" + vnfMax + " NOT supported on Cloud: " + cloudSiteId
+ + " with AIC_Version:" + cloudSite.getCloudVersion();
+ logger.error("{} {} {} {} {}", MessageEnum.RA_CONFIG_EXC.toString(), error, "OpenStack",
+ ErrorCode.BusinessProcesssError.getValue(), "Exception - setVersion");
+ logger.debug(error);
+ throw new VnfException(error, MsoExceptionCategory.USERDATA);
+ }
}
// End Version check
@@ -1261,12 +1264,16 @@ public class MsoVnfPluginAdapterImpl implements MsoVnfAdapter {
else if (orchestrator.equalsIgnoreCase("HEAT")) {
return heatUtils;
}
- if (orchestrator.equalsIgnoreCase("MULTICLOUD")) {
- logger.debug ("Got MulticloudUtils for vduPlugin");
- return multicloudUtils; }
+ else if (orchestrator.equalsIgnoreCase("MULTICLOUD")) {
+ return multicloudUtils;
+ }
+ else {
+ // Default if cloudSite record exists - return HEAT plugin - will fail later
+ return heatUtils;
+ }
}
- // Default - return HEAT plugin, though will fail later
- return heatUtils;
+ // Default if no cloudSite record exists - return multicloud plugin
+ return multicloudUtils;
}
private Boolean getUsingMulticloud (CloudSite cloudSite) {
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/openstack/factory/OpenstackClientFactoryImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/openstack/factory/OpenstackClientFactoryImpl.java
index 72b3795053..141dd4fe50 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/openstack/factory/OpenstackClientFactoryImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/openstack/factory/OpenstackClientFactoryImpl.java
@@ -25,6 +25,7 @@ import org.openstack4j.api.OSClient.OSClientV2;
import org.openstack4j.api.OSClient.OSClientV3;
import org.openstack4j.api.exceptions.AuthenticationException;
import org.openstack4j.openstack.OSFactory;
+import org.openstack4j.model.common.Identifier;
public class OpenstackClientFactoryImpl implements OpenstackClientFactory {
@@ -35,12 +36,14 @@ public class OpenstackClientFactoryImpl implements OpenstackClientFactory {
Preconditions.checkNotNull(osAccess.getPassword(), "Keystone-v3 Auth: password not set.");
Preconditions.checkNotNull(osAccess.getDomainNameIdentifier(), "Keystone-v3 Auth: domain not set.");
Preconditions.checkNotNull(osAccess.getRegion(), "Keystone-v3 Auth: region not set.");
+ Preconditions.checkNotNull(osAccess.getTenantId(), "Keystone-v3 Auth: tenant-id not set.");
OSClientV3 client;
try {
client = OSFactory.builderV3()
.endpoint(osAccess.getUrl())
.credentials(osAccess.getUser(), osAccess.getPassword(), osAccess.getDomainNameIdentifier())
+ .scopeToProject(Identifier.byId(osAccess.getTenantId()))
.authenticate()
.useRegion(osAccess.getRegion());
return new OpenstackV3ClientImpl(client);
@@ -54,7 +57,7 @@ public class OpenstackClientFactoryImpl implements OpenstackClientFactory {
Preconditions.checkNotNull(osAccess.getUrl(), "Keystone-v2 Auth: endpoint not set.");
Preconditions.checkNotNull(osAccess.getUser(), "Keystone-v2 Auth: username not set.");
Preconditions.checkNotNull(osAccess.getPassword(), "Keystone-v2 Auth: password not set.");
- Preconditions.checkNotNull(osAccess.getTenantId(), "Keystone-v2 Auth: domain not set.");
+ Preconditions.checkNotNull(osAccess.getTenantId(), "Keystone-v2 Auth: tenant-id not set.");
Preconditions.checkNotNull(osAccess.getRegion(), "Keystone-v2 Auth: region not set.");
OSClientV2 client;
diff --git a/adapters/mso-openstack-adapters/src/main/resources/application-local.yaml b/adapters/mso-openstack-adapters/src/main/resources/application-local.yaml
index 936bde125a..2ec5be7448 100644
--- a/adapters/mso-openstack-adapters/src/main/resources/application-local.yaml
+++ b/adapters/mso-openstack-adapters/src/main/resources/application-local.yaml
@@ -52,6 +52,8 @@ mso:
msoKey: 07a7159d3bf51a0e53be7a8f89699be7
auth: 6B466C603A260F3655DBF91E53CE54667041C01406D10E8CAF9CC24D8FA5388D06F90BFE4C852052B436
logPath: logs
+ msb-ip: localhost
+ msb-port: ${wiremock.server.port}
workflow:
endpoint: http://bpmn-infra:8081/sobpmnengine
topics:
diff --git a/adapters/mso-openstack-adapters/src/main/resources/application.yaml b/adapters/mso-openstack-adapters/src/main/resources/application.yaml
index cdd04b8c21..f66d77db48 100644
--- a/adapters/mso-openstack-adapters/src/main/resources/application.yaml
+++ b/adapters/mso-openstack-adapters/src/main/resources/application.yaml
@@ -16,6 +16,7 @@ mso:
workflow:
topics:
retryMultiplier: 60000
+ retrySequence: 1, 1, 2, 3, 5, 8, 13, 20
spring:
datasource:
url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditCreateStackServiceTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java
index bcf126d887..29e672a4a6 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditCreateStackServiceTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditStackServiceDataTest.java
@@ -20,16 +20,24 @@
package org.onap.so.adapters.audit;
+import static org.hamcrest.CoreMatchers.isA;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.doReturn;
+import java.io.File;
import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Map;
import java.util.Optional;
import org.camunda.bpm.client.task.ExternalTask;
import org.camunda.bpm.client.task.ExternalTaskService;
+import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Test;
+import org.mockito.ArgumentCaptor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
@@ -39,48 +47,76 @@ import org.onap.so.audit.beans.AuditInventory;
import org.springframework.core.env.Environment;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
-public class AuditCreateStackServiceTest extends AuditCreateStackService {
+public class AuditStackServiceDataTest extends AuditStackServiceData {
@InjectMocks
- AuditCreateStackService auditStackService = new AuditCreateStackService();
+ private AuditStackServiceData auditStackService = new AuditStackServiceData();
@Mock
- HeatStackAudit heatStackAuditMock;
+ private HeatStackAudit heatStackAuditMock;
@Mock
- Environment mockEnv;
+ private Environment mockEnv;
@Mock
- ExternalTask mockExternalTask;
+ private ExternalTask mockExternalTask;
@Mock
- ExternalTaskService mockExternalTaskService;
+ private ExternalTaskService mockExternalTaskService;
- AuditInventory auditInventory = new AuditInventory();
+ private ObjectMapper objectMapper = new ObjectMapper();
+
+ private AuditInventory auditInventory = new AuditInventory();
+ Optional<AAIObjectAuditList> auditListOptSuccess;
+
+ Optional<AAIObjectAuditList> auditListOptFailure;
+
@Before
- public void setup() {
+ public void setup() throws JsonParseException, JsonMappingException, IOException {
auditInventory.setCloudOwner("cloudOwner");
auditInventory.setCloudRegion("cloudRegion");
auditInventory.setTenantId("tenantId");
auditInventory.setHeatStackName("stackName");
MockitoAnnotations.initMocks(this);
+
+ AAIObjectAuditList auditListSuccess = objectMapper.readValue(new File("src/test/resources/ExpectedVServerFound.json"), AAIObjectAuditList.class);
+ auditListOptSuccess = Optional.of(auditListSuccess);
+
+ AAIObjectAuditList auditListFailure = objectMapper.readValue(new File("src/test/resources/Vserver2_Found_VServer1_Not_Found.json"), AAIObjectAuditList.class);
+ auditListOptFailure = Optional.of(auditListFailure);
+ String[] retrySequence = new String[8];
+ retrySequence[0] = "1";
+ retrySequence[1] = "1";
+ retrySequence[2] = "2";
+ retrySequence[3] = "3";
+ retrySequence[4] = "5";
+ retrySequence[5] = "8";
+ retrySequence[6] = "13";
+ retrySequence[7] = "20";
doReturn(auditInventory).when(mockExternalTask).getVariable("auditInventory");
doReturn("6000").when(mockEnv).getProperty("mso.workflow.topics.retryMultiplier","6000");
+ doReturn(retrySequence).when(mockEnv).getProperty("mso.workflow.topics.retrySequence",String[].class);
doReturn("aasdfasdf").when(mockExternalTask).getId();
}
@Test
public void execute_external_task_audit_success_Test() {
- doReturn(true).when(heatStackAuditMock).auditHeatStackCreate("cloudRegion", "cloudOwner", "tenantId", "stackName");
+ doReturn(auditListOptSuccess).when(heatStackAuditMock).auditHeatStack("cloudRegion", "cloudOwner", "tenantId", "stackName");
auditStackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
- Mockito.verify(mockExternalTaskService).complete(mockExternalTask);
+ ArgumentCaptor<Map> captor = ArgumentCaptor.forClass(Map.class);
+ ArgumentCaptor<ExternalTask> taskCaptor = ArgumentCaptor.forClass(ExternalTask.class);
+ Mockito.verify(mockExternalTaskService).complete(taskCaptor.capture(),captor.capture());
+ Map actualMap = captor.getValue();
+ assertEquals(true,actualMap.get("auditIsSuccessful"));
+ assertNotNull(actualMap.get("auditInventoryResult"));
}
@Test
public void execute_external_task_audit_first_failure_Test() {
- doReturn(false).when(heatStackAuditMock).auditHeatStackCreate("cloudRegion", "cloudOwner", "tenantId", "stackName");
+ doReturn(auditListOptFailure).when(heatStackAuditMock).auditHeatStack("cloudRegion", "cloudOwner", "tenantId", "stackName");
doReturn(null).when(mockExternalTask).getRetries();
auditStackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
Mockito.verify(mockExternalTaskService).handleFailure(mockExternalTask,
@@ -90,7 +126,7 @@ public class AuditCreateStackServiceTest extends AuditCreateStackService {
@Test
public void execute_external_task_audit_intermediate_failure_Test() {
- doReturn(false).when(heatStackAuditMock).auditHeatStackCreate("cloudRegion", "cloudOwner", "tenantId", "stackName");
+ doReturn(auditListOptFailure).when(heatStackAuditMock).auditHeatStack("cloudRegion", "cloudOwner", "tenantId", "stackName");
doReturn(6).when(mockExternalTask).getRetries();
auditStackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
Mockito.verify(mockExternalTaskService).handleFailure(mockExternalTask,
@@ -101,11 +137,15 @@ public class AuditCreateStackServiceTest extends AuditCreateStackService {
@Test
public void execute_external_task_audit_final_failure_Test() {
- doReturn(false).when(heatStackAuditMock).auditHeatStackCreate("cloudRegion", "cloudOwner", "tenantId", "stackName");
+ doReturn(auditListOptFailure).when(heatStackAuditMock).auditHeatStack("cloudRegion", "cloudOwner", "tenantId", "stackName");
doReturn(1).when(mockExternalTask).getRetries();
auditStackService.executeExternalTask(mockExternalTask, mockExternalTaskService);
- Mockito.verify(mockExternalTaskService).handleBpmnError(mockExternalTask,
- "AuditAAIInventoryFailure", "Number of Retries Exceeded auditing inventory");
+ ArgumentCaptor<Map> captor = ArgumentCaptor.forClass(Map.class);
+ ArgumentCaptor<ExternalTask> taskCaptor = ArgumentCaptor.forClass(ExternalTask.class);
+ Mockito.verify(mockExternalTaskService).complete(taskCaptor.capture(),captor.capture());
+ Map actualMap = captor.getValue();
+ assertEquals(false,actualMap.get("auditIsSuccessful"));
+ assertNotNull(actualMap.get("auditInventoryResult"));
}
@Test
@@ -147,4 +187,17 @@ public class AuditCreateStackServiceTest extends AuditCreateStackService {
long eigthRetry = auditStackService.calculateRetryDelay(1);
assertEquals(120000L, eigthRetry);
}
+
+
+ @Test
+ public void determineAuditResult_Test() throws Exception{
+ boolean actual = auditStackService.didAuditFail(auditListOptSuccess);
+ assertEquals(false, actual);
+ }
+
+ @Test
+ public void determineAuditResult_Failure_Test() throws Exception{
+ boolean actual = auditStackService.didAuditFail(auditListOptFailure);
+ assertEquals(true, actual);
+ }
}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditVServerTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditVServerTest.java
index 9176b58de8..f0fce4db45 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditVServerTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/AuditVServerTest.java
@@ -13,7 +13,7 @@
* 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
+ * See the License for the specific language governing perservice2sions and
* limitations under the License.
* ============LICENSE_END=========================================================
*/
@@ -27,6 +27,8 @@ import static org.mockito.Mockito.verify;
import java.io.File;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
@@ -48,7 +50,9 @@ import org.onap.so.client.aai.AAIResourcesClient;
import org.onap.so.client.aai.entities.AAIResultWrapper;
import org.onap.so.client.aai.entities.uri.AAIResourceUri;
import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+import org.skyscreamer.jsonassert.JSONAssert;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -58,6 +62,8 @@ import com.woorea.openstack.heat.model.Resources;
@RunWith(MockitoJUnitRunner.Silent.class)
public class AuditVServerTest extends AuditVServer {
+ private ObjectMapper objectMapper = new ObjectMapper();
+
@InjectMocks
private AuditVServer auditNova = new AuditVServer();
@@ -74,46 +80,43 @@ public class AuditVServerTest extends AuditVServer {
private AAIResourceUri vserverURI2 = AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion,
tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
- private AAIResourceUri ssc_1_trusted_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c");
-
- private AAIResourceUri ssc_1_service1_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "1c56a24b-5f03-435a-850d-31cd4252de56");
+ private AAIResourceUri ssc_1_trusted_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_trusted_port_0");
- private AAIResourceUri ssc_1_mgmt_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "12afcd28-929f-4d80-8a5a-0833bfd5e20b");
+ private AAIResourceUri ssc_1_service1_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service1_port_0");
- private AAIResourceUri ssc_1_mgmt_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "80baec42-ffae-425f-ad8c-3f7b2c24bfff");
+ private AAIResourceUri ssc_1_mgmt_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_mgmt_port_1");
- private AAIResourceUri ssc_1_service2_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "13eddf95-4cf3-45f2-823a-2d890a6549b4");
+ private AAIResourceUri ssc_1_mgmt_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_mgmt_port_0");
- private AAIResourceUri ssc_1_int_ha_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db").queryParam("interface-id", "9cab2903-70f7-44fd-b681-491d6ae2adb8");
+ private AAIResourceUri ssc_1_service2_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service2_port_0");
- private AAIResourceUri test_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz").queryParam("interface-id", "9cab2903-70f7-44fd-b681-491d6ae2adz1");
+ private AAIResourceUri ssc_1_int_ha_port_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_int_ha_port_0");
+ private AAIResourceUri test_port_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz","test_port_1");
- private AAIResourceUri test_port_2_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz").queryParam("interface-id", "9cab2903-70f7-44fd-b681-491d6ae2adz2");
-
-
+ private AAIResourceUri test_port_2_uri = AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz","test_port_2");
- private AAIResourceUri service2_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","interface-name").queryParam("interface-id", "f711be16-2654-4a09-b89d-0511fda20e81");
+ private AAIResourceUri service2_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service2_port_0","service2_sub_interface_1");
- private AAIResourceUri service1_sub_0_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","interface-name").queryParam("interface-id", "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb");
+ private AAIResourceUri service1_sub_0_uri = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service1_port_0","service1_sub_interface_1");
- private AAIResourceUri service1_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.SUB_L_INTERFACE,
- cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","interface-name").queryParam("interface-id", "b7019dd0-2ee9-4447-bdef-ac25676b205a");
+ private AAIResourceUri service1_sub_1_uri = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+ cloudOwner, cloudRegion, tenantId, "3a4c2ca5-27b3-4ecc-98c5-06804867c4db","ssc_1_service1_port_0","service1_sub_interface_2");
- private Set<Vserver> vserversToAudit = new HashSet<>();
+ private Set<Vserver> vserversToAudit = new HashSet<>();
LInterface test_port_1 = new LInterface();
LInterface test_port_2 = new LInterface();
@@ -126,22 +129,12 @@ public class AuditVServerTest extends AuditVServer {
LInterface service1_sub_interface_1 = new LInterface();
LInterface ssc_1_service1_port_0 = new LInterface();
LInterface ssc_1_trusted_port_0 = new LInterface();
-
- LInterfaces test_port_1_plural = new LInterfaces();
- LInterfaces test_port_2_plural = new LInterfaces();
- LInterfaces ssc_1_int_ha_port_0_plural = new LInterfaces();
- LInterfaces service2_sub_interface_1_plural = new LInterfaces();
- LInterfaces ssc_1_service2_port_0_plural = new LInterfaces();
- LInterfaces ssc_1_mgmt_port_0_plural = new LInterfaces();
- LInterfaces ssc_1_mgmt_port_1_plural = new LInterfaces();
- LInterfaces service1_sub_interface_2_plural = new LInterfaces();
- LInterfaces service1_sub_interface_1_plural = new LInterfaces();
- LInterfaces ssc_1_service1_port_0_plural = new LInterfaces();
- LInterfaces ssc_1_trusted_port_0_plural = new LInterfaces();
+
@Before
public void setup() {
+ objectMapper.setSerializationInclusion(Include.NON_NULL);
auditNova.setAaiClient(aaiResourcesMock);
Vserver vServer1= new Vserver();
@@ -150,109 +143,97 @@ public class AuditVServerTest extends AuditVServer {
vServer1.setLInterfaces(vServer1Linterfaces);
ssc_1_trusted_port_0.setInterfaceId("dec8bdc7-5718-41dc-bfbb-561ff6eeb81c");
- ssc_1_trusted_port_0.setInterfaceName("interface-name");
+ ssc_1_trusted_port_0.setInterfaceName("ssc_1_trusted_port_0");
vServer1.getLInterfaces().getLInterface().add(ssc_1_trusted_port_0);
ssc_1_service1_port_0.setInterfaceId("1c56a24b-5f03-435a-850d-31cd4252de56");
- ssc_1_service1_port_0.setInterfaceName("interface-name");
+ ssc_1_service1_port_0.setInterfaceName("ssc_1_service1_port_0");
vServer1.getLInterfaces().getLInterface().add(ssc_1_service1_port_0);
ssc_1_service1_port_0.setLInterfaces(new LInterfaces());
service1_sub_interface_1.setInterfaceId("0d9cd813-2ae1-46c0-9ebb-48081f6cffbb");
+ service1_sub_interface_1.setInterfaceName("service1_sub_interface_1");
ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_1);
service1_sub_interface_2.setInterfaceId("b7019dd0-2ee9-4447-bdef-ac25676b205a");
+ service1_sub_interface_2.setInterfaceName("service1_sub_interface_2");
ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_2);
ssc_1_mgmt_port_1.setInterfaceId("12afcd28-929f-4d80-8a5a-0833bfd5e20b");
- ssc_1_mgmt_port_1.setInterfaceName("interface-name");
+ ssc_1_mgmt_port_1.setInterfaceName("ssc_1_mgmt_port_1");
vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_1);
ssc_1_mgmt_port_0.setInterfaceId("80baec42-ffae-425f-ad8c-3f7b2c24bfff");
- ssc_1_mgmt_port_0.setInterfaceName("interface-name");
+ ssc_1_mgmt_port_0.setInterfaceName("ssc_1_mgmt_port_0");
vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_0);
ssc_1_service2_port_0.setLInterfaces(new LInterfaces());
ssc_1_service2_port_0.setInterfaceId("13eddf95-4cf3-45f2-823a-2d890a6549b4");
- ssc_1_service2_port_0.setInterfaceName("interface-name");
+ ssc_1_service2_port_0.setInterfaceName("ssc_1_service2_port_0");
vServer1.getLInterfaces().getLInterface().add(ssc_1_service2_port_0);
- service2_sub_interface_1.setInterfaceId("f711be16-2654-4a09-b89d-0511fda20e81");
+ service2_sub_interface_1.setInterfaceId("f711be16-2654-4a09-b89d-0511fda20e81");
+ service2_sub_interface_1.setInterfaceName("service2_sub_interface_1");
ssc_1_service2_port_0.getLInterfaces().getLInterface().add(service2_sub_interface_1);
ssc_1_int_ha_port_0.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adb8");
+ ssc_1_int_ha_port_0.setInterfaceName("ssc_1_int_ha_port_0");
vServer1.getLInterfaces().getLInterface().add(ssc_1_int_ha_port_0);
-
Vserver vServer2= new Vserver();
vServer2.setVserverId("3a4c2ca5-27b3-4ecc-98c5-06804867c4dz");
LInterfaces vServer2Linterfaces = new LInterfaces();
vServer2.setLInterfaces(vServer2Linterfaces);
test_port_1.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz1");
- test_port_1.setInterfaceName("interface-name");
+ test_port_1.setInterfaceName("test_port_1");
test_port_2.setInterfaceId("9cab2903-70f7-44fd-b681-491d6ae2adz2");
- test_port_2.setInterfaceName("interface-name");
+ test_port_2.setInterfaceName("test_port_2");
vServer2.getLInterfaces().getLInterface().add(test_port_1);
vServer2.getLInterfaces().getLInterface().add(test_port_2);
vserversToAudit.add(vServer1);
vserversToAudit.add(vServer2);
-
-
- test_port_1_plural.getLInterface().add(test_port_1);
- test_port_2_plural.getLInterface().add(test_port_2);
- ssc_1_int_ha_port_0_plural.getLInterface().add(ssc_1_int_ha_port_0);
- ssc_1_service2_port_0_plural.getLInterface().add(ssc_1_service2_port_0);
- ssc_1_mgmt_port_0_plural.getLInterface().add(ssc_1_mgmt_port_0);
- ssc_1_mgmt_port_1_plural.getLInterface().add(ssc_1_mgmt_port_1);
- ssc_1_service1_port_0_plural.getLInterface().add(ssc_1_service1_port_0);
- ssc_1_trusted_port_0_plural.getLInterface().add(ssc_1_trusted_port_0);
-
}
@Test
public void audit_Vserver_Empty_HashSet() throws JsonParseException, JsonMappingException, IOException {
- boolean exists = auditNova.auditAllVserversDoExist(new HashSet<Vserver>(), tenantId, cloudOwner, cloudRegion);
- assertEquals(false, exists);
-
- boolean doNotExist = auditNova.auditAllVserversDoNotExist(new HashSet<Vserver>(), tenantId, cloudOwner, cloudRegion);
- assertEquals(true, doNotExist);
+ Optional<AAIObjectAuditList> actual = auditNova.auditVservers(new HashSet<Vserver>(), tenantId, cloudOwner, cloudRegion);
+ assertEquals(Optional.empty(), actual);
}
-
@Test
public void audit_Vserver_Found_Test() throws JsonParseException, JsonMappingException, IOException {
doReturn(true).when(aaiResourcesMock).exists(vserverURI);
doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
- doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_trusted_port_0_uri);
- doReturn(Optional.of(ssc_1_service1_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_service1_port_0_uri);
- doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_1_uri);
- doReturn(Optional.of(ssc_1_mgmt_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_0_uri);
- doReturn(Optional.of(ssc_1_service2_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_service2_port_0_uri);
- doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_int_ha_port_0_uri);
- doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_1_uri);
- doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_2_uri);
+ doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
+ doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
+ doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
+ doReturn(Optional.of(ssc_1_mgmt_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
+ doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
+ doReturn(Optional.of(service2_sub_interface_1)).when(aaiResourcesMock).get(LInterface.class,service1_sub_1_uri);
+ doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
+ doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+ doReturn(Optional.of(test_port_2)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
- boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(true, exists);
-
- boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, doNotExist);
+ Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+ String actualString = objectMapper.writeValueAsString(actual.get());
+ String expected = getJson("ExpectedVServerFound.json");
+ JSONAssert.assertEquals(expected,actualString, false);
}
@Test
@@ -260,24 +241,23 @@ public class AuditVServerTest extends AuditVServer {
throws JsonParseException, JsonMappingException, IOException {
doReturn(true).when(aaiResourcesMock).exists(vserverURI);
doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
- doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_trusted_port_0_uri);
- doReturn(Optional.of(ssc_1_service1_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_service1_port_0_uri);
- doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_1_uri);
- doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_mgmt_port_0_uri);
- doReturn(Optional.of(ssc_1_service2_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_service2_port_0_uri);
- doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterfaces.class,ssc_1_int_ha_port_0_uri);
- doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_1_uri);
- doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterfaces.class,test_port_2_uri);
+ doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
+ doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
+ doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
+ doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
+ doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
+ doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
+ doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+ doReturn(Optional.of(test_port_2)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
- boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, exists);
-
- boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, doNotExist);
+ Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+ String actualString = objectMapper.writeValueAsString(actual.get());
+ String expected = getJson("VServer_Found_network_Not_Found.json");
+ JSONAssert.assertEquals(expected,actualString, false);
}
@Test
@@ -285,70 +265,81 @@ public class AuditVServerTest extends AuditVServer {
throws JsonParseException, JsonMappingException, IOException {
doReturn(true).when(aaiResourcesMock).exists(vserverURI);
doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
- doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
- doReturn(Optional.of(ssc_1_service1_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
- doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
- doReturn(Optional.of(ssc_1_mgmt_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
- doReturn(Optional.of(ssc_1_service2_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
- doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
- doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+ doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
+ doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
+ doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
+ doReturn(Optional.of(ssc_1_mgmt_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
+ doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
+ doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
+ doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
- boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, exists);
-
- boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, doNotExist);
+ Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+ String actualString = objectMapper.writeValueAsString(actual.get());
+ String expected = getJson("VServer_Found_Network_Sec_Server_Not_Found.json");
+ JSONAssert.assertEquals(expected,actualString, false);
}
@Test
- public void audit_Vservers_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
+ public void audit_Vserver_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
doReturn(false).when(aaiResourcesMock).exists(vserverURI);
doReturn(false).when(aaiResourcesMock).exists(vserverURI2);
-
- boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, exists);
-
- boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(true, doNotExist);
+ Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+ String actualString = objectMapper.writeValueAsString(actual.get());
+ String expected = getJson("Vservers_Not_Found.json");
+ JSONAssert.assertEquals(expected,actualString, false);
}
@Test
public void audit_Vserver_first_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
doReturn(false).when(aaiResourcesMock).exists(vserverURI);
doReturn(true).when(aaiResourcesMock).exists(vserverURI2);
- doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
- doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
- boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, exists);
+ doReturn(Optional.of(test_port_1)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+ doReturn(Optional.of(test_port_2)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
+ Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+ String actualString = objectMapper.writeValueAsString(actual.get());
+ String expected = getJson("Vserver2_Found_VServer1_Not_Found.json");
+ JSONAssert.assertEquals(expected,actualString, false);
+ }
+
+
+ @Test
+ public void doesSubInterfaceExistinAAI_Test(){
+ AAIResourceUri subInterfaceURI = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE, cloudOwner,
+ cloudRegion, tenantId, "vserverId", "l-interface", "sub-interface");
- boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, doNotExist);
+ assertEquals("/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/vserverId/l-interfaces/l-interface/l-interface/l-interfaces/l-interface/sub-interface",subInterfaceURI.build().toString());
}
@Test
public void audit_Vserver_Second_Not_Found_Test() throws JsonParseException, JsonMappingException, IOException {
doReturn(true).when(aaiResourcesMock).exists(vserverURI);
- doReturn(Optional.of(ssc_1_trusted_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
- doReturn(Optional.of(ssc_1_service1_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
- doReturn(Optional.of(ssc_1_mgmt_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
- doReturn(Optional.of(ssc_1_mgmt_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
- doReturn(Optional.of(ssc_1_service2_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
- doReturn(Optional.of(ssc_1_int_ha_port_0_plural)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
- doReturn(Optional.of(test_port_1_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
- doReturn(Optional.of(test_port_2_plural)).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
+ doReturn(Optional.of(ssc_1_trusted_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_trusted_port_0_uri);
+ doReturn(Optional.of(ssc_1_service1_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service1_port_0_uri);
+ doReturn(Optional.of(ssc_1_mgmt_port_1)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_1_uri);
+ doReturn(Optional.of(ssc_1_mgmt_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_mgmt_port_0_uri);
+ doReturn(Optional.of(ssc_1_service2_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_service2_port_0_uri);
+ doReturn(Optional.of(ssc_1_int_ha_port_0)).when(aaiResourcesMock).get(LInterface.class,ssc_1_int_ha_port_0_uri);
+ doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class,test_port_1_uri);
+ doReturn(Optional.empty()).when(aaiResourcesMock).get(LInterface.class,test_port_2_uri);
doReturn(true).when(aaiResourcesMock).exists(service2_sub_1_uri);
doReturn(true).when(aaiResourcesMock).exists(service1_sub_0_uri);
doReturn(true).when(aaiResourcesMock).exists(service1_sub_1_uri);
- doReturn(false).when(aaiResourcesMock).exists(vserverURI2);
- boolean exists = auditNova.auditAllVserversDoExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, exists);
-
- boolean doNotExist = auditNova.auditAllVserversDoNotExist(vserversToAudit, tenantId, cloudOwner, cloudRegion);
- assertEquals(false, doNotExist);
+ doReturn(false).when(aaiResourcesMock).exists(vserverURI2);
+ Optional<AAIObjectAuditList> actual = auditNova.auditVservers(vserversToAudit, tenantId, cloudOwner, cloudRegion);
+ String actualString = objectMapper.writeValueAsString(actual.get());
+ String expected = getJson("VServer_Found_Sec_Server_Not_Found2.json");
+
+ JSONAssert.assertEquals(expected,actualString, false);
}
+
+ private String getJson(String filename) throws IOException {
+ return new String(Files.readAllBytes(Paths.get("src/test/resources/" + filename)));
+ }
+
+
}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/HeatStackAuditTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/HeatStackAuditTest.java
index 987e4cf76d..a7744a2ea7 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/HeatStackAuditTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/audit/HeatStackAuditTest.java
@@ -26,6 +26,9 @@ import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.doReturn;
import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -46,6 +49,7 @@ import org.onap.so.openstack.utils.MsoHeatUtils;
import org.onap.so.openstack.utils.MsoNeutronUtils;
import org.skyscreamer.jsonassert.JSONAssert;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.woorea.openstack.heat.model.Resource;
@@ -74,9 +78,9 @@ public class HeatStackAuditTest extends HeatStackAudit {
private Resources resources = new Resources();
- private ObjectMapper objectMapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ private ObjectMapper objectMapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).setSerializationInclusion(Include.NON_NULL);
- private ObjectMapper stackObjectMapper = new ObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
+ private ObjectMapper stackObjectMapper = new ObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true).setSerializationInclusion(Include.NON_NULL);
private List<Optional<Port>> portList = new ArrayList<>();
@@ -131,62 +135,7 @@ public class HeatStackAuditTest extends HeatStackAudit {
List<Resource> resourceGroups = resources.getList().stream()
.filter(p -> "OS::Heat::ResourceGroup".equals(p.getType())).collect(Collectors.toList());
-
- Set<Vserver> expectedVservers = new HashSet<>();
- Vserver vServer1= new Vserver();
- vServer1.setVserverId("92272b67-d23f-42ca-87fa-7b06a9ec81f3");
- LInterfaces vServer1Linterfaces = new LInterfaces();
- vServer1.setLInterfaces(vServer1Linterfaces);
-
- LInterface ssc_1_trusted_port_0 = new LInterface();
- ssc_1_trusted_port_0.setInterfaceId("7ee06d9d-3d18-411c-9d3e-aec930f70413");
- vServer1.getLInterfaces().getLInterface().add(ssc_1_trusted_port_0);
-
-
-
- LInterface ssc_1_mgmt_port_1 = new LInterface();
- ssc_1_mgmt_port_1.setInterfaceId("fdeedf37-c01e-4ab0-bdd6-8d5fc4913943");
- vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_1);
-
- LInterface ssc_1_mgmt_port_0 = new LInterface();
- ssc_1_mgmt_port_0.setInterfaceId("8d93f63e-e972-48c7-ad98-b2122da47315");
- vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_0);
-
- LInterface ssc_1_service2_port_0 = new LInterface();
- ssc_1_service2_port_0.setLInterfaces(new LInterfaces());
- ssc_1_service2_port_0.setInterfaceId("0594a2f2-7ea4-42eb-abc2-48ea49677fca");
- vServer1.getLInterfaces().getLInterface().add(ssc_1_service2_port_0);
-
- LInterface service2_sub_interface_1 = new LInterface();
- service2_sub_interface_1.setInterfaceId("2bbfa345-33bb-495a-94b2-fb514ee1cffc");
- ssc_1_service2_port_0.getLInterfaces().getLInterface().add(service2_sub_interface_1);
-
- LInterface ssc_1_int_ha_port_0 = new LInterface();
- ssc_1_int_ha_port_0.setInterfaceId("00bb8407-650e-48b5-b919-33b88d6f8fe3");
- vServer1.getLInterfaces().getLInterface().add(ssc_1_int_ha_port_0);
-
-
- LInterface ssc_1_service1_port_0 = new LInterface();
- ssc_1_service1_port_0.setInterfaceId("27391d94-33af-474a-927d-d409249e8fd3");
- vServer1.getLInterfaces().getLInterface().add(ssc_1_service1_port_0);
- ssc_1_service1_port_0.setLInterfaces(new LInterfaces());
-
- LInterface service1_sub_interface_0 = new LInterface();
- service1_sub_interface_0.setInterfaceId("d54dfd09-75c6-4e04-b204-909455b8f933");
- ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_0);
-
- LInterface service1_sub_interface_1 = new LInterface();
- service1_sub_interface_1.setInterfaceId("f7a998c0-8939-4b07-bf4a-0862e9c325e1");
- ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_1);
-
- LInterface service1_sub_interface_2 = new LInterface();
- service1_sub_interface_2.setInterfaceId("621c1fea-60b8-44ee-aede-c01b8b1aaa70");
- ssc_1_service1_port_0.getLInterfaces().getLInterface().add(service1_sub_interface_2);
-
- expectedVservers.add(vServer1);
-
-
Resources service1QueryResponse = objectMapper.readValue(new File("src/test/resources/Service1ResourceGroupResponse.json"), Resources.class);
doReturn(service1QueryResponse).when(msoHeatUtilsMock).executeHeatClientRequest("/stacks/tsbc0005vm002ssc001-ssc_1_subint_service1_port_0_subinterfaces-dtmxjmny7yjz/31d0647a-6043-49a4-81b6-ccab29380672/resources", cloudRegion, tenantId, Resources.class);
@@ -219,20 +168,18 @@ public class HeatStackAuditTest extends HeatStackAudit {
Set<Vserver> vserversWithSubInterfaces = heatStackAudit.processSubInterfaces(cloudRegion,tenantId,resourceGroups, vServersToAudit);
String actualValue = objectMapper.writeValueAsString(vserversWithSubInterfaces);
- String expectedValue = objectMapper.writeValueAsString(expectedVservers);
-
+ String expectedValue = getJson("ExpectedVserversToAudit.json");
+ System.out.println(actualValue);
JSONAssert.assertEquals(expectedValue, actualValue, false);
}
@Test
public void auditHeatStackNoServers_Test() throws Exception{
-
-
Resources getResource = objectMapper.readValue(new File("src/test/resources/Service1ResourceGroupResponse.json"), Resources.class);
doReturn(getResource).when(msoHeatUtilsMock).queryStackResources(cloudRegion, tenantId, "heatStackName");
- boolean actual = heatStackAudit.auditHeatStackCreate(cloudRegion, "cloudOwner", tenantId, "heatStackName");
- assertEquals(true, actual);
+ Optional<AAIObjectAuditList> actual = heatStackAudit.auditHeatStack(cloudRegion, "cloudOwner", tenantId, "heatStackName");
+ assertEquals(true, actual.get().getAuditList().isEmpty());
}
@@ -248,26 +195,32 @@ public class HeatStackAuditTest extends HeatStackAudit {
LInterface ssc_1_trusted_port_0 = new LInterface();
ssc_1_trusted_port_0.setInterfaceId("7ee06d9d-3d18-411c-9d3e-aec930f70413");
+ ssc_1_trusted_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
vServer1.getLInterfaces().getLInterface().add(ssc_1_trusted_port_0);
- LInterface ssc_1_service1_port_0 = new LInterface();
- ssc_1_service1_port_0.setInterfaceId("27391d94-33af-474a-927d-d409249e8fd3");
- vServer1.getLInterfaces().getLInterface().add(ssc_1_service1_port_0);
+ LInterface ssc_1_svc2_port_0 = new LInterface();
+ ssc_1_svc2_port_0.setInterfaceId("27391d94-33af-474a-927d-d409249e8fd3");
+ ssc_1_svc2_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
+ vServer1.getLInterfaces().getLInterface().add(ssc_1_svc2_port_0);
LInterface ssc_1_mgmt_port_1 = new LInterface();
ssc_1_mgmt_port_1.setInterfaceId("fdeedf37-c01e-4ab0-bdd6-8d5fc4913943");
+ ssc_1_mgmt_port_1.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_1);
LInterface ssc_1_mgmt_port_0 = new LInterface();
ssc_1_mgmt_port_0.setInterfaceId("8d93f63e-e972-48c7-ad98-b2122da47315");
+ ssc_1_mgmt_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
vServer1.getLInterfaces().getLInterface().add(ssc_1_mgmt_port_0);
- LInterface ssc_1_service2_port_0 = new LInterface();
- ssc_1_service2_port_0.setInterfaceId("0594a2f2-7ea4-42eb-abc2-48ea49677fca");
- vServer1.getLInterfaces().getLInterface().add(ssc_1_service2_port_0);
+ LInterface ssc_1_svc1_port_0 = new LInterface();
+ ssc_1_svc1_port_0.setInterfaceId("0594a2f2-7ea4-42eb-abc2-48ea49677fca");
+ ssc_1_svc1_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
+ vServer1.getLInterfaces().getLInterface().add(ssc_1_svc1_port_0);
LInterface ssc_1_int_ha_port_0 = new LInterface();
ssc_1_int_ha_port_0.setInterfaceId("00bb8407-650e-48b5-b919-33b88d6f8fe3");
+ ssc_1_int_ha_port_0.setInterfaceName("ibcx0026v_ibcx0026vm003_untrusted_port");
vServer1.getLInterfaces().getLInterface().add(ssc_1_int_ha_port_0);
expectedVservers.add(vServer1);
@@ -277,5 +230,7 @@ public class HeatStackAuditTest extends HeatStackAudit {
assertThat(actualVservers, sameBeanAs(expectedVservers));
}
-
+ private String getJson(String filename) throws IOException {
+ return new String(Files.readAllBytes(Paths.get("src/test/resources/" + filename)));
+ }
}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateAAIInventoryTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateAAIInventoryTest.java
new file mode 100644
index 0000000000..4d34d18727
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateAAIInventoryTest.java
@@ -0,0 +1,122 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.inventory.create;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import org.camunda.bpm.client.task.ExternalTask;
+import org.hamcrest.Matchers;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.so.adapters.audit.AAIObjectAuditList;
+import org.onap.so.audit.beans.AuditInventory;
+import org.onap.so.client.aai.AAIObjectType;
+import org.onap.so.client.aai.AAIResourcesClient;
+import org.onap.so.client.aai.entities.uri.AAIResourceUri;
+import org.onap.so.client.aai.entities.uri.AAIUriFactory;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class CreateAAIInventoryTest extends CreateAAIInventory {
+
+ @InjectMocks
+ private CreateAAIInventory createAAIInventory = new CreateAAIInventory();
+
+ @Mock
+ private ExternalTask mockExternalTask;
+
+ @Mock
+ private AAIResourcesClient mockClient;
+
+ private ObjectMapper objectMapper = new ObjectMapper();
+
+ private AuditInventory auditInventory = new AuditInventory();
+
+ AAIObjectAuditList auditListSuccess;
+
+ AAIObjectAuditList auditListFailure;
+
+ AAIObjectAuditList missingSubInterfaces;
+
+ @Before
+ public void setup() throws JsonParseException, JsonMappingException, IOException {
+ auditInventory.setCloudOwner("cloudOwner");
+ auditInventory.setCloudRegion("cloudRegion");
+ auditInventory.setTenantId("tenantId");
+ auditInventory.setHeatStackName("stackName");
+ MockitoAnnotations.initMocks(this);
+ auditListSuccess = objectMapper.readValue(new File("src/test/resources/ExpectedVServerFound.json"), AAIObjectAuditList.class);
+ auditListFailure = objectMapper.readValue(new File("src/test/resources/Vserver2_Found_VServer1_Not_Found.json"), AAIObjectAuditList.class);
+ missingSubInterfaces = objectMapper.readValue(new File("src/test/resources/AuditResultsMissSub.json"), AAIObjectAuditList.class);
+ doReturn(auditInventory).when(mockExternalTask).getVariable("auditInventory");
+ }
+
+ @Test
+ public void determineAuditResult_Test() throws Exception{
+ boolean actual = createAAIInventory.didAuditFailVserverLInterfaces(auditListSuccess);
+ assertEquals(false, actual);
+ }
+
+ @Test
+ public void determineAuditResult_Failure_Test() throws Exception{
+ boolean actual = createAAIInventory.didAuditFailVserverLInterfaces(auditListFailure);
+ assertEquals(true, actual);
+ }
+
+ @Test
+ public void missing_Sub_Interfaces_Test() throws Exception{
+ AAIResourceUri aaiURI2 = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+ "cloudOwner", "regionOne", "0422ffb57ba042c0800a29dc85ca70f8", "92272b67-d23f-42ca-87fa-7b06a9ec81f3",
+ "tsbc0005v_tsbc0005vm002_svc1_port_0","tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81");
+ AAIResourceUri aaiURI1 = AAIUriFactory.createResourceUri(AAIObjectType.SUB_L_INTERFACE,
+ "cloudOwner", "regionOne", "0422ffb57ba042c0800a29dc85ca70f8", "92272b67-d23f-42ca-87fa-7b06a9ec81f3",
+ "tsbc0005v_tsbc0005vm002_svc2_port_0","tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103");
+ ArgumentCaptor<Optional> captor = ArgumentCaptor.forClass(Optional.class);
+ ArgumentCaptor<AAIResourceUri> uriCaptor = ArgumentCaptor.forClass(AAIResourceUri.class);
+
+ createAAIInventory.setAaiClient(mockClient);
+ createAAIInventory.createInventory(missingSubInterfaces);
+ Mockito.verify(mockClient,times(2)).createIfNotExists(uriCaptor.capture(),captor.capture());
+
+ List<AAIResourceUri> capturedURI = uriCaptor.getAllValues();
+ assertTrue(capturedURI.stream().anyMatch(item -> aaiURI1.build().toString().equals(item.build().toString())));
+ assertTrue(capturedURI.stream().anyMatch(item -> aaiURI2.build().toString().equals(item.build().toString())));
+
+
+
+ }
+}
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfMulticloudAdapterImplTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfMulticloudAdapterImplTest.java
index 152c23e9b8..f3ad4e6d7d 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfMulticloudAdapterImplTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfMulticloudAdapterImplTest.java
@@ -53,7 +53,7 @@ public class MsoVnfMulticloudAdapterImplTest extends BaseRestTestUtils{
@Before
public void before() throws Exception {
super.orchestrator = "multicloud";
- super.cloudEndpoint = "/api/multicloud/v1/cloud_owner/cloud_region_id/infra_workload";
+ super.cloudEndpoint = "/api/multicloud/v1/CloudOwner/MTN13/infra_workload";
super.setUp();
}
@@ -70,19 +70,19 @@ public class MsoVnfMulticloudAdapterImplTest extends BaseRestTestUtils{
msoRequest.setRequestId("12345");
msoRequest.setServiceInstanceId("12345");
- wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/cloud_owner/cloud_region_id/infra_workload/vfname")).willReturn(aResponse()
+ wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/CloudOwner/MTN13/infra_workload/vfname")).willReturn(aResponse()
//.withHeader()
.withStatus(HttpStatus.SC_NOT_FOUND)));
- wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/cloud_owner/cloud_region_id/infra_workload/workload-id")).willReturn(aResponse()
+ wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/CloudOwner/MTN13/infra_workload/workload-id")).willReturn(aResponse()
//.withHeader()
.withBodyFile("MulticloudResponse_Stack.json")
.withStatus(HttpStatus.SC_OK)));
- wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/cloud_owner/cloud_region_id/infra_workload/vfname/outputs")).willReturn(aResponse()
+ wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/CloudOwner/MTN13/infra_workload/vfname/outputs")).willReturn(aResponse()
.withStatus(HttpStatus.SC_NOT_FOUND)));
- wireMockServer.stubFor(post(urlPathEqualTo("/api/multicloud/v1/cloud_owner/cloud_region_id/infra_workload")).willReturn(aResponse()
+ wireMockServer.stubFor(post(urlPathEqualTo("/api/multicloud/v1/CloudOwner/MTN13/infra_workload")).willReturn(aResponse()
.withBodyFile("MulticloudResponse_Stack_Create.json")
.withStatus(HttpStatus.SC_CREATED)));
@@ -95,11 +95,11 @@ public class MsoVnfMulticloudAdapterImplTest extends BaseRestTestUtils{
msoRequest.setRequestId("12345");
msoRequest.setServiceInstanceId("12345");
- wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/cloud_owner/cloud_region_id/infra_workload/workload-id")).willReturn(aResponse()
+ wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/CloudOwner/MTN13/infra_workload/workload-id")).willReturn(aResponse()
.withBodyFile("MulticloudResponse_Stack.json")
.withStatus(HttpStatus.SC_OK)));
- wireMockServer.stubFor(delete(urlPathEqualTo("/api/multicloud/v1/cloud_owner/cloud_region_id/infra_workload/workload-id")).willReturn(aResponse()
+ wireMockServer.stubFor(delete(urlPathEqualTo("/api/multicloud/v1/CloudOwner/MTN13/infra_workload/workload-id")).willReturn(aResponse()
.withStatus(HttpStatus.SC_NO_CONTENT)));
instance.deleteVfModule("MTN13", "CloudOwner", "123", "workload-id", msoRequest, new Holder<>());
@@ -111,7 +111,7 @@ public class MsoVnfMulticloudAdapterImplTest extends BaseRestTestUtils{
msoRequest.setRequestId("12345");
msoRequest.setServiceInstanceId("12345");
- wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/cloud_owner/cloud_region_id/infra_workload/workload-id")).willReturn(aResponse()
+ wireMockServer.stubFor(get(urlPathEqualTo("/api/multicloud/v1/CloudOwner/MTN13/infra_workload/workload-id")).willReturn(aResponse()
.withBodyFile("MulticloudResponse_Stack.json")
.withStatus(HttpStatus.SC_OK)));
diff --git a/adapters/mso-openstack-adapters/src/test/resources/AuditResultsMissSub.json b/adapters/mso-openstack-adapters/src/test/resources/AuditResultsMissSub.json
new file mode 100644
index 0000000000..13b0d6ae43
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/AuditResultsMissSub.json
@@ -0,0 +1,604 @@
+{
+ "auditList": [
+ {
+ "aaiObject": {
+ "inMaint": null,
+ "isClosedLoopDisabled": null,
+ "linterfaces": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "volumes": null,
+ "vserverId": "92272b67-d23f-42ca-87fa-7b06a9ec81f3",
+ "vserverName": null,
+ "vserverName2": null,
+ "vserverSelflink": null
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": null,
+ "interfaceDescription": null,
+ "interfaceId": "d2f51f82-0ec2-4581-bd1a-d2a82073e52b",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_trusted_port",
+ "interfaceRole": null,
+ "isIpUnnumbered": null,
+ "isPortMirrored": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": null,
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": null
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_trusted_port"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": null,
+ "interfaceDescription": null,
+ "interfaceId": "27391d94-33af-474a-927d-d409249e8fd3",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_svc2_port_0",
+ "interfaceRole": null,
+ "isIpUnnumbered": null,
+ "isPortMirrored": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": false,
+ "interfaceDescription": null,
+ "interfaceId": "d54dfd09-75c6-4e04-b204-909455b8f933",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101",
+ "interfaceRole": null,
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": "02:27:39:1d:94:33",
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": {
+ "vlan": [
+ {
+ "backdoorConnection": null,
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "isPrivate": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "orchestrationStatus": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "speedUnits": null,
+ "speedValue": null,
+ "vlanDescription": null,
+ "vlanIdInner": 101,
+ "vlanIdOuter": null,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101",
+ "vpnKey": null
+ }
+ ]
+ }
+ },
+ {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": false,
+ "interfaceDescription": null,
+ "interfaceId": "f7a998c0-8939-4b07-bf4a-0862e9c325e1",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101",
+ "interfaceRole": null,
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": "02:27:39:1d:94:33",
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": {
+ "vlan": [
+ {
+ "backdoorConnection": null,
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "isPrivate": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "orchestrationStatus": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "speedUnits": null,
+ "speedValue": null,
+ "vlanDescription": null,
+ "vlanIdInner": 101,
+ "vlanIdOuter": null,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101",
+ "vpnKey": null
+ }
+ ]
+ }
+ },
+ {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": false,
+ "interfaceDescription": null,
+ "interfaceId": "621c1fea-60b8-44ee-aede-c01b8b1aaa70",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103",
+ "interfaceRole": null,
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": "02:27:39:1d:94:33",
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": {
+ "vlan": [
+ {
+ "backdoorConnection": null,
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "isPrivate": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "orchestrationStatus": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "speedUnits": null,
+ "speedValue": null,
+ "vlanDescription": null,
+ "vlanIdInner": 103,
+ "vlanIdOuter": null,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103",
+ "vpnKey": null
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "macaddr": null,
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": null
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc2_port_0"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": false,
+ "interfaceDescription": null,
+ "interfaceId": "d54dfd09-75c6-4e04-b204-909455b8f933",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101",
+ "interfaceRole": null,
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": "02:27:39:1d:94:33",
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": {
+ "vlan": [
+ {
+ "backdoorConnection": null,
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "isPrivate": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "orchestrationStatus": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "speedUnits": null,
+ "speedValue": null,
+ "vlanDescription": null,
+ "vlanIdInner": 101,
+ "vlanIdOuter": null,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101",
+ "vpnKey": null
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc2_port_0/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": false,
+ "interfaceDescription": null,
+ "interfaceId": "f7a998c0-8939-4b07-bf4a-0862e9c325e1",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101",
+ "interfaceRole": null,
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": "02:27:39:1d:94:33",
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": {
+ "vlan": [
+ {
+ "backdoorConnection": null,
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "isPrivate": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "orchestrationStatus": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "speedUnits": null,
+ "speedValue": null,
+ "vlanDescription": null,
+ "vlanIdInner": 101,
+ "vlanIdOuter": null,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101",
+ "vpnKey": null
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc2_port_0/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_101"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": false,
+ "interfaceDescription": null,
+ "interfaceId": "621c1fea-60b8-44ee-aede-c01b8b1aaa70",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103",
+ "interfaceRole": null,
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": "02:27:39:1d:94:33",
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": {
+ "vlan": [
+ {
+ "backdoorConnection": null,
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "isPrivate": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "orchestrationStatus": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "speedUnits": null,
+ "speedValue": null,
+ "vlanDescription": null,
+ "vlanIdInner": 103,
+ "vlanIdOuter": null,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103",
+ "vpnKey": null
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc2_port_0/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_subint_untrusted_svc2_103"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": null,
+ "interfaceDescription": null,
+ "interfaceId": "07f5b14c-147a-4d14-8c94-a9e94dbc097b",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_mgmt_port_1",
+ "interfaceRole": null,
+ "isIpUnnumbered": null,
+ "isPortMirrored": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": null,
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": null
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_mgmt_port_1"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": null,
+ "interfaceDescription": null,
+ "interfaceId": "8d93f63e-e972-48c7-ad98-b2122da47315",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_mgmt_port_0",
+ "interfaceRole": null,
+ "isIpUnnumbered": null,
+ "isPortMirrored": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": null,
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": null
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_mgmt_port_0"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": null,
+ "interfaceDescription": null,
+ "interfaceId": "0594a2f2-7ea4-42eb-abc2-48ea49677fca",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_svc1_port_0",
+ "interfaceRole": null,
+ "isIpUnnumbered": null,
+ "isPortMirrored": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": false,
+ "interfaceDescription": null,
+ "interfaceId": "2bbfa345-33bb-495a-94b2-fb514ee1cffc",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81",
+ "interfaceRole": null,
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": "02:05:94:a2:f2:7e",
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": {
+ "vlan": [
+ {
+ "backdoorConnection": null,
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "isPrivate": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "orchestrationStatus": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "speedUnits": null,
+ "speedValue": null,
+ "vlanDescription": null,
+ "vlanIdInner": 81,
+ "vlanIdOuter": null,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81",
+ "vpnKey": null
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "macaddr": null,
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": null
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc1_port_0"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": false,
+ "interfaceDescription": null,
+ "interfaceId": "2bbfa345-33bb-495a-94b2-fb514ee1cffc",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81",
+ "interfaceRole": null,
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": "02:05:94:a2:f2:7e",
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": {
+ "vlan": [
+ {
+ "backdoorConnection": null,
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "isPrivate": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "orchestrationStatus": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "speedUnits": null,
+ "speedValue": null,
+ "vlanDescription": null,
+ "vlanIdInner": 81,
+ "vlanIdOuter": null,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81",
+ "vpnKey": null
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_svc1_port_0/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_subint_untrusted_svc1_81"
+ },
+ {
+ "aaiObject": {
+ "adminStatus": null,
+ "allowedAddressPairs": null,
+ "inMaint": null,
+ "interfaceDescription": null,
+ "interfaceId": "00bb8407-650e-48b5-b919-33b88d6f8fe3",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_int_ha_port_0",
+ "interfaceRole": null,
+ "isIpUnnumbered": null,
+ "isPortMirrored": null,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": null,
+ "macaddr": null,
+ "managementOption": null,
+ "networkName": null,
+ "priority": null,
+ "provStatus": null,
+ "relationshipList": null,
+ "resourceVersion": null,
+ "selflink": null,
+ "sriovVfs": null,
+ "v6WanLinkIp": null,
+ "vlans": null
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/regionOne/tenants/tenant/0422ffb57ba042c0800a29dc85ca70f8/vservers/vserver/92272b67-d23f-42ca-87fa-7b06a9ec81f3/l-interfaces/l-interface/tsbc0005v_tsbc0005vm002_int_ha_port_0"
+ }
+ ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/ExpectedVServerFound.json b/adapters/mso-openstack-adapters/src/test/resources/ExpectedVServerFound.json
new file mode 100644
index 0000000000..1f8e58ab5b
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/ExpectedVServerFound.json
@@ -0,0 +1,167 @@
+{
+ "auditList": [
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1",
+ "interfaceName": "test_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2",
+ "interfaceName": "test_port_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+ },
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c",
+ "interfaceName": "ssc_1_trusted_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56",
+ "interfaceName": "ssc_1_service1_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b",
+ "interfaceName": "ssc_1_mgmt_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff",
+ "interfaceName": "ssc_1_mgmt_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4",
+ "interfaceName": "ssc_1_service2_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8",
+ "interfaceName": "ssc_1_int_ha_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+ }
+ ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/ExpectedVserversToAudit.json b/adapters/mso-openstack-adapters/src/test/resources/ExpectedVserversToAudit.json
new file mode 100644
index 0000000000..96fe500cc2
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/ExpectedVserversToAudit.json
@@ -0,0 +1,135 @@
+[
+ {
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "7ee06d9d-3d18-411c-9d3e-aec930f70413",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ {
+ "interfaceId": "27391d94-33af-474a-927d-d409249e8fd3",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "inMaint": false,
+ "interfaceId": "d54dfd09-75c6-4e04-b204-909455b8f933",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_101",
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "macaddr": "02:27:39:1d:94:33",
+ "vlans": {
+ "vlan": [
+ {
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "vlanIdInner": 101,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_101"
+ }
+ ]
+ }
+ },
+ {
+ "inMaint": false,
+ "interfaceId": "f7a998c0-8939-4b07-bf4a-0862e9c325e1",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_101",
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "macaddr": "02:27:39:1d:94:33",
+ "vlans": {
+ "vlan": [
+ {
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "vlanIdInner": 101,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_101"
+ }
+ ]
+ }
+ },
+ {
+ "inMaint": false,
+ "interfaceId": "621c1fea-60b8-44ee-aede-c01b8b1aaa70",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_103",
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "macaddr": "02:27:39:1d:94:33",
+ "vlans": {
+ "vlan": [
+ {
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "vlanIdInner": 103,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_service1_103"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ {
+ "interfaceId": "fdeedf37-c01e-4ab0-bdd6-8d5fc4913943",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ {
+ "interfaceId": "8d93f63e-e972-48c7-ad98-b2122da47315",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ {
+ "interfaceId": "0594a2f2-7ea4-42eb-abc2-48ea49677fca",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "inMaint": false,
+ "interfaceId": "2bbfa345-33bb-495a-94b2-fb514ee1cffc",
+ "interfaceName": "tsbc0005v_tsbc0005vm002_subint_untrusted_service2_81",
+ "isIpUnnumbered": false,
+ "isPortMirrored": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "macaddr": "02:05:94:a2:f2:7e",
+ "vlans": {
+ "vlan": [
+ {
+ "inMaint": false,
+ "isIpUnnumbered": false,
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "vlanIdInner": 81,
+ "vlanInterface": "tsbc0005v_tsbc0005vm002_subint_untrusted_service2_81"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ },
+ {
+ "interfaceId": "00bb8407-650e-48b5-b919-33b88d6f8fe3",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ },
+ "vserverId": "92272b67-d23f-42ca-87fa-7b06a9ec81f3"
+ }
+]
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface0Resources.json b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface0Resources.json
index 0f3f35418e..d4745bec9f 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface0Resources.json
+++ b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface0Resources.json
@@ -4,23 +4,23 @@
"resources": [
{
"parent_resource": "0",
- "resource_name": "ssc_subint_mis_vmi_0",
+ "resource_name": "ssc_subint_svc1_vmi_0",
"links": [
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0",
"rel": "self"
},
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
"rel": "stack"
}
],
- "logical_resource_id": "ssc_subint_mis_vmi_0",
+ "logical_resource_id": "ssc_subint_svc1_vmi_0",
"resource_status": "CREATE_COMPLETE",
"updated_time": "2019-01-23T19:34:56Z",
"required_by": [
- "ssc_subint_mis_vmi_0_v6_ip_0",
- "ssc_subint_mis_vmi_0_ip_0"
+ "ssc_subint_svc1_vmi_0_v6_ip_0",
+ "ssc_subint_svc1_vmi_0_ip_0"
],
"resource_status_reason": "state changed",
"physical_resource_id": "d54dfd09-75c6-4e04-b204-909455b8f933",
@@ -28,18 +28,18 @@
},
{
"parent_resource": "0",
- "resource_name": "ssc_subint_mis_vmi_0_v6_ip_0",
+ "resource_name": "ssc_subint_svc1_vmi_0_v6_ip_0",
"links": [
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_v6_ip_0",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_v6_ip_0",
"rel": "self"
},
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
"rel": "stack"
}
],
- "logical_resource_id": "ssc_subint_mis_vmi_0_v6_ip_0",
+ "logical_resource_id": "ssc_subint_svc1_vmi_0_v6_ip_0",
"resource_status": "CREATE_COMPLETE",
"updated_time": "2019-01-23T19:34:56Z",
"required_by": [],
@@ -49,18 +49,18 @@
},
{
"parent_resource": "0",
- "resource_name": "ssc_subint_mis_vmi_0_ip_0",
+ "resource_name": "ssc_subint_svc1_vmi_0_ip_0",
"links": [
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_ip_0",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_ip_0",
"rel": "self"
},
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
"rel": "stack"
}
],
- "logical_resource_id": "ssc_subint_mis_vmi_0_ip_0",
+ "logical_resource_id": "ssc_subint_svc1_vmi_0_ip_0",
"resource_status": "CREATE_COMPLETE",
"updated_time": "2019-01-23T19:34:56Z",
"required_by": [],
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface1Resources.json b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface1Resources.json
index cfc4d7fed6..68d3e0f880 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface1Resources.json
+++ b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface1Resources.json
@@ -4,23 +4,23 @@
"resources": [
{
"parent_resource": "0",
- "resource_name": "ssc_subint_mis_vmi_0",
+ "resource_name": "ssc_subint_svc1_vmi_0",
"links": [
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0",
"rel": "self"
},
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
"rel": "stack"
}
],
- "logical_resource_id": "ssc_subint_mis_vmi_0",
+ "logical_resource_id": "ssc_subint_svc1_vmi_0",
"resource_status": "CREATE_COMPLETE",
"updated_time": "2019-01-23T19:34:56Z",
"required_by": [
- "ssc_subint_mis_vmi_0_v6_ip_0",
- "ssc_subint_mis_vmi_0_ip_0"
+ "ssc_subint_svc1_vmi_0_v6_ip_0",
+ "ssc_subint_svc1_vmi_0_ip_0"
],
"resource_status_reason": "state changed",
"physical_resource_id": "f7a998c0-8939-4b07-bf4a-0862e9c325e1",
@@ -28,18 +28,18 @@
},
{
"parent_resource": "0",
- "resource_name": "ssc_subint_mis_vmi_0_v6_ip_0",
+ "resource_name": "ssc_subint_svc1_vmi_0_v6_ip_0",
"links": [
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_v6_ip_0",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_v6_ip_0",
"rel": "self"
},
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
"rel": "stack"
}
],
- "logical_resource_id": "ssc_subint_mis_vmi_0_v6_ip_0",
+ "logical_resource_id": "ssc_subint_svc1_vmi_0_v6_ip_0",
"resource_status": "CREATE_COMPLETE",
"updated_time": "2019-01-23T19:34:56Z",
"required_by": [],
@@ -49,18 +49,18 @@
},
{
"parent_resource": "0",
- "resource_name": "ssc_subint_mis_vmi_0_ip_0",
+ "resource_name": "ssc_subint_svc1_vmi_0_ip_0",
"links": [
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_ip_0",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_ip_0",
"rel": "self"
},
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
"rel": "stack"
}
],
- "logical_resource_id": "ssc_subint_mis_vmi_0_ip_0",
+ "logical_resource_id": "ssc_subint_svc1_vmi_0_ip_0",
"resource_status": "CREATE_COMPLETE",
"updated_time": "2019-01-23T19:34:56Z",
"required_by": [],
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface2Resources.json b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface2Resources.json
index e8aa80eb6f..4f4d25d96b 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface2Resources.json
+++ b/adapters/mso-openstack-adapters/src/test/resources/Service1SubInterface2Resources.json
@@ -4,23 +4,23 @@
"resources": [
{
"parent_resource": "0",
- "resource_name": "ssc_subint_mis_vmi_0",
+ "resource_name": "ssc_subint_svc1_vmi_0",
"links": [
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0",
"rel": "self"
},
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
"rel": "stack"
}
],
- "logical_resource_id": "ssc_subint_mis_vmi_0",
+ "logical_resource_id": "ssc_subint_svc1_vmi_0",
"resource_status": "CREATE_COMPLETE",
"updated_time": "2019-01-23T19:34:56Z",
"required_by": [
- "ssc_subint_mis_vmi_0_v6_ip_0",
- "ssc_subint_mis_vmi_0_ip_0"
+ "ssc_subint_svc1_vmi_0_v6_ip_0",
+ "ssc_subint_svc1_vmi_0_ip_0"
],
"resource_status_reason": "state changed",
"physical_resource_id": "621c1fea-60b8-44ee-aede-c01b8b1aaa70",
@@ -28,18 +28,18 @@
},
{
"parent_resource": "0",
- "resource_name": "ssc_subint_mis_vmi_0_v6_ip_0",
+ "resource_name": "ssc_subint_svc1_vmi_0_v6_ip_0",
"links": [
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_v6_ip_0",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_v6_ip_0",
"rel": "self"
},
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
"rel": "stack"
}
],
- "logical_resource_id": "ssc_subint_mis_vmi_0_v6_ip_0",
+ "logical_resource_id": "ssc_subint_svc1_vmi_0_v6_ip_0",
"resource_status": "CREATE_COMPLETE",
"updated_time": "2019-01-23T19:34:56Z",
"required_by": [],
@@ -49,18 +49,18 @@
},
{
"parent_resource": "0",
- "resource_name": "ssc_subint_mis_vmi_0_ip_0",
+ "resource_name": "ssc_subint_svc1_vmi_0_ip_0",
"links": [
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_mis_vmi_0_ip_0",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81/resources/ssc_subint_svc1_vmi_0_ip_0",
"rel": "self"
},
{
- "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_mis_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
+ "href": "https://orchestration.com:8004/v1/ea2d13cc98b44d60a6f94bdcb2738f9e/stacks/tsbc0005vm002ssc001-ssc_1_subint_svc1_port_0_subinterfaces-hlzdigtimzst-0-upfi5nhurk7y/f711be16-2654-4a09-b89d-0511fda20e81",
"rel": "stack"
}
],
- "logical_resource_id": "ssc_subint_mis_vmi_0_ip_0",
+ "logical_resource_id": "ssc_subint_svc1_vmi_0_ip_0",
"resource_status": "CREATE_COMPLETE",
"updated_time": "2019-01-23T19:34:56Z",
"required_by": [],
diff --git a/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Network_Sec_Server_Not_Found.json b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Network_Sec_Server_Not_Found.json
new file mode 100644
index 0000000000..d13b4b7672
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Network_Sec_Server_Not_Found.json
@@ -0,0 +1,167 @@
+{
+ "auditList": [
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c",
+ "interfaceName": "ssc_1_trusted_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56",
+ "interfaceName": "ssc_1_service1_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b",
+ "interfaceName": "ssc_1_mgmt_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff",
+ "interfaceName": "ssc_1_mgmt_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4",
+ "interfaceName": "ssc_1_service2_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8",
+ "interfaceName": "ssc_1_int_ha_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+ },
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1",
+ "interfaceName": "test_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2",
+ "interfaceName": "test_port_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+ }
+ ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Sec_Server_Not_Found2.json b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Sec_Server_Not_Found2.json
new file mode 100644
index 0000000000..eb0fb7ca76
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_Sec_Server_Not_Found2.json
@@ -0,0 +1,167 @@
+{
+ "auditList": [
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c",
+ "interfaceName": "ssc_1_trusted_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56",
+ "interfaceName": "ssc_1_service1_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b",
+ "interfaceName": "ssc_1_mgmt_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff",
+ "interfaceName": "ssc_1_mgmt_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4",
+ "interfaceName": "ssc_1_service2_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8",
+ "interfaceName": "ssc_1_int_ha_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+ },
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1",
+ "interfaceName": "test_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2",
+ "interfaceName": "test_port_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+ }
+ ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_network_Not_Found.json b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_network_Not_Found.json
new file mode 100644
index 0000000000..0cb47dcb5e
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/VServer_Found_network_Not_Found.json
@@ -0,0 +1,167 @@
+{
+ "auditList": [
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1",
+ "interfaceName": "test_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2",
+ "interfaceName": "test_port_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+ },
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c",
+ "interfaceName": "ssc_1_trusted_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56",
+ "interfaceName": "ssc_1_service1_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b",
+ "interfaceName": "ssc_1_mgmt_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff",
+ "interfaceName": "ssc_1_mgmt_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4",
+ "interfaceName": "ssc_1_service2_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8",
+ "interfaceName": "ssc_1_int_ha_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+ }
+ ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Vserver2_Found_VServer1_Not_Found.json b/adapters/mso-openstack-adapters/src/test/resources/Vserver2_Found_VServer1_Not_Found.json
new file mode 100644
index 0000000000..f3dc38d51b
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/Vserver2_Found_VServer1_Not_Found.json
@@ -0,0 +1,167 @@
+{
+ "auditList": [
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1",
+ "interfaceName": "test_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2",
+ "interfaceName": "test_port_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": true,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+ },
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c",
+ "interfaceName": "ssc_1_trusted_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56",
+ "interfaceName": "ssc_1_service1_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b",
+ "interfaceName": "ssc_1_mgmt_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff",
+ "interfaceName": "ssc_1_mgmt_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4",
+ "interfaceName": "ssc_1_service2_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8",
+ "interfaceName": "ssc_1_int_ha_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+ }
+ ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/Vservers_Not_Found.json b/adapters/mso-openstack-adapters/src/test/resources/Vservers_Not_Found.json
new file mode 100644
index 0000000000..d9089dc099
--- /dev/null
+++ b/adapters/mso-openstack-adapters/src/test/resources/Vservers_Not_Found.json
@@ -0,0 +1,167 @@
+{
+ "auditList": [
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz1",
+ "interfaceName": "test_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adz2",
+ "interfaceName": "test_port_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4dz/l-interfaces/l-interface/test_port_2"
+ },
+ {
+ "aaiObject": {
+ "vserverId": "3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ "aaiObjectType": "vserver",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "dec8bdc7-5718-41dc-bfbb-561ff6eeb81c",
+ "interfaceName": "ssc_1_trusted_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_trusted_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "1c56a24b-5f03-435a-850d-31cd4252de56",
+ "interfaceName": "ssc_1_service1_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "0d9cd813-2ae1-46c0-9ebb-48081f6cffbb",
+ "interfaceName": "service1_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "b7019dd0-2ee9-4447-bdef-ac25676b205a",
+ "interfaceName": "service1_sub_interface_2",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service1_port_0/l-interfaces/l-interface/service1_sub_interface_2"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "12afcd28-929f-4d80-8a5a-0833bfd5e20b",
+ "interfaceName": "ssc_1_mgmt_port_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "80baec42-ffae-425f-ad8c-3f7b2c24bfff",
+ "interfaceName": "ssc_1_mgmt_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_mgmt_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "13eddf95-4cf3-45f2-823a-2d890a6549b4",
+ "interfaceName": "ssc_1_service2_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": [],
+ "linterfaces": {
+ "linterface": [
+ {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ }
+ ]
+ }
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "f711be16-2654-4a09-b89d-0511fda20e81",
+ "interfaceName": "service2_sub_interface_1",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "sub-l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_service2_port_0/l-interfaces/l-interface/service2_sub_interface_1"
+ },
+ {
+ "aaiObject": {
+ "interfaceId": "9cab2903-70f7-44fd-b681-491d6ae2adb8",
+ "interfaceName": "ssc_1_int_ha_port_0",
+ "l3InterfaceIpv4AddressList": [],
+ "l3InterfaceIpv6AddressList": []
+ },
+ "aaiObjectType": "l-interface",
+ "doesObjectExist": false,
+ "resourceURI": "/cloud-infrastructure/cloud-regions/cloud-region/cloudOwner/cloudRegion/tenants/tenant/tenantId/vservers/vserver/3a4c2ca5-27b3-4ecc-98c5-06804867c4db/l-interfaces/l-interface/ssc_1_int_ha_port_0"
+ }
+ ]
+}
diff --git a/adapters/mso-openstack-adapters/src/test/resources/application-test.yaml b/adapters/mso-openstack-adapters/src/test/resources/application-test.yaml
index 398885cd08..694aedae10 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/application-test.yaml
+++ b/adapters/mso-openstack-adapters/src/test/resources/application-test.yaml
@@ -64,6 +64,8 @@ tomcat:
max-threads: 50
mso:
logPath: logs
+ msb-ip: localhost
+ msb-port: ${wiremock.server.port}
catalog:
db:
spring:
@@ -75,6 +77,10 @@ mso:
core-pool-size: 50
max-pool-size: 50
queue-capacity: 500
+ workflow:
+ topics:
+ retryMultiplier: 60000
+ retrySequence: 1, 1, 2, 3, 5, 8, 13, 20
spring:
datasource:
url: jdbc:mariadb://localhost:3307/catalogdb
diff --git a/adapters/mso-openstack-adapters/src/test/resources/data.sql b/adapters/mso-openstack-adapters/src/test/resources/data.sql
index 77df06bb92..3f6abc4f63 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/data.sql
+++ b/adapters/mso-openstack-adapters/src/test/resources/data.sql
@@ -1,4 +1,4 @@
-
+set foreign_key_checks=0;
insert into heat_files(artifact_uuid, name, version, description, body, artifact_checksum, creation_timestamp) values
('00535bdd-0878-4478-b95a-c575c742bfb0', 'nimbus-ethernet-gw', '1', 'created from csar', 'DEVICE=$dev\nBOOTPROTO=none\nNM_CONTROLLED=no\nIPADDR=$ip\nNETMASK=$netmask\nGATEWAY=$gateway\n', 'MANUAL RECORD', '2017-01-21 23:56:43');
@@ -29,24 +29,19 @@ insert into heat_environment(artifact_uuid, name, version, description, body, ar
insert into vnf_resource(orchestration_mode, description, creation_timestamp, model_uuid, aic_version_min, aic_version_max, model_invariant_uuid, model_version, model_name, tosca_node_type, heat_template_artifact_uuid) values
('HEAT', '1607 vSAMP10a - inherent network', '2017-04-14 21:46:28', 'ff2ae348-214a-11e7-93ae-92361f002671', '', '', '2fff5b20-214b-11e7-93ae-92361f002671', '1.0', 'vSAMP10a', 'VF', null);
-insert into vnf_resource_customization(model_customization_uuid, model_instance_name, min_instances, max_instances, availability_zone_max_count, nf_type, nf_role, nf_function, nf_naming_code, creation_timestamp, vnf_resource_model_uuid, multi_stage_design) values
-('68dc9a92-214c-11e7-93ae-92361f002671', 'vSAMP10a 1', '0', '0', '0', 'vSAMP', 'vSAMP', 'vSAMP', 'vSAMP', '2017-05-26 15:08:24', 'ff2ae348-214a-11e7-93ae-92361f002671', null);
+insert into vnf_resource_customization(model_customization_uuid, model_instance_name, min_instances, max_instances, availability_zone_max_count, nf_type, nf_role, nf_function, nf_naming_code, creation_timestamp, vnf_resource_model_uuid, multi_stage_design,service_model_uuid) values
+('68dc9a92-214c-11e7-93ae-92361f002671', 'vSAMP10a 1', '0', '0', '0', 'vSAMP', 'vSAMP', 'vSAMP', 'vSAMP', '2017-05-26 15:08:24', 'ff2ae348-214a-11e7-93ae-92361f002671', null,'5df8b6de-2083-11e7-93ae-92361f002671');
insert into vf_module(model_uuid, model_invariant_uuid, model_version, model_name, description, is_base, heat_template_artifact_uuid, vol_heat_template_artifact_uuid, creation_timestamp, vnf_resource_model_uuid) values
-
('20c4431c-246d-11e7-93ae-92361f002671', '78ca26d0-246d-11e7-93ae-92361f002671', '2', 'vSAMP10aDEV::base::module-0', 'vSAMP10a DEV Base', '1', 'ff874603-4222-11e7-9252-005056850d2e', null, '2016-09-14 18:19:56', 'ff2ae348-214a-11e7-93ae-92361f002671'),
('066de97e-253e-11e7-93ae-92361f002671', '64efd51a-2544-11e7-93ae-92361f002671', '2', 'vSAMP10aDEV::PCM::module-1', 'vSAMP10a DEV PCM', '0', 'ff87482f-4222-11e7-9252-005056850d2e', null, '2016-09-14 18:19:56', 'ff2ae348-214a-11e7-93ae-92361f002671');
-insert into vf_module_customization(model_customization_uuid, label, initial_count, min_instances, max_instances, availability_zone_count, heat_environment_artifact_uuid, vol_environment_artifact_uuid, creation_timestamp, vf_module_model_uuid) values
-('cb82ffd8-252a-11e7-93ae-92361f002671', 'base', '1', '0', '0', '0', 'fefb1601-4222-11e7-9252-005056850d2e', null, '2017-05-26 15:08:23', '20c4431c-246d-11e7-93ae-92361f002671'),
-('b4ea86b4-253f-11e7-93ae-92361f002671', 'PCM', '0', '0', '0', '0', 'fefb1751-4333-11e7-9252-005056850d2e', null, '2017-05-26 15:08:23', '066de97e-253e-11e7-93ae-92361f002671');
+insert into vf_module_customization(model_customization_uuid, label, initial_count, min_instances, max_instances, availability_zone_count, heat_environment_artifact_uuid, vol_environment_artifact_uuid, creation_timestamp, vf_module_model_uuid,VNF_RESOURCE_CUSTOMIZATION_ID) values
+('cb82ffd8-252a-11e7-93ae-92361f002671', 'base', '1', '0', '0', '0', 'fefb1601-4222-11e7-9252-005056850d2e', null, '2017-05-26 15:08:23', '20c4431c-246d-11e7-93ae-92361f002671',2),
+('b4ea86b4-253f-11e7-93ae-92361f002671', 'PCM', '0', '0', '0', '0', 'fefb1751-4333-11e7-9252-005056850d2e', null, '2017-05-26 15:08:23', '066de97e-253e-11e7-93ae-92361f002671',2);
-insert into vnf_res_custom_to_vf_module_custom(vnf_resource_cust_model_customization_uuid, vf_module_cust_model_customization_uuid, creation_timestamp) values
-('68dc9a92-214c-11e7-93ae-92361f002671', 'cb82ffd8-252a-11e7-93ae-92361f002671', '2017-05-26 15:08:24'),
-('68dc9a92-214c-11e7-93ae-92361f002671', 'b4ea86b4-253f-11e7-93ae-92361f002671', '2017-05-26 15:08:24');
-
insert into allotted_resource(model_uuid, model_invariant_uuid, model_version, model_name, tosca_node_type, subcategory, description, creation_timestamp) values
('f6b7d4c6-e8a4-46e2-81bc-31cad5072842', 'b7a1b78e-6b6b-4b36-9698-8c9530da14af', '1.0', 'Tunnel_Xconn', '', '', '', '2017-05-26 15:08:24');
@@ -88,22 +83,15 @@ insert into collection_network_resource_customization(model_customization_uuid,
insert into vnf_resource(orchestration_mode, description, creation_timestamp, model_uuid, aic_version_min, aic_version_max, model_invariant_uuid, model_version, model_name, tosca_node_type, heat_template_artifact_uuid) values
('HEAT', '1607 vSAMP10a - inherent network', '2017-04-14 21:46:28', 'ff2ae348-214a-11e7-93ae-92361f002672', '', '', '2fff5b20-214b-11e7-93ae-92361f002671', '2.0', 'vSAMP10a', 'VF', null);
-insert into vnf_resource_customization(model_customization_uuid, model_instance_name, min_instances, max_instances, availability_zone_max_count, nf_type, nf_role, nf_function, nf_naming_code, creation_timestamp, vnf_resource_model_uuid, multi_stage_design) values
-('68dc9a92-214c-11e7-93ae-92361f002672', 'vSAMP10a 2', '0', '0', '0', 'vSAMP', 'vSAMP', 'vSAMP', 'vSAMP', '2017-05-26 15:08:24', 'ff2ae348-214a-11e7-93ae-92361f002672', null);
insert into vf_module(model_uuid, model_invariant_uuid, model_version, model_name, description, is_base, heat_template_artifact_uuid, vol_heat_template_artifact_uuid, creation_timestamp, vnf_resource_model_uuid) values
('20c4431c-246d-11e7-93ae-92361f002672', '78ca26d0-246d-11e7-93ae-92361f002671', '2', 'vSAMP10aDEV::base::module-0', 'vSAMP10a DEV Base', '1', 'ff874603-4222-11e7-9252-005056850d2e', null, '2016-09-14 18:19:56', 'ff2ae348-214a-11e7-93ae-92361f002671'),
('066de97e-253e-11e7-93ae-92361f002672', '64efd51a-2544-11e7-93ae-92361f002671', '2', 'vSAMP10aDEV::PCM::module-1', 'vSAMP10a DEV PCM', '0', 'ff87482f-4222-11e7-9252-005056850d2e', null, '2016-09-14 18:19:56', 'ff2ae348-214a-11e7-93ae-92361f002671');
-insert into vf_module_customization(model_customization_uuid, label, initial_count, min_instances, max_instances, availability_zone_count, heat_environment_artifact_uuid, vol_environment_artifact_uuid, creation_timestamp, vf_module_model_uuid) values
-('cb82ffd8-252a-11e7-93ae-92361f002672', 'base', '1', '0', '0', '0', 'fefb1601-4222-11e7-9252-005056850d2e', null, '2017-05-26 15:08:23', '20c4431c-246d-11e7-93ae-92361f002672'),
-('b4ea86b4-253f-11e7-93ae-92361f002672', 'PCM', '0', '0', '0', '0', 'fefb1751-4333-11e7-9252-005056850d2e', null, '2017-05-26 15:08:23', '066de97e-253e-11e7-93ae-92361f002672');
-
-
-insert into vnf_res_custom_to_vf_module_custom(vnf_resource_cust_model_customization_uuid, vf_module_cust_model_customization_uuid, creation_timestamp) values
-('68dc9a92-214c-11e7-93ae-92361f002672', 'cb82ffd8-252a-11e7-93ae-92361f002672', '2017-05-26 15:08:24'),
-('68dc9a92-214c-11e7-93ae-92361f002672', 'b4ea86b4-253f-11e7-93ae-92361f002672', '2017-05-26 15:08:24');
+insert into vf_module_customization(model_customization_uuid, label, initial_count, min_instances, max_instances, availability_zone_count, heat_environment_artifact_uuid, vol_environment_artifact_uuid, creation_timestamp, vf_module_model_uuid,VNF_RESOURCE_CUSTOMIZATION_ID) values
+('cb82ffd8-252a-11e7-93ae-92361f002672', 'base', '1', '0', '0', '0', 'fefb1601-4222-11e7-9252-005056850d2e', null, '2017-05-26 15:08:23', '20c4431c-246d-11e7-93ae-92361f002672',2),
+('b4ea86b4-253f-11e7-93ae-92361f002672', 'PCM', '0', '0', '0', '0', 'fefb1751-4333-11e7-9252-005056850d2e', null, '2017-05-26 15:08:23', '066de97e-253e-11e7-93ae-92361f002672',2);
insert into vf_module_to_heat_files(vf_module_model_uuid, heat_files_artifact_uuid) values
@@ -116,12 +104,8 @@ insert into network_resource_customization_to_service(service_model_uuid, resour
('5df8b6de-2083-11e7-93ae-92361f002672', '3bdbb104-476c-483e-9f8b-c095b3d308ac');
-insert into vnf_resource_customization_to_service(service_model_uuid, resource_model_customization_uuid) values
-('5df8b6de-2083-11e7-93ae-92361f002671', '68dc9a92-214c-11e7-93ae-92361f002671'),
-('5df8b6de-2083-11e7-93ae-92361f002672', '68dc9a92-214c-11e7-93ae-92361f002672');
-
insert into allotted_resource_customization_to_service(service_model_uuid, resource_model_customization_uuid) values
-('5df8b6de-2083-11e7-93ae-92361f002671', '367a8ba9-057a-4506-b106-fbae818597c6' ),
+('5df8b6de-2083-11e7-93ae-92361f002671', '367a8ba9-057a-4506-b106-fbae818597c6'),
('5df8b6de-2083-11e7-93ae-92361f002672', '367a8ba9-057a-4506-b106-fbae818597c6');
@@ -140,7 +124,7 @@ VALUES ('97b73b0f-2860-49e5-b9c5-b6f91e4ee4a8', 'fsb_volume_image_name_0', b'1',
('97b73b0f-2860-49e5-b9c5-b6f91e4ee4a8', 'fsb_volume_size_0', b'1', 'number', NULL),
('97b73b0f-2860-49e5-b9c5-b6f91e4ee4a8', 'fsb_volume_type_0', b'1', 'string', NULL);
- INSERT INTO `vf_module` (`MODEL_UUID`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `DESCRIPTION`, `IS_BASE`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `VOL_HEAT_TEMPLATE_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`)
+INSERT INTO `vf_module` (`MODEL_UUID`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `DESCRIPTION`, `IS_BASE`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `VOL_HEAT_TEMPLATE_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`)
VALUES ('207fe0dc-4c89-4e5d-9a78-345e99ef7fbe', '547e9ac6-0489-41b6-8289-a7705f6e5c9d', '1', 'TestVnfType::TestModule-0', NULL, 1, 'd187c228-71c6-4c6d-8f33-cd1243442d0a', '97b73b0f-2860-49e5-b9c5-b6f91e4ee4a8', '2018-05-13 12:12:09', 'c5efeb55-4ade-49b8-815c-6a6391f6c46b');
INSERT INTO `heat_environment` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('f4a21b58-5654-4cf6-9c50-de42004fe2b4', 'base_vmme.env', '2', 'Auto-generated HEAT Environment deployment artifact', 'parameters:\n Internal1_allow_transit: "True"\n Internal1_dhcp: "False"\n Internal1_forwarding_mode: "l2"\n Internal1_net_cidr: "169.253.0.0"\n Internal1_net_cidr_len: "17"\n Internal1_net_gateway: "169.253.0.3"\n Internal1_rpf: "disable"\n Internal1_shared: "False"\n Internal2_allow_transit: "True"\n Internal2_dhcp: "False"\n Internal2_forwarding_mode: "l2"\n Internal2_net_cidr: "169.255.0.0"\n Internal2_net_cidr_len: "17"\n Internal2_net_gateway: "169.255.0.3"\n Internal2_rpf: "disable"\n Internal2_shared: "False"\n domain_name: "default-domain"\n fsb1_Internal1_mac: "00:80:37:0E:0B:12"\n fsb1_Internal2_mac: "00:80:37:0E:0B:12"\n fsb2_Internal1_mac: "00:80:37:0E:0D:12"\n fsb2_Internal2_mac: "00:80:37:0E:0D:12"\n fsb_flavor_name: "nv.c20r64d1"\n gtp_sec_group_name: "gtp-sec-group"\n int1_sec_group_name: "int1-sec-group"\n int2_sec_group_name: "int2-sec-group"\n ncb1_Internal1_mac: "00:80:37:0E:09:12"\n ncb1_Internal2_mac: "00:80:37:0E:09:12"\n ncb2_Internal1_mac: "00:80:37:0E:0F:12"\n ncb2_Internal2_mac: "00:80:37:0E:0F:12"\n ncb_flavor_name: "nv.c20r64d1"\n oam_sec_group_name: "oam-sec-group"\n pxe_image_name: "MME_PXE-Boot_16ACP04_GA.qcow2"\n sctp-a-IPv6_ethertype: "IPv6"\n sctp-a-display_name: "epc-sctp-a-ipv4v6-sec-group"\n sctp-a-dst_subnet_prefix_v6: "::"\n sctp-a-egress-dst_end_port: 65535\n sctp-a-egress-dst_start_port: 0\n sctp-a-egress-src_end_port: 65535\n sctp-a-egress-src_start_port: 0\n sctp-a-egress_action: "pass"\n sctp-a-egress_dst_subnet_prefix: "0.0.0.0"\n sctp-a-egress_dst_subnet_prefix_len: 0\n sctp-a-egress_ethertype: "IPv4"\n sctp-a-egress_rule_application: "any"\n sctp-a-egress_rule_protocol: "icmp"\n sctp-a-egress_src_addresses: "local"\n sctp-a-ingress-dst_end_port: 65535\n sctp-a-ingress-dst_start_port: 0\n sctp-a-ingress-src_end_port: 65535\n sctp-a-ingress-src_start_port: 0\n sctp-a-ingress-src_subnet_prefix: "0.0.0.0"\n sctp-a-ingress-src_subnet_prefix_len: 0\n sctp-a-ingress_action: "pass"\n sctp-a-ingress_dst_addresses: "local"\n sctp-a-ingress_ethertype: "IPv4"\n sctp-a-ingress_rule_application: "any"\n sctp-a-ingress_rule_protocol: "icmp"\n sctp-a-ipv6-egress-dst_start_port: "0"\n sctp-a-ipv6-egress_action: "pass"\n sctp-a-ipv6-egress_dst_end_port: "65535"\n sctp-a-ipv6-egress_dst_subnet_prefix: "0.0.0.0"\n sctp-a-ipv6-egress_dst_subnet_prefix_len: "0"\n sctp-a-ipv6-egress_ethertype: "IPv4"\n sctp-a-ipv6-egress_rule_application: "any"\n sctp-a-ipv6-egress_rule_protocol: "any"\n sctp-a-ipv6-egress_src_addresses: "local"\n sctp-a-ipv6-egress_src_end_port: "65535"\n sctp-a-ipv6-egress_src_start_port: "0"\n sctp-a-ipv6-ingress-dst_end_port: "65535"\n sctp-a-ipv6-ingress-dst_start_port: "0"\n sctp-a-ipv6-ingress-src_end_port: 65535\n sctp-a-ipv6-ingress-src_start_port: 0\n sctp-a-ipv6-ingress_action: "pass"\n sctp-a-ipv6-ingress_dst_addresses: "local"\n sctp-a-ipv6-ingress_ethertype: "IPv4"\n sctp-a-ipv6-ingress_rule_application: "any"\n sctp-a-ipv6-ingress_rule_protocol: "any"\n sctp-a-ipv6-ingress_src_subnet_prefix: "0.0.0.0"\n sctp-a-ipv6-ingress_src_subnet_prefix_len: "0"\n sctp-a-name: "epc-sctp-a-ipv4v6-sec-group"\n sctp-a-src_subnet_prefix_v6: "::"\n sctp-b-IPv6_ethertype: "IPv6"\n sctp-b-display_name: "epc-sctp-b-ipv4v6-sec-group"\n sctp-b-dst_subnet_prefix_v6: "::"\n sctp-b-egress-dst_end_port: 65535\n sctp-b-egress-dst_start_port: 0\n sctp-b-egress-src_end_port: 65535\n sctp-b-egress-src_start_port: 0\n sctp-b-egress_action: "pass"\n sctp-b-egress_dst_subnet_prefix: "0.0.0.0"\n sctp-b-egress_dst_subnet_prefix_len: 0\n sctp-b-egress_ethertype: "IPv4"\n sctp-b-egress_rule_application: "any"\n sctp-b-egress_rule_protocol: "icmp"\n sctp-b-egress_src_addresses: "local"\n sctp-b-ingress-dst_end_port: 65535\n sctp-b-ingress-dst_start_port: 0\n sctp-b-ingress-src_end_port: 65535\n sctp-b-ingress-src_start_port: 0\n sctp-b-ingress-src_subnet_prefix: "0.0.0.0"\n sctp-b-ingress-src_subnet_prefix_len: 0\n sctp-b-ingress_action: "pass"\n sctp-b-ingress_dst_addresses: "local"\n sctp-b-ingress_ethertype: "IPv4"\n sctp-b-ingress_rule_application: "any"\n sctp-b-ingress_rule_protocol: "icmp"\n sctp-b-ipv6-egress-dst_start_port: "0"\n sctp-b-ipv6-egress_action: "pass"\n sctp-b-ipv6-egress_dst_end_port: "65535"\n sctp-b-ipv6-egress_dst_subnet_prefix: "0.0.0.0"\n sctp-b-ipv6-egress_dst_subnet_prefix_len: "0"\n sctp-b-ipv6-egress_ethertype: "IPv4"\n sctp-b-ipv6-egress_rule_application: "any"\n sctp-b-ipv6-egress_rule_protocol: "any"\n sctp-b-ipv6-egress_src_addresses: "local"\n sctp-b-ipv6-egress_src_end_port: "65535"\n sctp-b-ipv6-egress_src_start_port: "0"\n sctp-b-ipv6-ingress-dst_end_port: "65535"\n sctp-b-ipv6-ingress-dst_start_port: "0"\n sctp-b-ipv6-ingress-src_end_port: 65535\n sctp-b-ipv6-ingress-src_start_port: 0\n sctp-b-ipv6-ingress_action: "pass"\n sctp-b-ipv6-ingress_dst_addresses: "local"\n sctp-b-ipv6-ingress_ethertype: "IPv4"\n sctp-b-ipv6-ingress_rule_application: "any"\n sctp-b-ipv6-ingress_rule_protocol: "any"\n sctp-b-ipv6-ingress_src_subnet_prefix: "0.0.0.0"\n sctp-b-ipv6-ingress_src_subnet_prefix_len: "0"\n sctp-b-name: "epc-sctp-b-ipv4v6-sec-group"\n sctp-b-src_subnet_prefix_v6: "::"\n sctp_rule_protocol: "132"\n vlc_st_availability_zone: "True"\n vlc_st_interface_type_gtp: "other0"\n vlc_st_interface_type_int1: "other1"\n vlc_st_interface_type_int2: "other2"\n vlc_st_interface_type_oam: "management"\n vlc_st_interface_type_sctp_a: "left"\n vlc_st_interface_type_sctp_b: "right"\n vlc_st_service_mode: "in-network-nat"\n vlc_st_service_type: "firewall"\n vlc_st_version: "2"\n vlc_st_virtualization_type: "virtual-machine"\n availability_zone_0: \n availability_zone_1: \n availability_zone_2: \n availability_zone_3: \n fsb_name_0: \n fsb_name_1: \n fsb_oam_ip_0: \n fsb_oam_ip_1: \n fsb_volume_id_0: \n fsb_volume_id_1: \n gtp_net_fqdn: \n gtp_net_name: \n ncb_name_0: \n ncb_name_1: \n oam_net_fqdn: \n oam_net_name: \n sctp_a_net_fqdn: \n sctp_a_net_name: \n sctp_b_net_fqdn: \n sctp_b_net_name: \n vf_module_id: \n vlc_gtp_route_prefixes: \n vlc_oam_route_prefixes: \n vlc_sctp_a_route_prefixes: \n vlc_sctp_b_route_prefixes: \n vnf_id: \n vnf_name: \n', 'MGJjYzM2ZWY1ODBjYzc1MzBiMGQxZmI4N2MyZmFkY2E=', '2018-05-13 12:12:09');
@@ -148,7 +132,8 @@ INSERT INTO `heat_environment` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION
- INSERT INTO `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`, `LABEL`, `INITIAL_COUNT`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_COUNT`, `HEAT_ENVIRONMENT_ARTIFACT_UUID`, `VOL_ENVIRONMENT_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VF_MODULE_MODEL_UUID`) VALUES ('9b339a61-69ca-465f-86b8-1c72c582b8e8', 'base_vmme', 1, 1, 1, NULL, 'f4a21b58-5654-4cf6-9c50-de42004fe2b4', '3375f64b-4709-4802-8713-7a164763f9cd', '2018-05-13 12:12:09', '207fe0dc-4c89-4e5d-9a78-345e99ef7fbe');
+INSERT INTO `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`, `LABEL`, `INITIAL_COUNT`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_COUNT`, `HEAT_ENVIRONMENT_ARTIFACT_UUID`, `VOL_ENVIRONMENT_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VF_MODULE_MODEL_UUID`,VNF_RESOURCE_CUSTOMIZATION_ID)
+VALUES ('9b339a61-69ca-465f-86b8-1c72c582b8e8', 'base_vmme', 1, 1, 1, NULL, 'f4a21b58-5654-4cf6-9c50-de42004fe2b4', '3375f64b-4709-4802-8713-7a164763f9cd', '2018-05-13 12:12:09', '207fe0dc-4c89-4e5d-9a78-345e99ef7fbe',2);
INSERT INTO `cloudify_managers` (`ID`, `CLOUDIFY_URL`, `USERNAME`, `PASSWORD`, `VERSION`, `LAST_UPDATED_BY`, `CREATION_TIMESTAMP`, `UPDATE_TIMESTAMP`) VALUES ('mtn13', 'http://localhost:28090/v2.0', 'm93945', '93937EA01B94A10A49279D4572B48369', NULL, 'MSO_USER', '2018-07-17 14:05:08', '2018-07-17 14:05:08');
@@ -157,7 +142,7 @@ INSERT INTO `identity_services` (`ID`, `IDENTITY_URL`, `MSO_ID`, `MSO_PASS`, `PR
INSERT INTO `cloud_sites` (`ID`, `region_id`, `identity_service_id`, `cloud_version`, `clli`, `cloudify_id`, `platform`, `orchestrator`, `CREATION_TIMESTAMP`, `UPDATE_TIMESTAMP`) VALUES ('MTN13', 'mtn13', 'MTN13', '3.0', 'MDT13', 'mtn13', null, 'orchestrator', '2018-07-17 14:06:28', '2018-07-17 14:06:28');
-
+set foreign_key_checks=1;
diff --git a/adapters/mso-openstack-adapters/src/test/resources/schema.sql b/adapters/mso-openstack-adapters/src/test/resources/schema.sql
index ac08f8b645..d9a38be771 100644
--- a/adapters/mso-openstack-adapters/src/test/resources/schema.sql
+++ b/adapters/mso-openstack-adapters/src/test/resources/schema.sql
@@ -1,834 +1,1205 @@
-
-create table `allotted_resource` (
- `model_uuid` varchar(200) not null,
- `model_invariant_uuid` varchar(200) not null,
- `model_version` varchar(20) not null,
- `model_name` varchar(200) not null,
- `tosca_node_type` varchar(200) default null,
- `subcategory` varchar(200) default null,
- `description` varchar(1200) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`model_uuid`)
-) engine=innodb default charset=latin1;
-
-
-
-
-create table `allotted_resource_customization` (
- `model_customization_uuid` varchar(200) not null,
- `model_instance_name` varchar(200) not null,
- `providing_service_model_uuid` varchar(200) default null,
- `providing_service_model_invariant_uuid` varchar(200) default null,
- `providing_service_model_name` varchar(200) default null,
- `target_network_role` varchar(200) default null,
- `nf_type` varchar(200) default null,
- `nf_role` varchar(200) default null,
- `nf_function` varchar(200) default null,
- `nf_naming_code` varchar(200) default null,
- `min_instances` int(11) default null,
- `max_instances` int(11) default null,
- `ar_model_uuid` varchar(200) not null,
- `resource_input` varchar(20000) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`model_customization_uuid`),
- key `fk_allotted_resource_customization__allotted_resource1_idx` (`ar_model_uuid`),
- constraint `fk_allotted_resource_customization__allotted_resource1` foreign key (`ar_model_uuid`) references `allotted_resource` (`model_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-
-create table `heat_environment` (
- `artifact_uuid` varchar(200) not null,
- `name` varchar(100) not null,
- `version` varchar(20) not null,
- `description` varchar(1200) default null,
- `body` longtext not null,
- `artifact_checksum` varchar(200) not null default 'manual record',
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`artifact_uuid`)
-) engine=innodb default charset=latin1;
-
-
-
-create table `heat_files` (
- `artifact_uuid` varchar(200) not null,
- `name` varchar(200) not null,
- `version` varchar(20) not null,
- `description` varchar(1200) default null,
- `body` longtext not null,
- `artifact_checksum` varchar(200) not null default 'manual record',
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`artifact_uuid`)
-) engine=innodb default charset=latin1;
-
-
-
-
-create table `heat_template` (
- `artifact_uuid` varchar(200) not null,
- `name` varchar(200) not null,
- `version` varchar(20) not null,
- `description` varchar(1200) default null,
- `body` longtext not null,
- `timeout_minutes` int(11) default null,
- `artifact_checksum` varchar(200) not null default 'manual record',
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`artifact_uuid`)
-) engine=innodb default charset=latin1;
-
-
-
-create table `heat_nested_template` (
- `parent_heat_template_uuid` varchar(200) not null,
- `child_heat_template_uuid` varchar(200) not null,
- `provider_resource_file` varchar(100) default null,
- primary key (`parent_heat_template_uuid`,`child_heat_template_uuid`),
- key `fk_heat_nested_template__heat_template2_idx` (`child_heat_template_uuid`),
- constraint `fk_heat_nested_template__child_heat_temp_uuid__heat_template1` foreign key (`child_heat_template_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade,
- constraint `fk_heat_nested_template__parent_heat_temp_uuid__heat_template1` foreign key (`parent_heat_template_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-
-create table `heat_template_params` (
- `heat_template_artifact_uuid` varchar(200) not null,
- `param_name` varchar(100) not null,
- `is_required` bit(1) not null,
- `param_type` varchar(20) default null,
- `param_alias` varchar(45) default null,
- primary key (`heat_template_artifact_uuid`,`param_name`),
- constraint `fk_heat_template_params__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-create table `network_recipe` (
- `id` int(11) not null auto_increment,
- `model_name` varchar(20) not null,
- `action` varchar(50) not null,
- `description` varchar(1200) default null,
- `orchestration_uri` varchar(256) not null,
- `network_param_xsd` varchar(2048) default null,
- `recipe_timeout` int(11) default null,
- `service_type` varchar(45) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- `version_str` varchar(20) not null,
- primary key (`id`),
- unique key `uk_rl4f296i0p8lyokxveaiwkayi` (`model_name`,`action`,`version_str`)
-) engine=innodb auto_increment=178 default charset=latin1;
-
-
-
-
-create table `temp_network_heat_template_lookup` (
- `network_resource_model_name` varchar(200) not null,
- `heat_template_artifact_uuid` varchar(200) not null,
- `aic_version_min` varchar(20) not null,
- `aic_version_max` varchar(20) default null,
- primary key (`network_resource_model_name`),
- key `fk_temp_network_heat_template_lookup__heat_template1_idx` (`heat_template_artifact_uuid`),
- constraint `fk_temp_network_heat_template_lookup__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete no action on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-create table `network_resource` (
- `model_uuid` varchar(200) not null,
- `model_name` varchar(200) not null,
- `model_invariant_uuid` varchar(200) default null,
- `description` varchar(1200) default null,
- `heat_template_artifact_uuid` varchar(200) null,
- `neutron_network_type` varchar(20) default null,
- `model_version` varchar(20) default null,
- `tosca_node_type` varchar(200) default null,
- `aic_version_min` varchar(20) null,
- `aic_version_max` varchar(20) default null,
- `orchestration_mode` varchar(20) default 'heat',
- `resource_category` varchar(20) default null,
- `resource_sub_category` varchar(20) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`model_uuid`),
- key `fk_network_resource__temp_network_heat_template_lookup1_idx` (`model_name`),
- key `fk_network_resource__heat_template1_idx` (`heat_template_artifact_uuid`),
- constraint `fk_network_resource__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete no action on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-
-
-create table `network_resource_customization` (
- `model_customization_uuid` varchar(200) not null,
- `model_instance_name` varchar(200) not null,
- `network_technology` varchar(45) default null,
- `network_type` varchar(45) default null,
- `network_role` varchar(200) default null,
- `network_scope` varchar(45) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- `network_resource_model_uuid` varchar(200) not null,
- `resource_input` varchar(20000) default null,
- primary key (`model_customization_uuid`),
- key `fk_network_resource_customization__network_resource1_idx` (`network_resource_model_uuid`),
- constraint `fk_network_resource_customization__network_resource1` foreign key (`network_resource_model_uuid`) references `network_resource` (`model_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-
-
-create table `tosca_csar` (
- `artifact_uuid` varchar(200) not null,
- `name` varchar(200) not null,
- `version` varchar(20) not null,
- `description` varchar(1200) default null,
- `artifact_checksum` varchar(200) not null,
- `url` varchar(200) not null,
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`artifact_uuid`)
-) engine=innodb default charset=latin1;
-
-
-
-
-create table `service` (
- `model_uuid` varchar(200) not null,
- `model_name` varchar(200) not null,
- `model_invariant_uuid` varchar(200) not null,
- `model_version` varchar(20) not null,
- `description` varchar(1200) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- `tosca_csar_artifact_uuid` varchar(200) default null,
- `service_type` varchar(200) default null,
- `service_role` varchar(200) default null,
- `environment_context` varchar(200) default null,
- `workload_context` varchar(200) default null,
- `resource_order` varchar(200) default null,
- primary key (`model_uuid`),
- key `fk_service__tosca_csar1_idx` (`tosca_csar_artifact_uuid`),
- constraint `fk_service__tosca_csar1` foreign key (`tosca_csar_artifact_uuid`) references `tosca_csar` (`artifact_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-create table `service_recipe` (
- `id` int(11) not null auto_increment,
- `action` varchar(50) not null,
- `version_str` varchar(20) default null,
- `description` varchar(1200) default null,
- `orchestration_uri` varchar(256) not null,
- `service_param_xsd` varchar(2048) default null,
- `recipe_timeout` int(11) default null,
- `service_timeout_interim` int(11) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- `service_model_uuid` varchar(200) not null,
- primary key (`id`),
- unique key `uk_7fav5dkux2v8g9d2i5ymudlgc` (`service_model_uuid`,`action`),
- key `fk_service_recipe__service1_idx` (`service_model_uuid`),
- constraint `fk_service_recipe__service1` foreign key (`service_model_uuid`) references `service` (`model_uuid`) on delete cascade on update cascade
-) engine=innodb auto_increment=86 default charset=latin1;
-
-
-
-create table `vnf_resource` (
- `orchestration_mode` varchar(20) not null default 'heat',
- `description` varchar(1200) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- `model_uuid` varchar(200) not null,
- `aic_version_min` varchar(20) default null,
- `aic_version_max` varchar(20) default null,
- `model_invariant_uuid` varchar(200) default null,
- `model_version` varchar(20) not null,
- `model_name` varchar(200) default null,
- `tosca_node_type` varchar(200) default null,
- `resource_category` varchar(200) default null,
- `resource_sub_category` varchar(200) default null,
- `heat_template_artifact_uuid` varchar(200) default null,
- primary key (`model_uuid`),
- key `fk_vnf_resource__heat_template1` (`heat_template_artifact_uuid`),
- constraint `fk_vnf_resource__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-
-create table `vf_module` (
- `model_uuid` varchar(200) not null,
- `model_invariant_uuid` varchar(200) default null,
- `model_version` varchar(20) not null,
- `model_name` varchar(200) not null,
- `description` varchar(1200) default null,
- `is_base` int(11) not null,
- `heat_template_artifact_uuid` varchar(200) default null,
- `vol_heat_template_artifact_uuid` varchar(200) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- `vnf_resource_model_uuid` varchar(200) not null,
- primary key (`model_uuid`,`vnf_resource_model_uuid`),
- key `fk_vf_module__vnf_resource1_idx` (`vnf_resource_model_uuid`),
- key `fk_vf_module__heat_template_art_uuid__heat_template1_idx` (`heat_template_artifact_uuid`),
- key `fk_vf_module__vol_heat_template_art_uuid__heat_template2_idx` (`vol_heat_template_artifact_uuid`),
- constraint `fk_vf_module__heat_template_art_uuid__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade,
- constraint `fk_vf_module__vnf_resource1` foreign key (`vnf_resource_model_uuid`) references `vnf_resource` (`model_uuid`) on delete cascade on update cascade,
- constraint `fk_vf_module__vol_heat_template_art_uuid__heat_template2` foreign key (`vol_heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-/*!40101 set @saved_cs_client = @@character_set_client */;
-/*!40101 set character_set_client = utf8 */;
-create table `vf_module_customization` (
- `model_customization_uuid` varchar(200) not null,
- `label` varchar(200) default null,
- `initial_count` int(11) default '0',
- `min_instances` int(11) default '0',
- `max_instances` int(11) default null,
- `availability_zone_count` int(11) default null,
- `heat_environment_artifact_uuid` varchar(200) default null,
- `vol_environment_artifact_uuid` varchar(200) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- `vf_module_model_uuid` varchar(200) not null,
- primary key (`model_customization_uuid`),
- key `fk_vf_module_customization__vf_module1_idx` (`vf_module_model_uuid`),
- key `fk_vf_module_customization__heat_env__heat_environment1_idx` (`heat_environment_artifact_uuid`),
- key `fk_vf_module_customization__vol_env__heat_environment2_idx` (`vol_environment_artifact_uuid`),
- constraint `fk_vf_module_customization__heat_env__heat_environment1` foreign key (`heat_environment_artifact_uuid`) references `heat_environment` (`artifact_uuid`) on delete cascade on update cascade,
- constraint `fk_vf_module_customization__vf_module1` foreign key (`vf_module_model_uuid`) references `vf_module` (`model_uuid`) on delete cascade on update cascade,
- constraint `fk_vf_module_customization__vol_env__heat_environment2` foreign key (`vol_environment_artifact_uuid`) references `heat_environment` (`artifact_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-/*!40101 set character_set_client = @saved_cs_client */;
-
-
-
-
-
-create table `vf_module_to_heat_files` (
- `vf_module_model_uuid` varchar(200) not null,
- `heat_files_artifact_uuid` varchar(200) not null,
- primary key (`vf_module_model_uuid`,`heat_files_artifact_uuid`),
- key `fk_vf_module_to_heat_files__heat_files__artifact_uuid1_idx` (`heat_files_artifact_uuid`),
- constraint `fk_vf_module_to_heat_files__heat_files__artifact_uuid1` foreign key (`heat_files_artifact_uuid`) references `heat_files` (`artifact_uuid`) on delete cascade on update cascade,
- constraint `fk_vf_module_to_heat_files__vf_module__model_uuid1` foreign key (`vf_module_model_uuid`) references `vf_module` (`model_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1 comment='il fait ce qu''il dit';
-
-
-
-
-create table `vnf_components` (
- `vnf_id` int(11) not null,
- `component_type` varchar(20) not null,
- `heat_template_id` int(11) default null,
- `heat_environment_id` int(11) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`vnf_id`,`component_type`)
-) engine=innodb default charset=latin1;
-
-
-
-
-create table `vnf_components_recipe` (
- `id` int(11) not null auto_increment,
- `vnf_type` varchar(200) default null,
- `vnf_component_type` varchar(45) not null,
- `action` varchar(50) not null,
- `service_type` varchar(45) default null,
- `version` varchar(20) not null,
- `description` varchar(1200) default null,
- `orchestration_uri` varchar(256) not null,
- `vnf_component_param_xsd` varchar(2048) default null,
- `recipe_timeout` int(11) default null,
- `creation_timestamp` datetime default current_timestamp,
- `vf_module_model_uuid` varchar(200) default null,
- primary key (`id`),
- unique key `uk_4dpdwddaaclhc11wxsb7h59ma` (`vf_module_model_uuid`,`vnf_component_type`,`action`,`version`)
-) engine=innodb auto_increment=26 default charset=latin1;
-
-
-
-
-create table `vnf_recipe` (
- `id` int(11) not null auto_increment,
- `vnf_type` varchar(200) default null,
- `action` varchar(50) not null,
- `service_type` varchar(45) default null,
- `version_str` varchar(20) not null,
- `description` varchar(1200) default null,
- `orchestration_uri` varchar(256) not null,
- `vnf_param_xsd` varchar(2048) default null,
- `recipe_timeout` int(11) default null,
- `creation_timestamp` datetime default current_timestamp,
- `vf_module_id` varchar(100) default null,
- primary key (`id`),
- unique key `uk_f3tvqau498vrifq3cr8qnigkr` (`vf_module_id`,`action`,`version_str`)
-) engine=innodb auto_increment=10006 default charset=latin1;
-
-
-ALTER TABLE `catalogdb`.`vnf_recipe`
-CHANGE COLUMN `VNF_TYPE` `NF_ROLE` VARCHAR(200) NULL DEFAULT NULL ;
-
-
-
-
-
-create table `vnf_resource_customization` (
- `model_customization_uuid` varchar(200) not null,
- `model_instance_name` varchar(200) not null,
- `min_instances` int(11) default null,
- `max_instances` int(11) default null,
- `availability_zone_max_count` int(11) default null,
- `nf_type` varchar(200) default null,
- `nf_role` varchar(200) default null,
- `nf_function` varchar(200) default null,
- `nf_naming_code` varchar(200) default null,
- `creation_timestamp` datetime not null default current_timestamp,
- `vnf_resource_model_uuid` varchar(200) not null,
- `multi_stage_design` varchar(20) default null,
- `resource_input` varchar(20000) default null,
- `cds_blueprint_name` varchar(200),
- `cds_blueprint_version` varchar(200),
- primary key (`model_customization_uuid`),
- key `fk_vnf_resource_customization__vnf_resource1_idx` (`vnf_resource_model_uuid`),
- constraint `fk_vnf_resource_customization__vnf_resource1` foreign key (`vnf_resource_model_uuid`) references `vnf_resource` (`model_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-
-
-
-
-create table `vnf_res_custom_to_vf_module_custom` (
- `vnf_resource_cust_model_customization_uuid` varchar(200) not null,
- `vf_module_cust_model_customization_uuid` varchar(200) not null,
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`vnf_resource_cust_model_customization_uuid`,`vf_module_cust_model_customization_uuid`),
- key `fk_vnf_res_custom_to_vf_module_custom__vf_module_customizat_idx` (`vf_module_cust_model_customization_uuid`),
- constraint `fk_vnf_res_custom_to_vf_module_custom__vf_module_customization1` foreign key (`vf_module_cust_model_customization_uuid`) references `vf_module_customization` (`model_customization_uuid`) on delete cascade on update cascade,
- constraint `fk_vnf_res_custom_to_vf_module_custom__vnf_resource_customiza1` foreign key (`vnf_resource_cust_model_customization_uuid`) references `vnf_resource_customization` (`model_customization_uuid`) on delete cascade on update cascade
-) engine=innodb default charset=latin1;
-
-
-create table if not exists external_service_to_internal_model_mapping (
-id int(11) not null,
-service_name varchar(200) not null,
-product_flavor varchar(200) null,
-subscription_service_type varchar(200) not null,
-service_model_uuid varchar(200) not null,
-primary key (id),
-unique index uk_external_service_to_internal_model_mapping
-(service_name asc, product_flavor asc, service_model_uuid asc));
-
-create table if not exists `collection_resource` (
- model_uuid varchar(200) not null,
- model_name varchar(200) not null,
- model_invariant_uuid varchar(200) not null,
- model_version varchar(20) not null,
- tosca_node_type varchar(200) not null,
- description varchar(200),
- creation_timestamp datetime not null default current_timestamp,
- primary key (`model_uuid`)
-)engine=innodb default charset=latin1;
-
-create table if not exists `collection_resource_customization` (
- model_customization_uuid varchar(200) not null,
- model_instance_name varchar(200) not null,
- role varchar(200) NULL,
- object_type varchar(200) not null,
- function varchar(200) NULL,
- collection_resource_type varchar(200) NULL,
- creation_timestamp datetime not null default current_timestamp,
- cr_model_uuid varchar(200) not null,
- primary key (`model_customization_uuid`)
-)engine=innodb default charset=latin1;
-
-create table if not exists `instance_group` (
- model_uuid varchar(200) not null,
- model_name varchar(200) not null,
- model_invariant_uuid varchar(200) not null,
- model_version varchar(20) not null,
- tosca_node_type varchar(200) NULL,
- role varchar(200) not null,
- object_type varchar(200) not null,
- creation_timestamp datetime not null default current_timestamp,
- cr_model_uuid varchar(200) not null,
- instance_group_type varchar(200) not null,
- primary key (`model_uuid`)
-)engine=innodb default charset=latin1;
-
-create table if not exists `collection_resource_instance_group_customization` (
- `collection_resource_customization_model_uuid` varchar(200) not null,
- `instance_group_model_uuid` varchar(200) not null,
- `function` varchar(200) null,
- `description` varchar(1200) null,
- `subinterface_network_quantity` int(11) null,
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`collection_resource_customization_model_uuid`, `instance_group_model_uuid`),
- index `fk_collection_resource_instance_group_customization__instan_idx` (`instance_group_model_uuid` asc),
- constraint `fk_collection_resource_instance_group_customization__collecti1`
- foreign key (`collection_resource_customization_model_uuid`)
- references `collection_resource_customization` (`model_customization_uuid`)
- on delete cascade
- on update cascade,
- constraint `fk_collection_resource_instance_group_customization__instance1`
- foreign key (`instance_group_model_uuid`)
- references `instance_group` (`model_uuid`)
- on delete cascade
- on update cascade)
-engine = innodb
-default character set = latin1;
-
-create table if not exists `vnfc_instance_group_customization` (
- `vnf_resource_customization_model_uuid` varchar(200) not null,
- `instance_group_model_uuid` varchar(200) not null,
- `function` varchar(200) null,
- `description` varchar(1200) null,
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`vnf_resource_customization_model_uuid`, `instance_group_model_uuid`),
- index `fk_vnfc_instance_group_customization__instance_group1_idx` (`instance_group_model_uuid` asc),
- constraint `fk_vnfc_instance_group_customization__vnf_resource_customizat1`
- foreign key (`vnf_resource_customization_model_uuid`)
- references `vnf_resource_customization` (`model_customization_uuid`)
- on delete cascade
- on update cascade,
- constraint `fk_vnfc_instance_group_customization__instance_group1`
- foreign key (`instance_group_model_uuid`)
- references `instance_group` (`model_uuid`)
- on delete cascade
- on update cascade)
-engine = innodb
-default character set = latin1;
-
- create table if not exists `configuration`
- ( `model_uuid` varchar(200) not null,
- `model_invariant_uuid` varchar(200) not null,
- `model_version` varchar(20) not null,
- `model_name` varchar(200) not null,
- `tosca_node_type` varchar(200) not null,
- `description` varchar(1200) null,
- `creation_timestamp` datetime not null default current_timestamp,
- primary key (`model_uuid`))
- engine = innodb auto_increment = 20654
- default character set = latin1;
-
- CREATE TABLE IF NOT EXISTS `service_proxy_customization` (
- `MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL,
- `MODEL_INSTANCE_NAME` VARCHAR(200) NOT NULL,
- `MODEL_UUID` VARCHAR(200) NOT NULL,
- `MODEL_INVARIANT_UUID` VARCHAR(200) NOT NULL,
- `MODEL_VERSION` VARCHAR(20) NOT NULL,
- `MODEL_NAME` VARCHAR(200) NOT NULL,
- `TOSCA_NODE_TYPE` VARCHAR(200) NOT NULL,
- `DESCRIPTION` VARCHAR(1200) NULL,
- `SOURCE_SERVICE_MODEL_UUID` VARCHAR(200) NOT NULL,
- `CREATION_TIMESTAMP` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+set foreign_key_checks=0;
+DROP TABLE IF EXISTS `allotted_resource`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `allotted_resource` (
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) NOT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) DEFAULT NULL,
+ `SUBCATEGORY` varchar(200) DEFAULT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`MODEL_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `allotted_resource_customization`
+--
+
+DROP TABLE IF EXISTS `allotted_resource_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `allotted_resource_customization` (
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `PROVIDING_SERVICE_MODEL_UUID` varchar(200) DEFAULT NULL,
+ `PROVIDING_SERVICE_MODEL_INVARIANT_UUID` varchar(200) DEFAULT NULL,
+ `PROVIDING_SERVICE_MODEL_NAME` varchar(200) DEFAULT NULL,
+ `TARGET_NETWORK_ROLE` varchar(200) DEFAULT NULL,
+ `NF_TYPE` varchar(200) DEFAULT NULL,
+ `NF_ROLE` varchar(200) DEFAULT NULL,
+ `NF_FUNCTION` varchar(200) DEFAULT NULL,
+ `NF_NAMING_CODE` varchar(200) DEFAULT NULL,
+ `MIN_INSTANCES` int(11) DEFAULT NULL,
+ `MAX_INSTANCES` int(11) DEFAULT NULL,
+ `RESOURCE_INPUT` varchar(20000) DEFAULT NULL,
+ `AR_MODEL_UUID` varchar(200) NOT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`),
- INDEX `fk_service_proxy_customization__service1_idx` (`SOURCE_SERVICE_MODEL_UUID` ASC),
- UNIQUE INDEX `UK_service_proxy_customization` (`MODEL_CUSTOMIZATION_UUID` ASC),
- INDEX `fk_service_proxy_customization__serv_prox_to_serv` (`MODEL_CUSTOMIZATION_UUID` ASC),
- CONSTRAINT `fk_service_proxy_resource_customization__service1`
- FOREIGN KEY (`SOURCE_SERVICE_MODEL_UUID`)
- REFERENCES `service` (`MODEL_UUID`)
- ON DELETE CASCADE
- ON UPDATE CASCADE)
-ENGINE = InnoDB
-AUTO_INCREMENT = 20654
-DEFAULT CHARACTER SET = latin1;
-
-
-create table if not exists `configuration_customization` (
-`model_customization_uuid` varchar(200) not null,
-`model_instance_name` varchar(200) not null,
-`configuration_type` varchar(200) null,
-`configuration_role` varchar(200) null,
-`configuration_function` varchar(200) null,
-`creation_timestamp` datetime not null default current_timestamp,
-`configuration_model_uuid` varchar(200) not null,
-`service_proxy_customization_model_customization_uuid` varchar(200) null,
-`configuration_customization_model_customization_uuid` varchar(200) null,
-primary key (`model_customization_uuid`),
-index `fk_configuration_customization__configuration_idx` (`configuration_model_uuid` asc),
-index `fk_configuration_customization__service_proxy_customization_idx`
-(`service_proxy_customization_model_customization_uuid` asc),
-index `fk_configuration_customization__configuration_customization_idx`
-(`configuration_customization_model_customization_uuid` asc),
-constraint `fk_configuration_resource_customization__configuration_resour1`
-foreign key (`configuration_model_uuid`) references `configuration` (`model_uuid`)
-on delete cascade on update cascade,
-constraint `fk_configuration_customization__service_proxy_customization1` foreign
-key (`service_proxy_customization_model_customization_uuid`) references
-`service_proxy_customization` (`model_customization_uuid`)
-on delete cascade on update cascade, constraint
-`fk_configuration_customization__configuration_customization1` foreign
-key (`configuration_customization_model_customization_uuid`) references
-`configuration_customization` (`model_customization_uuid`)
-on delete cascade on update cascade)
-engine = innodb
-auto_increment =20654
-default character set = latin1;
-
-
-create table `service_proxy_customization_to_service` (
- `service_model_uuid` varchar(200) not null,
- `resource_model_customization_uuid` varchar(200) not null,
- primary key (`service_model_uuid`,`resource_model_customization_uuid`)
-)engine=innodb default charset=latin1;
-
-
-create table `configuration_customization_to_service` (
- `service_model_uuid` varchar(200) not null,
- `resource_model_customization_uuid` varchar(200) not null,
- primary key (`service_model_uuid`,`resource_model_customization_uuid`)
-)engine=innodb default charset=latin1;
-
-
-create table if not exists `collection_resource_customization_to_service` (
- `service_model_uuid` varchar(200) not null,
- `resource_model_customization_uuid` varchar(200) not null,
- primary key (`service_model_uuid`,`resource_model_customization_uuid`)
-)engine=innodb default charset=latin1;
-
-
-create table `network_resource_customization_to_service` (
- `service_model_uuid` varchar(200) not null,
- `resource_model_customization_uuid` varchar(200) not null,
- primary key (`service_model_uuid`,`resource_model_customization_uuid`)
-)engine=innodb default charset=latin1;
-
-create table `vnf_resource_customization_to_service` (
- `service_model_uuid` varchar(200) not null,
- `resource_model_customization_uuid` varchar(200) not null,
- primary key (`service_model_uuid`,`resource_model_customization_uuid`)
-)engine=innodb default charset=latin1;
-
-create table `allotted_resource_customization_to_service` (
- `service_model_uuid` varchar(200) not null,
- `resource_model_customization_uuid` varchar(200) not null,
- primary key (`service_model_uuid`,`resource_model_customization_uuid`)
-)engine=innodb default charset=latin1;
-
-
-alter table collection_resource_customization
-add foreign key ( cr_model_uuid)
-references collection_resource(model_uuid)
-on delete cascade;
-
-alter table vnf_resource_customization
-add column
-instance_group_model_uuid varchar(200);
-
-alter table network_resource_customization
-add column
-instance_group_model_uuid varchar(200);
-
-
-alter table network_resource_customization
-add foreign key ( instance_group_model_uuid)
-references instance_group(model_uuid)
-on delete cascade;
-
-alter table collection_resource_customization_to_service
-add foreign key (service_model_uuid)
-references service(model_uuid)
-on delete cascade;
-
-alter table allotted_resource_customization_to_service
-add foreign key (service_model_uuid)
-references service(model_uuid)
-on delete cascade;
-
-
-alter table vnf_resource_customization_to_service
-add foreign key (service_model_uuid)
-references service(model_uuid)
-on delete cascade;
-
-
-alter table network_resource_customization_to_service
-add foreign key (service_model_uuid)
-references service(model_uuid)
-on delete cascade;
-
-
-alter table network_resource_customization_to_service
-add foreign key (resource_model_customization_uuid)
-references network_resource_customization(model_customization_uuid)
-on delete cascade;
-
-alter table vnf_resource_customization_to_service
-add foreign key (resource_model_customization_uuid)
-references vnf_resource_customization(model_customization_uuid)
-on delete cascade;
-
-alter table allotted_resource_customization_to_service
-add foreign key (resource_model_customization_uuid)
-references allotted_resource_customization(model_customization_uuid)
-on delete cascade;
-
-alter table collection_resource_customization_to_service
-add foreign key (resource_model_customization_uuid)
-references collection_resource_customization(model_customization_uuid)
-on delete cascade;
-
-create table ar_recipe (
- ID INT(11) not null auto_increment,
- MODEL_NAME VARCHAR(200) NOT NULL,
- `ACTION` VARCHAR(200) NOT NULL,
- VERSION_STR VARCHAR(200) NOT NULL,
- SERVICE_TYPE VARCHAR(200),
- DESCRIPTION VARCHAR(200),
- ORCHESTRATION_URI VARCHAR(200) NOT NULL,
- AR_PARAM_XSD VARCHAR(200),
- RECIPE_TIMEOUT INT(10),
- CREATION_TIMESTAMP DATETIME NOT NULL default current_timestamp,
- primary key (ID),
- unique key `uk_ar_recipe` (`model_name`,`action`,`version_str`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-create table if not exists `collection_network_resource_customization` (
-`model_customization_uuid` varchar(200) not null,
-`model_instance_name` varchar(200) not null,
-`network_technology` varchar(45) null,
-`network_type` varchar(45) null,
-`network_role` varchar(200) null,
-`network_scope` varchar(45) null,
-`creation_timestamp` datetime not null default current_timestamp,
-`network_resource_model_uuid` varchar(200) not null, `instance_group_model_uuid` varchar(200) null,
-`crc_model_customization_uuid` varchar(200) not null, primary key
-(`model_customization_uuid`, `crc_model_customization_uuid`),
-index `fk_collection_net_resource_customization__network_resource1_idx`
-(`network_resource_model_uuid` asc), index
-`fk_collection_net_resource_customization__instance_group1_idx`
-(`instance_group_model_uuid` asc), index
-`fk_col_net_res_customization__collection_res_customization_idx`
-(`crc_model_customization_uuid` asc), constraint
-`fk_collection_net_resource_customization__network_resource10` foreign
-key (`network_resource_model_uuid`) references
-`network_resource` (`model_uuid`) on delete cascade on
-update cascade, constraint
-`fk_collection_net_resource_customization__instance_group10` foreign key
-(`instance_group_model_uuid`) references `instance_group`
-(`model_uuid`) on delete cascade on update cascade, constraint
-`fk_collection_network_resource_customization__collection_reso1` foreign
-key (`crc_model_customization_uuid`) references
-`collection_resource_customization`
-(`model_customization_uuid`) on delete cascade on update cascade) engine
-= innodb default character set = latin1;
-
-CREATE TABLE IF NOT EXISTS `northbound_request_ref_lookup` (
-`id` INT(11) NOT NULL AUTO_INCREMENT,
-`REQUEST_SCOPE` VARCHAR(200) NOT NULL,
-`ACTION` VARCHAR(200) NOT NULL,
-`MACRO_ACTION` VARCHAR(200) NOT NULL,
-`IS_ALACARTE` TINYINT(1) NOT NULL DEFAULT 0,
-`IS_TOPLEVELFLOW` TINYINT(1) NOT NULL DEFAULT 0,
-`MIN_API_VERSION` DOUBLE NOT NULL,
-`MAX_API_VERSION` DOUBLE NULL,
-PRIMARY KEY (`id`),
-UNIQUE INDEX `UK_northbound_request_ref_lookup` (`MIN_API_VERSION` ASC, `REQUEST_SCOPE` ASC, `ACTION` ASC, `IS_ALACARTE` ASC))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = latin1;
-
-CREATE TABLE IF NOT EXISTS `orchestration_flow_reference` (
-`id` INT(11) NOT NULL AUTO_INCREMENT,
-`COMPOSITE_ACTION` VARCHAR(200) NOT NULL,
-`SEQ_NO` INT(11) NOT NULL,
-`FLOW_NAME` VARCHAR(200) NOT NULL,
-`FLOW_VERSION` DOUBLE NOT NULL,
-`NB_REQ_REF_LOOKUP_ID` INT(11) NOT NULL,
-PRIMARY KEY (`id`),
-INDEX `fk_orchestration_flow_reference__northbound_req_ref_look_idx` (`NB_REQ_REF_LOOKUP_ID` ASC),
-UNIQUE INDEX `UK_orchestration_flow_reference` (`COMPOSITE_ACTION` ASC, `FLOW_NAME` ASC, `SEQ_NO` ASC, `NB_REQ_REF_LOOKUP_ID` ASC),
-CONSTRAINT `fk_orchestration_flow_reference__northbound_request_ref_look1`
-FOREIGN KEY (`NB_REQ_REF_LOOKUP_ID`) REFERENCES `northbound_request_ref_lookup` (`id`)
-ON DELETE CASCADE ON UPDATE CASCADE)
-ENGINE = InnoDB DEFAULT CHARACTER SET = latin1;
-
-CREATE TABLE IF NOT EXISTS `rainy_day_handler_macro` (
-`id` INT(11) NOT NULL AUTO_INCREMENT,
-`FLOW_NAME` VARCHAR(200) NOT NULL,
-`SERVICE_TYPE` VARCHAR(200) NOT NULL,
-`VNF_TYPE` VARCHAR(200) NOT NULL,
-`ERROR_CODE` VARCHAR(200) NOT NULL,
-`WORK_STEP` VARCHAR(200) NOT NULL,
-`POLICY` VARCHAR(200) NOT NULL,
-PRIMARY KEY (`id`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = latin1;
-
-create table if not exists model_recipe (
- `ID` INT(11) NOT NULL AUTO_INCREMENT,
- `MODEL_ID` INT(11),
- `ACTION` VARCHAR(40),
- `SCHEMA_VERSION` VARCHAR(40),
- `DESCRIPTION` VARCHAR(40),
- `ORCHESTRATION_URI` VARCHAR(20),
- `MODEL_PARAM_XSD` VARCHAR(20),
- `RECIPE_TIMEOUT` INT(11),
- `CREATION_TIMESTAMP` datetime not null default current_timestamp,
- PRIMARY KEY (`ID`),
- CONSTRAINT uk1_model_recipe UNIQUE (`MODEL_ID`, `ACTION`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-create table if not exists model (
- `ID` INT(11) NOT NULL AUTO_INCREMENT,
- `MODEL_CUSTOMIZATION_ID` VARCHAR(40),
- `MODEL_CUSTOMIZATION_NAME` VARCHAR(40),
- `MODEL_INVARIANT_ID` VARCHAR(40),
- `MODEL_NAME` VARCHAR(40),
- `MODEL_TYPE` VARCHAR(20),
- `MODEL_VERSION` VARCHAR(20),
- `MODEL_VERSION_ID` VARCHAR(40),
- `CREATION_TIMESTAMP` datetime not null default current_timestamp,
- `RECIPE` INT(11),
- PRIMARY KEY (`ID`),
- CONSTRAINT uk1_model UNIQUE (`MODEL_TYPE`, `MODEL_VERSION_ID`),
- FOREIGN KEY (`RECIPE`) REFERENCES `model_recipe` (`MODEL_ID`) ON DELETE CASCADE ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-CREATE TABLE IF NOT EXISTS `identity_services` (
+ KEY `fk_allotted_resource_customization__allotted_resource1_idx` (`AR_MODEL_UUID`),
+ CONSTRAINT `fk_allotted_resource_customization__allotted_resource1` FOREIGN KEY (`AR_MODEL_UUID`) REFERENCES `allotted_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `allotted_resource_customization_to_service`
+--
+
+DROP TABLE IF EXISTS `allotted_resource_customization_to_service`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `allotted_resource_customization_to_service` (
+ `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ `RESOURCE_MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`SERVICE_MODEL_UUID`,`RESOURCE_MODEL_CUSTOMIZATION_UUID`),
+ KEY `RESOURCE_MODEL_CUSTOMIZATION_UUID` (`RESOURCE_MODEL_CUSTOMIZATION_UUID`),
+ CONSTRAINT `allotted_resource_customization_to_service_ibfk_1` FOREIGN KEY (`SERVICE_MODEL_UUID`) REFERENCES `service` (`MODEL_UUID`) ON DELETE CASCADE,
+ CONSTRAINT `allotted_resource_customization_to_service_ibfk_2` FOREIGN KEY (`RESOURCE_MODEL_CUSTOMIZATION_UUID`) REFERENCES `allotted_resource_customization` (`MODEL_CUSTOMIZATION_UUID`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `ar_recipe`
+--
+
+DROP TABLE IF EXISTS `ar_recipe`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `ar_recipe` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `ACTION` varchar(200) NOT NULL,
+ `VERSION_STR` varchar(200) NOT NULL,
+ `SERVICE_TYPE` varchar(200) DEFAULT NULL,
+ `DESCRIPTION` varchar(200) DEFAULT NULL,
+ `ORCHESTRATION_URI` varchar(200) NOT NULL,
+ `AR_PARAM_XSD` varchar(200) DEFAULT NULL,
+ `RECIPE_TIMEOUT` int(11) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`ID`),
+ UNIQUE KEY `uk_ar_recipe` (`MODEL_NAME`,`ACTION`,`VERSION_STR`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `building_block_detail`
+--
+
+DROP TABLE IF EXISTS `building_block_detail`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `building_block_detail` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `BUILDING_BLOCK_NAME` varchar(200) NOT NULL,
+ `RESOURCE_TYPE` varchar(25) NOT NULL,
+ `TARGET_ACTION` varchar(25) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_building_block_name` (`BUILDING_BLOCK_NAME`)
+) ENGINE=InnoDB AUTO_INCREMENT=104 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cloud_sites`
+--
+
+DROP TABLE IF EXISTS `cloud_sites`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cloud_sites` (
`ID` varchar(50) NOT NULL,
- `IDENTITY_URL` varchar(200) DEFAULT NULL,
- `MSO_ID` varchar(255) DEFAULT NULL,
- `MSO_PASS` varchar(255) DEFAULT NULL,
- `PROJECT_DOMAIN_NAME` varchar(255) DEFAULT NULL,
- `USER_DOMAIN_NAME` varchar(255) DEFAULT NULL,
- `ADMIN_TENANT` varchar(50) DEFAULT NULL,
- `MEMBER_ROLE` varchar(50) DEFAULT NULL,
- `TENANT_METADATA` tinyint(1) DEFAULT 0,
- `IDENTITY_SERVER_TYPE` varchar(50) DEFAULT NULL,
- `IDENTITY_AUTHENTICATION_TYPE` varchar(50) DEFAULT NULL,
+ `REGION_ID` varchar(11) DEFAULT NULL,
+ `IDENTITY_SERVICE_ID` varchar(50) DEFAULT NULL,
+ `CLOUD_VERSION` varchar(20) DEFAULT NULL,
+ `CLLI` varchar(11) DEFAULT NULL,
+ `CLOUDIFY_ID` varchar(50) DEFAULT NULL,
+ `PLATFORM` varchar(50) DEFAULT NULL,
+ `ORCHESTRATOR` varchar(50) DEFAULT NULL,
`LAST_UPDATED_BY` varchar(120) DEFAULT NULL,
- `CREATION_TIMESTAMP` timestamp NULL DEFAULT current_timestamp(),
- `UPDATE_TIMESTAMP` timestamp NULL DEFAULT current_timestamp(),
- PRIMARY KEY (`ID`)
-) ;
-
+ `CREATION_TIMESTAMP` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `UPDATE_TIMESTAMP` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`ID`),
+ KEY `FK_cloud_sites_identity_services` (`IDENTITY_SERVICE_ID`),
+ CONSTRAINT `FK_cloud_sites_identity_services` FOREIGN KEY (`IDENTITY_SERVICE_ID`) REFERENCES `identity_services` (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Table structure for table `cloudify_managers`
+--
-CREATE TABLE IF NOT EXISTS `cloudify_managers` (
+DROP TABLE IF EXISTS `cloudify_managers`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cloudify_managers` (
`ID` varchar(50) NOT NULL,
`CLOUDIFY_URL` varchar(200) DEFAULT NULL,
`USERNAME` varchar(255) DEFAULT NULL,
`PASSWORD` varchar(255) DEFAULT NULL,
`VERSION` varchar(20) DEFAULT NULL,
`LAST_UPDATED_BY` varchar(120) DEFAULT NULL,
- `CREATION_TIMESTAMP` timestamp NULL DEFAULT current_timestamp(),
- `UPDATE_TIMESTAMP` timestamp NULL DEFAULT current_timestamp(),
+ `CREATION_TIMESTAMP` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `UPDATE_TIMESTAMP` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
-) ;
-
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `collection_network_resource_customization`
+--
+
+DROP TABLE IF EXISTS `collection_network_resource_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `collection_network_resource_customization` (
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `NETWORK_TECHNOLOGY` varchar(45) DEFAULT NULL,
+ `NETWORK_TYPE` varchar(45) DEFAULT NULL,
+ `NETWORK_ROLE` varchar(200) DEFAULT NULL,
+ `NETWORK_SCOPE` varchar(45) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `NETWORK_RESOURCE_MODEL_UUID` varchar(200) NOT NULL,
+ `INSTANCE_GROUP_MODEL_UUID` varchar(200) DEFAULT NULL,
+ `CRC_MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`,`CRC_MODEL_CUSTOMIZATION_UUID`),
+ KEY `fk_collection_net_resource_customization__network_resource1_idx` (`NETWORK_RESOURCE_MODEL_UUID`),
+ KEY `fk_collection_net_resource_customization__instance_group1_idx` (`INSTANCE_GROUP_MODEL_UUID`),
+ KEY `fk_col_net_res_customization__collection_res_customization_idx` (`CRC_MODEL_CUSTOMIZATION_UUID`),
+ CONSTRAINT `fk_collection_net_resource_customization__instance_group10` FOREIGN KEY (`INSTANCE_GROUP_MODEL_UUID`) REFERENCES `instance_group` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_collection_net_resource_customization__network_resource10` FOREIGN KEY (`NETWORK_RESOURCE_MODEL_UUID`) REFERENCES `network_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_collection_network_resource_customization__collection_reso1` FOREIGN KEY (`CRC_MODEL_CUSTOMIZATION_UUID`) REFERENCES `collection_resource_customization` (`MODEL_CUSTOMIZATION_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `collection_resource`
+--
+
+DROP TABLE IF EXISTS `collection_resource`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `collection_resource` (
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) NOT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`MODEL_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `collection_resource_customization`
+--
+
+DROP TABLE IF EXISTS `collection_resource_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `collection_resource_customization` (
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `role` varchar(200) DEFAULT NULL,
+ `object_type` varchar(200) NOT NULL,
+ `function` varchar(200) DEFAULT NULL,
+ `collection_resource_type` varchar(200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `CR_MODEL_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`),
+ KEY `CR_MODEL_UUID` (`CR_MODEL_UUID`),
+ CONSTRAINT `collection_resource_customization_ibfk_1` FOREIGN KEY (`CR_MODEL_UUID`) REFERENCES `collection_resource` (`MODEL_UUID`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `collection_resource_customization_to_service`
+--
+
+DROP TABLE IF EXISTS `collection_resource_customization_to_service`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `collection_resource_customization_to_service` (
+ `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ `RESOURCE_MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`SERVICE_MODEL_UUID`,`RESOURCE_MODEL_CUSTOMIZATION_UUID`),
+ KEY `RESOURCE_MODEL_CUSTOMIZATION_UUID` (`RESOURCE_MODEL_CUSTOMIZATION_UUID`),
+ CONSTRAINT `collection_resource_customization_to_service_ibfk_1` FOREIGN KEY (`SERVICE_MODEL_UUID`) REFERENCES `service` (`MODEL_UUID`) ON DELETE CASCADE,
+ CONSTRAINT `collection_resource_customization_to_service_ibfk_2` FOREIGN KEY (`RESOURCE_MODEL_CUSTOMIZATION_UUID`) REFERENCES `collection_resource_customization` (`MODEL_CUSTOMIZATION_UUID`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `collection_resource_instance_group_customization`
+--
+
+DROP TABLE IF EXISTS `collection_resource_instance_group_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `collection_resource_instance_group_customization` (
+ `COLLECTION_RESOURCE_CUSTOMIZATION_MODEL_UUID` varchar(200) NOT NULL,
+ `INSTANCE_GROUP_MODEL_UUID` varchar(200) NOT NULL,
+ `FUNCTION` varchar(200) DEFAULT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `SUBINTERFACE_NETWORK_QUANTITY` int(11) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`COLLECTION_RESOURCE_CUSTOMIZATION_MODEL_UUID`,`INSTANCE_GROUP_MODEL_UUID`),
+ KEY `fk_collection_resource_instance_group_customization__instan_idx` (`INSTANCE_GROUP_MODEL_UUID`),
+ CONSTRAINT `fk_collection_resource_instance_group_customization__collecti1` FOREIGN KEY (`COLLECTION_RESOURCE_CUSTOMIZATION_MODEL_UUID`) REFERENCES `collection_resource_customization` (`MODEL_CUSTOMIZATION_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_collection_resource_instance_group_customization__instance1` FOREIGN KEY (`INSTANCE_GROUP_MODEL_UUID`) REFERENCES `instance_group` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `configuration`
+--
+
+DROP TABLE IF EXISTS `configuration`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `configuration` (
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) NOT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`MODEL_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `configuration_customization`
+--
+
+DROP TABLE IF EXISTS `configuration_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `configuration_customization` (
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `CONFIGURATION_TYPE` varchar(200) DEFAULT NULL,
+ `CONFIGURATION_ROLE` varchar(200) DEFAULT NULL,
+ `CONFIGURATION_FUNCTION` varchar(200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `CONFIGURATION_MODEL_UUID` varchar(200) NOT NULL,
+ `SERVICE_PROXY_CUSTOMIZATION_MODEL_CUSTOMIZATION_UUID` varchar(200) DEFAULT NULL,
+ `CONFIGURATION_CUSTOMIZATION_MODEL_CUSTOMIZATION_UUID` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`),
+ KEY `fk_configuration_customization__configuration_idx` (`CONFIGURATION_MODEL_UUID`),
+ KEY `fk_configuration_customization__service_proxy_customization_idx` (`SERVICE_PROXY_CUSTOMIZATION_MODEL_CUSTOMIZATION_UUID`),
+ KEY `fk_configuration_customization__configuration_customization_idx` (`CONFIGURATION_CUSTOMIZATION_MODEL_CUSTOMIZATION_UUID`),
+ CONSTRAINT `fk_configuration_customization__configuration_customization1` FOREIGN KEY (`CONFIGURATION_CUSTOMIZATION_MODEL_CUSTOMIZATION_UUID`) REFERENCES `configuration_customization` (`MODEL_CUSTOMIZATION_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_configuration_resource_customization__configuration_resour1` FOREIGN KEY (`CONFIGURATION_MODEL_UUID`) REFERENCES `configuration` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `configuration_customization_to_service`
+--
+
+DROP TABLE IF EXISTS `configuration_customization_to_service`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `configuration_customization_to_service` (
+ `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ `RESOURCE_MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`SERVICE_MODEL_UUID`,`RESOURCE_MODEL_CUSTOMIZATION_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `controller_selection_reference`
+--
+
+DROP TABLE IF EXISTS `controller_selection_reference`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `controller_selection_reference` (
+ `VNF_TYPE` varchar(50) NOT NULL,
+ `CONTROLLER_NAME` varchar(100) NOT NULL,
+ `ACTION_CATEGORY` varchar(15) NOT NULL,
+ PRIMARY KEY (`VNF_TYPE`,`CONTROLLER_NAME`,`ACTION_CATEGORY`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cvnfc_configuration_customization`
+--
+
+DROP TABLE IF EXISTS `cvnfc_configuration_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cvnfc_configuration_customization` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `CONFIGURATION_TYPE` varchar(200) DEFAULT NULL,
+ `CONFIGURATION_ROLE` varchar(200) DEFAULT NULL,
+ `CONFIGURATION_FUNCTION` varchar(200) DEFAULT NULL,
+ `POLICY_NAME` varchar(200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `CONFIGURATION_MODEL_UUID` varchar(200) NOT NULL,
+ `CVNFC_CUSTOMIZATION_ID` int(11) DEFAULT NULL,
+ PRIMARY KEY (`ID`),
+ KEY `fk_vnf_vfmodule_cvnfc_config_cust__configuration_idx` (`CONFIGURATION_MODEL_UUID`),
+ CONSTRAINT `fk_vnf_vfmod_cvnfc_config_cust__configuration_resource` FOREIGN KEY (`CONFIGURATION_MODEL_UUID`) REFERENCES `configuration` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=20655 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `cvnfc_customization`
+--
+
+DROP TABLE IF EXISTS `cvnfc_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `cvnfc_customization` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) NOT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `NFC_FUNCTION` varchar(200) DEFAULT NULL,
+ `NFC_NAMING_CODE` varchar(200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `VNFC_CUST_MODEL_CUSTOMIZATION_UUID` varchar(200) DEFAULT NULL,
+ `VF_MODULE_CUSTOMIZATION_ID` int(13) DEFAULT NULL,
+ PRIMARY KEY (`ID`),
+ KEY `fk_cvnfc_customization__vnfc_customization1_idx` (`VNFC_CUST_MODEL_CUSTOMIZATION_UUID`),
+ KEY `fk_cvnfc_customization__vnf_vfmod_cvnfc_config_cust1_idx` (`MODEL_CUSTOMIZATION_UUID`),
+ KEY `fk_cvnfc_customization_to_vf_module_resource_customization` (`VF_MODULE_CUSTOMIZATION_ID`),
+ CONSTRAINT `fk_cvnfc_customization__vnfc_customization1` FOREIGN KEY (`VNFC_CUST_MODEL_CUSTOMIZATION_UUID`) REFERENCES `vnfc_customization` (`MODEL_CUSTOMIZATION_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_cvnfc_customization_to_vf_module_resource_customization` FOREIGN KEY (`VF_MODULE_CUSTOMIZATION_ID`) REFERENCES `vf_module_customization` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=20655 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `external_service_to_internal_model_mapping`
+--
+
+DROP TABLE IF EXISTS `external_service_to_internal_model_mapping`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `external_service_to_internal_model_mapping` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `SERVICE_NAME` varchar(200) NOT NULL,
+ `PRODUCT_FLAVOR` varchar(200) DEFAULT NULL,
+ `SUBSCRIPTION_SERVICE_TYPE` varchar(200) NOT NULL,
+ `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_external_service_to_internal_model_mapping` (`SERVICE_NAME`,`PRODUCT_FLAVOR`,`SERVICE_MODEL_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `flyway_schema_history`
+--
+
+DROP TABLE IF EXISTS `flyway_schema_history`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `flyway_schema_history` (
+ `installed_rank` int(11) NOT NULL,
+ `version` varchar(50) DEFAULT NULL,
+ `description` varchar(200) NOT NULL,
+ `type` varchar(20) NOT NULL,
+ `script` varchar(1000) NOT NULL,
+ `checksum` int(11) DEFAULT NULL,
+ `installed_by` varchar(100) NOT NULL,
+ `installed_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `execution_time` int(11) NOT NULL,
+ `success` tinyint(1) NOT NULL,
+ PRIMARY KEY (`installed_rank`),
+ KEY `flyway_schema_history_s_idx` (`success`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `heat_environment`
+--
+
+DROP TABLE IF EXISTS `heat_environment`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `heat_environment` (
+ `ARTIFACT_UUID` varchar(200) NOT NULL,
+ `NAME` varchar(100) NOT NULL,
+ `VERSION` varchar(20) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `BODY` longtext NOT NULL,
+ `ARTIFACT_CHECKSUM` varchar(200) NOT NULL DEFAULT 'MANUAL RECORD',
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`ARTIFACT_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `heat_files`
+--
+
+DROP TABLE IF EXISTS `heat_files`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `heat_files` (
+ `ARTIFACT_UUID` varchar(200) NOT NULL,
+ `NAME` varchar(200) NOT NULL,
+ `VERSION` varchar(20) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `BODY` longtext NOT NULL,
+ `ARTIFACT_CHECKSUM` varchar(200) NOT NULL DEFAULT 'MANUAL RECORD',
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`ARTIFACT_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `heat_nested_template`
+--
+
+DROP TABLE IF EXISTS `heat_nested_template`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `heat_nested_template` (
+ `PARENT_HEAT_TEMPLATE_UUID` varchar(200) NOT NULL,
+ `CHILD_HEAT_TEMPLATE_UUID` varchar(200) NOT NULL,
+ `PROVIDER_RESOURCE_FILE` varchar(100) DEFAULT NULL,
+ PRIMARY KEY (`PARENT_HEAT_TEMPLATE_UUID`,`CHILD_HEAT_TEMPLATE_UUID`),
+ KEY `fk_heat_nested_template__heat_template2_idx` (`CHILD_HEAT_TEMPLATE_UUID`),
+ CONSTRAINT `fk_heat_nested_template__child_heat_temp_uuid__heat_template1` FOREIGN KEY (`CHILD_HEAT_TEMPLATE_UUID`) REFERENCES `heat_template` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_heat_nested_template__parent_heat_temp_uuid__heat_template1` FOREIGN KEY (`PARENT_HEAT_TEMPLATE_UUID`) REFERENCES `heat_template` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `heat_template`
+--
+
+DROP TABLE IF EXISTS `heat_template`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `heat_template` (
+ `ARTIFACT_UUID` varchar(200) NOT NULL,
+ `NAME` varchar(200) NOT NULL,
+ `VERSION` varchar(20) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `BODY` longtext NOT NULL,
+ `TIMEOUT_MINUTES` int(11) DEFAULT NULL,
+ `ARTIFACT_CHECKSUM` varchar(200) NOT NULL DEFAULT 'MANUAL RECORD',
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`ARTIFACT_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `heat_template_params`
+--
+
+DROP TABLE IF EXISTS `heat_template_params`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `heat_template_params` (
+ `HEAT_TEMPLATE_ARTIFACT_UUID` varchar(200) NOT NULL,
+ `PARAM_NAME` varchar(100) NOT NULL,
+ `IS_REQUIRED` bit(1) NOT NULL,
+ `PARAM_TYPE` varchar(20) DEFAULT NULL,
+ `PARAM_ALIAS` varchar(45) DEFAULT NULL,
+ PRIMARY KEY (`HEAT_TEMPLATE_ARTIFACT_UUID`,`PARAM_NAME`),
+ CONSTRAINT `fk_heat_template_params__heat_template1` FOREIGN KEY (`HEAT_TEMPLATE_ARTIFACT_UUID`) REFERENCES `heat_template` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Table structure for table `identity_services`
+--
-CREATE TABLE IF NOT EXISTS `cloud_sites` (
+DROP TABLE IF EXISTS `identity_services`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `identity_services` (
`ID` varchar(50) NOT NULL,
- `REGION_ID` varchar(11) DEFAULT NULL,
- `IDENTITY_SERVICE_ID` varchar(50) DEFAULT NULL,
- `CLOUD_VERSION` varchar(20) DEFAULT NULL,
- `CLLI` varchar(11) DEFAULT NULL,
- `CLOUDIFY_ID` varchar(50) DEFAULT NULL,
- `PLATFORM` varchar(50) DEFAULT NULL,
- `ORCHESTRATOR` varchar(50) DEFAULT NULL,
+ `IDENTITY_URL` varchar(200) DEFAULT NULL,
+ `MSO_ID` varchar(255) DEFAULT NULL,
+ `MSO_PASS` varchar(255) DEFAULT NULL,
+ `ADMIN_TENANT` varchar(50) DEFAULT NULL,
+ `MEMBER_ROLE` varchar(50) DEFAULT NULL,
+ `TENANT_METADATA` tinyint(1) DEFAULT '0',
+ `IDENTITY_SERVER_TYPE` varchar(50) DEFAULT NULL,
+ `IDENTITY_AUTHENTICATION_TYPE` varchar(50) DEFAULT NULL,
`LAST_UPDATED_BY` varchar(120) DEFAULT NULL,
- `CREATION_TIMESTAMP` timestamp NULL DEFAULT current_timestamp(),
- `UPDATE_TIMESTAMP` timestamp NULL DEFAULT current_timestamp(),
+ `CREATION_TIMESTAMP` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `UPDATE_TIMESTAMP` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+ `PROJECT_DOMAIN_NAME` varchar(255) DEFAULT NULL,
+ `USER_DOMAIN_NAME` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `instance_group`
+--
+
+DROP TABLE IF EXISTS `instance_group`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `instance_group` (
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) NOT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) DEFAULT NULL,
+ `ROLE` varchar(200) NOT NULL,
+ `OBJECT_TYPE` varchar(200) NOT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `CR_MODEL_UUID` varchar(200) DEFAULT NULL,
+ `INSTANCE_GROUP_TYPE` varchar(200) NOT NULL,
+ PRIMARY KEY (`MODEL_UUID`),
+ KEY `CR_MODEL_UUID` (`CR_MODEL_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `model`
+--
+
+DROP TABLE IF EXISTS `model`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `model` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `MODEL_CUSTOMIZATION_ID` varchar(40) DEFAULT NULL,
+ `MODEL_CUSTOMIZATION_NAME` varchar(40) DEFAULT NULL,
+ `MODEL_INVARIANT_ID` varchar(40) DEFAULT NULL,
+ `MODEL_NAME` varchar(40) DEFAULT NULL,
+ `MODEL_TYPE` varchar(20) DEFAULT NULL,
+ `MODEL_VERSION` varchar(20) DEFAULT NULL,
+ `MODEL_VERSION_ID` varchar(40) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `RECIPE` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`),
- KEY `FK_cloud_sites_identity_services` (`IDENTITY_SERVICE_ID`),
- CONSTRAINT `FK_cloud_sites_identity_services` FOREIGN KEY (`IDENTITY_SERVICE_ID`) REFERENCES `identity_services` (`ID`)
-) ; \ No newline at end of file
+ UNIQUE KEY `uk1_model` (`MODEL_TYPE`,`MODEL_VERSION_ID`),
+ KEY `RECIPE` (`RECIPE`),
+ CONSTRAINT `model_ibfk_1` FOREIGN KEY (`RECIPE`) REFERENCES `model_recipe` (`MODEL_ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `model_recipe`
+--
+
+DROP TABLE IF EXISTS `model_recipe`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `model_recipe` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `MODEL_ID` int(11) DEFAULT NULL,
+ `ACTION` varchar(40) DEFAULT NULL,
+ `SCHEMA_VERSION` varchar(40) DEFAULT NULL,
+ `DESCRIPTION` varchar(40) DEFAULT NULL,
+ `ORCHESTRATION_URI` varchar(20) DEFAULT NULL,
+ `MODEL_PARAM_XSD` varchar(20) DEFAULT NULL,
+ `RECIPE_TIMEOUT` int(11) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`ID`),
+ UNIQUE KEY `uk1_model_recipe` (`MODEL_ID`,`ACTION`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `network_recipe`
+--
+
+DROP TABLE IF EXISTS `network_recipe`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `network_recipe` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `MODEL_NAME` varchar(20) NOT NULL,
+ `ACTION` varchar(50) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `ORCHESTRATION_URI` varchar(256) NOT NULL,
+ `NETWORK_PARAM_XSD` varchar(2048) DEFAULT NULL,
+ `RECIPE_TIMEOUT` int(11) DEFAULT NULL,
+ `SERVICE_TYPE` varchar(45) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `VERSION_STR` varchar(20) NOT NULL,
+ `RESOURCE_CATEGORY` varchar(200) DEFAULT NULL,
+ `RESOURCE_SUB_CATEGORY` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_rl4f296i0p8lyokxveaiwkayi` (`MODEL_NAME`,`ACTION`,`VERSION_STR`)
+) ENGINE=InnoDB AUTO_INCREMENT=181 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `network_resource`
+--
+
+DROP TABLE IF EXISTS `network_resource`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `network_resource` (
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) DEFAULT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `HEAT_TEMPLATE_ARTIFACT_UUID` varchar(200) NULL,
+ `NEUTRON_NETWORK_TYPE` varchar(20) DEFAULT NULL,
+ `MODEL_VERSION` varchar(20) DEFAULT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) DEFAULT NULL,
+ `AIC_VERSION_MIN` varchar(20) NULL,
+ `AIC_VERSION_MAX` varchar(20) DEFAULT NULL,
+ `ORCHESTRATION_MODE` varchar(20) DEFAULT 'HEAT',
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `RESOURCE_CATEGORY` varchar(200) DEFAULT NULL,
+ `RESOURCE_SUB_CATEGORY` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`MODEL_UUID`),
+ KEY `fk_network_resource__temp_network_heat_template_lookup1_idx` (`MODEL_NAME`),
+ KEY `fk_network_resource__heat_template1_idx` (`HEAT_TEMPLATE_ARTIFACT_UUID`),
+ CONSTRAINT `fk_network_resource__heat_template1` FOREIGN KEY (`HEAT_TEMPLATE_ARTIFACT_UUID`) REFERENCES `heat_template` (`ARTIFACT_UUID`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `fk_network_resource__temp_network_heat_template_lookup__mod_nm1` FOREIGN KEY (`MODEL_NAME`) REFERENCES `temp_network_heat_template_lookup` (`NETWORK_RESOURCE_MODEL_NAME`) ON DELETE NO ACTION ON UPDATE NO ACTION
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `network_resource_customization`
+--
+
+DROP TABLE IF EXISTS `network_resource_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `network_resource_customization` (
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `NETWORK_TECHNOLOGY` varchar(45) DEFAULT NULL,
+ `NETWORK_TYPE` varchar(45) DEFAULT NULL,
+ `NETWORK_ROLE` varchar(200) DEFAULT NULL,
+ `NETWORK_SCOPE` varchar(45) DEFAULT NULL,
+ `RESOURCE_INPUT` varchar(20000) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `NETWORK_RESOURCE_MODEL_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`),
+ KEY `fk_network_resource_customization__network_resource1_idx` (`NETWORK_RESOURCE_MODEL_UUID`),
+ CONSTRAINT `fk_network_resource_customization__network_resource1` FOREIGN KEY (`NETWORK_RESOURCE_MODEL_UUID`) REFERENCES `network_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `network_resource_customization_to_service`
+--
+
+DROP TABLE IF EXISTS `network_resource_customization_to_service`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `network_resource_customization_to_service` (
+ `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ `RESOURCE_MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`SERVICE_MODEL_UUID`,`RESOURCE_MODEL_CUSTOMIZATION_UUID`),
+ KEY `RESOURCE_MODEL_CUSTOMIZATION_UUID` (`RESOURCE_MODEL_CUSTOMIZATION_UUID`),
+ CONSTRAINT `network_resource_customization_to_service_ibfk_1` FOREIGN KEY (`SERVICE_MODEL_UUID`) REFERENCES `service` (`MODEL_UUID`) ON DELETE CASCADE,
+ CONSTRAINT `network_resource_customization_to_service_ibfk_2` FOREIGN KEY (`RESOURCE_MODEL_CUSTOMIZATION_UUID`) REFERENCES `network_resource_customization` (`MODEL_CUSTOMIZATION_UUID`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `northbound_request_ref_lookup`
+--
+
+DROP TABLE IF EXISTS `northbound_request_ref_lookup`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `northbound_request_ref_lookup` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `REQUEST_SCOPE` varchar(200) NOT NULL,
+ `MACRO_ACTION` varchar(200) NOT NULL,
+ `ACTION` varchar(200) NOT NULL,
+ `IS_ALACARTE` tinyint(1) NOT NULL DEFAULT '0',
+ `MIN_API_VERSION` double NOT NULL,
+ `MAX_API_VERSION` double DEFAULT NULL,
+ `IS_TOPLEVELFLOW` tinyint(1) DEFAULT NULL,
+ `CLOUD_OWNER` varchar(200) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_northbound_request_ref_lookup` (`MIN_API_VERSION`,`REQUEST_SCOPE`,`ACTION`,`IS_ALACARTE`,`MACRO_ACTION`,`CLOUD_OWNER`)
+) ENGINE=InnoDB AUTO_INCREMENT=86 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `orchestration_flow_reference`
+--
+
+DROP TABLE IF EXISTS `orchestration_flow_reference`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `orchestration_flow_reference` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `COMPOSITE_ACTION` varchar(200) NOT NULL,
+ `SEQ_NO` int(11) NOT NULL,
+ `FLOW_NAME` varchar(200) NOT NULL,
+ `FLOW_VERSION` double NOT NULL,
+ `NB_REQ_REF_LOOKUP_ID` int(11) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_orchestration_flow_reference` (`COMPOSITE_ACTION`,`FLOW_NAME`,`SEQ_NO`,`NB_REQ_REF_LOOKUP_ID`),
+ KEY `fk_orchestration_flow_reference__northbound_req_ref_look_idx` (`NB_REQ_REF_LOOKUP_ID`),
+ KEY `fk_orchestration_flow_reference__building_block_detail` (`FLOW_NAME`),
+ CONSTRAINT `fk_orchestration_flow_reference__northbound_request_ref_look1` FOREIGN KEY (`NB_REQ_REF_LOOKUP_ID`) REFERENCES `northbound_request_ref_lookup` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=398 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `orchestration_status_state_transition_directive`
+--
+
+DROP TABLE IF EXISTS `orchestration_status_state_transition_directive`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `orchestration_status_state_transition_directive` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `RESOURCE_TYPE` varchar(25) NOT NULL,
+ `ORCHESTRATION_STATUS` varchar(25) NOT NULL,
+ `TARGET_ACTION` varchar(25) NOT NULL,
+ `FLOW_DIRECTIVE` varchar(25) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_orchestration_status_state_transition_directive` (`RESOURCE_TYPE`,`ORCHESTRATION_STATUS`,`TARGET_ACTION`)
+) ENGINE=InnoDB AUTO_INCREMENT=686 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `rainy_day_handler_macro`
+--
+
+DROP TABLE IF EXISTS `rainy_day_handler_macro`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `rainy_day_handler_macro` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `FLOW_NAME` varchar(200) NOT NULL,
+ `SERVICE_TYPE` varchar(200) NOT NULL,
+ `VNF_TYPE` varchar(200) NOT NULL,
+ `ERROR_CODE` varchar(200) NOT NULL,
+ `WORK_STEP` varchar(200) NOT NULL,
+ `POLICY` varchar(200) NOT NULL,
+ `SECONDARY_POLICY` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=93 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `service`
+--
+
+DROP TABLE IF EXISTS `service`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `service` (
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) NOT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `TOSCA_CSAR_ARTIFACT_UUID` varchar(200) DEFAULT NULL,
+ `SERVICE_TYPE` varchar(200) DEFAULT NULL,
+ `SERVICE_ROLE` varchar(200) DEFAULT NULL,
+ `ENVIRONMENT_CONTEXT` varchar(200) DEFAULT NULL,
+ `WORKLOAD_CONTEXT` varchar(200) DEFAULT NULL,
+ `SERVICE_CATEGORY` varchar(200) DEFAULT NULL,
+ `RESOURCE_ORDER` varchar(200) default NULL,
+ PRIMARY KEY (`MODEL_UUID`),
+ KEY `fk_service__tosca_csar1_idx` (`TOSCA_CSAR_ARTIFACT_UUID`),
+ CONSTRAINT `fk_service__tosca_csar1` FOREIGN KEY (`TOSCA_CSAR_ARTIFACT_UUID`) REFERENCES `tosca_csar` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `service_proxy_customization`
+--
+
+DROP TABLE IF EXISTS `service_proxy_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `service_proxy_customization` (
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) NOT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `SOURCE_SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`),
+ KEY `fk_service_proxy_customization__service1_idx` (`SOURCE_SERVICE_MODEL_UUID`),
+ CONSTRAINT `fk_service_proxy_resource_customization__service1` FOREIGN KEY (`SOURCE_SERVICE_MODEL_UUID`) REFERENCES `service` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `service_proxy_customization_to_service`
+--
+
+DROP TABLE IF EXISTS `service_proxy_customization_to_service`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `service_proxy_customization_to_service` (
+ `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ `RESOURCE_MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`SERVICE_MODEL_UUID`,`RESOURCE_MODEL_CUSTOMIZATION_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `service_recipe`
+--
+
+DROP TABLE IF EXISTS `service_recipe`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `service_recipe` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `ACTION` varchar(50) NOT NULL,
+ `VERSION_STR` varchar(20) DEFAULT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `ORCHESTRATION_URI` varchar(256) NOT NULL,
+ `SERVICE_PARAM_XSD` varchar(2048) DEFAULT NULL,
+ `RECIPE_TIMEOUT` int(11) DEFAULT NULL,
+ `SERVICE_TIMEOUT_INTERIM` int(11) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_7fav5dkux2v8g9d2i5ymudlgc` (`SERVICE_MODEL_UUID`,`ACTION`),
+ KEY `fk_service_recipe__service1_idx` (`SERVICE_MODEL_UUID`),
+ CONSTRAINT `fk_service_recipe__service1` FOREIGN KEY (`SERVICE_MODEL_UUID`) REFERENCES `service` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=93 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `temp_network_heat_template_lookup`
+--
+
+DROP TABLE IF EXISTS `temp_network_heat_template_lookup`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `temp_network_heat_template_lookup` (
+ `NETWORK_RESOURCE_MODEL_NAME` varchar(200) NOT NULL,
+ `HEAT_TEMPLATE_ARTIFACT_UUID` varchar(200) NULL,
+ `AIC_VERSION_MIN` varchar(20) NULL,
+ `AIC_VERSION_MAX` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`NETWORK_RESOURCE_MODEL_NAME`),
+ KEY `fk_temp_network_heat_template_lookup__heat_template1_idx` (`HEAT_TEMPLATE_ARTIFACT_UUID`),
+ CONSTRAINT `fk_temp_network_heat_template_lookup__heat_template1` FOREIGN KEY (`HEAT_TEMPLATE_ARTIFACT_UUID`) REFERENCES `heat_template` (`ARTIFACT_UUID`) ON DELETE NO ACTION ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tosca_csar`
+--
+
+DROP TABLE IF EXISTS `tosca_csar`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tosca_csar` (
+ `ARTIFACT_UUID` varchar(200) NOT NULL,
+ `NAME` varchar(200) NOT NULL,
+ `VERSION` varchar(20) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `ARTIFACT_CHECKSUM` varchar(200) NOT NULL,
+ `URL` varchar(200) NOT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`ARTIFACT_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vf_module`
+--
+
+DROP TABLE IF EXISTS `vf_module`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vf_module` (
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) DEFAULT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `IS_BASE` tinyint(1) NOT NULL,
+ `HEAT_TEMPLATE_ARTIFACT_UUID` varchar(200) DEFAULT NULL,
+ `VOL_HEAT_TEMPLATE_ARTIFACT_UUID` varchar(200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `VNF_RESOURCE_MODEL_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`MODEL_UUID`,`VNF_RESOURCE_MODEL_UUID`),
+ KEY `fk_vf_module__vnf_resource1_idx` (`VNF_RESOURCE_MODEL_UUID`),
+ KEY `fk_vf_module__heat_template_art_uuid__heat_template1_idx` (`HEAT_TEMPLATE_ARTIFACT_UUID`),
+ KEY `fk_vf_module__vol_heat_template_art_uuid__heat_template2_idx` (`VOL_HEAT_TEMPLATE_ARTIFACT_UUID`),
+ CONSTRAINT `fk_vf_module__heat_template_art_uuid__heat_template1` FOREIGN KEY (`HEAT_TEMPLATE_ARTIFACT_UUID`) REFERENCES `heat_template` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_vf_module__vnf_resource1` FOREIGN KEY (`VNF_RESOURCE_MODEL_UUID`) REFERENCES `vnf_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_vf_module__vol_heat_template_art_uuid__heat_template2` FOREIGN KEY (`VOL_HEAT_TEMPLATE_ARTIFACT_UUID`) REFERENCES `heat_template` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vf_module_customization`
+--
+
+DROP TABLE IF EXISTS `vf_module_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vf_module_customization` (
+ `ID` int(13) NOT NULL AUTO_INCREMENT,
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `LABEL` varchar(200) DEFAULT NULL,
+ `INITIAL_COUNT` int(11) DEFAULT '0',
+ `MIN_INSTANCES` int(11) DEFAULT '0',
+ `MAX_INSTANCES` int(11) DEFAULT NULL,
+ `AVAILABILITY_ZONE_COUNT` int(11) DEFAULT NULL,
+ `HEAT_ENVIRONMENT_ARTIFACT_UUID` varchar(200) DEFAULT NULL,
+ `VOL_ENVIRONMENT_ARTIFACT_UUID` varchar(200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `VF_MODULE_MODEL_UUID` varchar(200) NOT NULL,
+ `VNF_RESOURCE_CUSTOMIZATION_ID` int(13) DEFAULT NULL,
+ PRIMARY KEY (`ID`),
+ KEY `fk_vf_module_customization__vf_module1_idx` (`VF_MODULE_MODEL_UUID`),
+ KEY `fk_vf_module_customization__heat_env__heat_environment1_idx` (`HEAT_ENVIRONMENT_ARTIFACT_UUID`),
+ KEY `fk_vf_module_customization__vol_env__heat_environment2_idx` (`VOL_ENVIRONMENT_ARTIFACT_UUID`),
+ KEY `fk_vf_module_customization_to_vnf_resource_customization` (`VNF_RESOURCE_CUSTOMIZATION_ID`),
+ KEY `vf_module_customization_model_cust_uuid_idx` (`MODEL_CUSTOMIZATION_UUID`),
+ CONSTRAINT `fk_vf_module_customization__heat_env__heat_environment1` FOREIGN KEY (`HEAT_ENVIRONMENT_ARTIFACT_UUID`) REFERENCES `heat_environment` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_vf_module_customization__vf_module1` FOREIGN KEY (`VF_MODULE_MODEL_UUID`) REFERENCES `vf_module` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_vf_module_customization__vol_env__heat_environment2` FOREIGN KEY (`VOL_ENVIRONMENT_ARTIFACT_UUID`) REFERENCES `heat_environment` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_vf_module_customization_to_vnf_resource_customization` FOREIGN KEY (`VNF_RESOURCE_CUSTOMIZATION_ID`) REFERENCES `vnf_resource_customization` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vf_module_to_heat_files`
+--
+
+DROP TABLE IF EXISTS `vf_module_to_heat_files`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vf_module_to_heat_files` (
+ `VF_MODULE_MODEL_UUID` varchar(200) NOT NULL,
+ `HEAT_FILES_ARTIFACT_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`VF_MODULE_MODEL_UUID`,`HEAT_FILES_ARTIFACT_UUID`),
+ KEY `fk_vf_module_to_heat_files__heat_files__artifact_uuid1_idx` (`HEAT_FILES_ARTIFACT_UUID`),
+ CONSTRAINT `fk_vf_module_to_heat_files__heat_files__artifact_uuid1` FOREIGN KEY (`HEAT_FILES_ARTIFACT_UUID`) REFERENCES `heat_files` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_vf_module_to_heat_files__vf_module__model_uuid1` FOREIGN KEY (`VF_MODULE_MODEL_UUID`) REFERENCES `vf_module` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='il fait ce qu''il dit';
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vnf_components`
+--
+
+DROP TABLE IF EXISTS `vnf_components`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vnf_components` (
+ `VNF_ID` int(11) NOT NULL,
+ `COMPONENT_TYPE` varchar(20) NOT NULL,
+ `HEAT_TEMPLATE_ID` int(11) DEFAULT NULL,
+ `HEAT_ENVIRONMENT_ID` int(11) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`VNF_ID`,`COMPONENT_TYPE`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vnf_components_recipe`
+--
+
+DROP TABLE IF EXISTS `vnf_components_recipe`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vnf_components_recipe` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `VNF_TYPE` varchar(200) DEFAULT NULL,
+ `VNF_COMPONENT_TYPE` varchar(45) NOT NULL,
+ `ACTION` varchar(50) NOT NULL,
+ `SERVICE_TYPE` varchar(45) DEFAULT NULL,
+ `VERSION` varchar(20) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `ORCHESTRATION_URI` varchar(256) NOT NULL,
+ `VNF_COMPONENT_PARAM_XSD` varchar(2048) DEFAULT NULL,
+ `RECIPE_TIMEOUT` int(11) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime DEFAULT CURRENT_TIMESTAMP,
+ `VF_MODULE_MODEL_UUID` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_4dpdwddaaclhc11wxsb7h59ma` (`VF_MODULE_MODEL_UUID`,`VNF_COMPONENT_TYPE`,`ACTION`,`VERSION`)
+) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vnf_recipe`
+--
+
+DROP TABLE IF EXISTS `vnf_recipe`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vnf_recipe` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `NF_ROLE` varchar(200) DEFAULT NULL,
+ `ACTION` varchar(50) NOT NULL,
+ `SERVICE_TYPE` varchar(45) DEFAULT NULL,
+ `VERSION_STR` varchar(20) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `ORCHESTRATION_URI` varchar(256) NOT NULL,
+ `VNF_PARAM_XSD` varchar(2048) DEFAULT NULL,
+ `RECIPE_TIMEOUT` int(11) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime DEFAULT CURRENT_TIMESTAMP,
+ `VF_MODULE_ID` varchar(100) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `UK_f3tvqau498vrifq3cr8qnigkr` (`VF_MODULE_ID`,`ACTION`,`VERSION_STR`)
+) ENGINE=InnoDB AUTO_INCREMENT=10015 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vnf_resource`
+--
+
+DROP TABLE IF EXISTS `vnf_resource`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vnf_resource` (
+ `ORCHESTRATION_MODE` varchar(20) NOT NULL DEFAULT 'HEAT',
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `AIC_VERSION_MIN` varchar(20) DEFAULT NULL,
+ `AIC_VERSION_MAX` varchar(20) DEFAULT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) DEFAULT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `MODEL_NAME` varchar(200) DEFAULT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) DEFAULT NULL,
+ `HEAT_TEMPLATE_ARTIFACT_UUID` varchar(200) DEFAULT NULL,
+ `RESOURCE_CATEGORY` varchar(200) DEFAULT NULL,
+ `RESOURCE_SUB_CATEGORY` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`MODEL_UUID`),
+ KEY `fk_vnf_resource__heat_template1` (`HEAT_TEMPLATE_ARTIFACT_UUID`),
+ CONSTRAINT `fk_vnf_resource__heat_template1` FOREIGN KEY (`HEAT_TEMPLATE_ARTIFACT_UUID`) REFERENCES `heat_template` (`ARTIFACT_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vnf_resource_customization`
+--
+
+DROP TABLE IF EXISTS `vnf_resource_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vnf_resource_customization` (
+ `ID` int(13) NOT NULL AUTO_INCREMENT,
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `MIN_INSTANCES` int(11) DEFAULT NULL,
+ `MAX_INSTANCES` int(11) DEFAULT NULL,
+ `AVAILABILITY_ZONE_MAX_COUNT` int(11) DEFAULT NULL,
+ `NF_TYPE` varchar(200) DEFAULT NULL,
+ `NF_ROLE` varchar(200) DEFAULT NULL,
+ `NF_FUNCTION` varchar(200) DEFAULT NULL,
+ `NF_NAMING_CODE` varchar(200) DEFAULT NULL,
+ `MULTI_STAGE_DESIGN` varchar(20) DEFAULT NULL,
+ `RESOURCE_INPUT` varchar(20000) DEFAULT NULL,
+ `CDS_BLUEPRINT_NAME` varchar(200) default null,
+ `CDS_BLUEPRINT_VERSION` varchar(20) default null,
+ `SKIP_POST_INSTANTIATION_CONFIGURATION` boolean default true,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `VNF_RESOURCE_MODEL_UUID` varchar(200) NOT NULL,
+ `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`ID`),
+ UNIQUE KEY `UK_vnf_resource_customization` (`MODEL_CUSTOMIZATION_UUID`,`SERVICE_MODEL_UUID`),
+ KEY `fk_vnf_resource_customization__vnf_resource1_idx` (`VNF_RESOURCE_MODEL_UUID`),
+ KEY `fk_vnf_resource_customization_to_service` (`SERVICE_MODEL_UUID`),
+ KEY `vnf_resource_customization_mod_cust_uuid_idx` (`MODEL_CUSTOMIZATION_UUID`),
+ CONSTRAINT `fk_vnf_resource_customization__vnf_resource1` FOREIGN KEY (`VNF_RESOURCE_MODEL_UUID`) REFERENCES `vnf_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_vnf_resource_customization_to_service` FOREIGN KEY (`SERVICE_MODEL_UUID`) REFERENCES `service` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vnfc_customization`
+--
+
+DROP TABLE IF EXISTS `vnfc_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vnfc_customization` (
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) NOT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `MODEL_NAME` varchar(200) NOT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) NOT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `vnfc_instance_group_customization`
+--
+
+DROP TABLE IF EXISTS `vnfc_instance_group_customization`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `vnfc_instance_group_customization` (
+ `ID` int(13) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ `VNF_RESOURCE_CUSTOMIZATION_ID` int(13) NOT NULL,
+ `INSTANCE_GROUP_MODEL_UUID` varchar(200) NOT NULL,
+ `FUNCTION` varchar(200) DEFAULT NULL,
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ KEY `fk_vnfc_instance_group_customization__instance_group1_idx` (`INSTANCE_GROUP_MODEL_UUID`),
+ CONSTRAINT `fk_vnfc_instance_group_customization__instance_group1` FOREIGN KEY (`INSTANCE_GROUP_MODEL_UUID`) REFERENCES `instance_group` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `fk_vnfc_instance_group_customization_vnf_customization` FOREIGN KEY (`VNF_RESOURCE_CUSTOMIZATION_ID`) REFERENCES `vnf_resource_customization` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+set foreign_key_checks=1;
+
+CREATE TABLE IF NOT EXISTS `pnf_resource` (
+ `ORCHESTRATION_MODE` varchar(20) NOT NULL DEFAULT 'HEAT',
+ `DESCRIPTION` varchar(1200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODEL_UUID` varchar(200) NOT NULL,
+ `MODEL_INVARIANT_UUID` varchar(200) DEFAULT NULL,
+ `MODEL_VERSION` varchar(20) NOT NULL,
+ `MODEL_NAME` varchar(200) DEFAULT NULL,
+ `TOSCA_NODE_TYPE` varchar(200) DEFAULT NULL,
+ `RESOURCE_CATEGORY` varchar(200) DEFAULT NULL,
+ `RESOURCE_SUB_CATEGORY` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`MODEL_UUID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE IF NOT EXISTS `pnf_resource_customization` (
+ `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ `MODEL_INSTANCE_NAME` varchar(200) NOT NULL,
+ `NF_TYPE` varchar(200) DEFAULT NULL,
+ `NF_ROLE` varchar(200) DEFAULT NULL,
+ `NF_FUNCTION` varchar(200) DEFAULT NULL,
+ `NF_NAMING_CODE` varchar(200) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `PNF_RESOURCE_MODEL_UUID` varchar(200) NOT NULL,
+ `MULTI_STAGE_DESIGN` varchar(20) DEFAULT NULL,
+ `RESOURCE_INPUT` varchar(2000) DEFAULT NULL,
+ `CDS_BLUEPRINT_NAME` varchar(200) DEFAULT NULL,
+ `CDS_BLUEPRINT_VERSION` varchar(20) DEFAULT NULL,
+ `SKIP_POST_INSTANTIATION_CONFIGURATION` boolean default true,
+ PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`),
+ KEY `fk_pnf_resource_customization__pnf_resource1_idx` (`PNF_RESOURCE_MODEL_UUID`),
+ CONSTRAINT `fk_pnf_resource_customization__pnf_resource1` FOREIGN KEY (`PNF_RESOURCE_MODEL_UUID`) REFERENCES `pnf_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE IF NOT EXISTS `pnf_resource_customization_to_service` (
+ `SERVICE_MODEL_UUID` varchar(200) NOT NULL,
+ `RESOURCE_MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL,
+ PRIMARY KEY (`SERVICE_MODEL_UUID`,`RESOURCE_MODEL_CUSTOMIZATION_UUID`)
+)ENGINE=InnoDB DEFAULT CHARSET=latin1;