summaryrefslogtreecommitdiffstats
path: root/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm
diff options
context:
space:
mode:
authorDenes Nemeth <denes.nemeth@nokia.com>2018-04-13 00:46:20 +0200
committerDenes Nemeth <denes.nemeth@nokia.com>2018-04-13 00:49:43 +0200
commitb754227da778e1e835336ae39e304ffc8059a009 (patch)
treeeffc31892c2018b0cef20e41b8481e99707557f9 /nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm
parentb6618c139b786a947efd695b7bc484eac3401642 (diff)
Fix backward compatibility issues
Change-Id: I4f79713050074622e5375096baca64ae52594647 Signed-off-by: Denes Nemeth <denes.nemeth@nokia.com> Issue-ID: VFC-728
Diffstat (limited to 'nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm')
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcExternalSystemInfoProvider.java4
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcGrantManager.java11
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcPackageProvider.java4
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/CbamVnfdBuilder.java2
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java12
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/restapi/LcmApi.java58
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java13
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CatalogManager.java8
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java34
9 files changed, 94 insertions, 52 deletions
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcExternalSystemInfoProvider.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcExternalSystemInfoProvider.java
index 83b10872..eb8e1f65 100644
--- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcExternalSystemInfoProvider.java
+++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcExternalSystemInfoProvider.java
@@ -46,7 +46,7 @@ public class VfcExternalSystemInfoProvider extends GenericExternalSystemInfoProv
@Override
public VnfmInfo queryVnfmInfoFromSource(String vnfmId) {
try {
- return vfcRestApiProvider.getNsLcmApi().queryVnfmInfo(vnfmId).execute().body();
+ return vfcRestApiProvider.getNsLcmApi().queryVnfmInfo(vnfmId).blockingFirst();
} catch (Exception e) {
throw buildFatalFailure(logger, "Unable to query VNFM from VF-C with " + vnfmId + " identifier", e);
}
@@ -55,7 +55,7 @@ public class VfcExternalSystemInfoProvider extends GenericExternalSystemInfoProv
@Override
public VimInfo getVimInfo(String vimId) {
try {
- return vfcRestApiProvider.getNsLcmApi().queryVIMInfo(vimId).execute().body();
+ return vfcRestApiProvider.getNsLcmApi().queryVIMInfo(vimId).blockingFirst();
} catch (Exception e) {
throw buildFatalFailure(logger, "Unable to query VIM from VF-C with " + vimId + " identifier", e);
}
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcGrantManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcGrantManager.java
index 01b75027..7b985c84 100644
--- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcGrantManager.java
+++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcGrantManager.java
@@ -157,14 +157,17 @@ public class VfcGrantManager implements IGrantManager {
private GrantVNFResponseVim requestGrant(GrantVNFRequest grantRequest) {
try {
- return vfcRestApiProvider.getNsLcmApi().grantvnf(grantRequest).execute().body().getVim();
+ logger.info("Requesting grant with ", grantRequest);
+ GrantVNFResponse grantVNFResponse = vfcRestApiProvider.getNsLcmApi().grantvnf(grantRequest).blockingFirst();
+ logger.info("Successfully received grant {}", grantVNFResponse);
+ return grantVNFResponse.getVim();
} catch (Exception e) {
- throw buildFatalFailure(logger, "Unable to request grant", e);
+ throw buildFatalFailure(logger, "Unable to request grant with " + grantRequest, e);
}
}
- private Set<ResourceChange> calculateResourceChangeDuringInstantiate(String vnfdContent, String instantiationLevelId) {
- JsonObject root = new Gson().toJsonTree(new Yaml().load(vnfdContent)).getAsJsonObject();
+ private Set<ResourceChange> calculateResourceChangeDuringInstantiate(String cbamVnfdContent, String instantiationLevelId) {
+ JsonObject root = new Gson().toJsonTree(new Yaml().load(cbamVnfdContent)).getAsJsonObject();
JsonObject capabilities = child(child(child(root, "topology_template"), "substitution_mappings"), "capabilities");
JsonObject deploymentFlavorProperties = child(child(capabilities, "deployment_flavour"), "properties");
JsonObject instantiationLevels = child(deploymentFlavorProperties, "instantiation_levels");
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcPackageProvider.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcPackageProvider.java
index 9ade5f4a..5831d9b5 100644
--- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcPackageProvider.java
+++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/vfc/VfcPackageProvider.java
@@ -62,7 +62,7 @@ public class VfcPackageProvider implements IPackageProvider {
VnfPkgDetailInfo vnfPackageDetails;
try {
VnfpackageApi onapCatalogApi = restApiProvider.getVfcCatalogApi();
- vnfPackageDetails = onapCatalogApi.queryVnfPackage(csarId).execute().body();
+ vnfPackageDetails = onapCatalogApi.queryVnfPackage(csarId).blockingFirst();
} catch (Exception e) {
throw buildFatalFailure(logger, "Unable to query VNF package with " + csarId, e);
}
@@ -75,7 +75,7 @@ public class VfcPackageProvider implements IPackageProvider {
String downloadUrl;
try {
VnfpackageApi onapCatalogApi = restApiProvider.getVfcCatalogApi();
- VnfPkgDetailInfo vnfPackageDetails = onapCatalogApi.queryVnfPackage(csarId).execute().body();
+ VnfPkgDetailInfo vnfPackageDetails = onapCatalogApi.queryVnfPackage(csarId).blockingFirst();
String urlFromVfc = vnfPackageDetails.getPackageInfo().getDownloadUrl();
String host = new URL(urlFromVfc).getHost();
downloadUrl = urlFromVfc.replaceFirst("://" + host, "://" + ipMappingProvider.mapPrivateIpToPublicIp(host));
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/CbamVnfdBuilder.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/CbamVnfdBuilder.java
index 1c1e4c76..ec2ad27c 100644
--- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/CbamVnfdBuilder.java
+++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/CbamVnfdBuilder.java
@@ -37,6 +37,8 @@ public class CbamVnfdBuilder {
JsonObject extensions = addChild(addChild(addChild(addChild(addChild(substitutionMappings, "capabilities"), "vnf"), "properties"), "modifiable_attributes"), "extensions");
JsonObject onapCsarId = addChild(extensions, "onapCsarId");
onapCsarId.add("default", new JsonPrimitive("kuku"));
+ JsonObject externalVnfmId = addChild(extensions, "externalVnfmId");
+ externalVnfmId.add("default", new JsonPrimitive("kuku"));
JsonObject vimId = addChild(extensions, "vimId");
vimId.add("default", new JsonPrimitive("kuku"));
JsonObject interfaces = child(substitutionMappings, "interfaces");
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java
index dcac5cdf..6a20bc20 100644
--- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java
+++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/packagetransformer/OnapVnfdBuilder.java
@@ -51,6 +51,11 @@ public class OnapVnfdBuilder {
return pattern.matcher(content).replaceAll(sb.toString() + "$1");
}
+ private static String trimUnit(String data) {
+ //FIXME the unit should not be trimmed VF-C bug
+ return data.trim().replaceAll("[^0-9]", "");
+ }
+
/**
* @param cbamVnfd the CBAM VNFD
* @return the converted ONAP VNFD
@@ -121,8 +126,7 @@ public class OnapVnfdBuilder {
if ("virtual_compute".equals(s)) {
JsonObject virtualCompute = get(next.getValue().getAsString(), nodes).getAsJsonObject();
cpuCount = childElement(child(child(virtualCompute, PROPERTIES), "virtual_cpu"), "num_virtual_cpu").getAsString();
- memorySize = childElement(child(child(virtualCompute, PROPERTIES), "virtual_memory"), "virtual_mem_size").getAsString();
-
+ memorySize = trimUnit(childElement(child(child(virtualCompute, PROPERTIES), "virtual_memory"), "virtual_mem_size").getAsString());
} else if ("virtual_storage".equals(s)) {
String item = indent(
"- virtual_storage:\n" +
@@ -140,7 +144,7 @@ public class OnapVnfdBuilder {
indent(
"properties:\n" +
" virtual_memory:\n" +
- " virtual_mem_size: " + memorySize + "\n" +
+ " virtual_mem_size: " + trimUnit(memorySize) + "\n" +
" virtual_cpu:\n" +
" num_virtual_cpu: " + cpuCount + "\n", 3) +
" " + REQUIREMENTS + ":\n", 2);
@@ -258,7 +262,7 @@ public class OnapVnfdBuilder {
" properties:\n" +
" id: " + nodeName + "\n" +
" type_of_storage: volume\n" +
- " size_of_storage: " + childElement(child(volume, PROPERTIES), "size_of_storage").getAsString() + "\n", 2);
+ " size_of_storage: " + trimUnit(childElement(child(volume, PROPERTIES), "size_of_storage").getAsString()) + "\n", 2);
}
private String buildVl(String name) {
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/restapi/LcmApi.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/restapi/LcmApi.java
index 92148029..a3be0636 100644
--- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/restapi/LcmApi.java
+++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/restapi/LcmApi.java
@@ -64,7 +64,7 @@ public class LcmApi {
@RequestMapping(value = "/{vnfmId}/vnfs", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
@ResponseBody
public VnfInstantiateResponse instantiateVnf(@RequestBody VnfInstantiateRequest request, @PathVariable("vnfmId") String vnfmId, HttpServletResponse httpResponse) {
- logger.info("REST: Instantiate VNF");
+ logger.info("REST: Instantiate VNF with " + request.getVnfPackageId() + " CSAR identifier");
VnfInstantiateResponse response = lifecycleManager.createAndInstantiate(vnfmId, request, httpResponse);
httpResponse.setStatus(SC_CREATED);
return response;
@@ -73,32 +73,32 @@ public class LcmApi {
/**
* Terminate the VNF (defined further in the VF-C driver integration documentation)
*
- * @param request the termination request
- * @param vnfmId the identifier of the VNFM
- * @param vnfInstanceId the identifier of the VNF
- * @param httpResponse the HTTP response
+ * @param request the termination request
+ * @param vnfmId the identifier of the VNFM
+ * @param vnfId the identifier of the VNF
+ * @param httpResponse the HTTP response
* @return the job representing the VNF termination operation
*/
@RequestMapping(value = "/{vnfmId}/vnfs/{vnfId}/terminate", method = POST, produces = APPLICATION_JSON_VALUE)
@ResponseBody
- public JobInfo terminateVnf(@RequestBody VnfTerminateRequest request, @PathVariable("vnfmId") String vnfmId, @PathVariable("vnfId") String vnfInstanceId, HttpServletResponse httpResponse) {
- logger.info("REST: Terminate VNF");
- return lifecycleManager.terminateAndDelete(vnfmId, vnfInstanceId, request, httpResponse);
+ public JobInfo terminateVnf(@RequestBody VnfTerminateRequest request, @PathVariable("vnfmId") String vnfmId, @PathVariable("vnfId") String vnfId, HttpServletResponse httpResponse) {
+ logger.info("REST: Terminate VNF with " + vnfId + " identifier");
+ return lifecycleManager.terminateAndDelete(vnfmId, vnfId, request, httpResponse);
}
/**
* Query the VNF (defined further in the VF-C driver integration documentation)
*
- * @param vnfmId the identifier of the VNFM
- * @param vnfInstanceId the identifier of the VNF
- * @param httpResponse the HTTP response
+ * @param vnfmId the identifier of the VNFM
+ * @param vnfId the identifier of the VNF
+ * @param httpResponse the HTTP response
* @return the VNF info
*/
@RequestMapping(value = "/{vnfmId}/vnfs/{vnfId}", method = GET, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
@ResponseBody
- public VnfInfo queryVnf(@PathVariable("vnfmId") String vnfmId, @PathVariable("vnfId") String vnfInstanceId, HttpServletResponse httpResponse) {
- logger.info("REST: Query VNF");
- return lifecycleManager.queryVnf(vnfmId, vnfInstanceId);
+ public VnfInfo queryVnf(@PathVariable("vnfmId") String vnfmId, @PathVariable("vnfId") String vnfId, HttpServletResponse httpResponse) {
+ logger.info("REST: Query VNF with " + vnfId + " identifier");
+ return lifecycleManager.queryVnf(vnfmId, vnfId);
}
/**
@@ -112,39 +112,39 @@ public class LcmApi {
@RequestMapping(value = "/{vnfmId}/jobs/{jobId}", method = GET, produces = APPLICATION_JSON_VALUE)
@ResponseBody
public JobDetailInfo getJob(@PathVariable("vnfmId") String vnfmId, @PathVariable("jobId") String jobId, HttpServletResponse httpResponse) {
- logger.debug("REST: Query job");
+ logger.debug("REST: Query job with " + jobId + " identifier");
return jobManager.getJob(vnfmId, jobId);
}
/**
* Scale the VNF (defined further in the VF-C driver integration documentation)
*
- * @param request the scaling request
- * @param vnfmId the identifier of the VNFM
- * @param vnfInstanceId the identifier of the VNF
- * @param httpResponse the HTTP response
+ * @param request the scaling request
+ * @param vnfmId the identifier of the VNFM
+ * @param vnfId the identifier of the VNF
+ * @param httpResponse the HTTP response
* @return the job representing the scaling operation
*/
@RequestMapping(value = "/{vnfmId}/vnfs/{vnfId}/scale", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
@ResponseBody
- public JobInfo scaleVnf(@RequestBody VnfScaleRequest request, @PathVariable("vnfmId") String vnfmId, @PathVariable("vnfId") String vnfInstanceId, HttpServletResponse httpResponse) {
- logger.info("REST: Scale VNF");
- return lifecycleManager.scaleVnf(vnfmId, vnfInstanceId, request, httpResponse);
+ public JobInfo scaleVnf(@RequestBody VnfScaleRequest request, @PathVariable("vnfmId") String vnfmId, @PathVariable("vnfId") String vnfId, HttpServletResponse httpResponse) {
+ logger.info("REST: Scale VNF with " + vnfId + " identifier");
+ return lifecycleManager.scaleVnf(vnfmId, vnfId, request, httpResponse);
}
/**
* Heal the VNF (defined further in the VF-C driver integration documentation)
*
- * @param request the healing request
- * @param vnfmId the identifier of the VNFM
- * @param vnfInstanceId the identifier of the VNF
- * @param httpResponse the HTTP response
+ * @param request the healing request
+ * @param vnfmId the identifier of the VNFM
+ * @param vnfId the identifier of the VNF
+ * @param httpResponse the HTTP response
* @return the job representing the healing operation
*/
@RequestMapping(value = "/{vnfmId}/vnfs/{vnfId}/heal", method = POST, produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)
@ResponseBody
- public JobInfo healVnf(@RequestBody VnfHealRequest request, @PathVariable("vnfmId") String vnfmId, @PathVariable("vnfId") String vnfInstanceId, HttpServletResponse httpResponse) {
- logger.info("REST: Heal VNF");
- return lifecycleManager.healVnf(vnfmId, vnfInstanceId, request, empty(), httpResponse);
+ public JobInfo healVnf(@RequestBody VnfHealRequest request, @PathVariable("vnfmId") String vnfmId, @PathVariable("vnfId") String vnfId, HttpServletResponse httpResponse) {
+ logger.info("REST: Heal VNF with " + vnfId + " identifier");
+ return lifecycleManager.healVnf(vnfmId, vnfId, request, empty(), httpResponse);
}
}
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java
index 1ec129ea..c0b5c5b8 100644
--- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java
+++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java
@@ -32,6 +32,7 @@ public class AdditionalParameters {
private Map<String, List<NetworkAddress>> externalConnectionPointAddresses = new HashMap<>();
private List<ExtVirtualLinkData> extVirtualLinks = new ArrayList<>();
private Object additionalParams;
+ private String domain;
public AdditionalParameters() {
//only used through reflection (gson)
@@ -165,6 +166,7 @@ public class AdditionalParameters {
if (o == null || getClass() != o.getClass()) return false;
AdditionalParameters that = (AdditionalParameters) o;
return vimType == that.vimType &&
+ Objects.equals(domain, that.domain) &&
Objects.equals(instantiationLevel, that.instantiationLevel) &&
Objects.equals(computeResourceFlavours, that.computeResourceFlavours) &&
Objects.equals(zones, that.zones) &&
@@ -178,13 +180,14 @@ public class AdditionalParameters {
@Override
public int hashCode() {
- return Objects.hash(vimType, instantiationLevel, computeResourceFlavours, zones, softwareImages, extManagedVirtualLinks, externalConnectionPointAddresses, extVirtualLinks, additionalParams);
+ return Objects.hash(vimType, domain, instantiationLevel, computeResourceFlavours, zones, softwareImages, extManagedVirtualLinks, externalConnectionPointAddresses, extVirtualLinks, additionalParams);
}
@Override
public String toString() {
return "AdditionalParameters{" +
"vimType=" + vimType +
+ ", domain='" + domain + '\'' +
", instantiationLevel='" + instantiationLevel + '\'' +
", computeResourceFlavours=" + computeResourceFlavours +
", zones=" + zones +
@@ -195,4 +198,12 @@ public class AdditionalParameters {
", additionalParams=" + additionalParams +
'}';
}
+
+ public String getDomain() {
+ return domain;
+ }
+
+ public void setDomain(String domain) {
+ this.domain = domain;
+ }
} \ No newline at end of file
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CatalogManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CatalogManager.java
index 5b99bad1..6283cfbc 100644
--- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CatalogManager.java
+++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/CatalogManager.java
@@ -115,7 +115,7 @@ public class CatalogManager {
if (!isPackageReplicated(cbamVnfdId, cbamCatalogApi)) {
try {
ByteArrayOutputStream cbamPackage = getFileInZip(new ByteArrayInputStream(packageProvider.getPackage(csarId)), CBAM_PACKAGE_NAME_IN_ZIP);
- return cbamCatalogApi.create(create(parse(APPLICATION_OCTET_STREAM.toString()), cbamPackage.toByteArray())).execute().body();
+ return cbamCatalogApi.create(create(parse(APPLICATION_OCTET_STREAM.toString()), cbamPackage.toByteArray())).blockingFirst();
} catch (Exception e) {
logger.debug("Probably concurrent package uploads", e);
//retest if the VNF package exists in CBAM. It might happen that an other operation
@@ -140,7 +140,7 @@ public class CatalogManager {
*/
public String getCbamVnfdContent(String vnfmId, String vnfdId) {
try {
- byte[] vnfdContent = cbamRestApiProvider.getCbamCatalogApi(vnfmId).content(vnfdId).execute().body().bytes();
+ byte[] vnfdContent = cbamRestApiProvider.getCbamCatalogApi(vnfmId).content(vnfdId).blockingFirst().bytes();
String vnfdPath = getVnfdLocation(new ByteArrayInputStream(vnfdContent));
return new String(getFileInZip(new ByteArrayInputStream(vnfdContent), vnfdPath).toByteArray());
} catch (Exception e) {
@@ -158,14 +158,14 @@ public class CatalogManager {
private CatalogAdapterVnfpackage queryPackageFromCBAM(String cbamVnfdId, DefaultApi cbamCatalogApi) {
try {
- return cbamCatalogApi.getById(cbamVnfdId).execute().body();
+ return cbamCatalogApi.getById(cbamVnfdId).blockingFirst();
} catch (Exception e) {
throw buildFatalFailure(logger, "Unable to query VNF package with " + cbamVnfdId + " from CBAM", e);
}
}
private boolean isPackageReplicatedToCbam(String cbamVnfdId, DefaultApi cbamCatalogApi) throws IOException {
- for (CatalogAdapterVnfpackage vnfPackage : cbamCatalogApi.list().execute().body()) {
+ for (CatalogAdapterVnfpackage vnfPackage : cbamCatalogApi.list().blockingFirst()) {
if (vnfPackage.getVnfdId().equals(cbamVnfdId)) {
return true;
}
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java
index b7dd7168..ce9da78c 100644
--- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java
+++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java
@@ -218,9 +218,7 @@ public class LifecycleManager {
private void instantiateVnf(String vnfmId, List<ExtVirtualLinkInfo> extVirtualLinkInfos, AdditionalParameters additionalParameters, String onapVnfdId, String vnfmVnfdId, String vnfId, String vimId, JobInfo jobInfo) {
String vnfdContent = catalogManager.getCbamVnfdContent(vnfmId, vnfmVnfdId);
GrantVNFResponseVim vim = grantManager.requestGrantForInstantiate(vnfmId, vnfId, vimId, onapVnfdId, additionalParameters.getInstantiationLevel(), vnfdContent, jobInfo.getJobId());
- if (vim.getVimId() == null) {
- throw buildFatalFailure(logger, "VF-C did not send VIM identifier in grant response");
- }
+ handleBackwardIncompatibleApiChangesInVfc(vim);
VimInfo vimInfo = vimInfoProvider.getVimInfo(vim.getVimId());
InstantiateVnfRequest instantiationRequest = new InstantiateVnfRequest();
addExternalLinksToRequest(extVirtualLinkInfos, additionalParameters, instantiationRequest, vimId);
@@ -248,13 +246,37 @@ public class LifecycleManager {
waitForOperationToFinish(vnfmId, vnfId, operationExecution.getId());
}
+ private void handleBackwardIncompatibleApiChangesInVfc(GrantVNFResponseVim vim) {
+ if (vim.getVimId() == null) {
+ if (vim.getVimid() == null) {
+ throw buildFatalFailure(logger, "VF-C did not send VIM identifier in grant response");
+ } else {
+ vim.setVimId(vim.getVimid());
+ }
+ }
+ if (vim.getAccessInfo() == null) {
+ if (vim.getAccessinfo() == null) {
+ throw buildFatalFailure(logger, "VF-C did not send access info in grant response");
+ } else {
+ vim.setAccessInfo(vim.getAccessinfo());
+ }
+ }
+ }
+
private com.nokia.cbam.lcm.v32.model.VimInfo addVim(AdditionalParameters additionalParameters, String vimId, GrantVNFResponseVim vim, VimInfo vimInfo) {
if (additionalParameters.getVimType() == OPENSTACK_V2_INFO) {
return buildOpenStackV2INFO(vimId, vim, vimInfo);
} else if (additionalParameters.getVimType() == OPENSTACK_V3_INFO) {
+ if (isEmpty(vimInfo.getDomain())) {
+ if (isEmpty(additionalParameters.getDomain())) {
+ throw buildFatalFailure(logger, "The cloud did not supply the cloud domain (Amsterdam release) and was not supplied as additional data");
+ } else {
+ logger.warn("Setting domain from additional parameters");
+ vimInfo.setDomain(additionalParameters.getDomain());
+ }
+ }
return buildOpenStackV3INFO(vimId, vim, vimInfo);
-
} else {
//OTHER VIM TYPE is not possible
return buildVcloudInfo(vimId, vimInfo);
@@ -287,10 +309,10 @@ public class LifecycleManager {
return childElement(deploymentFlavorProperties, "flavour_id").getAsString();
}
- private Set<Map.Entry<String, JsonElement>> getAcceptableOperationParameters(String vnfdContent, String categroryOfOperation, String operationName) {
+ private Set<Map.Entry<String, JsonElement>> getAcceptableOperationParameters(String vnfdContent, String categoryOfOperation, String operationName) {
JsonObject root = new Gson().toJsonTree(new Yaml().load(vnfdContent)).getAsJsonObject();
JsonObject interfaces = child(child(child(root, "topology_template"), "substitution_mappings"), "interfaces");
- JsonObject additionalParameters = child(child(child(child(interfaces, categroryOfOperation), operationName), "inputs"), "additional_parameters");
+ JsonObject additionalParameters = child(child(child(child(interfaces, categoryOfOperation), operationName), "inputs"), "additional_parameters");
return additionalParameters.entrySet();
}