[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / openecomp-be / lib / openecomp-sdc-vendor-license-lib / openecomp-sdc-vendor-license-core / src / main / java / org / openecomp / sdc / vendorlicense / licenseartifacts / impl / VendorLicenseArtifactsServiceImpl.java
index 2f11b75..580fc6c 100644 (file)
 
 package org.openecomp.sdc.vendorlicense.licenseartifacts.impl;
 
-import org.apache.commons.collections4.MultiValuedMap;
-import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
 import org.openecomp.core.utilities.file.FileContentHandler;
+import org.openecomp.sdc.common.utils.CommonUtil;
+import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
 import org.openecomp.sdc.vendorlicense.HealingServiceFactory;
-import org.openecomp.sdc.vendorlicense.VendorLicenseConstants;
 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
@@ -35,166 +34,115 @@ import org.openecomp.sdc.vendorlicense.healing.HealingService;
 import org.openecomp.sdc.vendorlicense.licenseartifacts.VendorLicenseArtifactsService;
 import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.VendorLicenseArtifact;
 import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.VnfLicenseArtifact;
+import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util.VendorLicenseArtifactsServiceUtils;
 import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdc.versioning.dao.types.VersionableEntity;
-import org.openecomp.sdc.versioning.types.VersionInfo;
-import org.openecomp.sdc.versioning.types.VersionableEntityAction;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VENDOR_LICENSE_MODEL_ARTIFACT_NAME_WITH_PATH;
+import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VNF_ARTIFACT_NAME_WITH_PATH;
+
 public class VendorLicenseArtifactsServiceImpl implements VendorLicenseArtifactsService {
 
-  private static final VendorLicenseFacade vendorLicenseFacade = VendorLicenseFacadeFactory
-          .getInstance().createInterface();
-  private static final HealingService healingService = HealingServiceFactory
-          .getInstance().createInterface();
+  public static final VendorLicenseFacade vendorLicenseFacade =
+      VendorLicenseFacadeFactory.getInstance().createInterface();
+  public static final HealingService healingService =
+      HealingServiceFactory.getInstance().createInterface();
+  private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
 
-  /**
-   * Create License Artifacts.
-   *
-   * @param vspId         the vsp id
-   * @param vlmId         the vlm id
-   * @param vlmVersion    the vlm version
-   * @param featureGroups the feature groups
-   * @param user          the user
-   * @return FileContentHandler
-   */
-  public FileContentHandler createLicenseArtifacts(String vspId, String vlmId,
-                                                   Version vlmVersion,
-                                                   List<String> featureGroups, String user) {
-    FileContentHandler artifacts = new FileContentHandler();
-    String vendorName = getVendorName(vlmId, user);
 
-    artifacts.addFile(VendorLicenseConstants.VNF_ARTIFACT_NAME_WITH_PATH,
-            createVnfArtifact(vspId, vlmId, vlmVersion, vendorName, featureGroups, user));
-    artifacts.addFile(VendorLicenseConstants.VENDOR_LICENSE_MODEL_ARTIFACT_NAME_WITH_PATH,
-            createVendorLicenseArtifact(vlmId, vendorName, user));
+  static byte[] createVnfArtifact(String vspId, String vlmId, Version vlmVersion, String vendorName,
+                                  List<String> featureGroups, String user) {
 
-    return artifacts;
-  }
 
-  static byte[] createVnfArtifact(
-      String vspId, String vlmId, Version vlmVersion,
-      String vendorName, List<String> featureGroups,
-      String user) {
+    mdcDataDebugMessage.debugEntryMessage("VLM name", vendorName);
+
     VnfLicenseArtifact artifact = new VnfLicenseArtifact();
 
     artifact.setVspId(vspId);
     artifact.setVendorName(vendorName);
     for (String featureGroupId : featureGroups) {
-      FeatureGroupModel featureGroupModel =
-          vendorLicenseFacade.getFeatureGroupModel(new FeatureGroupEntity(
-              vlmId, vlmVersion, featureGroupId), user);
+      FeatureGroupModel featureGroupModel = vendorLicenseFacade
+          .getFeatureGroupModel(new FeatureGroupEntity(vlmId, vlmVersion, featureGroupId), user);
       Set<EntitlementPoolEntity> entitlementPoolEntities = featureGroupModel.getEntitlementPools();
       Set<LicenseKeyGroupEntity> licenseKeyGroupEntities = featureGroupModel.getLicenseKeyGroups();
 
-      featureGroupModel.setEntitlementPools(
-          entitlementPoolEntities.stream()
-              .map(entitlementPoolEntity -> (EntitlementPoolEntity) healingService
-                  .heal(entitlementPoolEntity, user))
-              .collect(Collectors.toSet()));
-      featureGroupModel.setLicenseKeyGroups(
-          licenseKeyGroupEntities.stream()
-              .map(licenseKeyGroupEntity -> (LicenseKeyGroupEntity) healingService
-                  .heal(licenseKeyGroupEntity, user))
-              .collect(Collectors.toSet()));
+      featureGroupModel.setEntitlementPools(entitlementPoolEntities.stream().map(
+          entitlementPoolEntity -> (EntitlementPoolEntity) healingService
+              .heal(entitlementPoolEntity, user)).collect(Collectors.toSet()));
+      featureGroupModel.setLicenseKeyGroups(licenseKeyGroupEntities.stream().map(
+          licenseKeyGroupEntity -> (LicenseKeyGroupEntity) healingService
+              .heal(licenseKeyGroupEntity, user)).collect(Collectors.toSet()));
       artifact.getFeatureGroups().add(featureGroupModel);
     }
 
+    mdcDataDebugMessage.debugExitMessage("VLM name", vendorName);
     return artifact.toXml().getBytes();
   }
 
-
   static byte[] createVendorLicenseArtifact(String vlmId, String vendorName, String user) {
+
+
+    mdcDataDebugMessage.debugEntryMessage("VLM name", vendorName);
+
     VendorLicenseArtifact vendorLicenseArtifact = new VendorLicenseArtifact();
     vendorLicenseArtifact.setVendorName(vendorName);
     Set<EntitlementPoolEntity> entitlementPoolEntities = new HashSet<>();
     Set<LicenseKeyGroupEntity> licenseKeyGroupEntities = new HashSet<>();
 
-    List<Version> finalVersions = getFinalVersionsForVlm(vlmId);
+    List<Version> finalVersions = VendorLicenseArtifactsServiceUtils.getFinalVersionsForVlm(vlmId);
     for (Version finalVersion : finalVersions) {
-      entitlementPoolEntities.addAll(
-          vendorLicenseFacade.listEntitlementPools(vlmId, finalVersion, user));
-      licenseKeyGroupEntities.addAll(
-          vendorLicenseFacade.listLicenseKeyGroups(vlmId, finalVersion, user));
+      entitlementPoolEntities
+          .addAll(vendorLicenseFacade.listEntitlementPools(vlmId, finalVersion, user));
+      licenseKeyGroupEntities
+          .addAll(vendorLicenseFacade.listLicenseKeyGroups(vlmId, finalVersion, user));
     }
 
 
-    entitlementPoolEntities = healEPs(user, filterChangedEntities(entitlementPoolEntities));
-    licenseKeyGroupEntities = healLkgs(user, filterChangedEntities(licenseKeyGroupEntities));
+    entitlementPoolEntities = VendorLicenseArtifactsServiceUtils
+        .healEPs(user,
+            VendorLicenseArtifactsServiceUtils.filterChangedEntities(entitlementPoolEntities));
+    licenseKeyGroupEntities = VendorLicenseArtifactsServiceUtils
+        .healLkgs(user,
+            VendorLicenseArtifactsServiceUtils.filterChangedEntities(licenseKeyGroupEntities));
 
     vendorLicenseArtifact.setEntitlementPoolEntities(entitlementPoolEntities);
     vendorLicenseArtifact.setLicenseKeyGroupEntities(licenseKeyGroupEntities);
-    return vendorLicenseArtifact.toXml().getBytes();
-  }
-
-  private static List<VersionableEntity> filterChangedEntities(
-      Collection<? extends VersionableEntity> versionableEntities) {
-    MultiValuedMap<String, VersionableEntity> entitiesById = mapById(versionableEntities);
-    Map<String, VersionableEntity> entitiesByVersionUuId = new HashMap<>();
-    List<VersionableEntity> changedOnly = new ArrayList<>();
-
-    for (String epId : entitiesById.keySet()) {
-      Collection<VersionableEntity> versionableEntitiesForId = entitiesById.get(epId);
-      for (VersionableEntity ep : versionableEntitiesForId) {
-        entitiesByVersionUuId.put(ep.getVersionUuId(), ep);
-      }
-    }
 
-    changedOnly.addAll(entitiesByVersionUuId.values());
-
-    return changedOnly;
-  }
-
-  private static MultiValuedMap<String, VersionableEntity> mapById(
-      Collection<? extends VersionableEntity> versionableEntities) {
-    MultiValuedMap<String, VersionableEntity> mappedById = new ArrayListValuedHashMap<>();
-    for (VersionableEntity ve : versionableEntities) {
-      mappedById.put(ve.getId(), ve);
-    }
-    return mappedById;
+    mdcDataDebugMessage.debugExitMessage("VLM name", vendorName);
+    return vendorLicenseArtifact.toXml().getBytes();
   }
 
 
-  private static Set<LicenseKeyGroupEntity> healLkgs(
-      String user, Collection<? extends VersionableEntity> licenseKeyGroupEntities) {
-    Set<LicenseKeyGroupEntity> healed = new HashSet<>();
-    for (VersionableEntity licenseKeyGroupEntity : licenseKeyGroupEntities) {
-      healed.add((LicenseKeyGroupEntity) healingService.heal(licenseKeyGroupEntity, user));
-    }
-
-    return healed;
-  }
+  /**
+   * Create License Artifacts.
+   * @param vspId vspId
+   * @param vlmId vlmId
+   * @param vlmVersion vlmVersion
+   * @param featureGroups featureGroups
+   * @param user user
+   * @return FileContentHandler
+   */
+  public FileContentHandler createLicenseArtifacts(String vspId, String vlmId, Version vlmVersion,
+                                                   List<String> featureGroups, String user) {
 
-  private static Set<EntitlementPoolEntity> healEPs(
-      String user, Collection<? extends VersionableEntity> entitlementPoolEntities) {
-    Set<EntitlementPoolEntity> healed = new HashSet<>();
-    for (VersionableEntity entitlementPoolEntity : entitlementPoolEntities) {
-      healed.add((EntitlementPoolEntity) healingService.heal(entitlementPoolEntity, user));
-    }
 
-    return healed;
-  }
+    mdcDataDebugMessage.debugEntryMessage("VSP Id", vspId);
 
-  private static List<Version> getFinalVersionsForVlm(String vlmId) {
-    VersionInfo versionInfo = vendorLicenseFacade
-        .getVersionInfo(vlmId, VersionableEntityAction.Read, "");
-    return versionInfo.getFinalVersions();
+    FileContentHandler artifacts = new FileContentHandler();
+    String vendorName = VendorLicenseArtifactsServiceUtils.getVendorName(vlmId, user);
 
-  }
+    artifacts.addFile(VNF_ARTIFACT_NAME_WITH_PATH,
+        createVnfArtifact(vspId, vlmId, vlmVersion, vendorName, featureGroups, user));
+    artifacts.addFile(VENDOR_LICENSE_MODEL_ARTIFACT_NAME_WITH_PATH,
+        createVendorLicenseArtifact(vlmId, vendorName, user));
 
+    mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
 
-  private static String getVendorName(String vendorLicenseModelId, String user) {
-    return vendorLicenseFacade
-        .getVendorLicenseModel(vendorLicenseModelId, null, user)
-        .getVendorLicenseModel().getVendorName();
+    return artifacts;
   }
 
 }