diff options
Diffstat (limited to 'adapters/mso-openstack-adapters/src')
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; |