<MYSQL_USER>${gratest.mysql.user}</MYSQL_USER>
<MYSQL_PASSWORD>${gratest.mysql.password}</MYSQL_PASSWORD>
</environmentVariables>
- <!-- Temporarily ignore test failures - will remove this once we resolve them all -->
- <testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
<plugin>
</ports>
<wait>
<log>Started GenericResourceMsApp</log>
- <time>180000</time>
+ <time>240000</time>
</wait>
<log>
<enabled>true</enabled>
import org.onap.ccsdk.apps.services.SvcLogicFactory;
import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicLoader;
import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceBase;
import org.onap.sdnc.apps.ms.gra.data.ConfigContrailRouteAllottedResourcesRepository;
import org.onap.sdnc.apps.ms.gra.data.ConfigNetworksRepository;
@Autowired
protected SvcLogicServiceBase svc;
+ @Autowired
+ protected SvcLogicLoader svcLogicLoader;
+
@Autowired
private ConfigPreloadDataRepository configPreloadDataRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
@Component
@ComponentScan(basePackages = { "org.onap.sdnc.apps.ms.gra.*", "org.onap.ccsdk.apps.services" })
+
public class ServiceDataHelper {
@Autowired
private List<ConfigVnfs> vnfsToRemove = new LinkedList<ConfigVnfs>();
private List<ConfigVfModules> vfModulesToRemove = new LinkedList<ConfigVfModules>();
+ // Deferred saves not working for now - do all immediate
public void save(ConfigServices service) {
- servicesToSave.add(service);
+ // servicesToSave.add(service);
+ configServicesRepository.save(service);
}
public void save(ConfigNetworks network) {
- networksToSave.add(network);
+ // networksToSave.add(network);
+ configNetworksRepository.save(network);
}
public void save(ConfigVnfs vnf) {
- vnfsToSave.add(vnf);
+ // vnfsToSave.add(vnf);
+ configVnfsRepository.save(vnf);
}
public void save(ConfigVfModules vfModule) {
- vfModulesToSave.add(vfModule);
+ // vfModulesToSave.add(vfModule);
+ configVfModulesRepository.save(vfModule);
}
public void remove(ConfigServices service) {
- servicesToRemove.add(service);
+ // servicesToRemove.add(service);
+ configServicesRepository.delete(service);
}
public void remove(ConfigNetworks network) {
- networksToRemove.add(network);
+ // networksToRemove.add(network);
+ configNetworksRepository.delete(network);
}
public void remove(ConfigVnfs vnf) {
- vnfsToRemove.add(vnf);
+ // vnfsToRemove.add(vnf);
+ configVnfsRepository.delete(vnf);
}
public void remove(ConfigVfModules vfModule) {
- vfModulesToRemove.add(vfModule);
+ // vfModulesToRemove.add(vfModule);
+ configVfModulesRepository.delete(vfModule);
}
public void commit() {
+ long numServicesBefore = configServicesRepository.count();
+ long numNetworksBefore = configNetworksRepository.count();
+ long numVnfsBefore = configVnfsRepository.count();
+ long numVfModulesBefore = configVfModulesRepository.count();
+
+ // Commit is a no-op for now
+ return;
+ /*
for (ConfigServices service : servicesToSave) {
configServicesRepository.save(service);
}
for (ConfigVfModules vfModule : vfModulesToSave) {
configVfModulesRepository.delete(vfModule);
}
+ long numServicesAfter = configServicesRepository.count();
+ long numNetworksAfter = configNetworksRepository.count();
+ long numVnfsAfter = configVnfsRepository.count();
+ long numVfModulesAfter = configVfModulesRepository.count();
+
+ System.out.print("Done");
+ */
}
}
} else {
configVnfsRepository.save(configVnf);
}
+
}
public void saveNetwork(String svcInstanceId, GenericResourceApiServicedataServicedataNetworksNetwork network, ServiceDataTransaction transaction) throws JsonProcessingException {
nullable: false
- column:
name: graph
- type: blob
+ type: longblob
- column:
name: modified_timestamp
type: timestamp
import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.sdnc.apps.ms.gra.GenericResourceMsApp;
+import org.onap.sdnc.apps.ms.gra.controllers.ServiceDataHelper.ServiceDataTransaction;
import org.onap.sdnc.apps.ms.gra.data.*;
import org.onap.sdnc.apps.ms.gra.swagger.model.*;
import org.springframework.beans.factory.annotation.Autowired;
@Transactional
public class ConfigApiServicesControllerTest {
+ private final static String TEST_SVC_INSTANCE_ID = "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca";
+ private final static String TEST_VNF_ID = "fae319cc-68d6-496f-be1e-a09e133c71d4";
+ private final static String TEST_VF_MODULE_ID = "45841173-3729-4a1d-a811-a3bde399e22d";
private final static String CONFIG_SERVICES_URL = "/config/GENERIC-RESOURCE-API:services/";
private final static String CONFIG_SERVICES_SERVICE_URL = "/config/GENERIC-RESOURCE-API:services/service/";
private final static String CONFIG_CR_ARS_CR_AR_URL = "/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/";
}
+ @Test
+ public void serviceDataLoadTest() throws Exception {
+ // Clear service data
+ clearServicesData();
+ assertEquals(0, configServicesRepository.count());
+ assertEquals(0, configNetworksRepository.count());
+ assertEquals(0, configVnfsRepository.count());
+ assertEquals(0, configVfModulesRepository.count());
+
+ // Add service data - just service
+ loadServicesData("src/test/resources/service1-service.json");
+ assertEquals(1, configServicesRepository.count());
+ assertEquals(0, configNetworksRepository.count());
+ assertEquals(0, configVnfsRepository.count());
+ assertEquals(0, configVfModulesRepository.count());
+
+ // Clear service data
+ clearServicesData();
+ assertEquals(0, configServicesRepository.count());
+ assertEquals(0, configNetworksRepository.count());
+ assertEquals(0, configVnfsRepository.count());
+ assertEquals(0, configVfModulesRepository.count());
+
+ // Add service data - service, vnf, vf-module
+ loadServicesData("src/test/resources/service1.json");
+ assertEquals(1, configServicesRepository.count());
+ assertEquals(0, configNetworksRepository.count());
+ assertEquals(1, configVnfsRepository.count());
+ assertEquals(1, configVfModulesRepository.count());
+
+
+
+ }
+
+ @Test
+ public void VnfDataLoadTest() throws Exception {
+ // Clear service data
+ clearServicesData();
+ assertEquals(0, configServicesRepository.count());
+ assertEquals(0, configNetworksRepository.count());
+ assertEquals(0, configVnfsRepository.count());
+ assertEquals(0, configVfModulesRepository.count());
+
+ // Add vnf data
+ loadVnfData("src/test/resources/vnf-data.json");
+ assertEquals(1, configServicesRepository.count());
+ assertEquals(0, configNetworksRepository.count());
+ assertEquals(1, configVnfsRepository.count());
+ assertEquals(1, configVfModulesRepository.count());
+
+ // Clear service data
+ clearServicesData();
+ assertEquals(0, configServicesRepository.count());
+ assertEquals(0, configNetworksRepository.count());
+ assertEquals(0, configVnfsRepository.count());
+ assertEquals(0, configVfModulesRepository.count());
+
+ }
@Test
public void configGENERICRESOURCEAPIservicesDelete() throws Exception {
clearServicesData();
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+"service1/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
assertEquals(1, configServicesRepository.count());
// Test with data
- mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+"service1/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
loadServicesData("src/test/resources/service1.json");
assert(configServicesRepository.count() > 0);
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
// Test with no data
clearServicesData();
- mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
}
String content = readFileContent("src/test/resources/service1-serviceitem.json");
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+"service1/").contentType(MediaType.APPLICATION_JSON).content(content))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(201, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
// Test with existing data - should return 409
- mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+"service1/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(409, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
String content = readFileContent("src/test/resources/service1-serviceitem.json");
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/").contentType(MediaType.APPLICATION_JSON).content(content))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(201, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
// Test with existing data - should return 409
- mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
clearServicesData();
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
assertEquals(1, configServicesRepository.count());
// Test with data
- mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
- List<ConfigServices> services = configServicesRepository.findBySvcInstanceId("service1");
+ List<ConfigServices> services = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID);
assertEquals(1, services.size());
assertEquals(null, services.get(0).getSvcData());
loadServicesData("src/test/resources/service1.json");
assert(configServicesRepository.count() > 0);
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
// Test with no data
clearServicesData();
- mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
}
String content = readFileContent("src/test/resources/service1-servicedata.json");
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
// Test with empty service data
ConfigServices service = new ConfigServices();
- service.setSvcInstanceId("service1");
+ service.setSvcInstanceId(TEST_SVC_INSTANCE_ID);
configServicesRepository.save(service);
assertEquals(1, configServicesRepository.count());
- mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(201, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
- List<ConfigServices> updatedService = configServicesRepository.findBySvcInstanceId("service1");
+ List<ConfigServices> updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID);
assertEquals(1, updatedService.size());
assertNotEquals(null, updatedService.get(0).getSvcData());
// Test with existing data - should return 409
- mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(409, mvcResult.getResponse().getStatus());
String content = readFileContent("src/test/resources/service1-servicedata.json");
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
// Test with empty service data
ConfigServices service = new ConfigServices();
- service.setSvcInstanceId("service1");
+ service.setSvcInstanceId(TEST_SVC_INSTANCE_ID);
configServicesRepository.save(service);
- mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(201, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
- List<ConfigServices> updatedService = configServicesRepository.findBySvcInstanceId("service1");
+ List<ConfigServices> updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID);
assertEquals(1, updatedService.size());
assertNotEquals(null, updatedService.get(0).getSvcData());
// Test with existing data - should return 204
- mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
clearServicesData();
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
assertEquals(1, configServicesRepository.count());
// Test with data
- mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
- List<ConfigServices> services = configServicesRepository.findBySvcInstanceId("service1");
+ List<ConfigServices> services = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID);
assertEquals(1, services.size());
assertEquals(null, services.get(0).getServiceStatus());
}
loadServicesData("src/test/resources/service1.json");
assert(configServicesRepository.count() > 0);
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
// Test with no data
clearServicesData();
- mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
}
String content = readFileContent("src/test/resources/service1-servicestatus.json");
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
// Test with empty service data
ConfigServices service = new ConfigServices();
- service.setSvcInstanceId("service1");
+ service.setSvcInstanceId(TEST_SVC_INSTANCE_ID);
configServicesRepository.save(service);
- mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(201, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
- List<ConfigServices> updatedService = configServicesRepository.findBySvcInstanceId("service1");
+ List<ConfigServices> updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID);
assertEquals(1, updatedService.size());
assertNotEquals(null, updatedService.get(0).getServiceStatus());
// Test with existing data - should return 409
- mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(409, mvcResult.getResponse().getStatus());
String content = readFileContent("src/test/resources/service1-servicestatus.json");
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
// Test with empty service status
ConfigServices service = new ConfigServices();
- service.setSvcInstanceId("service1");
+ service.setSvcInstanceId(TEST_SVC_INSTANCE_ID);
configServicesRepository.save(service);
- mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(201, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
- List<ConfigServices> updatedService = configServicesRepository.findBySvcInstanceId("service1");
+ List<ConfigServices> updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID);
assertEquals(1, updatedService.size());
assertNotEquals(null, updatedService.get(0).getServiceStatus());
// Test with existing data - should return 204
- mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-status/").contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
loadServicesData("src/test/resources/service1.json");
assert(configServicesRepository.count() > 0);
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/service-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/service-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
// Test with no data
clearServicesData();
- mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/service-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/service-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
}
clearServicesData();
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
assertEquals(1, configServicesRepository.count());
// Test with data
- mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
- clearServicesData();
- loadVnfData("src/test/resources/vnf-data.json");
- assertEquals(1, configServicesRepository.count());
- mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c/").contentType(MediaType.APPLICATION_JSON).content(""))
- .andReturn();
- assertEquals(404, mvcResult.getResponse().getStatus());
+ // Test with bad data
clearServicesData();
createBadVnfData(true, true);
assertEquals(1, configServicesRepository.count());
- mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
clearServicesData();
createBadVnfData(false, false);
assertEquals(1, configServicesRepository.count());
- mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
clearServicesData();
createBadVnfData(false, true);
assertEquals(1, configServicesRepository.count());
- mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.delete("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
}
clearServicesData();
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
assertEquals(1, configServicesRepository.count());
// Test with data
- mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
clearServicesData();
createBadVnfData(false, false);
assertEquals(1, configServicesRepository.count());
- mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
}
// Clean up data
clearServicesData();
assertEquals(0, configServicesRepository.count());
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(readFileContent("src/test/resources/vnf-data.json")))
+ assertEquals(0, configVnfsRepository.count());
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(readFileContent("src/test/resources/vnf-data.json")))
.andReturn();
assertEquals(201, mvcResult.getResponse().getStatus());
- assertEquals(1, configServicesRepository.count());
+ assertEquals(1, configVnfsRepository.count());
- mvcResult = mvc.perform(MockMvcRequestBuilders.put("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/").contentType(MediaType.APPLICATION_JSON).content(readFileContent("src/test/resources/vnf-data.json")))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.put("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/").contentType(MediaType.APPLICATION_JSON).content(readFileContent("src/test/resources/vnf-data.json")))
.andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
- assertEquals(1, configServicesRepository.count());
+ assertEquals(1, configVnfsRepository.count());
}
@Test
clearServicesData();
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/vnf-data/vnf-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vnf-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
assertEquals(0, configServicesRepository.count());
assertEquals(1, configServicesRepository.count());
// Test with data
- mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/vnf-data/vnf-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vnf-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
clearServicesData();
createBadVnfData(false, false);
assertEquals(1, configServicesRepository.count());
- mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/test-siid/service-data/vnfs/vnf/2a3bfc93-cd4c-4845-8919-434b2d999ada/vnf-data/vnf-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get("/config/GENERIC-RESOURCE-API:services/service/"+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vnf-topology/").contentType(MediaType.APPLICATION_JSON).content(""))
.andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
}
String content = readFileContent("src/test/resources/service1-vfmodule-item.json");
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/vf-1/")
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/"+TEST_VF_MODULE_ID+"/")
.contentType(MediaType.APPLICATION_JSON).content(content)).andReturn();
assertEquals(400, mvcResult.getResponse().getStatus());
loadServicesData("src/test/resources/service1.json");
assertEquals(1, configServicesRepository.count());
- mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/vf-1/")
+ mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/"+TEST_VF_MODULE_ID+"/")
.contentType(MediaType.APPLICATION_JSON).content(content)).andReturn();
assertEquals(204, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
clearServicesData();
// Test with no data
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/")
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/")
.contentType(MediaType.APPLICATION_JSON).content("")).andReturn();
assertEquals(400, mvcResult.getResponse().getStatus());
assertEquals(1, configServicesRepository.count());
// Test with data
- mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/")
+ mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/")
.contentType(MediaType.APPLICATION_JSON).content("")).andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
loadServicesData("src/test/resources/service1.json");
assert(configServicesRepository.count() > 0);
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/")
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/")
.contentType(MediaType.APPLICATION_JSON).content("")).andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
// Test with bad vf-module-id in input
- mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/dummyid/")
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/dummyid/")
.contentType(MediaType.APPLICATION_JSON).content("")).andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
// Test with no data
clearServicesData();
- mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/")
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/")
.contentType(MediaType.APPLICATION_JSON).content("")).andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
loadServicesData("src/test/resources/service1.json");
assert(configServicesRepository.count() > 0);
- MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/vf-module-data/vf-module-topology/").contentType(MediaType.APPLICATION_JSON)
+ MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/vf-module-data/vf-module-topology/").contentType(MediaType.APPLICATION_JSON)
.content("")).andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
// Test with existing service and vnf but with dummy vf-module-id in input
clearServicesData();
- mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/dummy/vf-module-data/vf-module-topology/").contentType(MediaType.APPLICATION_JSON)
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/dummy/vf-module-data/vf-module-topology/").contentType(MediaType.APPLICATION_JSON)
.content("")).andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
// Test with no data
clearServicesData();
- mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+"service1/service-data/vnfs/vnf/fae319cc-68d6-496f-be1e-a09e133c71d4/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/vf-module-data/vf-module-topology/").contentType(MediaType.APPLICATION_JSON)
+ mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/vnfs/vnf/"+TEST_VNF_ID+"/vnf-data/vf-modules/vf-module/269bda16-f40c-41a9-baef-e8905ab2b70e/vf-module-data/vf-module-topology/").contentType(MediaType.APPLICATION_JSON)
.content("")).andReturn();
assertEquals(404, mvcResult.getResponse().getStatus());
}
}
}
+ private void loadServicesData(String path, ServiceDataTransaction transaction) throws IOException {
+ ObjectMapper objectMapper = new ObjectMapper();
+ String content = readFileContent(path);
+ GenericResourceApiServiceModelInfrastructure services = objectMapper.readValue(content, GenericResourceApiServiceModelInfrastructure.class);
+
+ for (GenericResourceApiServicemodelinfrastructureService service : services.getService()) {
+ ConfigServices newService = new ConfigServices();
+ newService.setSvcInstanceId(service.getServiceInstanceId());
+ newService.setServiceStatus(service.getServiceStatus());
+ serviceDataHelper.saveService(newService, service.getServiceData(), transaction);
+ }
+ transaction.commit();
+ }
+
private void loadVnfData(String path) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
String content = readFileContent(path);
GenericResourceApiServicedataServicedataVnfsVnf vnfData = objectMapper.readValue(content, GenericResourceApiServicedataServicedataVnfsVnf.class);
- String svcInstanceId = "test-siid";
+ String svcInstanceId = TEST_SVC_INSTANCE_ID;
ConfigServices newService = new ConfigServices(svcInstanceId);
configServicesRepository.save(newService);
serviceDataHelper.saveVnf(svcInstanceId, vnfData, null);
}
+ private void loadVnfData(String path, ServiceDataTransaction transaction) throws IOException {
+ ObjectMapper objectMapper = new ObjectMapper();
+ String content = readFileContent(path);
+ GenericResourceApiServicedataServicedataVnfsVnf vnfData = objectMapper.readValue(content, GenericResourceApiServicedataServicedataVnfsVnf.class);
+ String svcInstanceId = TEST_SVC_INSTANCE_ID;
+ ConfigServices newService = new ConfigServices(svcInstanceId);
+ configServicesRepository.save(newService);
+ serviceDataHelper.saveVnf(svcInstanceId, vnfData, transaction);
+ if (transaction != null) {
+ transaction.commit();
+ }
+ }
+
private void createBadVnfData(boolean useNullSvc, boolean useNullVnfs) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
ConfigServices newService = new ConfigServices();
@AutoConfigureMockMvc
@Transactional
public class OperationsApiControllerTest {
-
+ private final static String TEST_SVC_INSTANCE_ID = "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca";
+ private final static String TEST_VNF_ID = "fae319cc-68d6-496f-be1e-a09e133c71d4";
+ private final static String TEST_VF_MODULE_ID = "45841173-3729-4a1d-a811-a3bde399e22d";
private final static String PRELOAD_NETWORK_URL = "/operations/GENERIC-RESOURCE-API:preload-network-topology-operation/";
private final static String PRELOAD_VFMODULE_URL = "/operations/GENERIC-RESOURCE-API:preload-vf-module-topology-operation/";
private final static String SERVICE_TOPOLOGY_URL = "/operations/GENERIC-RESOURCE-API:service-topology-operation/";
operationalServicesRepository.deleteAll();
// Load services data
- loadServicesData("src/test/resources/service1.json");
+ loadServicesData("src/test/resources/service1-service.json");
+
// Add invalid content
String content = readFileContent("src/test/resources/preload1-rpc-vfmodule.json");
mvcResult = mvc.perform(MockMvcRequestBuilders.post(VF_MODULE_TOPOLOGY_URL).contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
- assertEquals(1, configServicesRepository.count());
- assertEquals(0, configNetworksRepository.count());
- assertEquals(1, configVnfsRepository.count());
- assertEquals(1, configVfModulesRepository.count());
// Delete content
content = readFileContent("src/test/resources/vf-module-unassign-rpc.json");
mvcResult = mvc.perform(MockMvcRequestBuilders.post(VF_MODULE_TOPOLOGY_URL).contentType(MediaType.APPLICATION_JSON).content(content))
.andReturn();
assertEquals(200, mvcResult.getResponse().getStatus());
- assertEquals(1, configServicesRepository.count());
- assertEquals(0, configNetworksRepository.count());
- assertEquals(1, configVnfsRepository.count());
- assertEquals(0, configVfModulesRepository.count());
}
"model-uuid": "00e50cbd-ef0f-4b28-821e-f2b583752dd3",
"model-version": "1920"
},
- "service-id": "service1",
- "service-instance-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"subscriber-name": "test",
"subscription-service-type": "test"
},
"model-uuid": "00e50cbd-ef0f-4b28-821e-f2b583752dd3",
"model-version": "1920"
},
- "service-id": "service1",
- "service-instance-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"subscriber-name": "test",
"subscription-service-type": "test"
},
"service-request-input": {
- "service-instance-name": "service-instance-1"
+ "service-instance-name": "zrdm61asmsf01_svc"
}
}
}
{
"service": [
{
- "service-instance-id": "service1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"service-data": {
"request-information": {
"notification-url": "http://dev.null",
"source": "curl"
},
"service-request-input": {
- "service-instance-name": "service-instance-1"
+ "service-instance-name": "zrdm61asmsf01_svc"
},
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-invariant-uuid": "12341234",
"model-name": "vBNG_0202",
},
"global-customer-id": "cust123",
"subscription-service-type": "test",
- "service-instance-id": "service1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"subscriber-name": "test"
},
"service-topology": {
"service-topology-identifier": {
- "service-instance-id": "service1",
- "service-instance-name": "service-instance-1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-name": "zrdm61asmsf01_svc",
"service-type": "test",
"global-customer-id": "cust123"
},
{
"service": [
{
- "service-instance-id": "service1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"service-data": {
"request-information": {
"request-id": "f5554477-51c7-4f8e-9183-f8968f3f86bf",
"source": "MSO"
},
"service-request-input": {
- "service-instance-name": "NGINX-INGRESS-1"
+ "service-instance-name": "zrdm61asmsf01_svc"
},
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"global-customer-id": "Demonstration",
"subscription-service-type": "service-nginx-ingress-1"
},
"service-topology": {
"service-topology-identifier": {
- "service-instance-id": "service1",
- "service-instance-name": "NGINX-INGRESS-1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-name": "zrdm61asmsf01_svc",
"service-type": "service-nginx-ingress-1",
"global-customer-id": "Demonstration"
},
"last-action": "CreateVnfInstance"
},
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"global-customer-id": "Demonstration",
"subscription-service-type": "service-nginx-ingress-1"
},
"source": "MSO"
},
"service-request-input": {
- "service-instance-name": "NGINX-INGRESS-1"
+ "service-instance-name": "zrdm61asmsf01_svc"
},
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
- "global-customer-id": "Demonstration",
- "subscription-service-type": "service-nginx-ingress-1"
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "global-customer-id": "cust123",
+ "subscription-service-type": "test"
},
"service-topology": {
"service-topology-identifier": {
- "service-instance-id": "service1",
- "service-instance-name": "NGINX-INGRESS-1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-name": "zrdm61asmsf01_svc",
"service-type": "service-nginx-ingress-1",
"global-customer-id": "Demonstration"
},
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
- "global-customer-id": "Demonstration",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "global-customer-id": "cust123",
"subscription-service-type": "service-nginx-ingress-1"
},
"sdnc-request-header": {
"vf-module-id": "269bda16-f40c-41a9-baef-e8905ab2b70e",
"vf-module-data": {
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
- "global-customer-id": "Demonstration",
- "subscription-service-type": "service-nginx-ingress-1"
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "global-customer-id": "cust123",
+ "subscription-service-type": "test"
},
"vf-module-topology": {
"onap-model-information": {
"source": "MSO"
},
"service-request-input": {
- "service-instance-name": "NGINX-INGRESS-1"
+ "service-instance-name": "zrdm61asmsf01_svc"
},
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
- "global-customer-id": "Demonstration",
- "subscription-service-type": "service-nginx-ingress-1"
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "global-customer-id": "cust123",
+ "subscription-service-type": "test"
},
"service-topology": {
"service-topology-identifier": {
- "service-instance-id": "service1",
- "service-instance-name": "NGINX-INGRESS-1",
- "service-type": "service-nginx-ingress-1",
- "global-customer-id": "Demonstration"
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-name": "zrdm61asmsf01_svc",
+ "service-type": "test",
+ "global-customer-id": "cust123"
},
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"last-action": "CreateVnfInstance"
},
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
- "global-customer-id": "Demonstration",
- "subscription-service-type": "service-nginx-ingress-1"
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "global-customer-id": "cust123",
+ "subscription-service-type": "test"
},
"sdnc-request-header": {
"svc-action": "activate",
"vf-module-id": "269bda16-f40c-41a9-baef-e8905ab2b70e",
"vf-module-data": {
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
- "global-customer-id": "Demonstration",
- "subscription-service-type": "service-nginx-ingress-1"
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "global-customer-id": "cust123",
+ "subscription-service-type": "test"
},
"vf-module-topology": {
"onap-model-information": {
{
"vf-module-data": {
+ "vf-module-level-oper-status": {
+ "order-status": "PendingCreate",
+ "last-rpc-action": "assign"
+ },
"request-information": {
- "notification-url": "string",
- "order-number": "string",
- "order-version": "string",
- "request-action": "CreateNetworkInstance",
- "request-id": "string",
- "source": "string"
+ "request-action": "CreateVfModuleInstance",
+ "source": "simulator",
+ "request-id": "c594915b-cd49-4276-8e6b-536caa5f5285"
},
"sdnc-request-header": {
- "svc-action": "assign",
- "svc-notification-url": "string",
- "svc-request-id": "string"
+ "svc-request-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "svc-action": "assign"
},
"service-information": {
- "global-customer-id": "string",
"onap-model-information": {
- "model-customization-uuid": "string",
- "model-invariant-uuid": "string",
- "model-name": "string",
- "model-uuid": "string",
- "model-version": "string"
+ "model-name": "vcpesvc_vbng_0412a",
+ "model-version": "3.0",
+ "model-uuid": "12eb33fa-b221-4d87-939c-d808b5799a7c",
+ "model-invariant-uuid": "ead151e2-e18a-44fc-b6ac-3ae3d819dcd6"
},
- "service-id": "string",
- "service-instance-id": "string",
- "subscriber-name": "string",
- "subscription-service-type": "string"
+ "subscription-service-type": "VIRTUAL USP",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3cac",
+ "global-customer-id": "cust123",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca"
},
"vf-module-information": {
- "from-preload": true,
"onap-model-information": {
- "model-customization-uuid": "string",
- "model-invariant-uuid": "string",
- "model-name": "string",
- "model-uuid": "string",
- "model-version": "string"
+ "model-name": "SmsfNc2578..smsf_base..module-0",
+ "model-version": "3",
+ "model-customization-uuid": "59ffe5ba-cfaf-4e83-a2f3-159522dcebac",
+ "model-uuid": "513cc9fc-fff5-4c46-9728-393437536c4d",
+ "model-invariant-uuid": "7ca7567c-f42c-4ed8-bcde-f8971b92d90a"
},
- "vf-module-id": "vf-1",
- "vf-module-type": "string"
- },
- "vf-module-level-oper-status": {
- "create-timestamp": "string",
- "last-action": "CreateNetworkInstance",
- "last-order-status": "Active",
- "last-rpc-action": "assign",
- "last-svc-request-id": "string",
- "modify-timestamp": "string",
- "order-status": "Active"
+ "vf-module-id": "45841173-3729-4a1d-a811-a3bde399e22d",
+ "from-preload": true,
+ "vf-module-type": "SmsfNc2578..smsf_base..module-0"
},
"vf-module-request-input": {
- "aic-clli": "string",
- "aic-cloud-region": "string",
- "cloud-owner": "string",
- "request-version": "string",
- "tenant": "string",
- "vf-module-input-parameters": {
- "param": [
- {
- "name": "string",
- "resource-resolution-data": {
- "capability-name": "string",
- "payload": "string",
- "resource-key": [
- {
- "name": "string",
- "value": "string"
- }
- ],
- "status": "string"
- },
- "value": "string"
- }
- ]
+ "aic-cloud-region": "rdm61a",
+ "cloud-owner": "att-nc",
+ "tenant": "4714fe06cc24414c914c51ca0aa1bf84",
+ "vf-module-name": "vfmodule1",
+ "vf-module-input-parameters": {}
+ },
+ "vnf-information": {
+ "onap-model-information": {
+ "model-name": "vcpevsp_vgmux_0412 ",
+ "model-version": "1.0",
+ "model-customization-uuid": "5724fcc8-2ae2-45ce-8d44-795092b85dee",
+ "model-uuid": "ba3b8981-9a9c-4945-92aa-486234ec321f",
+ "model-invariant-uuid": "b3dc6465-942c-42af-8464-2bf85b6e504b"
},
- "vf-module-name": "vf-name-1"
+ "vnf-id": "fae319cc-68d6-496f-be1e-a09e133c71d4",
+ "vnf-name": "zrdm61asmsf01",
+ "vnf-type": "SMSF-NC2-578-SVC/SMSF-NC2-578"
},
"vf-module-topology": {
- "aic-clli": "string",
- "aic-cloud-region": "string",
- "cloud-owner": "string",
"onap-model-information": {
- "model-customization-uuid": "string",
- "model-invariant-uuid": "string",
- "model-name": "string",
- "model-uuid": "string",
- "model-version": "string"
- },
- "sdnc-generated-cloud-resources": true,
- "tenant": "string",
- "vf-module-assignments": {
- "dhcp-subnet-assignments": {
- "dhcp-subnet-assignment": [
- {
- "ip-version": "string",
- "network-role": "string",
- "neutron-subnet-id": "string"
- }
- ]
- },
- "vf-module-status": "string",
- "vlan-vnfc-instance-groups": {
- "vlan-vnfc-instance-group": [
- {
- "instance-group-function": "string",
- "instance-group-id": "string",
- "vnf-id": "fae319cc-68d6-496f-be1e-a09e133c71d4",
- "vnfcs": {
- "vnfc": [
- {
- "vnfc-name": "string",
- "vnic-groups": {
- "vnic-group": [
- {
- "network-instance-group-function": "string",
- "vlan-assignment-policy-name": "string",
- "vlan-common-ip-addresses": {
- "ip-addresses": {
- "ipv4-address": "string",
- "ipv6-address": "string",
- "vipv4-address": "string",
- "vipv6-address": "string"
- }
- },
- "vlan-tag-index-next": 0,
- "vlan-vnics": {
- "vlan-vnic": [
- {
- "vnic-port-id": "string",
- "vnic-sub-interfaces": {
- "sub-interface-network-data": [
- {
- "floating-ips": {
- "floating-ip-v4": [
- "string"
- ],
- "floating-ip-v6": [
- "string"
- ]
- },
- "network-id": "string",
- "network-information-items": {
- "network-information-item": [
- {
- "ip-count": 0,
- "ip-version": "string",
- "network-ips": {
- "network-ip": [
- "string"
- ]
- },
- "use-dhcp": "Y"
- }
- ]
- },
- "network-name": 0,
- "network-role": "string",
- "network-role-tag": "string",
- "neutron-network-id": "string",
- "vlan-tag-id": 0
- }
- ]
- }
- }
- ]
- },
- "vnic-interface-role": "string"
- }
- ]
- }
- }
- ]
- }
- }
- ]
- },
- "vms": {
- "vm": [
- {
- "nfc-naming-code": "string",
- "onap-model-information": {
- "model-customization-uuid": "string",
- "model-invariant-uuid": "string",
- "model-name": "string",
- "model-uuid": "string",
- "model-version": "string"
- },
- "vm-count": 0,
- "vm-names": {
- "vm-name": [
- "string"
- ],
- "vnfc-names": [
- {
- "vnfc-name": "string",
- "vnfc-networks": {
- "vnfc-network-data": [
- {
- "connection-point": {
- "connection-point-id": "string",
- "port-id": "string",
- "vlan-data": [
- {
- "vlan-role": "string",
- "vlan-tag-description": "string",
- "vlan-tag-id": "string",
- "vlan-uuid": "string"
- }
- ]
- },
- "vnfc-network-role": "string",
- "vnfc-ports": {
- "vnfc-port": [
- {
- "common-sub-interface-role": "string",
- "vnfc-port-id": "string",
- "vnic-sub-interfaces": {
- "sub-interface-network-data": [
- {
- "floating-ips": {
- "floating-ip-v4": [
- "string"
- ],
- "floating-ip-v6": [
- "string"
- ]
- },
- "network-id": "string",
- "network-information-items": {
- "network-information-item": [
- {
- "ip-count": 0,
- "ip-version": "string",
- "network-ips": {
- "network-ip": [
- "string"
- ]
- },
- "use-dhcp": "Y"
- }
- ]
- },
- "network-name": 0,
- "network-role": "string",
- "network-role-tag": "string",
- "neutron-network-id": "string",
- "vlan-tag-id": 0
- }
- ]
- }
- }
- ]
- },
- "vnfc-subnet": [
- {
- "vnfc-ip-assignments": [
- {
- "vnfc-address-family": "ipv4",
- "vnfc-subnet-dhcp": "Y",
- "vnfc-subnet-ip": [
- {
- "ip-type": "FIXED",
- "vnfc-client-key": "string",
- "vnfc-ip-address": "string"
- }
- ],
- "vnfc-subnet-ip-count": 0
- }
- ],
- "vnfc-subnet-role": "string"
- }
- ],
- "vnfc-type": "string"
- }
- ]
- }
- }
- ]
- },
- "vm-networks": {
- "vm-network": [
- {
- "floating-ips": {
- "floating-ip-v4": [
- "string"
- ],
- "floating-ip-v6": [
- "string"
- ]
- },
- "interface-route-prefixes": {
- "interface-route-prefix": [
- "string"
- ]
- },
- "is-trunked": true,
- "mac-addresses": {
- "mac-address": [
- "string"
- ]
- },
- "network-information-items": {
- "network-information-item": [
- {
- "ip-count": 0,
- "ip-version": "string",
- "network-ips": {
- "network-ip": [
- "string"
- ]
- },
- "use-dhcp": "Y"
- }
- ]
- },
- "network-role": "string",
- "network-role-tag": "string",
- "related-networks": {
- "related-network": [
- {
- "network-id": "string",
- "network-role": "string",
- "vlan-tags": {
- "is-private": true,
- "lower-tag-id": 0,
- "upper-tag-id": 0,
- "vlan-interface": "string"
- }
- }
- ]
- },
- "segmentation-id": "string",
- "sriov-parameters": {
- "application-tags": {
- "c-tags": {
- "c-tag": [
- "string"
- ],
- "ctag": [
- "string"
- ]
- },
- "ctags": {
- "c-tag": [
- "string"
- ],
- "ctag": [
- "string"
- ]
- },
- "s-tags": {
- "s-tag": [
- "string"
- ],
- "stag": [
- "string"
- ]
- },
- "stags": {
- "s-tag": [
- "string"
- ],
- "stag": [
- "string"
- ]
- }
- },
- "heat-vlan-filters": {
- "heat-vlan-filter": [
- "string"
- ]
- }
- }
- }
- ]
- },
- "vm-type": "string",
- "vm-type-tag": "string"
- }
- ]
- }
- },
- "vf-module-parameters": {
- "param": [
- {
- "name": "string",
- "resource-resolution-data": {
- "capability-name": "string",
- "payload": "string",
- "resource-key": [
- {
- "name": "string",
- "value": "string"
- }
- ],
- "status": "string"
- },
- "value": "string"
- }
- ]
+ "model-name": "SmsfNc2578..smsf_base..module-0",
+ "model-version": "3",
+ "model-customization-uuid": "59ffe5ba-cfaf-4e83-a2f3-159522dcebac",
+ "model-uuid": "513cc9fc-fff5-4c46-9728-393437536c4d",
+ "model-invariant-uuid": "7ca7567c-f42c-4ed8-bcde-f8971b92d90a"
},
+ "aic-cloud-region": "rdm61a",
+ "tenant": "4714fe06cc24414c914c51ca0aa1bf84",
"vf-module-topology-identifier": {
- "vf-module-id": "vf-1",
- "vf-module-name": "vf-name-1",
- "vf-module-type": "string"
- }
- },
- "vnf-information": {
- "onap-model-information": {
- "model-customization-uuid": "string",
- "model-invariant-uuid": "string",
- "model-name": "string",
- "model-uuid": "string",
- "model-version": "string"
+ "vf-module-name": "vfmodule1",
+ "vf-module-id": "45841173-3729-4a1d-a811-a3bde399e22d",
+ "vf-module-type": "SmsfNc2578..smsf_base..module-0"
},
- "vnf-id": "fae319cc-68d6-496f-be1e-a09e133c71d4",
- "vnf-name": "Python_ONAP_SDK_vnf_instance_2aff902a-4714-4d08-942d-d97b3a3b87c2",
- "vnf-type": "service-nginx-ingress-1/nginx-ingress-1 0"
+ "vf-module-parameters": {},
+ "sdnc-generated-cloud-resources": true
}
},
- "vf-module-id": "vf-1"
+ "vf-module-id": "45841173-3729-4a1d-a811-a3bde399e22d"
}
\ No newline at end of file
{
"service": [
{
- "service-instance-id": "service1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"service-data": {
"request-information": {
"request-id": "f5554477-51c7-4f8e-9183-f8968f3f86bf",
"source": "MSO"
},
"service-request-input": {
- "service-instance-name": "NGINX-INGRESS-1"
+ "service-instance-name": "zrdm61asmsf01_svc"
},
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"global-customer-id": "Demonstration",
"subscription-service-type": "service-nginx-ingress-1"
},
"service-topology": {
"service-topology-identifier": {
- "service-instance-id": "service1",
- "service-instance-name": "NGINX-INGRESS-1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-name": "zrdm61asmsf01_svc",
"service-type": "service-nginx-ingress-1",
"global-customer-id": "Demonstration"
},
"last-action": "CreateVnfInstance"
},
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"global-customer-id": "Demonstration",
"subscription-service-type": "service-nginx-ingress-1"
},
"vf-module-id": "269bda16-f40c-41a9-baef-e8905ab2b70e",
"vf-module-data": {
"service-information": {
- "service-id": "service1",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"onap-model-information": {
"model-name": "service-nginx-ingress-1",
"model-invariant-uuid": "0fe6193d-2d65-4b8e-a4ee-a07821566b5e",
"model-version": "1.0",
"model-uuid": "48223a6a-f5e1-4354-95eb-f5ea014fc9df"
},
- "service-instance-id": "service1",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"global-customer-id": "Demonstration",
"subscription-service-type": "service-nginx-ingress-1"
},
<service-logic\r
xmlns='http://www.onap.org/sdnc/svclogic'\r
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
<method rpc='network-topology-operation-assign-from-preload' mode='sync'>\r
<block atomic="true">\r
<switch test="`$tmp.nidx`">\r
<set>\r
<parameter name="tmp.error-message" value=""/>\r
</set>\r
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-name = $tmp.network-instance-name" \r
- local-only="false" \r
- pfx="aai.l3-network">\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="'Error searching for l3-network with network-name =' + $tmp.network-instance-name + 'from AnAI'" />\r
- </return>\r
- </outcome>\r
- </get-resource>\r
<set>\r
<parameter name='tmp.l3-network.network-name' value="`$tmp.network-instance-name`" />\r
<parameter name='tmp.l3-network.network-type' value="`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-type`" />\r
<parameter name="ctxVariable" value="tmp.return.generate.gateway-address" />\r
<outcome value='failure'>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<call module="VNF-API" rpc="generate-subnets-subnet-id" mode="sync" >\r
<outcome value='failure'>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving subnet in AnAI where subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving subnet in AnAI where subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<call module="GENERIC-RESOURCE-API" rpc="generate-host-routes-host-route-id" mode="sync" >\r
<outcome value='failure'>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving host-route in AnAI where host-route-id = ' + $tmp.return.generate-host-routes-host-route-id.uuid`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving host-route in AnAI where host-route-id = ' + $tmp.return.generate-host-routes-host-route-id.uuid`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
</for>\r
</block>\r
</for>\r
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network:relationship-list" \r
- key="l3-network.network-id = $tmp.l3-network.network-id" \r
- force="true" \r
- local-only="false">\r
- <!-- create relationship-list -->\r
- <parameter name="relationship-list.relationship[0].related-to" value="tenant" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.cloud-region.cloud-owner`" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="tenant.tenant-id" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$network-topology-operation-input.network-request-input.tenant`" />\r
- <parameter name="relationship-list.relationship[1].related-to" value="cloud-region" />\r
- <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />\r
- <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$prop.cloud-region.cloud-owner`" />\r
- <parameter name="relationship-list.relationship[1].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />\r
- <parameter name="relationship-list.relationship[1].relationship-data[1].relationship-value" value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />\r
- <outcome value='failure'>\r
- <block atomic='true'>\r
- <set>\r
- <parameter name="error-code" value="500"/>\r
- <parameter name="tmp.error-message" value="`'An error occurred while saving tenant and cloud-region relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
- </set>\r
- <block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500'/>\r
- <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
- </return>\r
- </block>\r
- </block>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <block atomic='true'>\r
- <set>\r
- <parameter name="error-code" value="500"/>\r
- <parameter name="tmp.error-message" value="`'An error occurred while saving tenant and cloud-region relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
- </set>\r
- <block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500'/>\r
- <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
- </return>\r
- </block>\r
- </block>\r
- </outcome>\r
- </save>\r
<switch test="`$preload-data.preload-network-topology-information.vpn-bindings_length`">\r
<outcome value=''>\r
<set>\r
<parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where vpn-binding-id = ' + $tmp.vpn-binding-id + '.'`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where vpn-binding-id = ' + $preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where vpn-binding-id = ' + $preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving vpn-binding relationship for l3-network in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving vpn-binding relationship for l3-network in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'Failed to query newtork-policy from AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn + '. It is likely that the same network-policy-fqdn points to more than one network-policy objects in AnAI.'`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving network-policy relationship for l3-network in AnAI where network-policy-id = ' + $tmp.AnAI.network-policy.network-policy-id`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving network-policy relationship for l3-network in AnAI where network-policy-id = ' + $tmp.AnAI.network-policy.network-policy-id`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'Failed to query route-table-reference from AnAI where route-table-reference-fqdn = ' + $preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn + '. It is likely that the same route-table-reference-fqdn points to more than one route-table-reference objects in AnAI.'`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving route-table-reference relationship for l3-network in AnAI where route-table-reference-id = ' + $tmp.AnAI.route-table-reference.route-table-reference-id`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while saving route-table-reference relationship for l3-network in AnAI where route-table-reference-id = ' + $tmp.AnAI.route-table-reference.route-table-reference-id`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while updating l3-network is-bound-to-vpn in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
<parameter name="tmp.error-message" value="`'An error occurred while updating l3-network is-bound-to-vpn in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
</set>\r
<block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
<return status='failure'>\r
<parameter name='error-code' value='500'/>\r
<parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
</update>\r
</outcome>\r
</switch>\r
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network:relationship-list" \r
- key="l3-network.network-id = $tmp.l3-network.network-id" >\r
- <parameter name="relationship-list.relationship[0].related-to" value="service-instance" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="customer.global-customer-id" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.service-information.global-customer-id`" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="service-subscription.service-type" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$service-data.service-information.subscription-service-type`" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="service-instance.service-instance-id" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$service-data.service-information.service-instance-id`" />\r
- <outcome value='failure'>\r
- <block atomic='true'>\r
- <set>\r
- <parameter name="error-code" value="500"/>\r
- <parameter name="tmp.error-message" value="`'An error occurred while saving service-instance relationship for l3-network in AnAI where service-instance-id = ' + $network-topology-operation-input.service-information.service-instance-id`"/>\r
- </set>\r
- <block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500'/>\r
- <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
- </return>\r
- </block>\r
- </block>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <block atomic='true'>\r
- <set>\r
- <parameter name="error-code" value="500"/>\r
- <parameter name="tmp.error-message" value="`'An error occurred while saving service-instance relationship for l3-network in AnAI where service-instance-id = ' + $network-topology-operation-input.service-information.service-instance-id`"/>\r
- </set>\r
- <block atomic='true'>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
- <return status='failure'>\r
- <parameter name='error-code' value='500'/>\r
- <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
- </return>\r
- </block>\r
- </block>\r
- </outcome>\r
- </save>\r
<set>\r
<parameter name='network-topology.network-topology-identifier-structure.' value='`$tmp.l3-network.`' />\r
<parameter name='network-topology.tenant' value='`$network-topology-operation-input.network-request-input.tenant`' />\r
<return status='success' ></return>\r
</block>\r
</method>\r
-</service-logic>\r
+</service-logic>
\ No newline at end of file
<service-logic\r
xmlns='http://www.onap.org/sdnc/svclogic'\r
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
<method rpc='network-topology-operation-assign' mode='sync'>\r
<block atomic="true">\r
<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
<parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
<parameter name='contextPrefix' value='prop' />\r
</execute>\r
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="tenant" \r
- key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
- cloud-region.cloud-region-id = $network-topology-operation-input.network-request-input.aic-cloud-region AND\r
- tenant.tenant-id = $network-topology-operation-input.network-request-input.tenant"\r
- pfx='aai.tenant' local-only='false' >\r
- <outcome value='success'>\r
- <block atomic="true"></block>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Tenant not found in AAI" />\r
- </return>\r
- </outcome>\r
- <outcome value='Other'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Tenant not found in AAI" />\r
- </return>\r
+ <switch test="`$network-topology-operation-input.network-request-input.cloud-owner != ''`">\r
+ <outcome value='true'>\r
+ <set>\r
+ <parameter name='prop.cloud-region.cloud-owner' value='`$network-topology-operation-input.network-request-input.cloud-owner`' />\r
+ </set>\r
</outcome>\r
- </get-resource>\r
+ </switch>\r
<switch test='`$network-topology-operation-input.network-information.network-id`'>\r
<outcome value=''>\r
<call module='GENERIC-RESOURCE-API' rpc='generate-l3network-network-id' mode='sync' ></call>\r
<service-logic\r
xmlns='http://www.onap.org/sdnc/svclogic'\r
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
<method rpc='network-topology-operation-unassign' mode='sync'>\r
<block atomic="true">\r
<switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\r
- <outcome value='true'>\r
- <block atomic="true">\r
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $network-topology-operation-input.network-information.network-id" \r
- local-only="false" \r
- pfx="aai.l3-network">\r
- <outcome value='success'>\r
- <block atomic="true">\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $network-topology-operation-input.network-information.network-id">\r
- <outcome value='failure'>\r
- <return status="failure">\r
- <parameter name="error-code" value="500"/>\r
- <parameter name="error-message" value="An error occured while deleting network from AAI" />\r
- </return>\r
- </outcome>\r
- </delete>\r
- </block>\r
- </outcome>\r
- <outcome value='not-found'></outcome>\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'" />\r
- </return>\r
- </outcome>\r
- </get-resource>\r
- </block>\r
- </outcome>\r
+ <outcome value='true'></outcome>\r
<outcome value='Other'>\r
<switch test='`$network-data.network-topology.network-topology-identifier-structure.network-instance-group-id`'>\r
<outcome value=''>\r
</block>\r
</outcome>\r
</switch>\r
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="l3-network" \r
- key="l3-network.network-id = $network-topology-operation-input.network-information.network-id">\r
- <outcome value='failure'>\r
- <return status="failure">\r
- <parameter name="error-code" value="500"/>\r
- <parameter name="error-message" value="An error occured while deleting network from AAI" />\r
- </return>\r
- </outcome>\r
- </delete>\r
<set>\r
<parameter name='naming-policy-generate-name-input.context-id' value='`$network-topology-operation-input.network-information.network-id`' />\r
<parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
<service-logic\r
xmlns='http://www.onap.org/sdnc/svclogic'\r
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
<method rpc='service-topology-operation-assign' mode='sync'>\r
<block atomic="true">\r
<switch test='`$service-topology-operation-input.request-information.request-action`'>\r
<service-logic\r
xmlns='http://www.onap.org/sdnc/svclogic'\r
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
<method rpc='vf-module-topology-operation-activate' mode='sync'>\r
<block atomic="true">\r
<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
</call>\r
</outcome>\r
</switch>\r
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="vf-module"\r
- key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
- AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
- force="true" pfx="tmp.AnAI-data">\r
- <parameter name="orchestration-status" value="Active" />\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error updating vf-module in AAI" />\r
- </return>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
- </return>\r
- </outcome>\r
- </update>\r
<for silentFailure='true' index='vm-type-index' start='0'\r
end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
<for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
<service-logic\r
xmlns='http://www.onap.org/sdnc/svclogic'\r
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
<method rpc='vf-module-topology-operation-assign-sync' mode='sync'>\r
<block atomic="true">\r
<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
<parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\r
<parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\r
</set>\r
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="cloud-region" \r
- key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
- cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region"\r
- pfx='aai.cloud-region' local-only='false' >\r
- <outcome value='not-found'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Cloud region not found in AAI" />\r
- </return>\r
- </outcome>\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
- </return>\r
- </outcome>\r
- </get-resource>\r
- <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
- <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
- <outcome value='complex'>\r
- <block atomic="true">\r
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
- <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
- <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
- <parameter name='regex' value='/' />\r
- </execute>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\r
- value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
- </set>\r
- <break/>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\r
- <outcome value=''>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`" />\r
- </return>\r
- </outcome>\r
- </switch>\r
<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\r
<outcome value=''>\r
<set>\r
</outcome>\r
<outcome value='Other'>\r
<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
- <parameter name='restapiUrl' value="`$prop.controller.url + $prop.restapi.preloadinformation + $vf-module-topology-operation-input.vf-module-request-input.vf-module-name + '/vf-module'`" />\r
+ <parameter name='restapiUrl' value="`$prop.controller.url + $prop.restapi.preloadinformation + $vf-module-topology-operation-input.vf-module-request-input.vf-module-name + '/vf-module/'`" />\r
<parameter name='restapiUser' value='`$prop.controller.user`' />\r
<parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
<parameter name='format' value='json' />\r
+ $vf-module-topology-operation-input.service-information.service-instance-id\r
+ '/service-data/service-topology/'`"/>\r
</set>\r
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="vf-module"\r
- key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
- AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
- force="true" pfx="tmp.AnAI-data">\r
- <parameter name="vf-module-name" value="`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`" />\r
- <parameter name="model-invariant-id" value="`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`" />\r
- <parameter name="model-version-id" value="`$tmp.vf-module-topology.onap-model-information.model-uuid`" />\r
- <parameter name="model-customization-id" value="`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`" />\r
- <parameter name="selflink" value="`$vf-module-object-path`" />\r
- <parameter name="automated-assignment" value="`$automated-assignment`" />\r
- <outcome value='failure'>\r
- <block atomic="true">\r
- <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error updating vf-module in AAI" />\r
- </return>\r
- </block>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <block atomic="true">\r
- <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
- </return>\r
- </block>\r
- </outcome>\r
- </update>\r
<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
<block atomic="true">\r
<for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
</set>\r
- <call module='GENERIC-RESOURCE-API' rpc='gw-vfmodule-update' mode='sync' ></call>\r
<set>\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
value='PendingCreate' />\r
</switch>\r
</block>\r
</method>\r
-</service-logic>\r
+</service-logic>
\ No newline at end of file
<service-logic\r
xmlns='http://www.onap.org/sdnc/svclogic'\r
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
<method rpc='vf-module-topology-operation-deactivate' mode='sync'>\r
<block atomic="true">\r
<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
<set>\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-topology.vf-module-assignments.vf-module-status' value='PendingDelete' />\r
</set>\r
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="vf-module"\r
- key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
- AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
- force="true" pfx="tmp.AnAI-data">\r
- <parameter name="orchestration-status" value="PendingDelete" />\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error updating vf-module in AAI" />\r
- </return>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
- </return>\r
- </outcome>\r
- </update>\r
<set>\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
<service-logic\r
xmlns='http://www.onap.org/sdnc/svclogic'\r
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
<method rpc='vnf-topology-operation-activate' mode='sync'>\r
<block atomic="true">\r
<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
</return>\r
</outcome>\r
</switch>\r
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="generic-vnf"\r
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"\r
- force="true" pfx="tmp.AnAI-data">\r
- <parameter name="prov-status" value="NVTPROV" />\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error updating generic-vnf in AAI" />\r
- </return>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
- </return>\r
- </outcome>\r
- </update>\r
<set>\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
<service-logic\r
xmlns='http://www.onap.org/sdnc/svclogic'\r
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='aai-disabled'>\r
<method rpc='vnf-topology-operation-assign-sync' mode='sync'>\r
<block atomic="true">\r
<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
<set>\r
<parameter name='tmp.vnf-network-collection_length' value='0' />\r
</set>\r
- <for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >\r
- <block atomic="true">\r
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="instance-group" \r
- key="instance-group.id = $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id"\r
- pfx='aai.instance-group' local-only='false' >\r
- <outcome value='not-found'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'Cannot find instance group id ' +\r
- $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\r
- + ' in AAI'`" />\r
- </return>\r
- </outcome>\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error retrieving instance-group from AAI" />\r
- </return>\r
- </outcome>\r
- </get-resource>\r
- <for index='rel-index' start='0' end='`$aai.instance-group.relationship-list.relationship_length`' >\r
- <switch test='`$aai.instance-group.relationship-list.relationship[$rel-index].related-to`'>\r
- <outcome value='collection'>\r
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="collection" \r
- key="collection.collection-id = $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value"\r
- pfx='aai.collection' local-only='false' >\r
- <outcome value='not-found'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'Cannot find collection ' +\r
- $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value\r
- + ' in AAI'`" />\r
- </return>\r
- </outcome>\r
- <outcome value='failure'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="System error retrieving collection from AAI" />\r
- </return>\r
- </outcome>\r
- <outcome value='success'>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='found-network-instance-group' value='false' />\r
- </set>\r
- <for silentFailure='true' index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
- <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\r
- == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\r
- <outcome value='true'>\r
- <block>\r
- <set>\r
- <parameter name='found-network-instance-group' value='true' />\r
- </set>\r
- <break/>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <switch test='`$found-network-instance-group`'>\r
- <outcome value='false'>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'Could not find network instance group ' +\r
- $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\r
- + ' in MD-SAL'`" />\r
- </return>\r
- </outcome>\r
- </switch>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-function'\r
- value='`$aai.instance-group.instance-group-function`' />\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-id'\r
- value='`$aai.instance-group.id`' />\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-service-instance-id'\r
- value='`$service-data.network-instance-groups.network-instance-group[$nig-index].service-instance-id`' />\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-customization-uuid'\r
- value='`$aai.collection.collection-customization-id`' />\r
- </set>\r
- <set>\r
- <parameter name='tmp.vnf-network-collection_length' value='`$tmp.vnf-network-collection_length + 1`' />\r
- </set>\r
- </block>\r
- </outcome>\r
- </get-resource>\r
- </outcome>\r
- </switch>\r
- </for>\r
- </block>\r
- </for>\r
<set>\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection_length'\r
value='`$tmp.vnf-network-collection_length`' />\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
</set>\r
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
- resource="cloud-region" \r
- key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
- cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\r
- depth='all'"\r
- pfx='aai.cloud-region' local-only='false' >\r
- <outcome value='not-found'>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Cloud region not found in AAI" />\r
- </return>\r
- </block>\r
- </outcome>\r
- <outcome value='failure'>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
- </return>\r
- </block>\r
- </outcome>\r
- </get-resource>\r
- <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
- <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
- <outcome value='complex'>\r
- <block atomic="true">\r
- <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
- <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
- <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
- <parameter name='regex' value='/' />\r
- </execute>\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\r
- value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
- </set>\r
- <break/>\r
- </block>\r
- </outcome>\r
- </switch>\r
- </for>\r
- <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\r
- <outcome value=''>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
- </return>\r
- </block>\r
- </outcome>\r
- </switch>\r
<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
pfx='db.vf-network-role-mapping[]'>\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\r
value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\r
</set>\r
- <switch test='`$aai.cloud-region.availability-zones.availability-zone_length`'>\r
- <outcome value=''>\r
- <switch test='`$db.vf-model.avail-zone-max-count > 0`'>\r
- <outcome value='true'>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'No availability zones found in AAI for cloud region '\r
- + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
- </return>\r
- </block>\r
- </outcome>\r
- <outcome value='false'>\r
- <set>\r
- <parameter name='aai.cloud-region.availability-zones.availability-zone_length' value='0' />\r
- </set>\r
- </outcome>\r
- </switch>\r
- </outcome>\r
- </switch>\r
- <for index='idx' start='0' end='`$aai.cloud-region.availability-zones.availability-zone_length`' >\r
- <block atomic="true">\r
- <set>\r
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\r
- value='`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`' />\r
- </set>\r
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="generic-vnf:relationship-list"\r
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
- force="true" pfx="tmp.AnAI-data">\r
- <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.cloud-region.cloud-owner`" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="availability-zone.availability-zone-name" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`" />\r
- <outcome value='failure'>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error updating generic-vnf in AAI" />\r
- </return>\r
- </block>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
- </return>\r
- </block>\r
- </outcome>\r
- </save>\r
- </block>\r
- </for>\r
<set>\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\r
value='`$db.vf-model.avail-zone-max-count`' />\r
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\r
value='`$aai.cloud-region.availability-zones.availability-zone_length`' />\r
</set>\r
- <for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
- <block atomic="true">\r
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="generic-vnf:relationship-list"\r
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
- force="true" pfx="tmp.AnAI-data">\r
- <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />\r
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-id`" />\r
- <outcome value='failure'>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error updating generic-vnf in AAI" />\r
- </return>\r
- </block>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
- </return>\r
- </block>\r
- </outcome>\r
- </save>\r
- </block>\r
- </for>\r
<set>\r
<parameter name='vnf-object-path'\r
value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ $vnf-topology-operation-input.service-information.service-instance-id\r
+ '/service-data/service-topology/'`"/>\r
</set>\r
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
- resource="generic-vnf"\r
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"\r
- force="true" pfx="tmp.AnAI-data">\r
- <parameter name="vnf-name" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`" />\r
- <parameter name="prov-status" value="PREPROV" />\r
- <!-- <parameter name="operational-status" value="out-of-service-path" /> -->\r
- <parameter name="equipment-role" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`" />\r
- <parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />\r
- <parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />\r
- <parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />\r
- <parameter name="in-maint" value="true" />\r
- <parameter name="selflink" value="`$vnf-object-path`" />\r
- <outcome value='failure'>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="Error updating selflink in generic-vnf in AAI" />\r
- </return>\r
- </block>\r
- </outcome>\r
- <outcome value='not-found'>\r
- <block>\r
- <block atomic="true">\r
- <set>\r
- <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
- <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
- <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
- </set>\r
- <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
- </block>\r
- <return status='failure'>\r
- <parameter name='ack-final' value='Y'/>\r
- <parameter name="error-code" value="500" />\r
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
- </return>\r
- </block>\r
- </outcome>\r
- </update>\r
<for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >\r
<block atomic="true">\r
<save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
GENERIC-RESOURCE-API api-contrail-route-topology-operation-delete ${project.version} sync
GENERIC-RESOURCE-API assign-vlan-tags ${project.version} sync
GENERIC-RESOURCE-API auto-ip-assignment ${project.version} sync
+GENERIC-RESOURCE-API bbs-access-connectivity-network-topology-operation-create-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-access-connectivity-network-topology-operation-delete-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-access-connectivity-vnf-topology-operation-create-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-access-connectivity-vnf-topology-operation-delete-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-internet-profile-network-topology-operation-change-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-internet-profile-network-topology-operation-common-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-internet-profile-network-topology-operation-create-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-internet-profile-network-topology-operation-delete-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-internet-profile-vnf-topology-operation-change-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-internet-profile-vnf-topology-operation-common-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-internet-profile-vnf-topology-operation-create-huawei ${project.version} sync
+GENERIC-RESOURCE-API bbs-internet-profile-vnf-topology-operation-delete-huawei ${project.version} sync
GENERIC-RESOURCE-API brg-topology-operation-activate ${project.version} sync
GENERIC-RESOURCE-API brg-topology-operation-assign ${project.version} sync
GENERIC-RESOURCE-API brg-topology-operation-create ${project.version} sync
GENERIC-RESOURCE-API eipam-allocate-network-role-subnet ${project.version} sync
GENERIC-RESOURCE-API eipam-create-generic-pool ${project.version} sync
GENERIC-RESOURCE-API eipam-create-network-role-pool ${project.version} sync
-GENERIC-RESOURCE-API generate-allottedresource-id ${project.version} sync
GENERIC-RESOURCE-API generate-FQPN ${project.version} sync
+GENERIC-RESOURCE-API generate-allottedresource-id ${project.version} sync
GENERIC-RESOURCE-API generate-host-routes-host-route-id ${project.version} sync
GENERIC-RESOURCE-API generate-l3network-network-id ${project.version} sync
GENERIC-RESOURCE-API generate-panorama-name ${project.version} sync
-GENERIC-RESOURCE-API generate-cp-instance-id ${project.version} sync
-GENERIC-RESOURCE-API vf-module-generate-heat-parameters ${project.version} sync
GENERIC-RESOURCE-API generate-subnets-subnet-id ${project.version} sync
GENERIC-RESOURCE-API generate-unique-name ${project.version} sync
GENERIC-RESOURCE-API generate-vpn-binding-id ${project.version} sync
GENERIC-RESOURCE-API generic-configuration-topology-operation ${project.version} sync
GENERIC-RESOURCE-API get-complex-resource-service-model ${project.version} sync
GENERIC-RESOURCE-API get-data-from-policy ${project.version} sync
+GENERIC-RESOURCE-API get-tunnelxconn-ar ${project.version} sync
+GENERIC-RESOURCE-API get-vnf-api-parent-instance ${project.version} sync
GENERIC-RESOURCE-API getpathsegment-composite-match-pair ${project.version} sync
GENERIC-RESOURCE-API getpathsegment-create-composite-path ${project.version} sync
GENERIC-RESOURCE-API getpathsegment-create-simple-path ${project.version} sync
GENERIC-RESOURCE-API getpathsegment-simple-match-pair ${project.version} sync
GENERIC-RESOURCE-API getpathsegment-topology-operation-create ${project.version} sync
GENERIC-RESOURCE-API getpathsegment-topology-operation ${project.version} sync
-GENERIC-RESOURCE-API get-tunnelxconn-ar ${project.version} sync
-GENERIC-RESOURCE-API get-vnf-api-parent-instance ${project.version} sync
GENERIC-RESOURCE-API gw-vfmodule-update ${project.version} sync
GENERIC-RESOURCE-API manage-ipaddr-assignment ${project.version} sync
GENERIC-RESOURCE-API manage-vni-assignment ${project.version} sync
GENERIC-RESOURCE-API naming-policy-generate-unique-name ${project.version} sync
GENERIC-RESOURCE-API network-topology-operation-activate ${project.version} sync
GENERIC-RESOURCE-API network-topology-operation-assign-automated ${project.version} sync
-GENERIC-RESOURCE-API network-topology-operation-assign-from-preload ${project.version} sync
+GENERIC-RESOURCE-API network-topology-operation-assign-from-preload aai-disabled sync
GENERIC-RESOURCE-API network-topology-operation-assign-vlantagging-instancegroup ${project.version} sync
-GENERIC-RESOURCE-API network-topology-operation-assign ${project.version} sync
+GENERIC-RESOURCE-API network-topology-operation-assign aai-disabled sync
GENERIC-RESOURCE-API network-topology-operation-changeassign ${project.version} sync
GENERIC-RESOURCE-API network-topology-operation-create ${project.version} sync
GENERIC-RESOURCE-API network-topology-operation-deactivate ${project.version} sync
GENERIC-RESOURCE-API network-topology-operation-delete ${project.version} sync
-GENERIC-RESOURCE-API network-topology-operation-unassign ${project.version} sync
+GENERIC-RESOURCE-API network-topology-operation-unassign aai-disabled sync
GENERIC-RESOURCE-API network-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API pnf-topology-operation-activate ${project.version} sync
+GENERIC-RESOURCE-API pnf-topology-operation-assign ${project.version} sync
+GENERIC-RESOURCE-API pnf-topology-operation-deactivate ${project.version} sync
+GENERIC-RESOURCE-API pnf-topology-operation-unassign ${project.version} sync
+GENERIC-RESOURCE-API pnf-topology-operation ${project.version} sync
GENERIC-RESOURCE-API policy-manager-create-policy ${project.version} sync
GENERIC-RESOURCE-API policy-manager-delete-policy ${project.version} sync
GENERIC-RESOURCE-API policy-update-notify-operation ${project.version} sync
GENERIC-RESOURCE-API security-zone-topology-operation-delete ${project.version} sync
GENERIC-RESOURCE-API security-zone-topology-operation-unassign ${project.version} sync
GENERIC-RESOURCE-API security-zone-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API self-serve-aai-pnf-put ${project.version} sync
GENERIC-RESOURCE-API self-serve-aai-vf-module-put ${project.version} sync
GENERIC-RESOURCE-API self-serve-aai-vnf-put ${project.version} sync
-GENERIC-RESOURCE-API self-serve-aai-pnf-put ${project.version} sync
GENERIC-RESOURCE-API self-serve-capability-param-resolution ${project.version} sync
-GENERIC-RESOURCE-API self-serve-pnf-generate-name ${project.version} sync
-GENERIC-RESOURCE-API self-serve-vnf-generate-name ${project.version} sync
-GENERIC-RESOURCE-API self-serve-vf-module-generate-name ${project.version} sync
-GENERIC-RESOURCE-API self-serve-generate-name ${project.version} sync
GENERIC-RESOURCE-API self-serve-generate-name-changeassign ${project.version} sync
-GENERIC-RESOURCE-API self-serve-vnf-generate-name-changeassign ${project.version} sync
-GENERIC-RESOURCE-API self-serve-vf-module-generate-name-changeassign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-generate-name ${project.version} sync
GENERIC-RESOURCE-API self-serve-mS-mac-address-assign ${project.version} sync
GENERIC-RESOURCE-API self-serve-mS-vlan-tag-assign ${project.version} sync
GENERIC-RESOURCE-API self-serve-netbox-ip-assign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-pnf-assign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-pnf-generate-name ${project.version} sync
+GENERIC-RESOURCE-API self-serve-pnf-ra-assignment ${project.version} sync
+GENERIC-RESOURCE-API self-serve-pnf-unassign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-process-vfmodule-mapping-ra-response ${project.version} sync
+GENERIC-RESOURCE-API self-serve-process-vfmodule-template-ra-response ${project.version} sync
+GENERIC-RESOURCE-API self-serve-process-vnf-mapping-ra-response ${project.version} sync
+GENERIC-RESOURCE-API self-serve-process-vnf-template-ra-response ${project.version} sync
GENERIC-RESOURCE-API self-serve-unresolved-composite-data ${project.version} sync
GENERIC-RESOURCE-API self-serve-vf-module-assign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vf-module-forking-logic ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vf-module-generate-name-changeassign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vf-module-generate-name ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vf-module-mdsal-put ${project.version} sync
GENERIC-RESOURCE-API self-serve-vf-module-unassign ${project.version} sync
GENERIC-RESOURCE-API self-serve-vfmodule-changeassign ${project.version} sync
GENERIC-RESOURCE-API self-serve-vfmodule-ra-assignment ${project.version} sync
-GENERIC-RESOURCE-API self-serve-vf-module-forking-logic ${project.version} sync
-GENERIC-RESOURCE-API self-serve-vf-module-mdsal-put ${project.version} sync
-GENERIC-RESOURCE-API self-serve-process-vfmodule-mapping-ra-response ${project.version} sync
-GENERIC-RESOURCE-API self-serve-process-vfmodule-template-ra-response ${project.version} sync
-GENERIC-RESOURCE-API self-serve-vnf-mdsal-put ${project.version} sync
GENERIC-RESOURCE-API self-serve-vnf-assign ${project.version} sync
-GENERIC-RESOURCE-API self-serve-vnf-changeassign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vnf-changeassign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vnf-forking-logic ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vnf-generate-name-changeassign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vnf-generate-name ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vnf-mdsal-put ${project.version} sync
GENERIC-RESOURCE-API self-serve-vnf-ra-assignment ${project.version} sync
GENERIC-RESOURCE-API self-serve-vnf-unassign ${project.version} sync
-GENERIC-RESOURCE-API self-serve-vnf-forking-logic ${project.version} sync
-GENERIC-RESOURCE-API self-serve-process-vnf-mapping-ra-response ${project.version} sync
-GENERIC-RESOURCE-API self-serve-process-vnf-template-ra-response ${project.version} sync
-GENERIC-RESOURCE-API self-serve-pnf-assign ${project.version} sync
-GENERIC-RESOURCE-API self-serve-pnf-ra-assignment ${project.version} sync
-GENERIC-RESOURCE-API self-serve-pnf-unassign ${project.version} sync
-GENERIC-RESOURCE-API service-topology-operation-assign ${project.version} sync
+GENERIC-RESOURCE-API send-so-response ${project.version} sync
+GENERIC-RESOURCE-API service-topology-operation-assign aai-disabled sync
GENERIC-RESOURCE-API service-topology-operation-changeassign ${project.version} sync
GENERIC-RESOURCE-API service-topology-operation-deactivate ${project.version} sync
GENERIC-RESOURCE-API service-topology-operation-delete ${project.version} sync
GENERIC-RESOURCE-API service-topology-operation ${project.version} sync
-GENERIC-RESOURCE-API site-vnf-topology-operation-activate ${project.version} sync
-GENERIC-RESOURCE-API site-vnf-topology-operation-create ${project.version} sync
-GENERIC-RESOURCE-API site-vnf-topology-operation-deactivate ${project.version} sync
-GENERIC-RESOURCE-API site-vnf-topology-operation-delete ${project.version} sync
-GENERIC-RESOURCE-API sotn-attachment-topology-operation-activate ${project.version} sync
-GENERIC-RESOURCE-API sotn-attachment-topology-operation-create ${project.version} sync
-GENERIC-RESOURCE-API sotn-attachment-topology-operation-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sotn-attachment-topology-operation-delete ${project.version} sync
-GENERIC-RESOURCE-API sotn-get-saved-ar-param ${project.version} sync
-GENERIC-RESOURCE-API sotn-network-topology-operation-activate ${project.version} sync
-GENERIC-RESOURCE-API sotn-network-topology-operation-create ${project.version} sync
-GENERIC-RESOURCE-API sotn-network-topology-operation-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sotn-network-topology-operation-delete ${project.version} sync
GENERIC-RESOURCE-API tunnelxconn-topology-operation-activate ${project.version} sync
GENERIC-RESOURCE-API tunnelxconn-topology-operation-assign ${project.version} sync
GENERIC-RESOURCE-API tunnelxconn-topology-operation-create ${project.version} sync
GENERIC-RESOURCE-API tunnelxconn-topology-operation-unassign ${project.version} sync
GENERIC-RESOURCE-API tunnelxconn-topology-operation ${project.version} sync
GENERIC-RESOURCE-API validate-api-contrail-route-input ${project.version} sync
+GENERIC-RESOURCE-API validate-bbs-network-input-parameters ${project.version} sync
+GENERIC-RESOURCE-API validate-bbs-vnf-input-parameters ${project.version} sync
GENERIC-RESOURCE-API validate-brg-input ${project.version} sync
GENERIC-RESOURCE-API validate-connection-attachment-input ${project.version} sync
GENERIC-RESOURCE-API validate-contrail-route-input ${project.version} sync
GENERIC-RESOURCE-API validate-network-input-parameters ${project.version} sync
GENERIC-RESOURCE-API validate-network-input ${project.version} sync
GENERIC-RESOURCE-API validate-overlay-network-input-parameters ${project.version} sync
+GENERIC-RESOURCE-API validate-pnf-input ${project.version} sync
GENERIC-RESOURCE-API validate-security-zone-input ${project.version} sync
GENERIC-RESOURCE-API validate-service-input ${project.version} sync
-GENERIC-RESOURCE-API validate-sotn-network-input-parameters ${project.version} sync
GENERIC-RESOURCE-API validate-tunnelxconn-input ${project.version} sync
GENERIC-RESOURCE-API validate-vf-module-input ${project.version} sync
GENERIC-RESOURCE-API validate-vnf-input ${project.version} sync
-GENERIC-RESOURCE-API validate-pnf-input ${project.version} sync
+GENERIC-RESOURCE-API vf-module-generate-heat-parameters ${project.version} sync
GENERIC-RESOURCE-API vf-module-topology-assign-rollback ${project.version} sync
-GENERIC-RESOURCE-API vf-module-topology-operation-activate ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-operation-activate aai-disabled sync
+GENERIC-RESOURCE-API vf-module-topology-operation-assign-async ${project.version} sync
GENERIC-RESOURCE-API vf-module-topology-operation-assign-no-preload ${project.version} sync
GENERIC-RESOURCE-API vf-module-topology-operation-assign-preload ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-operation-assign-sync aai-disabled sync
GENERIC-RESOURCE-API vf-module-topology-operation-assign ${project.version} sync
-GENERIC-RESOURCE-API vf-module-topology-operation-assign-async ${project.version} sync
-GENERIC-RESOURCE-API vf-module-topology-operation-assign-sync ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-operation-async ${project.version} sync
GENERIC-RESOURCE-API vf-module-topology-operation-changeassign ${project.version} sync
-GENERIC-RESOURCE-API vf-module-topology-operation-deactivate ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-operation-deactivate aai-disabled sync
GENERIC-RESOURCE-API vf-module-topology-operation-unassign ${project.version} sync
-GENERIC-RESOURCE-API vf-module-topology-operation-async ${project.version} sync
GENERIC-RESOURCE-API vf-module-topology-operation ${project.version} sync
GENERIC-RESOURCE-API vf-module-topology-vlan-tagging-activate ${project.version} sync
GENERIC-RESOURCE-API vf-module-topology-vlan-tagging-assign ${project.version} sync
GENERIC-RESOURCE-API vf-module-topology-vlan-tagging-deactivate ${project.version} sync
GENERIC-RESOURCE-API vf-module-topology-vlan-tagging-ip-addresses ${project.version} sync
GENERIC-RESOURCE-API vnf-get-resource-request ${project.version} sync
-GENERIC-RESOURCE-API vnf-topology-operation-async ${project.version} sync
-GENERIC-RESOURCE-API vnf-topology-operation-activate ${project.version} sync
-GENERIC-RESOURCE-API vnf-topology-operation-assign ${project.version} sync
+GENERIC-RESOURCE-API vnf-topology-operation-activate aai-disabled sync
GENERIC-RESOURCE-API vnf-topology-operation-assign-async ${project.version} sync
-GENERIC-RESOURCE-API vnf-topology-operation-assign-sync ${project.version} sync
+GENERIC-RESOURCE-API vnf-topology-operation-assign-sync aai-disabled sync
+GENERIC-RESOURCE-API vnf-topology-operation-assign ${project.version} sync
+GENERIC-RESOURCE-API vnf-topology-operation-async ${project.version} sync
GENERIC-RESOURCE-API vnf-topology-operation-changeassign ${project.version} sync
GENERIC-RESOURCE-API vnf-topology-operation-deactivate ${project.version} sync
GENERIC-RESOURCE-API vnf-topology-operation-unassign ${project.version} sync
GENERIC-RESOURCE-API vnf-topology-operation ${project.version} sync
-GENERIC-RESOURCE-API pnf-topology-operation-activate ${project.version} sync
-GENERIC-RESOURCE-API pnf-topology-operation-assign ${project.version} sync
-GENERIC-RESOURCE-API pnf-topology-operation-deactivate ${project.version} sync
-GENERIC-RESOURCE-API pnf-topology-operation-unassign ${project.version} sync
-GENERIC-RESOURCE-API pnf-topology-operation ${project.version} sync
-SUBNET-API managed-network-notification ${project.version} sync
-SUBNET-API subnet-allocated-notification ${project.version} sync
-GENERIC-RESOURCE-API sdwan-network-topology-operation-activate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-network-topology-operation-create ${project.version} sync
-GENERIC-RESOURCE-API sdwan-network-topology-operation-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-network-topology-operation-delete ${project.version} sync
-GENERIC-RESOURCE-API validate-sdwan-network-input-parameters ${project.version} sync
-GENERIC-RESOURCE-API sdwan-get-tenant-auth ${project.version} sync
-GENERIC-RESOURCE-API sdwan-attachment-topology-operation-activate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-attachment-topology-operation-create ${project.version} sync
-GENERIC-RESOURCE-API sdwan-attachment-topology-operation-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-attachment-topology-operation-delete ${project.version} sync
-GENERIC-RESOURCE-API sdwan-get-device-param ${project.version} sync
-GENERIC-RESOURCE-API sdwan-get-saved-ar-param ${project.version} sync
-GENERIC-RESOURCE-API sdwan-get-wan-param ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vnf-topology-operation-device-activate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vnf-topology-operation-device-create ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vnf-topology-operation-device-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vnf-topology-operation-device-delete ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vnf-topology-operation-wanport-activate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vnf-topology-operation-wanport-create ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vnf-topology-operation-wanport-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vnf-topology-operation-wanport-delete ${project.version} sync
-GENERIC-RESOURCE-API sdwan-wanport-vnf-topology-operation-underlay ${project.version} sync
-GENERIC-RESOURCE-API wan-connection-topology-operation-create ${project.version} sync
GENERIC-RESOURCE-API wan-connection-topology-operation-activate ${project.version} sync
+GENERIC-RESOURCE-API wan-connection-topology-operation-create ${project.version} sync
GENERIC-RESOURCE-API wan-connection-topology-operation-deactivate ${project.version} sync
GENERIC-RESOURCE-API wan-connection-topology-operation-delete ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-device-create ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-device-activate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-device-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-device-delete ${project.version} sync
-GENERIC-RESOURCE-API sdwan-get-vf-module-device-param ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-site-create ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-site-activate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-site-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-site-delete ${project.version} sync
-GENERIC-RESOURCE-API sdwan-get-vf-module-site-param ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-wanport-create ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-wanport-activate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-wanport-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-wanport-delete ${project.version} sync
-GENERIC-RESOURCE-API sdwan-get-wan-param ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-vpn-create ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-vpn-activate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-vpn-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-vpn-delete ${project.version} sync
-GENERIC-RESOURCE-API validate-sdwan-vf-vpn-input-parameters ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-lanport-create ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-lanport-activate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-lanport-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sdwan-vf-operation-lanport-delete ${project.version} sync
-GENERIC-RESOURCE-API sdwan-get-vf-module-lanport-param ${project.version} sync
-GENERIC-RESOURCE-API sdwan-bandwidth-policy-change ${project.version} sync
-GENERIC-RESOURCE-API send-so-response ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-l2vpn-activate ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-l2vpn-create ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-l2vpn-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-l2vpn-delete ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-uni-activate ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-uni-create ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-uni-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sotn-vf-operation-uni-delete ${project.version} sync
-GENERIC-RESOURCE-API sotn-vnf-topology-operation-underlay-activate ${project.version} sync
-GENERIC-RESOURCE-API sotn-vnf-topology-operation-underlay-create ${project.version} sync
-GENERIC-RESOURCE-API sotn-vnf-topology-operation-underlay-deactivate ${project.version} sync
-GENERIC-RESOURCE-API sotn-vnf-topology-operation-underlay-delete ${project.version} sync
-GENERIC-RESOURCE-API sotn-get-vf-module-uni-param ${project.version} sync
-
+SUBNET-API managed-network-notification ${project.version} sync
+SUBNET-API subnet-allocated-notification ${project.version} sync
},
"subscription-service-type" : "Mobility",
"service-id" : "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
- "global-customer-id" : "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
- "service-instance-id" : "service1"
+ "global-customer-id" : "cust123",
+ "service-instance-id" : "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca"
},
"vf-module-information" : {
"onap-model-information" : {
"model-invariant-uuid" : "0017cd47-7f1b-49fb-874d-6add86ececb1"
},
"vnf-id" : "fae319cc-68d6-496f-be1e-a09e133c71d4",
- "vnf-name" : "zrdm61asmsf01",
- "vnf-type" : "SMSF-NC2-578-SVC/SMSF-NC2-578"
+ "vnf-name" : "Python_ONAP_SDK_vnf_instance_2aff902a-4714-4d08-942d-d97b3a3b87c2",
+ "vnf-type" : "service-nginx-ingress-1/nginx-ingress-1 0"
}
}
}
\ No newline at end of file
},
"sdnc-request-header" : {
"svc-request-id" : "767f2d08-e022-4000-97c2-61c002ebc740",
- "svc-notification-url" : "https://mso-bpmn-s1.ecomp.idns.aic.cip.att.com:30252/mso/WorkflowMessage/SDNCCallback/25200c7f-e966-4a0d-8c6c-e345e97089a4",
"svc-action" : "unassign"
},
"service-information" : {
},
"subscription-service-type" : "Mobility",
"service-id" : "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
- "global-customer-id" : "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
- "service-instance-id" : "service1"
+ "global-customer-id" : "cust123",
+ "service-instance-id" : "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca"
},
"vf-module-information" : {
"onap-model-information" : {
"model-invariant-uuid" : "0017cd47-7f1b-49fb-874d-6add86ececb1"
},
"vnf-id" : "fae319cc-68d6-496f-be1e-a09e133c71d4",
- "vnf-name" : "zrdm61asmsf01",
- "vnf-type" : "SMSF-NC2-578-SVC/SMSF-NC2-578"
+ "vnf-name" : "Python_ONAP_SDK_vnf_instance_2aff902a-4714-4d08-942d-d97b3a3b87c2",
+ "vnf-type" : "service-nginx-ingress-1/nginx-ingress-1 0"
}
}
}
\ No newline at end of file
"notification-url": "http://dev.null",
"order-number": "123",
"order-version": "version1",
- "request-action": "CreateNetworkInstance",
+ "request-action": "CreateVnfInstance",
"request-id": "req123",
"source": "curl"
},
"sdnc-request-header": {
"svc-action": "assign",
- "svc-notification-url": "http://dev.null",
"svc-request-id": "svcreq123"
},
"service-information": {
"global-customer-id": "cust123",
"onap-model-information": {
- "model-customization-uuid": "367a8ba9-057a-4506-b106-fbae818597c6",
- "model-invariant-uuid": "367a8ba9-057a-4506-b106-fbae818597c6",
- "model-name": "vBNG_0202",
- "model-uuid": "00e50cbd-ef0f-4b28-821e-f2b583752dd3",
- "model-version": "1920"
- },
- "service-id": "service1",
- "service-instance-id": "service1",
+ "model-name": "vcpesvc_vbng_0412a",
+ "model-version": "3.0",
+ "model-uuid": "12eb33fa-b221-4d87-939c-d808b5799a7c",
+ "model-invariant-uuid": "ead151e2-e18a-44fc-b6ac-3ae3d819dcd6"
+ },
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"subscriber-name": "test",
"subscription-service-type": "test"
},
"vnf-information" : {
- "onap-model-information": {
- "model-customization-uuid": "367a8ba9-057a-4506-b106-fbae818597c6",
- "model-invariant-uuid": "367a8ba9-057a-4506-b106-fbae818597c6",
- "model-name": "vBNG_0202",
- "model-uuid": "00e50cbd-ef0f-4b28-821e-f2b583752dd3",
- "model-version": "1920"
- },
- "vnf-id" : "vnf123",
+ "onap-model-information" : {
+ "model-name" : "vcpevsp_vgmux_0412 ",
+ "model-version" : "1.0",
+ "model-customization-uuid" : "5724fcc8-2ae2-45ce-8d44-795092b85dee",
+ "model-uuid" : "ba3b8981-9a9c-4945-92aa-486234ec321f",
+ "model-invariant-uuid" : "b3dc6465-942c-42af-8464-2bf85b6e504b"
+ },
+ "vnf-id" : "fae319cc-68d6-496f-be1e-a09e133c71d4",
"vnf-name" : "myVnf",
"vnf-type" : "router"
},
"svc-request-id": "9c06a7c6-be3a-4530-bdd8-c65b58f123a5"
},
"service-information": {
- "global-customer-id": "226fbb03-baf2-42bb-8311-03643a801238",
+ "global-customer-id": "cust123",
"onap-model-information": {
"model-customization-uuid": "602c6bcc-6cfa-41cb-a8a7-968b38d5935f",
"model-invariant-uuid": "bdb4f943-c9be-4742-b976-a34607f3687e",
"model-uuid": "86c76b5d-fa8d-4034-b79a-1cc4326021a9",
"model-version": "3.0"
},
- "service-id": "98f189dd-2971-46f5-b4f1-1a9a323f39a4",
- "service-instance-id": "98f189dd-2971-46f5-b4f1-1a9a323f39a4",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"subscriber-name": "unit-test",
"subscription-service-type": "unit-test"
},
{
"vf-module-data": {
"request-information": {
- "notification-url": "https://dev.null",
"order-number": "Order-123",
"order-version": "Order-v22",
"request-action": "CreateNetworkInstance",
},
"sdnc-request-header": {
"svc-action": "assign",
- "svc-notification-url": "https://dev.null",
"svc-request-id": "9c06a7c6-be3a-4530-bdd8-c65b58f123a5"
},
"service-information": {
- "global-customer-id": "226fbb03-baf2-42bb-8311-03643a801238",
+ "global-customer-id": "cust123",
"onap-model-information": {
"model-customization-uuid": "602c6bcc-6cfa-41cb-a8a7-968b38d5935f",
"model-invariant-uuid": "bdb4f943-c9be-4742-b976-a34607f3687e",
"model-uuid": "86c76b5d-fa8d-4034-b79a-1cc4326021a9",
"model-version": "3.0"
},
- "service-id": "98f189dd-2971-46f5-b4f1-1a9a323f39a4",
- "service-instance-id": "98f189dd-2971-46f5-b4f1-1a9a323f39a4",
+ "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
+ "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca",
"subscriber-name": "unit-test",
"subscription-service-type": "unit-test"
},
"model-uuid": "86c76b5d-fa8d-4034-b79a-1cc4326021a9",
"model-version": "3.0"
},
- "vf-module-id": "9270c447-3caf-4e12-85aa-3578b0fa61d5",
+ "vf-module-id": "45841173-3729-4a1d-a811-a3bde399e22d",
"vf-module-type": "some-vf-module-type"
},
"vf-module-level-oper-status": {
]
},
"vf-module-topology-identifier": {
- "vf-module-id": "9270c447-3caf-4e12-85aa-3578b0fa61d5",
+ "vf-module-id": "45841173-3729-4a1d-a811-a3bde399e22d",
"vf-module-name": "some-vf-module-name",
"vf-module-type": "some-vf-module-type"
}
"model-uuid": "86c76b5d-fa8d-4034-b79a-1cc4326021a9",
"model-version": "3.0"
},
- "vnf-id": "2a3bfc93-cd4c-4845-8919-434b2d999ada",
+ "vnf-id": "fae319cc-68d6-496f-be1e-a09e133c71d4",
"vnf-name": "mytestvnf",
"vnf-type" : "SMSF-NC2-578-SVC/SMSF-NC2-578"
}
},
- "vf-module-id": "9270c447-3caf-4e12-85aa-3578b0fa61d5"
+ "vf-module-id": "45841173-3729-4a1d-a811-a3bde399e22d"
}
]
},
"model-uuid": "86c76b5d-fa8d-4034-b79a-1cc4326021a9",
"model-version": "3.0"
},
- "vnf-id": "2a3bfc93-cd4c-4845-8919-434b2d999ada",
+ "vnf-id": "fae319cc-68d6-496f-be1e-a09e133c71d4",
"vnf-name": "mytestvnf",
"vnf-type" : "SMSF-NC2-578-SVC/SMSF-NC2-578"
},
"nf-function": "string",
"nf-role": "string",
"nf-type": "string",
- "vnf-id": "2a3bfc93-cd4c-4845-8919-434b2d999ada",
+ "vnf-id": "fae319cc-68d6-496f-be1e-a09e133c71d4",
"vnf-name": "mytestvnf",
"vnf-type" : "SMSF-NC2-578-SVC/SMSF-NC2-578"
}
}
},
- "vnf-id": "2a3bfc93-cd4c-4845-8919-434b2d999ada"
+ "vnf-id": "fae319cc-68d6-496f-be1e-a09e133c71d4"
}
\ No newline at end of file