+
+ @Override
+ public Optional<Relationship> addRelationShip(final String vnfId, final String vfModuleId,
+ final Relationship relationship, final String requestURI) {
+ final Optional<VfModule> optional = getVfModule(vnfId, vfModuleId);
+ if (optional.isPresent()) {
+ final VfModule vfModule = optional.get();
+
+ RelationshipList relationshipList = vfModule.getRelationshipList();
+ if (relationshipList == null) {
+ relationshipList = new RelationshipList();
+ vfModule.setRelationshipList(relationshipList);
+ }
+ relationshipList.getRelationship().add(relationship);
+ LOGGER.info("Successfully added relation to VfModule for vnfId: {} and vfModuleId: {}", vnfId, vfModuleId);
+
+ final String relatedLink = getBiDirectionalRelationShipListRelatedLink(requestURI);
+
+ final Relationship resultantRelationship = new Relationship();
+ resultantRelationship.setRelatedTo(VF_MODULE);
+ resultantRelationship.setRelationshipLabel(USES);
+ resultantRelationship.setRelatedLink(relatedLink);
+
+ final RelationshipData genericVnfRelationshipData = new RelationshipData();
+ genericVnfRelationshipData.setRelationshipKey(GENERIC_VNF_VNF_ID);
+ genericVnfRelationshipData.setRelationshipValue(vnfId);
+ resultantRelationship.getRelationshipData().add(genericVnfRelationshipData);
+
+ final RelationshipData vfModuleRelationshipData = new RelationshipData();
+ vfModuleRelationshipData.setRelationshipKey(VF_MODULE_VF_MODULE_ID);
+ vfModuleRelationshipData.setRelationshipValue(vfModuleId);
+ resultantRelationship.getRelationshipData().add(vfModuleRelationshipData);
+ return Optional.of(resultantRelationship);
+ }
+
+ LOGGER.error("Unable to find VfModule ...");
+ return Optional.empty();
+ }
+
+ @Override
+ public boolean deleteVfModule(final String vnfId, final String vfModuleId, final String resourceVersion) {
+ final Optional<GenericVnf> genericVnfOptional = getGenericVnf(vnfId);
+ final Optional<VfModule> vfModuleOptional = getVfModule(vnfId, vfModuleId);
+ if (genericVnfOptional.isPresent() && vfModuleOptional.isPresent()) {
+ final GenericVnf genericVnf = genericVnfOptional.get();
+ final VfModule vfModule = vfModuleOptional.get();
+ if (genericVnf.getVfModules() != null && vfModule.getResourceVersion().equals(resourceVersion)) {
+ LOGGER.info("VfModule: {} deleted from the Generic VNF: {}",vfModuleId, vnfId);
+ return genericVnf.getVfModules().getVfModule().remove(vfModule);
+ }
+ }
+ LOGGER.error("There are no VfModules associated to vnf ID: {}", vnfId);
+ return false;
+ }
+
+}