diff options
author | AviZi <avi.ziv@amdocs.com> | 2017-06-09 02:39:56 +0300 |
---|---|---|
committer | AviZi <avi.ziv@amdocs.com> | 2017-06-09 02:39:56 +0300 |
commit | 280f8015d06af1f41a3ef12e8300801c7a5e0d54 (patch) | |
tree | 9c1d3978c04cd28068f02073038c936bb49ca9e0 /openecomp-be/lib/openecomp-sdc-vendor-license-lib | |
parent | fd3821dad11780d33c5373d74c957c442489945e (diff) |
[SDC-29] Amdocs OnBoard 1707 initial commit.
Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370
Signed-off-by: AviZi <avi.ziv@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-vendor-license-lib')
64 files changed, 2293 insertions, 530 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml index 8062999c55..30ed034e53 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml @@ -2,6 +2,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <name>openecomp-sdc-vendor-license-api</name> + <artifactId>openecomp-sdc-vendor-license-api</artifactId> <parent> <groupId>org.openecomp.sdc</groupId> <artifactId>openecomp-sdc-lib</artifactId> @@ -9,12 +11,9 @@ <relativePath>../..</relativePath> </parent> - <name>openecomp-sdc-vendor-license-api</name> - <artifactId>openecomp-sdc-vendor-license-api</artifactId> - <dependencies> <dependency> - <groupId>org.openecomp.sdc</groupId> + <groupId>org.openecomp.core</groupId> <artifactId>openecomp-facade-core</artifactId> <version>${project.version}</version> </dependency> @@ -24,7 +23,7 @@ <version>${project.version}</version> </dependency> <dependency> - <groupId>org.openecomp.sdc</groupId> + <groupId>org.openecomp.core</groupId> <artifactId>openecomp-nosqldb-core</artifactId> <version>${project.version}</version> </dependency> @@ -36,22 +35,22 @@ <dependency> <groupId>org.glassfish.web</groupId> <artifactId>javax.el</artifactId> - <version>2.2.4</version> + <version>${javax.el.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> - <version>2.7.4</version> + <version>${jackson.annotations.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> - <version>2.7.4</version> + <version>${jackson.dataformat.version}</version> </dependency> <dependency> <groupId>org.codehaus.woodstox</groupId> <artifactId>woodstox-core-asl</artifactId> - <version>4.4.1</version> + <version>${woodstox.version}</version> </dependency> </dependencies> -</project>
\ No newline at end of file +</project> diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup new file mode 100644 index 0000000000..fc22abcf38 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup @@ -0,0 +1,55 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <name>openecomp-sdc-vendor-license-api</name> + <artifactId>openecomp-sdc-vendor-license-api</artifactId> + <parent> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-lib</artifactId> + <version>1.0-SNAPSHOT</version> + <relativePath>../..</relativePath> + </parent> + <dependencies> + <dependency> + <groupId>org.openecomp.core</groupId> + <artifactId>openecomp-facade-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-versioning-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.openecomp.core</groupId> + <artifactId>openecomp-nosqldb-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>javax.el</groupId> + <artifactId>javax.el-api</artifactId> + <version>${javax.el-api.version}</version> + </dependency> + <dependency> + <groupId>org.glassfish.web</groupId> + <artifactId>javax.el</artifactId> + <version>2.2.4</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-annotations</artifactId> + <version>2.7.4</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-xml</artifactId> + <version>2.7.4</version> + </dependency> + <dependency> + <groupId>org.codehaus.woodstox</groupId> + <artifactId>woodstox-core-asl</artifactId> + <version>4.4.1</version> + </dependency> + </dependencies> +</project>
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/VendorLicenseConstants.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/VendorLicenseConstants.java index 2a1930d626..82fdf045db 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/VendorLicenseConstants.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/VendorLicenseConstants.java @@ -32,6 +32,8 @@ public final class VendorLicenseConstants { public static final String VENDOR_LICENSE_MODEL_ARTIFACT_NAME_WITH_PATH = EXTERNAL_ARTIFACTS_DIR + File.separator + "vendor-license-model.xml"; public static final String VENDOR_LICENSE_MODEL_ARTIFACT_REGEX_REMOVE = " xmlns=\"\""; + public static final String UNSUPPORTED_OPERATION_ERROR = + "An error has occurred: Unsupported operation for 1707 release."; public final class UniqueValues { public static final String VENDOR_NAME = "Vendor name"; @@ -39,5 +41,6 @@ public final class VendorLicenseConstants { public static final String FEATURE_GROUP_NAME = "Feature Group name"; public static final String ENTITLEMENT_POOL_NAME = "Entitlement Pool name"; public static final String LICENSE_KEY_GROUP_NAME = "License Key Group name"; + } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/EntitlementPoolDao.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/EntitlementPoolDao.java index c507e6946a..28524e8977 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/EntitlementPoolDao.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/EntitlementPoolDao.java @@ -20,12 +20,23 @@ package org.openecomp.sdc.vendorlicense.dao; + import org.openecomp.core.dao.BaseDao; import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity; import org.openecomp.sdc.versioning.dao.VersionableDao; +import java.util.Collection; + public interface EntitlementPoolDao extends VersionableDao, BaseDao<EntitlementPoolEntity> { + void create(EntitlementPoolEntity entitlementPool); + + void delete(EntitlementPoolEntity entitlementPool); + + EntitlementPoolEntity get(EntitlementPoolEntity entitlementPool); + + Collection<EntitlementPoolEntity> list(EntitlementPoolEntity entitlementPool); + long count(EntitlementPoolEntity entitlementPool); void deleteAll(EntitlementPoolEntity entitlementPool); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/FeatureGroupDao.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/FeatureGroupDao.java index a5db802861..3a7ce9ac04 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/FeatureGroupDao.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/FeatureGroupDao.java @@ -24,10 +24,20 @@ import org.openecomp.core.dao.BaseDao; import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity; import org.openecomp.sdc.versioning.dao.VersionableDao; +import java.util.Collection; import java.util.Set; + public interface FeatureGroupDao extends VersionableDao, BaseDao<FeatureGroupEntity> { + void delete(FeatureGroupEntity featureGroup); + + void create(FeatureGroupEntity featureGroup); + + FeatureGroupEntity get(FeatureGroupEntity entity); + + Collection<FeatureGroupEntity> list(FeatureGroupEntity entity); + long count(FeatureGroupEntity featureGroup); void deleteAll(FeatureGroupEntity featureGroup); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/FeatureGroupDaoFactory.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/FeatureGroupDaoFactory.java index 58832e12ae..5a32ee420a 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/FeatureGroupDaoFactory.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/FeatureGroupDaoFactory.java @@ -24,6 +24,7 @@ import org.openecomp.core.factory.api.AbstractComponentFactory; import org.openecomp.core.factory.api.AbstractFactory; + public abstract class FeatureGroupDaoFactory extends AbstractComponentFactory<FeatureGroupDao> { public static FeatureGroupDaoFactory getInstance() { return AbstractFactory.getInstance(FeatureGroupDaoFactory.class); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseAgreementDao.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseAgreementDao.java index df5e972422..8e2e4889ba 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseAgreementDao.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseAgreementDao.java @@ -1,8 +1,8 @@ /*- - * ============LICENSE_START======================================================= + * ============LICENSE_SLicenseAgreementEntityARLicenseAgreementEntity======================================================= * SDC * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 ALicenseAgreementEntity&LicenseAgreementEntity Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -12,7 +12,7 @@ * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * WILicenseAgreementEntityHOULicenseAgreementEntity WARRANLicenseAgreementEntityIES OR CONDILicenseAgreementEntityIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= @@ -24,9 +24,10 @@ import org.openecomp.core.dao.BaseDao; import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity; import org.openecomp.sdc.versioning.dao.VersionableDao; +import java.util.Collection; import java.util.Set; -public interface LicenseAgreementDao extends VersionableDao, BaseDao<LicenseAgreementEntity> { +public interface LicenseAgreementDao extends VersionableDao{ long count(LicenseAgreementEntity entity); @@ -37,4 +38,13 @@ public interface LicenseAgreementDao extends VersionableDao, BaseDao<LicenseAgre void updateColumnsAndDeltaFeatureGroupIds(LicenseAgreementEntity licenseAgreement, Set<String> addedFeatureGroupIds, Set<String> removedFeatureGroupIds); + Collection<LicenseAgreementEntity> list(LicenseAgreementEntity entity); + + void create(LicenseAgreementEntity entity); + + void update(LicenseAgreementEntity entity); + + LicenseAgreementEntity get(LicenseAgreementEntity entity); + + void delete(LicenseAgreementEntity entity); } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseKeyGroupDao.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseKeyGroupDao.java index 43e380d9b9..4e0ce93ed4 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseKeyGroupDao.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseKeyGroupDao.java @@ -20,12 +20,26 @@ package org.openecomp.sdc.vendorlicense.dao; + import org.openecomp.core.dao.BaseDao; import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity; import org.openecomp.sdc.versioning.dao.VersionableDao; +import java.util.Collection; + + public interface LicenseKeyGroupDao extends VersionableDao, BaseDao<LicenseKeyGroupEntity> { + void create(LicenseKeyGroupEntity licenseKeyGroup); + + void delete(LicenseKeyGroupEntity licenseKeyGroup); + + LicenseKeyGroupEntity get(LicenseKeyGroupEntity licenseKeyGroup); + + Collection<LicenseKeyGroupEntity> list(LicenseKeyGroupEntity licenseKeyGroup); + + long count(LicenseKeyGroupEntity licenseKeyGroup); + void deleteAll(LicenseKeyGroupEntity licenseKeyGroup); void addReferencingFeatureGroup(LicenseKeyGroupEntity licenseKeyGroup, String featureGroupId); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseKeyGroupDaoFactory.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseKeyGroupDaoFactory.java index 1f887390db..8c76c46301 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseKeyGroupDaoFactory.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/LicenseKeyGroupDaoFactory.java @@ -23,6 +23,7 @@ package org.openecomp.sdc.vendorlicense.dao; import org.openecomp.core.factory.api.AbstractComponentFactory; import org.openecomp.core.factory.api.AbstractFactory; + public abstract class LicenseKeyGroupDaoFactory extends AbstractComponentFactory<LicenseKeyGroupDao> { diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/VendorLicenseModelDao.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/VendorLicenseModelDao.java index b8e39bc496..0bb2e62b41 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/VendorLicenseModelDao.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/VendorLicenseModelDao.java @@ -25,5 +25,4 @@ import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity; import org.openecomp.sdc.versioning.dao.VersionableDao; public interface VendorLicenseModelDao extends VersionableDao, BaseDao<VendorLicenseModelEntity> { -// void updateLastModificationTime(VendorLicenseModelEntity vendorLicenseModel); } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/AggregationFunction.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/AggregationFunction.java index 9a5af213c4..5b5a97f92b 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/AggregationFunction.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/AggregationFunction.java @@ -23,5 +23,5 @@ package org.openecomp.sdc.vendorlicense.dao.types; public enum AggregationFunction { Peak, Average, - Other + Other; } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/ChoiceOrOther.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/ChoiceOrOther.java index ca7a09b0df..4483c67b65 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/ChoiceOrOther.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/ChoiceOrOther.java @@ -25,6 +25,12 @@ import com.datastax.driver.mapping.annotations.UDT; import org.openecomp.sdc.common.errors.CoreException; import org.openecomp.sdc.common.errors.ErrorCategory; import org.openecomp.sdc.common.errors.ErrorCode; +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerErrorCode; +import org.openecomp.sdc.logging.types.LoggerErrorDescription; +import org.openecomp.sdc.logging.types.LoggerTragetServiceName; @UDT(keyspace = "dox", name = "choice_or_other") public class ChoiceOrOther<E extends Enum<E>> { @@ -110,10 +116,13 @@ public class ChoiceOrOther<E extends Enum<E>> { try { choice = E.valueOf(enumClass, result); - } catch (IllegalArgumentException e0) { + } catch (IllegalArgumentException exception) { try { choice = E.valueOf(enumClass, OTHER_ENUM_VALUE); } catch (IllegalArgumentException ex) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.VALIDATE_CHOICE_VALUE, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE); throw new CoreException(new ErrorCode.ErrorCodeBuilder() .withId(CHOICE_OR_OTHER_INVALID_ENUM_ERR_ID) .withMessage(CHOICE_OR_OTHER_INVALID_ENUM_MSG) @@ -124,6 +133,14 @@ public class ChoiceOrOther<E extends Enum<E>> { } @Override + public int hashCode() { + int result1 = choice != null ? choice.hashCode() : 0; + result1 = 31 * result1 + (other != null ? other.hashCode() : 0); + result1 = 31 * result1 + (result != null ? result.hashCode() : 0); + return result1; + } + + @Override public boolean equals(Object obj) { if (this == obj) { return true; @@ -143,12 +160,4 @@ public class ChoiceOrOther<E extends Enum<E>> { return result != null ? result.equals(that.result) : that.result == null; } - - @Override - public int hashCode() { - int result1 = choice != null ? choice.hashCode() : 0; - result1 = 31 * result1 + (other != null ? other.hashCode() : 0); - result1 = 31 * result1 + (result != null ? result.hashCode() : 0); - return result1; - } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementMetric.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementMetric.java index 42cc231273..23423dc241 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementMetric.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementMetric.java @@ -33,5 +33,5 @@ public enum EntitlementMetric { Units_TB, Units_MB, Units_GB, - Other + Other; } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java index 8964458181..0a704721d5 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java @@ -55,7 +55,6 @@ public class EntitlementPoolEntity implements VersionableEntity { private String name; private String description; - @Column(name = "threshold") private int thresholdValue; @@ -114,14 +113,6 @@ public class EntitlementPoolEntity implements VersionableEntity { return getVendorLicenseModelId(); } - public String getVendorLicenseModelId() { - return vendorLicenseModelId; - } - - public void setVendorLicenseModelId(String vendorLicenseModelId) { - this.vendorLicenseModelId = vendorLicenseModelId; - } - @Override public String getId() { return id; @@ -142,6 +133,24 @@ public class EntitlementPoolEntity implements VersionableEntity { this.version = version; } + @Override + public String getVersionUuId() { + return versionUuId; + } + + @Override + public void setVersionUuId(String uuId) { + versionUuId = uuId; + } + + public String getVendorLicenseModelId() { + return vendorLicenseModelId; + } + + public void setVendorLicenseModelId(String vendorLicenseModelId) { + this.vendorLicenseModelId = vendorLicenseModelId; + } + public Set<String> getReferencingFeatureGroups() { return referencingFeatureGroups; } @@ -234,13 +243,11 @@ public class EntitlementPoolEntity implements VersionableEntity { this.manufacturerReferenceNumber = manufacturerReferenceNumber; } - /** * Gets threshold for artifact. * * @return the threshold for artifact */ - //util methods for XML public ThresholdForXml getThresholdForArtifact() { ThresholdForXml threshold = new ThresholdForXml(); threshold.setUnit(getThresholdUnit() == null ? null : getThresholdUnit().name()); @@ -249,6 +256,14 @@ public class EntitlementPoolEntity implements VersionableEntity { } /** + * Gets version for artifact. + * @return version in format suitable for artifact + */ + public String getVersionForArtifact() { + return version.toString(); + } + + /** * Gets entitlement metric for artifact. * * @return the entitlement metric for artifact @@ -277,26 +292,12 @@ public class EntitlementPoolEntity implements VersionableEntity { return timeForXml; } - @Override - public String toString() { - return "EntitlementPoolEntity{" - + "vendorLicenseModelId='" + vendorLicenseModelId + '\'' - + ", version=" + version - + ", id='" + id + '\'' - + ", name='" + name + '\'' - + ", description='" + description + '\'' - + ", thresholdValue=" + thresholdValue - + ", thresholdUnit='" + thresholdUnit + '\'' - + ", entitlementMetric=" + entitlementMetric - + ", increments='" + increments + '\'' - + ", aggregationFunction=" + aggregationFunction - + ", operationalScope=" + operationalScope - + ", time=" + time - + ", manufacturerReferenceNumber='" + manufacturerReferenceNumber + '\'' - + ", referencingFeatureGroups=" + referencingFeatureGroups - + ", version_uuid=" + versionUuId - + '}'; + public int hashCode() { + return Objects + .hash(vendorLicenseModelId, version, id, name, description, thresholdValue, thresholdUnit, + entitlementMetric, increments, aggregationFunction, operationalScope, time, + manufacturerReferenceNumber, referencingFeatureGroups); } @Override @@ -310,7 +311,6 @@ public class EntitlementPoolEntity implements VersionableEntity { EntitlementPoolEntity that = (EntitlementPoolEntity) obj; return Float.compare(that.thresholdValue, thresholdValue) == 0 && Objects.equals(vendorLicenseModelId, that.vendorLicenseModelId) - && Objects.equals(version, that.version) && Objects.equals(id, that.id) && Objects.equals(name, that.name) && Objects.equals(description, that.description) @@ -325,11 +325,24 @@ public class EntitlementPoolEntity implements VersionableEntity { } @Override - public int hashCode() { - return Objects - .hash(vendorLicenseModelId, version, id, name, description, thresholdValue, thresholdUnit, - entitlementMetric, increments, aggregationFunction, operationalScope, time, - manufacturerReferenceNumber, referencingFeatureGroups); + public String toString() { + return "EntitlementPoolEntity{" + + "vendorLicenseModelId='" + vendorLicenseModelId + '\'' + + ", version=" + version + + ", id='" + id + '\'' + + ", name='" + name + '\'' + + ", description='" + description + '\'' + + ", thresholdValue=" + thresholdValue + + ", thresholdUnit='" + thresholdUnit + '\'' + + ", entitlementMetric=" + entitlementMetric + + ", increments='" + increments + '\'' + + ", aggregationFunction=" + aggregationFunction + + ", operationalScope=" + operationalScope + + ", time=" + time + + ", manufacturerReferenceNumber='" + manufacturerReferenceNumber + '\'' + + ", referencingFeatureGroups=" + referencingFeatureGroups + + ", version_uuid=" + versionUuId + + '}'; } /** @@ -359,12 +372,4 @@ public class EntitlementPoolEntity implements VersionableEntity { return null; } } - - public String getVersionUuId() { - return versionUuId; - } - - public void setVersionUuId(String uuId) { - versionUuId = uuId; - } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementTime.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementTime.java index 5005075122..78576d1e7d 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementTime.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementTime.java @@ -26,5 +26,5 @@ public enum EntitlementTime { //TODO MetricTime ? ask Segev... Month, Quarter, Year, - Other + Other; } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupEntity.java index de5bd2e1c5..a297f8aa63 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupEntity.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupEntity.java @@ -28,7 +28,6 @@ import com.datastax.driver.mapping.annotations.Table; import org.openecomp.sdc.versioning.dao.types.Version; import org.openecomp.sdc.versioning.dao.types.VersionableEntity; - import java.util.HashSet; import java.util.Objects; import java.util.Set; @@ -83,12 +82,14 @@ public class FeatureGroupEntity implements VersionableEntity { return getVendorLicenseModelId(); } - public String getVendorLicenseModelId() { - return vendorLicenseModelId; + @Override + public String getId() { + return id; } - public void setVendorLicenseModelId(String vendorLicenseModelId) { - this.vendorLicenseModelId = vendorLicenseModelId; + @Override + public void setId(String id) { + this.id = id; } @Override @@ -101,14 +102,12 @@ public class FeatureGroupEntity implements VersionableEntity { this.version = version; } - @Override - public String getId() { - return id; + public String getVendorLicenseModelId() { + return vendorLicenseModelId; } - @Override - public void setId(String id) { - this.id = id; + public void setVendorLicenseModelId(String vendorLicenseModelId) { + this.vendorLicenseModelId = vendorLicenseModelId; } public String getName() { @@ -160,18 +159,10 @@ public class FeatureGroupEntity implements VersionableEntity { } @Override - public String toString() { - return "FeatureGroupEntity{" - + "vendorLicenseModelId='" + vendorLicenseModelId + '\'' - + ", version=" + version - + ", id='" + id + '\'' - + ", name='" + name + '\'' - + ", description='" + description + '\'' - + ", partNumber='" + partNumber + '\'' - + ", licenseKeyGroupIds=" + licenseKeyGroupIds - + ", entitlementPoolIds=" + entitlementPoolIds - + ", referencingLicenseAgreements=" + referencingLicenseAgreements - + '}'; + public int hashCode() { + return Objects + .hash(vendorLicenseModelId, version, id, name, description, partNumber, licenseKeyGroupIds, + entitlementPoolIds, referencingLicenseAgreements); } @Override @@ -195,9 +186,17 @@ public class FeatureGroupEntity implements VersionableEntity { } @Override - public int hashCode() { - return Objects - .hash(vendorLicenseModelId, version, id, name, description, partNumber, licenseKeyGroupIds, - entitlementPoolIds, referencingLicenseAgreements); + public String toString() { + return "FeatureGroupEntity{" + + "vendorLicenseModelId='" + vendorLicenseModelId + '\'' + + ", version=" + version + + ", id='" + id + '\'' + + ", name='" + name + '\'' + + ", description='" + description + '\'' + + ", partNumber='" + partNumber + '\'' + + ", licenseKeyGroupIds=" + licenseKeyGroupIds + + ", entitlementPoolIds=" + entitlementPoolIds + + ", referencingLicenseAgreements=" + referencingLicenseAgreements + + '}'; } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupModel.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupModel.java index 78e081760c..174cbbb9b9 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupModel.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/FeatureGroupModel.java @@ -41,14 +41,14 @@ public class FeatureGroupModel { return entitlementPools; } - public Set<LicenseKeyGroupEntity> getLicenseKeyGroups() { - return licenseKeyGroups; - } - public void setEntitlementPools(Set<EntitlementPoolEntity> entitlementPools) { this.entitlementPools = entitlementPools; } + public Set<LicenseKeyGroupEntity> getLicenseKeyGroups() { + return licenseKeyGroups; + } + public void setLicenseKeyGroups(Set<LicenseKeyGroupEntity> licenseKeyGroups) { this.licenseKeyGroups = licenseKeyGroups; } @@ -72,4 +72,3 @@ public class FeatureGroupModel { } - diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseAgreementEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseAgreementEntity.java index a6e46bf44c..7f7dab684a 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseAgreementEntity.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseAgreementEntity.java @@ -86,12 +86,14 @@ public class LicenseAgreementEntity implements VersionableEntity { return getVendorLicenseModelId(); } - public String getVendorLicenseModelId() { - return vendorLicenseModelId; + @Override + public String getId() { + return id; } - public void setVendorLicenseModelId(String vendorLicenseModelId) { - this.vendorLicenseModelId = vendorLicenseModelId; + @Override + public void setId(String id) { + this.id = id; } @Override @@ -104,14 +106,12 @@ public class LicenseAgreementEntity implements VersionableEntity { this.version = version; } - @Override - public String getId() { - return id; + public String getVendorLicenseModelId() { + return vendorLicenseModelId; } - @Override - public void setId(String id) { - this.id = id; + public void setVendorLicenseModelId(String vendorLicenseModelId) { + this.vendorLicenseModelId = vendorLicenseModelId; } public String getName() { @@ -156,6 +156,12 @@ public class LicenseAgreementEntity implements VersionableEntity { } @Override + public int hashCode() { + return Objects.hash(vendorLicenseModelId, version, id, name, description, licenseTerm, + requirementsAndConstrains, featureGroupIds); + } + + @Override public boolean equals(Object obj) { if (this == obj) { return true; @@ -173,10 +179,4 @@ public class LicenseAgreementEntity implements VersionableEntity { && Objects.equals(requirementsAndConstrains, that.requirementsAndConstrains) && Objects.equals(featureGroupIds, that.featureGroupIds); } - - @Override - public int hashCode() { - return Objects.hash(vendorLicenseModelId, version, id, name, description, licenseTerm, - requirementsAndConstrains, featureGroupIds); - } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java index 2a7e936cb3..07641594c2 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java @@ -30,7 +30,6 @@ import org.openecomp.sdc.vendorlicense.dao.types.xml.LicenseKeyTypeForXml; import org.openecomp.sdc.versioning.dao.types.Version; import org.openecomp.sdc.versioning.dao.types.VersionableEntity; - import java.util.HashSet; import java.util.Objects; import java.util.Set; @@ -87,14 +86,6 @@ public class LicenseKeyGroupEntity implements VersionableEntity { return getVendorLicenseModelId(); } - public String getVendorLicenseModelId() { - return vendorLicenseModelId; - } - - public void setVendorLicenseModelId(String vendorLicenseModelId) { - this.vendorLicenseModelId = vendorLicenseModelId; - } - public String getId() { return id; } @@ -111,6 +102,24 @@ public class LicenseKeyGroupEntity implements VersionableEntity { this.version = version; } + @Override + public String getVersionUuId() { + return versionUuId; + } + + @Override + public void setVersionUuId(String uuId) { + versionUuId = uuId; + } + + public String getVendorLicenseModelId() { + return vendorLicenseModelId; + } + + public void setVendorLicenseModelId(String vendorLicenseModelId) { + this.vendorLicenseModelId = vendorLicenseModelId; + } + public String getName() { return name; } @@ -153,17 +162,10 @@ public class LicenseKeyGroupEntity implements VersionableEntity { } @Override - public String toString() { - return "LicenseKeyGroupEntity{" + "vendorLicenseModelId='" + vendorLicenseModelId + '\'' - + ", version=" + version - + ", id='" + id + '\'' - + ", name='" + name + '\'' - + ", description='" + description + '\'' - + ", type=" + type - + ", operationalScope=" + operationalScope - + ", referencingFeatureGroups=" + referencingFeatureGroups - + ", versionUuId='" + versionUuId + '\'' - + '}'; + public int hashCode() { + return Objects + .hash(vendorLicenseModelId, version, id, name, description, type, operationalScope, + referencingFeatureGroups); } @Override @@ -176,7 +178,6 @@ public class LicenseKeyGroupEntity implements VersionableEntity { } LicenseKeyGroupEntity that = (LicenseKeyGroupEntity) obj; return Objects.equals(vendorLicenseModelId, that.vendorLicenseModelId) - && Objects.equals(version, that.version) && Objects.equals(id, that.id) && Objects.equals(name, that.name) && Objects.equals(description, that.description) @@ -186,10 +187,17 @@ public class LicenseKeyGroupEntity implements VersionableEntity { } @Override - public int hashCode() { - return Objects - .hash(vendorLicenseModelId, version, id, name, description, type, operationalScope, - referencingFeatureGroups); + public String toString() { + return "LicenseKeyGroupEntity{" + "vendorLicenseModelId='" + vendorLicenseModelId + '\'' + + ", version=" + version + + ", id='" + id + '\'' + + ", name='" + name + '\'' + + ", description='" + description + '\'' + + ", type=" + type + + ", operationalScope=" + operationalScope + + ", referencingFeatureGroups=" + referencingFeatureGroups + + ", versionUuId='" + versionUuId + '\'' + + '}'; } /** @@ -206,6 +214,14 @@ public class LicenseKeyGroupEntity implements VersionableEntity { } /** + * Gets version for artifact. + * @return version in format suitable for artifact + */ + public String getVersionForArtifact() { + return version.toString(); + } + + /** * Gets type for artifact. * * @return the type for artifact @@ -219,13 +235,4 @@ public class LicenseKeyGroupEntity implements VersionableEntity { } return typeXml; } - - - public String getVersionUuId() { - return versionUuId; - } - - public void setVersionUuId(String uuId) { - versionUuId = uuId; - } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyType.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyType.java index 3ba913de31..35e6f217e8 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyType.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyType.java @@ -23,5 +23,5 @@ package org.openecomp.sdc.vendorlicense.dao.types; public enum LicenseKeyType { Universal, Unique, - One_Time + One_Time; } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseTerm.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseTerm.java index 729a985473..b8a7f9d09b 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseTerm.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseTerm.java @@ -24,5 +24,5 @@ public enum LicenseTerm { Fixed_Term, Perpetual, Unlimited, - Other + Other; } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/MultiChoiceOrOther.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/MultiChoiceOrOther.java index df9d6887ce..165260f9c5 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/MultiChoiceOrOther.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/MultiChoiceOrOther.java @@ -25,6 +25,12 @@ import com.datastax.driver.mapping.annotations.UDT; import org.openecomp.sdc.common.errors.CoreException; import org.openecomp.sdc.common.errors.ErrorCategory; import org.openecomp.sdc.common.errors.ErrorCode; +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerErrorCode; +import org.openecomp.sdc.logging.types.LoggerErrorDescription; +import org.openecomp.sdc.logging.types.LoggerTragetServiceName; import java.util.HashSet; import java.util.Set; @@ -127,10 +133,14 @@ public class MultiChoiceOrOther<E extends Enum<E>> { String result = results.iterator().next(); try { choices.add(E.valueOf(enumClass, result)); - } catch (IllegalArgumentException illegalArgumentException) { + } catch (IllegalArgumentException exception) { try { choices.add(E.valueOf(enumClass, OTHER_ENUM_VALUE)); } catch (IllegalArgumentException ex) { + + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.VALIDATE_CHOICE_VALUE, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE); throw new CoreException(new ErrorCode.ErrorCodeBuilder() .withId(MULTI_CHOICE_OR_OTHER_INVALID_ENUM_ERR_ID) .withMessage(MULTI_CHOICE_OR_OTHER_INVALID_ENUM_MSG) @@ -142,6 +152,14 @@ public class MultiChoiceOrOther<E extends Enum<E>> { } @Override + public int hashCode() { + int result = choices != null ? choices.hashCode() : 0; + result = 31 * result + (other != null ? other.hashCode() : 0); + result = 31 * result + (results != null ? results.hashCode() : 0); + return result; + } + + @Override public boolean equals(Object obj) { if (this == obj) { return true; @@ -161,12 +179,4 @@ public class MultiChoiceOrOther<E extends Enum<E>> { return results != null ? results.equals(that.results) : that.results == null; } - - @Override - public int hashCode() { - int result = choices != null ? choices.hashCode() : 0; - result = 31 * result + (other != null ? other.hashCode() : 0); - result = 31 * result + (results != null ? results.hashCode() : 0); - return result; - } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/OperationalScope.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/OperationalScope.java index ed9497d30b..69cdb2dabb 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/OperationalScope.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/OperationalScope.java @@ -28,5 +28,5 @@ public enum OperationalScope { VM, CPU, Core, - Other + Other; } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/VendorLicenseModelEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/VendorLicenseModelEntity.java index ea93b1ab4f..b57b850f60 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/VendorLicenseModelEntity.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/VendorLicenseModelEntity.java @@ -42,9 +42,6 @@ public class VendorLicenseModelEntity implements VersionableEntity { @Frozen private Version version; - // @Column(name = "last_modification_time") - // private Date lastModificationTime; - @Column(name = "vendor_name") private String vendorName; private String description; @@ -115,6 +112,11 @@ public class VendorLicenseModelEntity implements VersionableEntity { } @Override + public int hashCode() { + return Objects.hash(id, version, vendorName, description, iconRef); + } + + @Override public boolean equals(Object obj) { if (this == obj) { return true; @@ -130,19 +132,6 @@ public class VendorLicenseModelEntity implements VersionableEntity { && Objects.equals(iconRef, that.iconRef); } - @Override - public int hashCode() { - return Objects.hash(id, version, vendorName, description, iconRef); - } - - // public Date getLastModificationTime() { - // return lastModificationTime; - // } - // - // public void setLastModificationTime(Date lastModificationTime) { - // this.lastModificationTime = lastModificationTime; - // } - public Long getWritetimeMicroSeconds() { return writetimeMicroSeconds; } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/SubmitUncompletedLicenseModelErrorBuilder.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/SubmitUncompletedLicenseModelErrorBuilder.java index 0a00cff8ea..4cf134c262 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/SubmitUncompletedLicenseModelErrorBuilder.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/SubmitUncompletedLicenseModelErrorBuilder.java @@ -25,26 +25,23 @@ import org.openecomp.sdc.common.errors.ErrorCode; public class SubmitUncompletedLicenseModelErrorBuilder { - private static final String SUBMIT_UNCOMPLETED_LICENSE_MODEL_MSG = - "Uncompleted vendor license model %s cannot be submitted. " - + "It must contain license_agreement(s) that all feature groups " - + "contain at least one entitlement pool."; - private final ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder(); - - /** - * Instantiates a new Submit uncompleted license model error builder. - * - * @param vlmId the vlm id - */ - public SubmitUncompletedLicenseModelErrorBuilder(String vlmId) { - builder.withId(VendorLicenseErrorCodes.SUBMIT_UNCOMPLETED_LICENSE_MODEL); - builder.withCategory(ErrorCategory.APPLICATION); - builder.withMessage(String.format(SUBMIT_UNCOMPLETED_LICENSE_MODEL_MSG, vlmId)); - } - - public ErrorCode build() { - return builder.build(); - } + + private final ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder(); + + /** + * Instantiates a new Submit uncompleted license model error builder. + * + * @param error + */ + public SubmitUncompletedLicenseModelErrorBuilder(UncompletedVendorLicenseModelErrorType error) { + builder.withId(VendorLicenseErrorCodes.SUBMIT_UNCOMPLETED_LICENSE_MODEL); + builder.withCategory(ErrorCategory.APPLICATION); + builder.withMessage(error.getErrorMessage()); + } + + public ErrorCode build() { + return builder.build(); + } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/UncompletedVendorLicenseModelErrorType.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/UncompletedVendorLicenseModelErrorType.java new file mode 100644 index 0000000000..17632fb0ad --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/UncompletedVendorLicenseModelErrorType.java @@ -0,0 +1,28 @@ +package org.openecomp.sdc.vendorlicense.errors; + +/** + * Created by ayalaben on 5/8/2017 + */ +public enum UncompletedVendorLicenseModelErrorType { + + SUBMIT_UNCOMPLETED_VLM_MSG_MISSING_LA("Uncompleted vendor license model - cannot be submitted. \n" + + "It must contain a license agreement(s)."), + + SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG("Uncompleted vendor license model - cannot be submitted. \n" + + "The license agreement(s) must contain at least one feature group."), + + SUBMIT_UNCOMPLETED_VLM_MSG_FG_MISSING_EP("Uncompleted vendor license model - cannot be submitted. \n" + + "The feature group(s) must contain at least one entitlement pool."); + + + private String errorMessage; + + UncompletedVendorLicenseModelErrorType(String errorMessage) { + this.errorMessage = errorMessage; + } + + public String getErrorMessage() { + return errorMessage; + } +} + diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/VendorLicenseErrorCodes.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/VendorLicenseErrorCodes.java index 4cd7a5bc1b..98f773860c 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/VendorLicenseErrorCodes.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/errors/VendorLicenseErrorCodes.java @@ -20,6 +20,7 @@ package org.openecomp.sdc.vendorlicense.errors; + public class VendorLicenseErrorCodes { public static final String VENDOR_LICENSE_MODEL_NOT_FOUND = "VENDOR_LICENSE_MODEL_NOT_FOUND"; diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java index e36852d25f..ecff0f56d6 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java @@ -37,9 +37,9 @@ import java.util.Collection; public interface VendorLicenseFacade { - void checkin(String vendorLicenseModelId, String user); + Version checkin(String vendorLicenseModelId, String user); - void submit(String vendorLicenseModelId, String user); + Version submit(String vendorLicenseModelId, String user); FeatureGroupEntity getFeatureGroup(FeatureGroupEntity featureGroup, String user); @@ -53,8 +53,6 @@ public interface VendorLicenseFacade { EntitlementPoolEntity createEntitlementPool(EntitlementPoolEntity entitlementPool, String user); - LicenseKeyGroupEntity createLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user); - void updateEntitlementPool(EntitlementPoolEntity entitlementPool, String user); Collection<LicenseKeyGroupEntity> listLicenseKeyGroups(String vlmId, Version version, @@ -65,6 +63,8 @@ public interface VendorLicenseFacade { void updateLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user); + LicenseKeyGroupEntity createLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user); + VersionedVendorLicenseModel getVendorLicenseModel(String vlmId, Version version, String user); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml index 94d2bdc45a..7ac5aef2f7 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml @@ -5,6 +5,7 @@ <name>openecomp-sdc-vendor-license-core</name> <artifactId>openecomp-sdc-vendor-license-core</artifactId> + <parent> <groupId>org.openecomp.sdc</groupId> <artifactId>openecomp-sdc-lib</artifactId> @@ -18,12 +19,22 @@ <artifactId>openecomp-sdc-vendor-license-api</artifactId> <version>${project.version}</version> </dependency> - + <dependency> + <groupId>org.openecomp.core</groupId> + <artifactId>openecomp-zusammen-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.openecomp.core</groupId> + <artifactId>openecomp-zusammen-core</artifactId> + <version>${project.version}</version> + <scope>runtime</scope> + </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <scope>test</scope> - <version>1.10.19</version> + <version>${mockito.all.version}</version> </dependency> <dependency> <groupId>org.testng</groupId> @@ -41,8 +52,13 @@ <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> - <version>RELEASE</version> + <version>4.11</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-xml</artifactId> + <version>${jackson.dataformat.version}</version> </dependency> </dependencies> -</project>
\ No newline at end of file +</project> diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup new file mode 100644 index 0000000000..b1141fc5cd --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup @@ -0,0 +1,53 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <name>openecomp-sdc-vendor-license-core</name> + <artifactId>openecomp-sdc-vendor-license-core</artifactId> + + + <parent> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-lib</artifactId> + <version>1.0-SNAPSHOT</version> + <relativePath>../..</relativePath> + </parent> + <dependencies> + <dependency> + <groupId>org.openecomp.sdc</groupId> + <artifactId>openecomp-sdc-vendor-license-api</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-all</artifactId> + <scope>test</scope> + <version>1.10.19</version> + </dependency> + <dependency> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + <scope>test</scope> + <version>6.8.5</version> + <exclusions> + <exclusion> + <artifactId>snakeyaml</artifactId> + <groupId>org.yaml</groupId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + <version>4.11</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-xml</artifactId> + <version>2.7.4</version> + </dependency> + </dependencies> + +</project>
\ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolCassandraDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolCassandraDaoImpl.java index 1722f8f8de..496e653ef0 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolCassandraDaoImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolCassandraDaoImpl.java @@ -133,7 +133,7 @@ public class EntitlementPoolCassandraDaoImpl extends CassandraBaseDao<Entitlemen @Query( "UPDATE entitlement_pool SET ref_fg_ids = ref_fg_ids + ? WHERE vlm_id=? AND version=? " - + "AND ep_id=?") + + " AND ep_id=?") ResultSet addReferencingFeatureGroups(Set<String> referencingFeatureGroups, String vendorLicenseModelId, UDTValue vendorLicenseModelVersion, String id); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolDaoFactoryImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolDaoFactoryImpl.java index c1046f79cd..dba631a6ed 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolDaoFactoryImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/EntitlementPoolDaoFactoryImpl.java @@ -20,11 +20,14 @@ package org.openecomp.sdc.vendorlicense.dao.impl; +import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory; import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDao; import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDaoFactory; +import org.openecomp.sdc.vendorlicense.dao.impl.zusammen.EntitlementPoolZusammenDaoImpl; + public class EntitlementPoolDaoFactoryImpl extends EntitlementPoolDaoFactory { - private static EntitlementPoolDao INSTANCE = new EntitlementPoolCassandraDaoImpl(); + private static EntitlementPoolDao INSTANCE = new EntitlementPoolZusammenDaoImpl(ZusammenAdaptorFactory.getInstance().createInterface()); @Override public EntitlementPoolDao createInterface() { diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/FeatureGroupCassandraDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/FeatureGroupCassandraDaoImpl.java index 86957a02c7..2568d719e2 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/FeatureGroupCassandraDaoImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/FeatureGroupCassandraDaoImpl.java @@ -20,6 +20,8 @@ package org.openecomp.sdc.vendorlicense.dao.impl; +import static org.openecomp.core.utilities.CommonMethods.toSingleElementSet; + import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.UDTValue; import com.datastax.driver.mapping.Mapper; @@ -45,7 +47,6 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; - public class FeatureGroupCassandraDaoImpl extends CassandraBaseDao<FeatureGroupEntity> implements FeatureGroupDao { @@ -95,6 +96,12 @@ public class FeatureGroupCassandraDaoImpl extends CassandraBaseDao<FeatureGroupE } @Override + public void deleteAll(FeatureGroupEntity entity) { + accessor.deleteByVlmVersion(entity.getVendorLicenseModelId(), + versionMapper.toUDT(entity.getVersion())).all(); + } + + @Override public void updateFeatureGroup(FeatureGroupEntity entity, Set<String> addedEntitlementPools, Set<String> removedEntitlementPools, @@ -115,18 +122,6 @@ public class FeatureGroupCassandraDaoImpl extends CassandraBaseDao<FeatureGroupE } @Override - public Collection<FeatureGroupEntity> list(FeatureGroupEntity entity) { - return accessor.listByVlmVersion(entity.getVendorLicenseModelId(), - versionMapper.toUDT(entity.getVersion())).all(); - } - - @Override - public void deleteAll(FeatureGroupEntity entity) { - accessor.deleteByVlmVersion(entity.getVendorLicenseModelId(), - versionMapper.toUDT(entity.getVersion())).all(); - } - - @Override public void addReferencingLicenseAgreement(FeatureGroupEntity entity, String licenseAgreementId) { accessor.addReferencingLicenseAgreements(CommonMethods.toSingleElementSet(licenseAgreementId), entity.getVendorLicenseModelId(), versionMapper.toUDT(entity.getVersion()), entity.getId()); @@ -143,16 +138,22 @@ public class FeatureGroupCassandraDaoImpl extends CassandraBaseDao<FeatureGroupE @Override public void removeEntitlementPool(FeatureGroupEntity entity, String entitlementPoolId) { - accessor.removeEntitlementPools(CommonMethods.toSingleElementSet(entitlementPoolId), + accessor.removeEntitlementPools(toSingleElementSet(entitlementPoolId), entity.getVendorLicenseModelId(), versionMapper.toUDT(entity.getVersion()), entity.getId()); } @Override public void removeLicenseKeyGroup(FeatureGroupEntity entity, String licenseKeyGroupId) { - accessor.removeLicenseKeyGroup(CommonMethods.toSingleElementSet(licenseKeyGroupId), + accessor.removeLicenseKeyGroup(toSingleElementSet(licenseKeyGroupId), entity.getVendorLicenseModelId(), versionMapper.toUDT(entity.getVersion()), entity.getId()); } + @Override + public Collection<FeatureGroupEntity> list(FeatureGroupEntity entity) { + return accessor.listByVlmVersion(entity.getVendorLicenseModelId(), + versionMapper.toUDT(entity.getVersion())).all(); + } + @Accessor interface FeatureGroupAccessor { @@ -167,8 +168,8 @@ public class FeatureGroupCassandraDaoImpl extends CassandraBaseDao<FeatureGroupE @Query( "update feature_group set name=?,description=?, part_num=?, ep_ids=ep_ids+ ?," - + "ep_ids=ep_ids-?, lkg_ids=lkg_ids+?,lkg_ids=lkg_ids-? WHERE " - + "vlm_id=? AND version=? AND fg_id=?") + + "ep_ids=ep_ids-?, lkg_ids=lkg_ids+?,lkg_ids=lkg_ids-? WHERE vlm_id=? AND version=? " + + "AND fg_id=?") ResultSet updateColumnsAndDeltaFeatureGroupIds(String name, String description, String partNumber, Set<String> addedEntitlementPools, @@ -179,15 +180,15 @@ public class FeatureGroupCassandraDaoImpl extends CassandraBaseDao<FeatureGroupE String id); @Query( - "UPDATE feature_group SET ref_la_ids = ref_la_ids " - + "+ ? WHERE vlm_id=? AND version=? AND fg_id=?") + "UPDATE feature_group SET ref_la_ids = ref_la_ids + ? WHERE vlm_id=? AND version=? " + + "AND fg_id=?") ResultSet addReferencingLicenseAgreements(Set<String> licenseAgreementIds, String vendorLicenseModelId, UDTValue version, String id); @Query( - "UPDATE feature_group SET ref_la_ids = ref_la_ids - ? " - + "WHERE vlm_id=? AND version=? AND fg_id=?") + "UPDATE feature_group SET ref_la_ids = ref_la_ids - ? WHERE vlm_id=? AND version=? AND " + + "fg_id=?") ResultSet removeReferencingLicenseAgreements(Set<String> licenseAgreementIds, String vendorLicenseModelId, UDTValue version, String id); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/FeatureGroupDaoFactoryImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/FeatureGroupDaoFactoryImpl.java index 941b2b5ecc..830ca4c6c4 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/FeatureGroupDaoFactoryImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/FeatureGroupDaoFactoryImpl.java @@ -20,11 +20,14 @@ package org.openecomp.sdc.vendorlicense.dao.impl; +import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory; import org.openecomp.sdc.vendorlicense.dao.FeatureGroupDao; import org.openecomp.sdc.vendorlicense.dao.FeatureGroupDaoFactory; +import org.openecomp.sdc.vendorlicense.dao.impl.zusammen.FeatureGroupDaoZusammenImpl; + public class FeatureGroupDaoFactoryImpl extends FeatureGroupDaoFactory { - private static FeatureGroupDao INSTANCE = new FeatureGroupCassandraDaoImpl(); + private static FeatureGroupDao INSTANCE = new FeatureGroupDaoZusammenImpl(ZusammenAdaptorFactory.getInstance().createInterface()); @Override public FeatureGroupDao createInterface() { diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseAgreementCassandraDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseAgreementCassandraDaoImpl.java index 6a7cc2aa60..3b5a3b3bb4 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseAgreementCassandraDaoImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseAgreementCassandraDaoImpl.java @@ -46,6 +46,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; + public class LicenseAgreementCassandraDaoImpl extends CassandraBaseDao<LicenseAgreementEntity> implements LicenseAgreementDao { private static NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface(); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseAgreementDaoFactoryImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseAgreementDaoFactoryImpl.java index d92e2562e9..2c1b915200 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseAgreementDaoFactoryImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseAgreementDaoFactoryImpl.java @@ -20,11 +20,14 @@ package org.openecomp.sdc.vendorlicense.dao.impl; +import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory; import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao; import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDaoFactory; +import org.openecomp.sdc.vendorlicense.dao.impl.zusammen.LicenseAgreementDaoZusammenImpl; public class LicenseAgreementDaoFactoryImpl extends LicenseAgreementDaoFactory { - private static LicenseAgreementDao INSTANCE = new LicenseAgreementCassandraDaoImpl(); + private static LicenseAgreementDao INSTANCE = new LicenseAgreementDaoZusammenImpl( + ZusammenAdaptorFactory.getInstance().createInterface()); @Override public LicenseAgreementDao createInterface() { diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseKeyGroupCassandraDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseKeyGroupCassandraDaoImpl.java index c6952c8d03..96eecc9747 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseKeyGroupCassandraDaoImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseKeyGroupCassandraDaoImpl.java @@ -89,6 +89,11 @@ public class LicenseKeyGroupCassandraDaoImpl extends CassandraBaseDao<LicenseKey } @Override + public long count(LicenseKeyGroupEntity licenseKeyGroup) { + return 0; + } + + @Override public void deleteAll(LicenseKeyGroupEntity entity) { accessor.deleteByVlmVersion(entity.getVendorLicenseModelId(), versionMapper.toUDT(entity.getVersion())).all(); @@ -115,8 +120,8 @@ public class LicenseKeyGroupCassandraDaoImpl extends CassandraBaseDao<LicenseKey Result<LicenseKeyGroupEntity> deleteByVlmVersion(String vendorLicenseModelId, UDTValue version); @Query( - "UPDATE license_key_group SET ref_fg_ids = ref_fg_ids + ? WHERE vlm_id=? AND version=?" - + " AND lkg_id=?") + "UPDATE license_key_group SET ref_fg_ids = ref_fg_ids + ? WHERE vlm_id=? AND version=? " + + "AND lkg_id=?") ResultSet addReferencingFeatureGroups(Set<String> referencingFeatureGroups, String vendorLicenseModelId, UDTValue version, String id); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseKeyGroupDaoFactoryImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseKeyGroupDaoFactoryImpl.java index 16d1fd2a3e..407e24d906 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseKeyGroupDaoFactoryImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/LicenseKeyGroupDaoFactoryImpl.java @@ -20,11 +20,13 @@ package org.openecomp.sdc.vendorlicense.dao.impl; +import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory; import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao; import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDaoFactory; +import org.openecomp.sdc.vendorlicense.dao.impl.zusammen.LicenseKeyGroupZusammenDaoImpl; public class LicenseKeyGroupDaoFactoryImpl extends LicenseKeyGroupDaoFactory { - private static LicenseKeyGroupDao INSTANCE = new LicenseKeyGroupCassandraDaoImpl(); + private static LicenseKeyGroupDao INSTANCE = new LicenseKeyGroupZusammenDaoImpl(ZusammenAdaptorFactory.getInstance().createInterface()); @Override public LicenseKeyGroupDao createInterface() { diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/VendorLicenseModelCassandraDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/VendorLicenseModelCassandraDaoImpl.java index 4d08d98bd7..b52f4ba9dd 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/VendorLicenseModelCassandraDaoImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/VendorLicenseModelCassandraDaoImpl.java @@ -37,7 +37,8 @@ import org.openecomp.sdc.versioning.types.VersionableEntityMetadata; import java.util.Collection; public class VendorLicenseModelCassandraDaoImpl extends CassandraBaseDao<VendorLicenseModelEntity> - implements VendorLicenseModelDao { + implements + VendorLicenseModelDao { private static NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface(); private static Mapper<VendorLicenseModelEntity> mapper = @@ -71,21 +72,11 @@ public class VendorLicenseModelCassandraDaoImpl extends CassandraBaseDao<VendorL return accessor.getAll().all(); } - // @Override - // public void updateLastModificationTime(VendorLicenseModelEntity vendorLicenseModel){ - // accessor.updateLastModificationTime(vendorLicenseModel.getLastModificationTime(), - // vendorLicenseModel.getId(), versionMapper.toUDT(vendorLicenseModel.getVersion())); - // } - @Accessor interface VendorLicenseModelAccessor { @Query("SELECT * FROM vendor_license_model") Result<VendorLicenseModelEntity> getAll(); - // @Query("UPDATE vendor_license_model set last_modification_time - // = ? where vlm_id = ? and version = ?") - // ResultSet updateLastModificationTime(Date lastModificationTime, - // String vlmId, UDTValue version); } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/VendorLicenseModelDaoFactoryImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/VendorLicenseModelDaoFactoryImpl.java index d218ca4907..79d0677da7 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/VendorLicenseModelDaoFactoryImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/VendorLicenseModelDaoFactoryImpl.java @@ -20,12 +20,15 @@ package org.openecomp.sdc.vendorlicense.dao.impl; +import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory; import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDao; import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDaoFactory; +import org.openecomp.sdc.vendorlicense.dao.impl.zusammen.VendorLicenseModelDaoZusammenImpl; public class VendorLicenseModelDaoFactoryImpl extends VendorLicenseModelDaoFactory { - private static VendorLicenseModelDao INSTANCE = new VendorLicenseModelCassandraDaoImpl(); + private static VendorLicenseModelDao INSTANCE = new VendorLicenseModelDaoZusammenImpl( + ZusammenAdaptorFactory.getInstance().createInterface()); @Override public VendorLicenseModelDao createInterface() { diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementPropertyName.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementPropertyName.java new file mode 100644 index 0000000000..560402abf2 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementPropertyName.java @@ -0,0 +1,6 @@ +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +public enum ElementPropertyName { + type, + compositionData +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementType.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementType.java new file mode 100644 index 0000000000..4d9c0fa98c --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/ElementType.java @@ -0,0 +1,6 @@ +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +public enum ElementType { + + +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java new file mode 100644 index 0000000000..f133aaad9a --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java @@ -0,0 +1,291 @@ +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement; +import com.amdocs.zusammen.datatypes.Id; +import com.amdocs.zusammen.datatypes.SessionContext; +import com.amdocs.zusammen.datatypes.item.Action; +import com.amdocs.zusammen.datatypes.item.ElementContext; +import com.amdocs.zusammen.datatypes.item.Info; +import org.openecomp.core.zusammen.api.ZusammenAdaptor; +import org.openecomp.core.zusammen.api.ZusammenUtil; +import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDao; +import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction; +import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther; +import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric; +import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity; +import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime; +import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther; +import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope; +import org.openecomp.sdc.vendorlicense.dao.types.ThresholdUnit; +import org.openecomp.sdc.versioning.dao.types.Version; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Created by ayalaben on 3/28/2017. + */ +public class EntitlementPoolZusammenDaoImpl implements EntitlementPoolDao { + + private ZusammenAdaptor zusammenAdaptor; + + public EntitlementPoolZusammenDaoImpl(ZusammenAdaptor zusammenAdaptor) { + this.zusammenAdaptor = zusammenAdaptor; + } + + @Override + public void registerVersioning(String versionableEntityType) { + //no need + } + + @Override + public void create(EntitlementPoolEntity entitlementPool) { + ZusammenElement entitlementPoolElement = + buildEntitlementPoolElement(entitlementPool, Action.CREATE); + + ZusammenElement entitlementPoolsElement = + VlmZusammenUtil.buildStructuralElement(StructureElement.EntitlementPools, null); + + entitlementPoolsElement.addSubElement(entitlementPoolElement); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(entitlementPool.getVendorLicenseModelId()); + Optional<Element> savedElement = zusammenAdaptor.saveElement(context, new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)), + entitlementPoolsElement, "Create entitlement pool"); + + savedElement.ifPresent(element -> entitlementPool + .setId(element.getSubElements().iterator().next().getElementId().getValue())); + } + + @Override + public void update(EntitlementPoolEntity entitlementPool) { + ZusammenElement entitlmentpoolElement = + buildEntitlementPoolElement(entitlementPool, Action.UPDATE); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(entitlementPool.getVendorLicenseModelId()); + zusammenAdaptor.saveElement(context, new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)), entitlmentpoolElement, + String.format("Update entitlement pool with id %s", entitlementPool.getId())); + } + + @Override + public EntitlementPoolEntity get(EntitlementPoolEntity entitlementPool) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(entitlementPool.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(entitlementPool.getVersion())); + + return zusammenAdaptor.getElementInfo(context, elementContext, new Id(entitlementPool.getId())) + .map(elementInfo -> mapElementInfoToEntitlementPool( + entitlementPool.getVendorLicenseModelId(), entitlementPool.getVersion(), elementInfo)) + .orElse(null); + } + + @Override + public void delete(EntitlementPoolEntity entitlementPool) { + SessionContext context = ZusammenUtil.createSessionContext(); + ZusammenElement zusammenElement = new ZusammenElement(); + zusammenElement.setAction(Action.DELETE); + zusammenElement.setElementId(new Id(entitlementPool.getId())); + + Id itemId = new Id(entitlementPool.getVendorLicenseModelId()); + ElementContext elementContext = + new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, + "delete entitlement pool. id:" + entitlementPool.getId() + "."); + } + + @Override + public Collection<EntitlementPoolEntity> list(EntitlementPoolEntity entitlementPool) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(entitlementPool.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(entitlementPool.getVersion())); + + return zusammenAdaptor + .listElementsByName(context, elementContext, null, StructureElement.EntitlementPools.name()) + .stream().map(elementInfo -> mapElementInfoToEntitlementPool( + entitlementPool.getVendorLicenseModelId(), entitlementPool.getVersion(), elementInfo)) + .collect(Collectors.toList()); + } + + @Override + public long count(EntitlementPoolEntity entitlementPool) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(entitlementPool.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(entitlementPool.getVersion())); + + return zusammenAdaptor + .listElementsByName(context, elementContext, null, StructureElement.EntitlementPools.name()) + .size(); + } + + @Override + public void removeReferencingFeatureGroup(EntitlementPoolEntity entitlementPool, + String referencingFeatureGroupId) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(entitlementPool.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = + zusammenAdaptor.getElementInfo(context, elementContext, new Id(entitlementPool.getId())); + + if (elementInfo.isPresent()) { + ZusammenElement zusammenElement = VlmZusammenUtil.getZusammenElement(elementInfo.get()); + zusammenElement.setAction(Action.UPDATE); + zusammenElement.setRelations(elementInfo.get().getRelations().stream() + .filter(relation -> !referencingFeatureGroupId + .equals(relation.getEdge2().getElementId().getValue())) + .collect(Collectors.toList())); + + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, + "remove referencing feature group"); + } + } + + @Override + public void addReferencingFeatureGroup(EntitlementPoolEntity entitlementPool, + String referencingFeatureGroupId) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(entitlementPool.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = + zusammenAdaptor.getElementInfo(context, elementContext, new Id(entitlementPool.getId())); + + if (elementInfo.isPresent()) { + ZusammenElement zusammenElement = VlmZusammenUtil.getZusammenElement(elementInfo.get()); + zusammenElement.setAction(Action.UPDATE); + if (zusammenElement.getRelations() == null) { + zusammenElement.setRelations(new ArrayList<>()); + } + zusammenElement.getRelations().add(VlmZusammenUtil + .createRelation(RelationType.EntitlmentPoolToReferencingFeatureGroup, + referencingFeatureGroupId)); + zusammenAdaptor + .saveElement(context, elementContext, zusammenElement, "add referencing feature group"); + } + } + + @Override + public void deleteAll(EntitlementPoolEntity entitlementPool) { + //not supported + } + + private ZusammenElement buildEntitlementPoolElement(EntitlementPoolEntity entitlementPool, + Action action) { + ZusammenElement entitlementPoolElement = new ZusammenElement(); + entitlementPoolElement.setAction(action); + if (entitlementPool.getId() != null) { + entitlementPoolElement.setElementId(new Id(entitlementPool.getId())); + } + Info info = new Info(); + info.setName(entitlementPool.getName()); + info.setDescription(entitlementPool.getDescription()); + info.addProperty("thresholdValue", entitlementPool.getThresholdValue()); + info.addProperty("threshold_unit", entitlementPool.getThresholdUnit()); + info.addProperty("entitlement_metric", entitlementPool.getEntitlementMetric()); + info.addProperty("increments", entitlementPool.getIncrements()); + info.addProperty("aggregation_func", entitlementPool.getAggregationFunction()); + info.addProperty("operational_scope", entitlementPool.getOperationalScope()); + info.addProperty("EntitlementTime", entitlementPool.getTime()); + info.addProperty("manufacturerReferenceNumber", + entitlementPool.getManufacturerReferenceNumber()); + entitlementPoolElement.setInfo(info); + + if (entitlementPool.getReferencingFeatureGroups() != null && + entitlementPool.getReferencingFeatureGroups().size() > 0) { + entitlementPoolElement.setRelations(entitlementPool.getReferencingFeatureGroups().stream() + .map(rel -> VlmZusammenUtil + .createRelation(RelationType.EntitlmentPoolToReferencingFeatureGroup, rel)) + .collect(Collectors.toList())); + } + return entitlementPoolElement; + } + + private EntitlementPoolEntity mapElementInfoToEntitlementPool(String vlmId, Version version, + ElementInfo elementInfo) { + EntitlementPoolEntity entitlmentPool = + new EntitlementPoolEntity(vlmId, version, elementInfo.getId().getValue()); + entitlmentPool.setName(elementInfo.getInfo().getName()); + entitlmentPool.setDescription(elementInfo.getInfo().getDescription()); + entitlmentPool + .setThresholdValue(toInteger(elementInfo.getInfo().getProperty("thresholdValue"))); + entitlmentPool.setThresholdUnit( + ThresholdUnit.valueOf(elementInfo.getInfo().getProperty("threshold_unit"))); + entitlmentPool.setEntitlementMetric( + getEntitlementMetricCoiceOrOther(elementInfo.getInfo().getProperty("entitlement_metric"))); + entitlmentPool.setIncrements(elementInfo.getInfo().getProperty("increments")); + entitlmentPool.setAggregationFunction( + getAggregationFuncCoiceOrOther(elementInfo.getInfo().getProperty("aggregation_func"))); + entitlmentPool.setOperationalScope(getOperationalScopeMultiChoiceOrOther( + elementInfo.getInfo().getProperty("operational_scope"))); + entitlmentPool.setTime( + getEntitlementTimeCoiceOrOther(elementInfo.getInfo().getProperty("EntitlementTime"))); + entitlmentPool.setManufacturerReferenceNumber( + elementInfo.getInfo().getProperty("manufacturerReferenceNumber")); + + if (elementInfo.getRelations() != null && elementInfo.getRelations().size() > 0) { + entitlmentPool + .setReferencingFeatureGroups(elementInfo.getRelations().stream().map(relation -> relation + .getEdge2().getElementId().getValue()).collect(Collectors.toSet())); + } + return entitlmentPool; + } + + private ChoiceOrOther<AggregationFunction> getAggregationFuncCoiceOrOther( + Map aggregationFunction) { + return new ChoiceOrOther<> + (AggregationFunction.valueOf((String) aggregationFunction.get("choice")), + (String) aggregationFunction.get("other")); + } + + private ChoiceOrOther<EntitlementMetric> getEntitlementMetricCoiceOrOther(Map entitlementMetric) { + return new ChoiceOrOther<>(EntitlementMetric.valueOf((String) entitlementMetric.get("choice") + ), (String) entitlementMetric.get("other")); + } + + private ChoiceOrOther<EntitlementTime> getEntitlementTimeCoiceOrOther(Map entitlementTime) { + return new ChoiceOrOther<>(EntitlementTime.valueOf((String) entitlementTime.get("choice")), + (String) entitlementTime.get("other")); + } + + private MultiChoiceOrOther<OperationalScope> getOperationalScopeMultiChoiceOrOther + (Map<String, Object> + operationalScope) { + Set<OperationalScope> choices = new HashSet<>(); + ((List<String>) operationalScope.get("choices")). + forEach(choice -> choices.add(OperationalScope.valueOf(choice))); + + return new MultiChoiceOrOther<>(choices, (String) operationalScope.get("other")); + } + + private Integer toInteger(Object val) { + if (val instanceof Double) { + return ((Double) val).intValue(); + } else if (val instanceof String) { + return new Integer((String) val); + } else if (val instanceof Integer) { + return (Integer) val; + } + throw new RuntimeException("invalid value for integer:" + val.getClass()); + } + +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/FeatureGroupDaoZusammenImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/FeatureGroupDaoZusammenImpl.java new file mode 100644 index 0000000000..ee6ffbfca2 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/FeatureGroupDaoZusammenImpl.java @@ -0,0 +1,326 @@ +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement; +import com.amdocs.zusammen.datatypes.Id; +import com.amdocs.zusammen.datatypes.SessionContext; +import com.amdocs.zusammen.datatypes.item.Action; +import com.amdocs.zusammen.datatypes.item.ElementContext; +import com.amdocs.zusammen.datatypes.item.Info; +import com.amdocs.zusammen.datatypes.item.Relation; +import org.openecomp.core.zusammen.api.ZusammenAdaptor; +import org.openecomp.core.zusammen.api.ZusammenUtil; +import org.openecomp.sdc.vendorlicense.dao.FeatureGroupDao; +import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity; +import org.openecomp.sdc.versioning.dao.types.Version; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Created by ayalaben on 3/27/2017. + */ +public class FeatureGroupDaoZusammenImpl implements FeatureGroupDao { + + private ZusammenAdaptor zusammenAdaptor; + + public FeatureGroupDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) { + this.zusammenAdaptor = zusammenAdaptor; + } + + @Override + public void registerVersioning(String versionableEntityType) { + //no need + } + + @Override + public void create(FeatureGroupEntity featureGroup) { + ZusammenElement featureGroupElement = + buildFeatureGroupElement(featureGroup, Action.CREATE); + + ZusammenElement featureGroupsElement = + VlmZusammenUtil.buildStructuralElement(StructureElement.FeatureGroups, null); + + featureGroupsElement.addSubElement(featureGroupElement); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + Optional<Element> savedElement = zusammenAdaptor.saveElement(context, new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)), + featureGroupsElement, "Create feature group"); + + savedElement.ifPresent(element -> featureGroup + .setId(element.getSubElements().iterator().next().getElementId().getValue())); + } + + @Override + public void update(FeatureGroupEntity featureGroup) { + ZusammenElement featureGroupElement = buildFeatureGroupElement(featureGroup, Action.UPDATE); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + zusammenAdaptor.saveElement(context, new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)), featureGroupElement, + String.format("Update feature group with id %s", featureGroup.getId())); + } + + @Override + public FeatureGroupEntity get(FeatureGroupEntity featureGroup) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(featureGroup.getVersion())); + + return zusammenAdaptor.getElementInfo(context, elementContext, new Id(featureGroup.getId())) + .map(elementInfo -> mapElementInfoToFeatureGroup( + featureGroup.getVendorLicenseModelId(), featureGroup.getVersion(), elementInfo)) + .orElse(null); + } + + @Override + public void delete(FeatureGroupEntity featureGroup) { + SessionContext context = ZusammenUtil.createSessionContext(); + ZusammenElement zusammenElement = new ZusammenElement(); + zusammenElement.setAction(Action.DELETE); + zusammenElement.setElementId(new Id(featureGroup.getId())); + + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, + "delete feature group. id:" + featureGroup.getId() + "."); + } + + @Override + public Collection<FeatureGroupEntity> list(FeatureGroupEntity featureGroup) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(featureGroup.getVersion())); + + return zusammenAdaptor + .listElementsByName(context, elementContext, null, StructureElement.FeatureGroups.name()) + .stream().map(elementInfo -> mapElementInfoToFeatureGroup( + featureGroup.getVendorLicenseModelId(), featureGroup.getVersion(), elementInfo)) + .collect(Collectors.toList()); + } + + @Override + public long count(FeatureGroupEntity featureGroup) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(featureGroup.getVersion())); + + return zusammenAdaptor + .listElementsByName(context, elementContext, null, StructureElement.FeatureGroups.name()) + .size(); + } + + @Override + public void removeEntitlementPool(FeatureGroupEntity featureGroup, String entitlementPoolId) { + removeRelationToContainedEntity(featureGroup, entitlementPoolId, "entitlement pool"); + } + + @Override + public void removeLicenseKeyGroup(FeatureGroupEntity featureGroup, String licenseKeyGroupId) { + removeRelationToContainedEntity(featureGroup, licenseKeyGroupId, "license Key Group"); + } + + private void removeRelationToContainedEntity(FeatureGroupEntity featureGroup, + String containedEntityId, + String containedEntityType) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = zusammenAdaptor.getElementInfo(context, + elementContext, new Id(featureGroup.getId())); + if (elementInfo.isPresent()) { + ZusammenElement zusammenElement = VlmZusammenUtil.getZusammenElement(elementInfo.get()); + zusammenElement.setAction(Action.UPDATE); + zusammenElement.setRelations(elementInfo.get().getRelations().stream() + .filter( + relation -> !containedEntityId.equals(relation.getEdge2().getElementId().getValue())) + .collect(Collectors.toList())); + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, + String.format("remove %s", containedEntityType)); + } + } + + @Override + public void updateFeatureGroup(FeatureGroupEntity + featureGroup, Set<String> addedEntitlementPools, + Set<String> removedEntitlementPools, + Set<String> addedLicenseKeyGroups, + Set<String> removedLicenseKeyGroups) { + ZusammenElement featureGroupElement = buildFeatureGroupElement(featureGroup, Action.UPDATE); + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = zusammenAdaptor.getElementInfo(context, + elementContext, new Id(featureGroup.getId())); + if (elementInfo.isPresent()) { + FeatureGroupEntity currentFeatureGroup = + mapElementInfoToFeatureGroup(featureGroup.getId(), featureGroup.getVersion(), + elementInfo.get()); + + currentFeatureGroup.getEntitlementPoolIds().removeAll(removedEntitlementPools); + currentFeatureGroup.getEntitlementPoolIds().addAll(addedEntitlementPools); + if (featureGroupElement.getRelations() == null) { + featureGroupElement.setRelations(new ArrayList<>()); + } + featureGroupElement.getRelations() + .addAll(currentFeatureGroup.getEntitlementPoolIds().stream() + .map(relation -> VlmZusammenUtil + .createRelation(RelationType.FeatureGroupToEntitlmentPool, relation)) + .collect(Collectors.toList())); + + currentFeatureGroup.getLicenseKeyGroupIds().removeAll(removedLicenseKeyGroups); + currentFeatureGroup.getLicenseKeyGroupIds().addAll(addedLicenseKeyGroups); + featureGroupElement.getRelations() + .addAll(currentFeatureGroup.getLicenseKeyGroupIds().stream() + .map(relation -> VlmZusammenUtil + .createRelation(RelationType.FeatureGroupToLicenseKeyGroup, relation)) + .collect(Collectors.toList())); + + zusammenAdaptor + .saveElement(context, elementContext, featureGroupElement, "update feature group"); + } + } + + @Override + public void deleteAll(FeatureGroupEntity featureGroup) { + //not supported + } + + + @Override + public void addReferencingLicenseAgreement(FeatureGroupEntity featureGroup, + String licenseAgreementId) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = + zusammenAdaptor.getElementInfo(context, elementContext, new Id(featureGroup.getId())); + if (elementInfo.isPresent()) { + ZusammenElement zusammenElement = VlmZusammenUtil.getZusammenElement(elementInfo.get()); + zusammenElement.setAction(Action.UPDATE); + zusammenElement.getRelations().add(VlmZusammenUtil + .createRelation(RelationType.FeatureGroupToReferencingLicenseAgreement, + licenseAgreementId)); + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, + "add referencing license agreement"); + } + } + + @Override + public void removeReferencingLicenseAgreement(FeatureGroupEntity featureGroup, + String licenseAgreementId) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(featureGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = + zusammenAdaptor.getElementInfo(context, elementContext, new Id(featureGroup.getId())); + if (elementInfo.isPresent()) { + ZusammenElement zusammenElement = VlmZusammenUtil.getZusammenElement(elementInfo.get()); + zusammenElement.setAction(Action.UPDATE); + zusammenElement.setRelations(elementInfo.get().getRelations().stream() + .filter( + relation -> !licenseAgreementId.equals(relation.getEdge2().getElementId().getValue())) + .collect(Collectors.toList())); + + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, + "remove referencing license agreement"); + } + } + + private ZusammenElement buildFeatureGroupElement(FeatureGroupEntity featureGroup, Action action) { + ZusammenElement featureGroupElement = new ZusammenElement(); + featureGroupElement.setAction(action); + if (featureGroup.getId() != null) { + featureGroupElement.setElementId(new Id(featureGroup.getId())); + } + Info info = new Info(); + info.setName(featureGroup.getName()); + info.setDescription(featureGroup.getDescription()); + info.addProperty("partNumber", featureGroup.getPartNumber()); + featureGroupElement.setInfo(info); + + featureGroupElement.setRelations(new ArrayList<>()); + + if (featureGroup.getEntitlementPoolIds() != null && + featureGroup.getEntitlementPoolIds().size() > 0) { + featureGroupElement.getRelations().addAll(featureGroup.getEntitlementPoolIds().stream() + .map(rel -> VlmZusammenUtil + .createRelation(RelationType.FeatureGroupToEntitlmentPool, rel)) + .collect(Collectors.toList())); + } + + if (featureGroup.getLicenseKeyGroupIds() != null && + featureGroup.getLicenseKeyGroupIds().size() > 0) { + featureGroupElement.getRelations() + .addAll(featureGroup.getLicenseKeyGroupIds().stream() + .map(rel -> VlmZusammenUtil + .createRelation(RelationType.FeatureGroupToLicenseKeyGroup, rel)) + .collect(Collectors.toList())); + } + + if (featureGroup.getReferencingLicenseAgreements() != null && + featureGroup.getReferencingLicenseAgreements().size() > 0) { + featureGroupElement.getRelations() + .addAll(featureGroup.getReferencingLicenseAgreements().stream() + .map(rel -> VlmZusammenUtil + .createRelation(RelationType.FeatureGroupToReferencingLicenseAgreement, + rel)) + .collect(Collectors.toList())); + } + return featureGroupElement; + } + + private FeatureGroupEntity mapElementInfoToFeatureGroup(String vlmId, Version version, + ElementInfo elementInfo) { + FeatureGroupEntity featureGroup = + new FeatureGroupEntity(vlmId, version, elementInfo.getId().getValue()); + featureGroup.setName(elementInfo.getInfo().getName()); + featureGroup.setDescription(elementInfo.getInfo().getDescription()); + featureGroup.setPartNumber(elementInfo.getInfo().getProperty("partNumber")); + + Set<String> entitlementPoolIds = new HashSet<>(); + Set<String> licenseAgreements = new HashSet<>(); + Set<String> licenseKeyGroupIds = new HashSet<>(); + + if (elementInfo.getRelations() != null) { + for (Relation relation : elementInfo.getRelations()) { + if (RelationType.FeatureGroupToEntitlmentPool.name().equals(relation.getType())) { + entitlementPoolIds.add(relation.getEdge2().getElementId().getValue()); + } else if (RelationType.FeatureGroupToLicenseKeyGroup.name().equals(relation.getType())) { + licenseKeyGroupIds.add(relation.getEdge2().getElementId().getValue()); + } else if (RelationType.FeatureGroupToReferencingLicenseAgreement.name() + .equals(relation.getType())) { + licenseAgreements.add(relation.getEdge2().getElementId().getValue()); + } + } + } + featureGroup.setEntitlementPoolIds(entitlementPoolIds); + featureGroup.setLicenseKeyGroupIds(licenseKeyGroupIds); + featureGroup.setReferencingLicenseAgreements(licenseAgreements); + + return featureGroup; + } +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseAgreementDaoZusammenImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseAgreementDaoZusammenImpl.java new file mode 100644 index 0000000000..55bbae9b33 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseAgreementDaoZusammenImpl.java @@ -0,0 +1,249 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement; +import com.amdocs.zusammen.datatypes.Id; +import com.amdocs.zusammen.datatypes.SessionContext; +import com.amdocs.zusammen.datatypes.item.Action; +import com.amdocs.zusammen.datatypes.item.ElementContext; +import com.amdocs.zusammen.datatypes.item.Info; +import org.openecomp.core.zusammen.api.ZusammenAdaptor; +import org.openecomp.core.zusammen.api.ZusammenUtil; +import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao; +import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther; +import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity; +import org.openecomp.sdc.vendorlicense.dao.types.LicenseTerm; +import org.openecomp.sdc.versioning.dao.types.Version; + +import java.util.Collection; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + + +public class LicenseAgreementDaoZusammenImpl implements LicenseAgreementDao { + + private ZusammenAdaptor zusammenAdaptor; + + public LicenseAgreementDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) { + this.zusammenAdaptor = zusammenAdaptor; + } + + @Override + public void registerVersioning(String versionableEntityType) { + //no need + } + + @Override + public void create(LicenseAgreementEntity licenseAgreement) { + ZusammenElement licenseAgreementElement = + buildLicenseAgreementElement(licenseAgreement, Action.CREATE); + ZusammenElement licenseAgreementsElement = + VlmZusammenUtil.buildStructuralElement(StructureElement.LicenseAgreements, null); + licenseAgreementsElement.addSubElement(licenseAgreementElement); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseAgreement.getVendorLicenseModelId()); + Optional<Element> savedElement = zusammenAdaptor.saveElement(context, new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)), + licenseAgreementsElement, "Create license agreement"); + savedElement.ifPresent(element -> licenseAgreement + .setId(element.getSubElements().iterator().next().getElementId().getValue())); + } + + @Override + public void update(LicenseAgreementEntity licenseAgreement) { + ZusammenElement licenseAgreementElement = + buildLicenseAgreementElement(licenseAgreement, Action.UPDATE); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseAgreement.getVendorLicenseModelId()); + zusammenAdaptor.saveElement(context, new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)), + licenseAgreementElement, + String.format("Update license agreement with id %s", licenseAgreement.getId())); + } + + @Override + public LicenseAgreementEntity get(LicenseAgreementEntity licenseAgreement) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseAgreement.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(licenseAgreement.getVersion())); + + return zusammenAdaptor.getElementInfo(context, elementContext, new Id(licenseAgreement.getId())) + .map(elementInfo -> mapElementInfoToLicenseAgreement( + licenseAgreement.getVendorLicenseModelId(), licenseAgreement.getVersion(), elementInfo)) + .orElse(null); + } + + @Override + public void delete(LicenseAgreementEntity licenseAgreement) { + SessionContext context = ZusammenUtil.createSessionContext(); + ZusammenElement zusammenElement = new ZusammenElement(); + zusammenElement.setAction(Action.DELETE); + zusammenElement.setElementId(new Id(licenseAgreement.getId())); + + Id itemId = new Id(licenseAgreement.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, + "delete license agreement. id:" + licenseAgreement.getId() + "."); + } + + + @Override + public Collection<LicenseAgreementEntity> list(LicenseAgreementEntity licenseAgreement) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseAgreement.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(licenseAgreement.getVersion())); + + return zusammenAdaptor + .listElementsByName(context, elementContext, null, + StructureElement.LicenseAgreements.name()) + .stream().map(elementInfo -> mapElementInfoToLicenseAgreement( + licenseAgreement.getVendorLicenseModelId(), licenseAgreement.getVersion(), elementInfo)) + .collect(Collectors.toList()); + } + + @Override + public long count(LicenseAgreementEntity licenseAgreement) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseAgreement.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(licenseAgreement.getVersion())); + + return zusammenAdaptor.listElementsByName(context, elementContext, null, + StructureElement.LicenseAgreements.name()) + .size(); + } + + @Override + public void deleteAll(LicenseAgreementEntity entity) { + //not supported + } + + @Override + public void removeFeatureGroup(LicenseAgreementEntity licenseAgreement, String featureGroupId) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseAgreement.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = zusammenAdaptor.getElementInfo(context, + elementContext, new Id(licenseAgreement.getId())); + if (elementInfo.isPresent()) { + ZusammenElement zusammenElement = VlmZusammenUtil.getZusammenElement(elementInfo.get()); + zusammenElement.setAction(Action.UPDATE); + zusammenElement.setRelations(elementInfo.get().getRelations().stream() + .filter(relation -> !featureGroupId.equals(relation.getEdge2().getElementId().getValue())) + .collect(Collectors.toList())); + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, "remove feature group"); + } + } + + @Override + public void updateColumnsAndDeltaFeatureGroupIds(LicenseAgreementEntity licenseAgreement, + Set<String> addedFeatureGroupIds, + Set<String> removedFeatureGroupIds) { + ZusammenElement licenseAgreementElement = + buildLicenseAgreementElement(licenseAgreement, Action.UPDATE); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseAgreement.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = + zusammenAdaptor.getElementInfo(context, elementContext, new Id(licenseAgreement.getId())); + if (elementInfo.isPresent()) { + LicenseAgreementEntity currentLicenseAgreement = + mapElementInfoToLicenseAgreement(licenseAgreement.getId(), licenseAgreement.getVersion(), + elementInfo.get()); + + currentLicenseAgreement.getFeatureGroupIds().removeAll(removedFeatureGroupIds); + currentLicenseAgreement.getFeatureGroupIds().addAll(addedFeatureGroupIds); + licenseAgreementElement.setRelations(currentLicenseAgreement.getFeatureGroupIds().stream() + .map(relation -> VlmZusammenUtil + .createRelation(RelationType.LicenseAgreementToFeatureGroup, relation)) + .collect(Collectors.toList())); + zusammenAdaptor.saveElement(context, elementContext, licenseAgreementElement, + "update license agreement"); + } + } + + private LicenseAgreementEntity mapElementInfoToLicenseAgreement(String vlmId, Version version, + ElementInfo elementInfo) { + LicenseAgreementEntity licenseAgreement = + new LicenseAgreementEntity(vlmId, version, elementInfo.getId().getValue()); + licenseAgreement.setName(elementInfo.getInfo().getName()); + licenseAgreement.setDescription(elementInfo.getInfo().getDescription()); + + licenseAgreement + .setLicenseTerm(getCoiceOrOther(elementInfo.getInfo().getProperty("licenseTerm"))); + licenseAgreement.setRequirementsAndConstrains( + elementInfo.getInfo().getProperty("requirementsAndConstrains")); + if (elementInfo.getRelations() != null && elementInfo.getRelations().size() > 0) { + licenseAgreement.setFeatureGroupIds(elementInfo.getRelations().stream() + .map(relation -> relation.getEdge2().getElementId().getValue()) + .collect(Collectors.toSet())); + } + return licenseAgreement; + } + + private ChoiceOrOther<LicenseTerm> getCoiceOrOther(Map licenseTerm) { + return new ChoiceOrOther(LicenseTerm.valueOf((String) licenseTerm.get("choice")), + (String) licenseTerm.get("other")); + } + + + private ZusammenElement buildLicenseAgreementElement(LicenseAgreementEntity licenseAgreement, + Action action) { + ZusammenElement licenseAgreementElement = new ZusammenElement(); + licenseAgreementElement.setAction(action); + if (licenseAgreement.getId() != null) { + licenseAgreementElement.setElementId(new Id(licenseAgreement.getId())); + } + Info info = new Info(); + info.setName(licenseAgreement.getName()); + info.setDescription(licenseAgreement.getDescription()); + info.addProperty("licenseTerm", licenseAgreement.getLicenseTerm()); + info.addProperty("requirementsAndConstrains", licenseAgreement.getRequirementsAndConstrains()); + licenseAgreementElement.setInfo(info); + + if (licenseAgreement.getFeatureGroupIds() != null && + licenseAgreement.getFeatureGroupIds().size() > 0) { + licenseAgreementElement.setRelations(licenseAgreement.getFeatureGroupIds().stream() + .map(rel -> VlmZusammenUtil + .createRelation(RelationType.LicenseAgreementToFeatureGroup, rel)) + .collect(Collectors.toList())); + } + return licenseAgreementElement; + } +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java new file mode 100644 index 0000000000..bf1899cb04 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java @@ -0,0 +1,243 @@ +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement; +import com.amdocs.zusammen.datatypes.Id; +import com.amdocs.zusammen.datatypes.SessionContext; +import com.amdocs.zusammen.datatypes.item.Action; +import com.amdocs.zusammen.datatypes.item.ElementContext; +import com.amdocs.zusammen.datatypes.item.Info; +import org.openecomp.core.zusammen.api.ZusammenAdaptor; +import org.openecomp.core.zusammen.api.ZusammenUtil; +import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao; +import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity; +import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyType; +import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther; +import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope; +import org.openecomp.sdc.versioning.dao.types.Version; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Created by ayalaben on 3/30/2017. + */ +public class LicenseKeyGroupZusammenDaoImpl implements LicenseKeyGroupDao { + private ZusammenAdaptor zusammenAdaptor; + + public LicenseKeyGroupZusammenDaoImpl(ZusammenAdaptor zusammenAdaptor) { + this.zusammenAdaptor = zusammenAdaptor; + } + + @Override + public void registerVersioning(String versionableEntityType) { + //no need + } + + @Override + public void create(LicenseKeyGroupEntity licenseKeyGroup) { + ZusammenElement licenseKeyGroupElement = + buildLicenseKeyGroupElement(licenseKeyGroup, Action.CREATE); + + ZusammenElement lkgsElement = + VlmZusammenUtil.buildStructuralElement(StructureElement.LicenseKeyGroups, null); + lkgsElement.addSubElement(licenseKeyGroupElement); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseKeyGroup.getVendorLicenseModelId()); + Optional<Element> savedElement = zusammenAdaptor.saveElement(context, new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)), + lkgsElement, "Create license Key Group"); + + savedElement.ifPresent(element -> licenseKeyGroup + .setId(element.getSubElements().iterator().next().getElementId().getValue())); + } + + @Override + public void update(LicenseKeyGroupEntity licenseKeyGroup) { + ZusammenElement locenseKeyGroupElement = + buildLicenseKeyGroupElement(licenseKeyGroup, Action.UPDATE); + + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseKeyGroup.getVendorLicenseModelId()); + zusammenAdaptor.saveElement(context, new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)), + locenseKeyGroupElement, + String.format("Update license key group with id %s", licenseKeyGroup.getId())); + } + + @Override + public LicenseKeyGroupEntity get(LicenseKeyGroupEntity licenseKeyGroup) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseKeyGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(licenseKeyGroup.getVersion())); + + return zusammenAdaptor.getElementInfo(context, elementContext, new Id(licenseKeyGroup.getId())) + .map(elementInfo -> mapElementInfoToLicenseKeyGroup( + licenseKeyGroup.getVendorLicenseModelId(), licenseKeyGroup.getVersion(), elementInfo)) + .orElse(null); + } + + @Override + public void delete(LicenseKeyGroupEntity licenseKeyGroup) { + SessionContext context = ZusammenUtil.createSessionContext(); + ZusammenElement zusammenElement = new ZusammenElement(); + zusammenElement.setAction(Action.DELETE); + zusammenElement.setElementId(new Id(licenseKeyGroup.getId())); + + Id itemId = new Id(licenseKeyGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, + "delete license key group. id:" + licenseKeyGroup.getId() + "."); + } + + @Override + public Collection<LicenseKeyGroupEntity> list(LicenseKeyGroupEntity licenseKeyGroup) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseKeyGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(licenseKeyGroup.getVersion())); + + return zusammenAdaptor + .listElementsByName(context, elementContext, null, StructureElement.LicenseKeyGroups.name()) + .stream().map(elementInfo -> mapElementInfoToLicenseKeyGroup( + licenseKeyGroup.getVendorLicenseModelId(), licenseKeyGroup.getVersion(), elementInfo)) + .collect(Collectors.toList()); + } + + @Override + public long count(LicenseKeyGroupEntity licenseKeyGroup) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseKeyGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor), + VlmZusammenUtil.getVersionTag(licenseKeyGroup.getVersion())); + + return zusammenAdaptor + .listElementsByName(context, elementContext, null, StructureElement.LicenseKeyGroups.name()) + .size(); + } + + @Override + public void deleteAll(LicenseKeyGroupEntity licenseKeyGroup) { + //not supported + } + + @Override + public void removeReferencingFeatureGroup(LicenseKeyGroupEntity licenseKeyGroup, + String featureGroupId) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseKeyGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = + zusammenAdaptor.getElementInfo(context, elementContext, new Id(licenseKeyGroup.getId())); + + if (elementInfo.isPresent()) { + ZusammenElement zusammenElement = VlmZusammenUtil.getZusammenElement(elementInfo.get()); + zusammenElement.setAction(Action.UPDATE); + zusammenElement.setRelations(elementInfo.get().getRelations().stream() + .filter(relation -> !featureGroupId + .equals(relation.getEdge2().getElementId().getValue())) + .collect(Collectors.toList())); + + zusammenAdaptor.saveElement(context, elementContext, zusammenElement, + "remove referencing feature group"); + } + } + + @Override + public void addReferencingFeatureGroup(LicenseKeyGroupEntity licenseKeyGroup, + String featureGroupId) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(licenseKeyGroup.getVendorLicenseModelId()); + ElementContext elementContext = new ElementContext(itemId, + VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor)); + + Optional<ElementInfo> elementInfo = + zusammenAdaptor.getElementInfo(context, elementContext, new Id(licenseKeyGroup.getId())); + + if (elementInfo.isPresent()) { + ZusammenElement zusammenElement = VlmZusammenUtil.getZusammenElement(elementInfo.get()); + zusammenElement.setAction(Action.UPDATE); + if (zusammenElement.getRelations() == null) { + zusammenElement.setRelations(new ArrayList<>()); + } + zusammenElement.getRelations().add(VlmZusammenUtil + .createRelation(RelationType.LicenseKeyGroupToReferencingFeatureGroup, + featureGroupId)); + zusammenAdaptor + .saveElement(context, elementContext, zusammenElement, "add referencing feature group"); + } + } + + private ZusammenElement buildLicenseKeyGroupElement(LicenseKeyGroupEntity licenseKeyGroup, + Action action) { + ZusammenElement lkgElement = new ZusammenElement(); + lkgElement.setAction(action); + if (licenseKeyGroup.getId() != null) { + lkgElement.setElementId(new Id(licenseKeyGroup.getId())); + } + Info info = new Info(); + info.setName(licenseKeyGroup.getName()); + info.setDescription(licenseKeyGroup.getDescription()); + info.addProperty("LicenseKeyType", licenseKeyGroup.getType()); + info.addProperty("operational_scope", licenseKeyGroup.getOperationalScope()); + lkgElement.setInfo(info); + + if (licenseKeyGroup.getReferencingFeatureGroups() != null && + licenseKeyGroup.getReferencingFeatureGroups().size() > 0) { + lkgElement.setRelations(licenseKeyGroup.getReferencingFeatureGroups().stream() + .map(rel -> VlmZusammenUtil + .createRelation(RelationType.LicenseKeyGroupToReferencingFeatureGroup, rel)) + .collect(Collectors.toList())); + } + return lkgElement; + } + + private LicenseKeyGroupEntity mapElementInfoToLicenseKeyGroup(String vlmId, Version version, + ElementInfo elementInfo) { + LicenseKeyGroupEntity licenseKeyGroup = + new LicenseKeyGroupEntity(vlmId, version, elementInfo.getId().getValue()); + licenseKeyGroup.setName(elementInfo.getInfo().getName()); + licenseKeyGroup.setDescription(elementInfo.getInfo().getDescription()); + + licenseKeyGroup + .setType(LicenseKeyType.valueOf(elementInfo.getInfo().getProperty("LicenseKeyType"))); + licenseKeyGroup.setOperationalScope(getOperationalScopeMultiChoiceOrOther( + elementInfo.getInfo().getProperty("operational_scope"))); + + if (elementInfo.getRelations() != null && elementInfo.getRelations().size() > 0) { + licenseKeyGroup + .setReferencingFeatureGroups(elementInfo.getRelations().stream().map(relation -> relation + .getEdge2().getElementId().getValue()).collect(Collectors.toSet())); + } + return licenseKeyGroup; + } + + private MultiChoiceOrOther<OperationalScope> getOperationalScopeMultiChoiceOrOther + (Map<String, Object> + operationalScope) { + + Set<OperationalScope> choices = new HashSet<>(); + ((List<String>) operationalScope.get("choices")). + forEach(choice -> choices.add(OperationalScope.valueOf(choice))); + + return new MultiChoiceOrOther<>(choices, (String) operationalScope.get("other")); + } + + +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/RelationType.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/RelationType.java new file mode 100644 index 0000000000..5ce0433f50 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/RelationType.java @@ -0,0 +1,10 @@ +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +public enum RelationType { + LicenseAgreementToFeatureGroup, + FeatureGroupToEntitlmentPool, + FeatureGroupToLicenseKeyGroup, + FeatureGroupToReferencingLicenseAgreement, + EntitlmentPoolToReferencingFeatureGroup, + LicenseKeyGroupToReferencingFeatureGroup +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/StructureElement.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/StructureElement.java new file mode 100644 index 0000000000..767fa52d44 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/StructureElement.java @@ -0,0 +1,9 @@ +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +public enum StructureElement { + General, + LicenseAgreements, + FeatureGroups, + EntitlementPools, + LicenseKeyGroups +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VendorLicenseModelDaoZusammenImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VendorLicenseModelDaoZusammenImpl.java new file mode 100644 index 0000000000..cd1ef0fbcf --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VendorLicenseModelDaoZusammenImpl.java @@ -0,0 +1,138 @@ +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement; +import com.amdocs.zusammen.datatypes.Id; +import com.amdocs.zusammen.datatypes.SessionContext; +import com.amdocs.zusammen.datatypes.item.Action; +import com.amdocs.zusammen.datatypes.item.ElementContext; +import com.amdocs.zusammen.datatypes.item.Info; +import com.amdocs.zusammen.datatypes.item.ItemVersion; +import org.openecomp.core.zusammen.api.ZusammenAdaptor; +import org.openecomp.core.zusammen.api.ZusammenUtil; +import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDao; +import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity; +import org.openecomp.sdc.versioning.VersioningManagerFactory; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.types.VersionableEntityMetadata; +import org.openecomp.sdc.versioning.types.VersionableEntityStoreType; + +import java.util.Collection; +import java.util.Date; +import java.util.stream.Collectors; + +public class VendorLicenseModelDaoZusammenImpl implements VendorLicenseModelDao { + + private ZusammenAdaptor zusammenAdaptor; + + public VendorLicenseModelDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) { + this.zusammenAdaptor = zusammenAdaptor; + } + + @Override + public void registerVersioning(String versionableEntityType) { + VersionableEntityMetadata metadata = + new VersionableEntityMetadata(VersionableEntityStoreType.Zusammen, "vlm", null, null); + + VersioningManagerFactory.getInstance().createInterface() + .register(versionableEntityType, metadata); + } + + @Override + public Collection<VendorLicenseModelEntity> list(VendorLicenseModelEntity entity) { + return zusammenAdaptor.listItems(ZusammenUtil.createSessionContext()).stream() + .map(item -> mapInfoToVlm( + item.getId().getValue(), null, item.getInfo(), + item.getModificationTime(), item.getCreationTime())) + .collect(Collectors.toList()); + } + + @Override + public void create(VendorLicenseModelEntity vendorLicenseModel) { + SessionContext context = ZusammenUtil.createSessionContext(); + + Id itemId = zusammenAdaptor.createItem(context, mapVlmToZusammenItemInfo(vendorLicenseModel)); + Id versionId = + zusammenAdaptor.createVersion(context, itemId, null, ZusammenUtil.createFirstVersionData()); + + ZusammenElement generalElement = mapVlmToZusammenElement(vendorLicenseModel, Action.CREATE); + zusammenAdaptor.saveElement(context, new ElementContext(itemId, versionId), + generalElement, "Create VSP General Info Element"); + + vendorLicenseModel.setId(itemId.getValue());//set id for caller + } + + @Override + public void update(VendorLicenseModelEntity vendorLicenseModel) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(vendorLicenseModel.getId()); + Id versionId = VlmZusammenUtil.getFirstVersionId(context, itemId, zusammenAdaptor); + + zusammenAdaptor.updateItem(context, itemId, mapVlmToZusammenItemInfo(vendorLicenseModel)); + + ZusammenElement generalElement = mapVlmToZusammenElement(vendorLicenseModel, Action.UPDATE); + zusammenAdaptor.saveElement(context, new ElementContext(itemId, versionId), + generalElement, "Update VSP General Info Element"); + } + + @Override + public VendorLicenseModelEntity get(VendorLicenseModelEntity vendorLicenseModel) { + SessionContext context = ZusammenUtil.createSessionContext(); + Id itemId = new Id(vendorLicenseModel.getId()); + ItemVersion itemVersion = VlmZusammenUtil.getFirstVersion(context, itemId, zusammenAdaptor); + ElementContext elementContext = new ElementContext(itemId, itemVersion.getId(), + VlmZusammenUtil.getVersionTag(vendorLicenseModel.getVersion())); + + return zusammenAdaptor + .getElementInfoByName(context, elementContext, null, StructureElement.General.name()) + .map(generalElementInfo -> mapInfoToVlm( + vendorLicenseModel.getId(), vendorLicenseModel.getVersion(), + generalElementInfo.getInfo(), + itemVersion.getModificationTime(), itemVersion.getCreationTime())) + .orElse(null); + } + + @Override + public void delete(VendorLicenseModelEntity entity) { + + } + + private Info mapVlmToZusammenItemInfo(VendorLicenseModelEntity vendorLicenseModel) { + Info info = new Info(); + info.setName(vendorLicenseModel.getVendorName()); + info.setDescription(vendorLicenseModel.getDescription()); + info.addProperty("type", "vlm"); + addVlmToInfo(info, vendorLicenseModel); + return info; + } + + private ZusammenElement mapVlmToZusammenElement(VendorLicenseModelEntity vendorLicenseModel, + Action action) { + ZusammenElement generalElement = + VlmZusammenUtil.buildStructuralElement(StructureElement.General, action); + addVlmToInfo(generalElement.getInfo(), vendorLicenseModel); + return generalElement; + } + + private void addVlmToInfo(Info info, VendorLicenseModelEntity vendorLicenseModel) { + info.addProperty(InfoPropertyName.name.name(), vendorLicenseModel.getVendorName()); + info.addProperty(InfoPropertyName.description.name(), vendorLicenseModel.getDescription()); + info.addProperty(InfoPropertyName.iconRef.name(), vendorLicenseModel.getIconRef()); + } + + private VendorLicenseModelEntity mapInfoToVlm(String vlmId, Version version, Info info, + Date modificationTime, Date creationTime) { + VendorLicenseModelEntity vendorLicenseModel = new VendorLicenseModelEntity(vlmId, version); + vendorLicenseModel.setVendorName(info.getProperty(InfoPropertyName.name.name())); + vendorLicenseModel.setDescription(info.getProperty(InfoPropertyName.description.name())); + vendorLicenseModel.setIconRef(info.getProperty(InfoPropertyName.iconRef.name())); + vendorLicenseModel.setWritetimeMicroSeconds( + modificationTime == null ? creationTime.getTime() : modificationTime.getTime()); + return vendorLicenseModel; + } + + private enum InfoPropertyName { + name, + description, + iconRef + } +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VlmZusammenUtil.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VlmZusammenUtil.java new file mode 100644 index 0000000000..b2802bee66 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/VlmZusammenUtil.java @@ -0,0 +1,68 @@ +package org.openecomp.sdc.vendorlicense.dao.impl.zusammen; + +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement; +import com.amdocs.zusammen.datatypes.Id; +import com.amdocs.zusammen.datatypes.SessionContext; +import com.amdocs.zusammen.datatypes.item.Action; +import com.amdocs.zusammen.datatypes.item.ItemVersion; +import com.amdocs.zusammen.datatypes.item.Relation; +import com.amdocs.zusammen.datatypes.item.RelationEdge; +import org.openecomp.core.zusammen.api.ZusammenAdaptor; +import org.openecomp.core.zusammen.api.ZusammenUtil; +import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.vendorlicense.errors.VendorLicenseModelNotFoundErrorBuilder; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdc.versioning.dao.types.VersionStatus; + +import java.util.Optional; +import java.util.stream.Collectors; + +public class VlmZusammenUtil { + + static ItemVersion getFirstVersion(SessionContext context, Id itemId, + ZusammenAdaptor zusammenAdaptor) { + Optional<ItemVersion> itemVersion = zusammenAdaptor.getFirstVersion(context, itemId); + + if (!itemVersion.isPresent()) { + throw new CoreException( + new VendorLicenseModelNotFoundErrorBuilder(itemId.getValue()).build()); + } + return itemVersion.get(); + } + + static Id getFirstVersionId(SessionContext context, Id itemId, ZusammenAdaptor zusammenAdaptor) { + return getFirstVersion(context, itemId, zusammenAdaptor).getId(); + } + + // TODO: 4/25/2017 remove upon working with more than one single version + static String getVersionTag(Version version) { + return version.getStatus() == VersionStatus.Locked + ? null + : version.toString(); + } + + static ZusammenElement buildStructuralElement(StructureElement structureElement, Action action) { + return ZusammenUtil.buildStructuralElement(structureElement.name(), action); + } + + static ZusammenElement getZusammenElement(ElementInfo elementInfo) { + ZusammenElement zusammenElement = new ZusammenElement(); + zusammenElement.setElementId(elementInfo.getId()); + zusammenElement.setInfo(elementInfo.getInfo()); + zusammenElement.setRelations(elementInfo.getRelations()); + zusammenElement.setSubElements(elementInfo.getSubElements().stream() + .map(VlmZusammenUtil::getZusammenElement) + .collect(Collectors.toList())); + return zusammenElement; + } + + public static Relation createRelation(RelationType type, String to) { + Relation relation = new Relation(); + relation.setType(type.name()); + RelationEdge edge2 = new RelationEdge(); + edge2.setElementId(new Id(to)); + relation.setEdge2(edge2); + return relation; + } +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java index 678a53583c..6f3573981c 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java @@ -24,6 +24,13 @@ import org.openecomp.core.util.UniqueValueUtil; import org.openecomp.core.utilities.CommonMethods; import org.openecomp.sdc.common.errors.CoreException; import org.openecomp.sdc.common.errors.ErrorCode; +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; +import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerErrorCode; +import org.openecomp.sdc.logging.types.LoggerErrorDescription; +import org.openecomp.sdc.logging.types.LoggerTragetServiceName; import org.openecomp.sdc.vendorlicense.VendorLicenseConstants; import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDao; import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDaoFactory; @@ -60,64 +67,61 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE; +import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_FG_MISSING_EP; +import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG; +import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_MISSING_LA; -public class VendorLicenseFacadeImpl - implements VendorLicenseFacade { - +public class VendorLicenseFacadeImpl implements VendorLicenseFacade { private static final VersioningManager versioningManager = VersioningManagerFactory.getInstance().createInterface(); - private static final VendorLicenseModelDao vendorLicenseModelDao = - VendorLicenseModelDaoFactory.getInstance().createInterface(); - private static final LicenseAgreementDao licenseAgreementDao = - LicenseAgreementDaoFactory.getInstance().createInterface(); + private static final VendorLicenseModelDao + vendorLicenseModelDao = VendorLicenseModelDaoFactory.getInstance().createInterface(); + private static final LicenseAgreementDao + licenseAgreementDao = LicenseAgreementDaoFactory.getInstance().createInterface(); private static final FeatureGroupDao featureGroupDao = FeatureGroupDaoFactory.getInstance().createInterface(); - private static final EntitlementPoolDao entitlementPoolDao = - EntitlementPoolDaoFactory.getInstance().createInterface(); - private static final LicenseKeyGroupDao licenseKeyGroupDao = - LicenseKeyGroupDaoFactory.getInstance().createInterface(); + private static final EntitlementPoolDao + entitlementPoolDao = EntitlementPoolDaoFactory.getInstance().createInterface(); + private static final LicenseKeyGroupDao + licenseKeyGroupDao = LicenseKeyGroupDaoFactory.getInstance().createInterface(); + private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); /** * Instantiates a new Vendor license facade. */ public VendorLicenseFacadeImpl() { - vendorLicenseModelDao - .registerVersioning(VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); - licenseAgreementDao - .registerVersioning(VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); - featureGroupDao - .registerVersioning(VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); - entitlementPoolDao - .registerVersioning(VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); - licenseKeyGroupDao - .registerVersioning(VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); + vendorLicenseModelDao.registerVersioning(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); + licenseAgreementDao.registerVersioning(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); + featureGroupDao.registerVersioning(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); + entitlementPoolDao.registerVersioning(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); + licenseKeyGroupDao.registerVersioning(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE); } @Override - public void checkin(String vendorLicenseModelId, String user) { + public Version checkin(String vendorLicenseModelId, String user) { Version newVersion = versioningManager - .checkin(VendorLicenseConstants - .VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, - vendorLicenseModelId, user, null); + .checkin(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user, null); updateVlmLastModificationTime(vendorLicenseModelId, newVersion); + return newVersion; } @Override - public void submit(String vendorLicenseModelId, String user) { + public Version submit(String vendorLicenseModelId, String user) { validateCompletedVendorLicenseModel(vendorLicenseModelId, user); Version newVersion = versioningManager - .submit(VendorLicenseConstants - .VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, - vendorLicenseModelId, user, null); + .submit(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user, null); updateVlmLastModificationTime(vendorLicenseModelId, newVersion); + return newVersion; } @Override public FeatureGroupEntity getFeatureGroup(FeatureGroupEntity featureGroup, String user) { Version version = VersioningUtil.resolveVersion(featureGroup.getVersion(), - getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Read, user)); + getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Read, + user), user); featureGroup.setVersion(version); return getFeatureGroup(featureGroup); } @@ -151,21 +155,6 @@ public class VendorLicenseFacadeImpl } @Override - public LicenseAgreementEntity getLicenseAgreement(String vlmId, Version version, - String licenseAgreementId, String user) { - return getLicenseAgreement(vlmId, licenseAgreementId, VersioningUtil - .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user))); - } - - private LicenseAgreementEntity getLicenseAgreement(String vlmId, String licenseAgreementId, - Version version) { - LicenseAgreementEntity input = new LicenseAgreementEntity(vlmId, version, licenseAgreementId); - LicenseAgreementEntity retrieved = licenseAgreementDao.get(input); - VersioningUtil.validateEntityExistence(retrieved, input, VendorLicenseModelEntity.ENTITY_TYPE); - return retrieved; - } - - @Override public LicenseAgreementModel getLicenseAgreementModel(String vlmId, Version version, String licenseAgreementId, String user) { LicenseAgreementEntity retrieved = @@ -185,10 +174,10 @@ public class VendorLicenseFacadeImpl @Override public EntitlementPoolEntity createEntitlementPool(EntitlementPoolEntity entitlementPool, String user) { - entitlementPool.setVersion( + entitlementPool.setVersion(VersioningUtil.resolveVersion(entitlementPool.getVersion(), getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write, - user).getActiveVersion()); - entitlementPool.setId(CommonMethods.nextUuId()); + user), user)); + //entitlementPool.setId(CommonMethods.nextUuId()); entitlementPool.setVersionUuId(CommonMethods.nextUuId()); UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.ENTITLEMENT_POOL_NAME, entitlementPool.getVendorLicenseModelId(), entitlementPool.getVersion().toString(), @@ -200,27 +189,10 @@ public class VendorLicenseFacadeImpl } @Override - public LicenseKeyGroupEntity createLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, - String user) { - licenseKeyGroup.setVersion( - getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, - user).getActiveVersion()); - licenseKeyGroup.setId(CommonMethods.nextUuId()); - licenseKeyGroup.setVersionUuId(CommonMethods.nextUuId()); - UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME, - licenseKeyGroup.getVendorLicenseModelId(), licenseKeyGroup.getVersion().toString(), - licenseKeyGroup.getName()); - licenseKeyGroupDao.create(licenseKeyGroup); - updateVlmLastModificationTime(licenseKeyGroup.getVendorLicenseModelId(), - licenseKeyGroup.getVersion()); - return licenseKeyGroup; - } - - @Override public void updateEntitlementPool(EntitlementPoolEntity entitlementPool, String user) { - entitlementPool.setVersion( + entitlementPool.setVersion(VersioningUtil.resolveVersion(entitlementPool.getVersion(), getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write, - user).getActiveVersion()); + user), user)); EntitlementPoolEntity retrieved = entitlementPoolDao.get(entitlementPool); VersioningUtil .validateEntityExistence(retrieved, entitlementPool, VendorLicenseModelEntity.ENTITY_TYPE); @@ -240,21 +212,23 @@ public class VendorLicenseFacadeImpl public Collection<LicenseKeyGroupEntity> listLicenseKeyGroups(String vlmId, Version version, String user) { return licenseKeyGroupDao.list(new LicenseKeyGroupEntity(vlmId, VersioningUtil - .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user)), null)); + .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user), + null)); } @Override public Collection<EntitlementPoolEntity> listEntitlementPools(String vlmId, Version version, String user) { return entitlementPoolDao.list(new EntitlementPoolEntity(vlmId, VersioningUtil - .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user)), null)); + .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user), + null)); } @Override public void updateLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user) { - licenseKeyGroup.setVersion( + licenseKeyGroup.setVersion(VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(), getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, - user).getActiveVersion()); + user), user)); LicenseKeyGroupEntity retrieved = licenseKeyGroupDao.get(licenseKeyGroup); licenseKeyGroup.setVersionUuId((CommonMethods.nextUuId())); VersioningUtil @@ -268,81 +242,93 @@ public class VendorLicenseFacadeImpl licenseKeyGroup.getVersion()); } - @Override - public VersionInfo getVersionInfo(String vendorLicenseModelId, VersionableEntityAction action, - String user) { - return versioningManager - .getEntityVersionInfo(VendorLicenseConstants - .VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, - vendorLicenseModelId, user, - action); + public LicenseKeyGroupEntity createLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, + String user) { + licenseKeyGroup.setVersion(VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(), + getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, + user), user)); + //licenseKeyGroup.setId(CommonMethods.nextUuId()); + licenseKeyGroup.setVersionUuId(CommonMethods.nextUuId()); + UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME, + licenseKeyGroup.getVendorLicenseModelId(), licenseKeyGroup.getVersion().toString(), + licenseKeyGroup.getName()); + licenseKeyGroupDao.create(licenseKeyGroup); + updateVlmLastModificationTime(licenseKeyGroup.getVendorLicenseModelId(), + licenseKeyGroup.getVersion()); + return licenseKeyGroup; } @Override public VersionedVendorLicenseModel getVendorLicenseModel(String vlmId, Version version, String user) { + mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId); + VersionInfo versionInfo = getVersionInfo(vlmId, VersionableEntityAction.Read, user); VendorLicenseModelEntity vendorLicenseModel = vendorLicenseModelDao.get( - new VendorLicenseModelEntity(vlmId, VersioningUtil.resolveVersion(version, versionInfo))); + new VendorLicenseModelEntity(vlmId, + VersioningUtil.resolveVersion(version, versionInfo, user))); if (vendorLicenseModel == null) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.GET_VLM, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.ENTITY_NOT_FOUND); throw new CoreException(new VendorLicenseModelNotFoundErrorBuilder(vlmId).build()); } + mdcDataDebugMessage.debugExitMessage("VLM id", vlmId); return new VersionedVendorLicenseModel(vendorLicenseModel, versionInfo); } @Override public VendorLicenseModelEntity createVendorLicenseModel( VendorLicenseModelEntity vendorLicenseModelEntity, String user) { - UniqueValueUtil.validateUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, - vendorLicenseModelEntity.getVendorName()); - vendorLicenseModelEntity.setId(CommonMethods.nextUuId()); - Version version = versioningManager - .create(VendorLicenseConstants - .VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, - vendorLicenseModelEntity.getId(), user); - vendorLicenseModelEntity.setVersion(version); + mdcDataDebugMessage.debugEntryMessage(null, null); - // vendorLicenseModelEntity.setLastModificationTime(new Date()); + UniqueValueUtil.validateUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, + vendorLicenseModelEntity.getVendorName()); + //vendorLicenseModelEntity.setId(CommonMethods.nextUuId()); vendorLicenseModelDao.create(vendorLicenseModelEntity); UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, vendorLicenseModelEntity.getVendorName()); + Version version = versioningManager + .create(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelEntity.getId(), user); + vendorLicenseModelEntity.setVersion(version); + + mdcDataDebugMessage.debugExitMessage(null, null); return vendorLicenseModelEntity; } @Override public LicenseAgreementEntity createLicenseAgreement(LicenseAgreementEntity licenseAgreement, String user) { - Version activeVersion = + Version version = VersioningUtil.resolveVersion(licenseAgreement.getVersion(), getVersionInfo(licenseAgreement.getVendorLicenseModelId(), VersionableEntityAction.Write, - user).getActiveVersion(); - licenseAgreement.setVersion(activeVersion); - licenseAgreement.setId(CommonMethods.nextUuId()); + user), user); + licenseAgreement.setVersion(version); + //licenseAgreement.setId(CommonMethods.nextUuId()); VersioningUtil.validateEntitiesExistence(licenseAgreement.getFeatureGroupIds(), - new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(), activeVersion, null), + new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(), version, null), featureGroupDao, VendorLicenseModelEntity.ENTITY_TYPE); + UniqueValueUtil.validateUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME, licenseAgreement.getVendorLicenseModelId(), licenseAgreement.getVersion().toString(), licenseAgreement.getName()); + licenseAgreementDao.create(licenseAgreement); + UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME, + licenseAgreement.getVendorLicenseModelId(), licenseAgreement.getVersion().toString(), + licenseAgreement.getName()); if (licenseAgreement.getFeatureGroupIds() != null) { for (String addedFgId : licenseAgreement.getFeatureGroupIds()) { featureGroupDao.addReferencingLicenseAgreement( - new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(), activeVersion, + new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(), version, addedFgId), licenseAgreement.getId()); } } - - licenseAgreementDao.create(licenseAgreement); - UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME, - licenseAgreement.getVendorLicenseModelId(), licenseAgreement.getVersion().toString(), - licenseAgreement.getName()); - updateVlmLastModificationTime(licenseAgreement.getVendorLicenseModelId(), licenseAgreement.getVersion()); @@ -351,49 +337,48 @@ public class VendorLicenseFacadeImpl @Override public FeatureGroupEntity createFeatureGroup(FeatureGroupEntity featureGroup, String user) { - Version activeVersion = - getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, user) - .getActiveVersion(); - featureGroup.setId(CommonMethods.nextUuId()); - featureGroup.setVersion(activeVersion); + Version version = VersioningUtil.resolveVersion(featureGroup.getVersion(), + getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, + user), user); + //featureGroup.setId(CommonMethods.nextUuId()); + featureGroup.setVersion(version); VersioningUtil.validateEntitiesExistence(featureGroup.getLicenseKeyGroupIds(), - new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(), activeVersion, null), + new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(), version, null), licenseKeyGroupDao, VendorLicenseModelEntity.ENTITY_TYPE); VersioningUtil.validateEntitiesExistence(featureGroup.getEntitlementPoolIds(), - new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), activeVersion, null), + new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), version, null), entitlementPoolDao, VendorLicenseModelEntity.ENTITY_TYPE); UniqueValueUtil.validateUniqueValue(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME, featureGroup.getVendorLicenseModelId(), featureGroup.getVersion().toString(), featureGroup.getName()); + featureGroupDao.create(featureGroup); + UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME, + featureGroup.getVendorLicenseModelId(), featureGroup.getVersion().toString(), + featureGroup.getName()); + if (featureGroup.getLicenseKeyGroupIds() != null) { for (String addedLkgId : featureGroup.getLicenseKeyGroupIds()) { licenseKeyGroupDao.addReferencingFeatureGroup( - new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(), activeVersion, - addedLkgId), featureGroup.getId()); + new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(), version, addedLkgId), + featureGroup.getId()); } } if (featureGroup.getEntitlementPoolIds() != null) { for (String addedEpId : featureGroup.getEntitlementPoolIds()) { entitlementPoolDao.addReferencingFeatureGroup( - new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), activeVersion, - addedEpId), featureGroup.getId()); + new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), version, addedEpId), + featureGroup.getId()); } } - featureGroupDao.create(featureGroup); - UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME, - featureGroup.getVendorLicenseModelId(), featureGroup.getVersion().toString(), - featureGroup.getName()); - updateVlmLastModificationTime(featureGroup.getVendorLicenseModelId(), featureGroup.getVersion()); return featureGroup; } - @Override public Collection<ErrorCode> validateLicensingData(String vlmId, Version version, String licenseAgreementId, @@ -404,16 +389,16 @@ public class VendorLicenseFacadeImpl || !versionInfo.getViewableVersions().contains(version)) { return Collections.singletonList(new RequestedVersionInvalidErrorBuilder().build()); } - } catch (CoreException coreException) { - return Collections.singletonList(coreException.code()); + } catch (CoreException exception) { + return Collections.singletonList(exception.code()); } List<ErrorCode> errorMessages = new ArrayList<>(); try { getLicenseAgreement(vlmId, licenseAgreementId, version); - } catch (CoreException coreException) { - errorMessages.add(coreException.code()); + } catch (CoreException exception) { + errorMessages.add(exception.code()); } for (String featureGroupId : featureGroupIds) { @@ -428,8 +413,8 @@ public class VendorLicenseFacadeImpl licenseAgreementId, version).build()); } - } catch (CoreException coreException) { - errorMessages.add(coreException.code()); + } catch (CoreException exception) { + errorMessages.add(exception.code()); } } @@ -437,42 +422,70 @@ public class VendorLicenseFacadeImpl } @Override + public VersionInfo getVersionInfo(String vendorLicenseModelId, VersionableEntityAction action, + String user) { + return versioningManager + .getEntityVersionInfo(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user, + action); + } + + @Override public void updateVlmLastModificationTime(String vendorLicenseModelId, Version version) { VendorLicenseModelEntity retrieved = vendorLicenseModelDao.get(new VendorLicenseModelEntity(vendorLicenseModelId, version)); vendorLicenseModelDao.update(retrieved); - // entity.setLastModificationTime(new Date()); - // - // vendorLicenseModelDao.updateLastModificationTime(entity); + } + + @Override + public LicenseAgreementEntity getLicenseAgreement(String vlmId, Version version, + String licenseAgreementId, String user) { + return getLicenseAgreement(vlmId, licenseAgreementId, VersioningUtil + .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user)); + } + + private LicenseAgreementEntity getLicenseAgreement(String vlmId, String licenseAgreementId, + Version version) { + LicenseAgreementEntity input = new LicenseAgreementEntity(vlmId, version, licenseAgreementId); + LicenseAgreementEntity retrieved = licenseAgreementDao.get(input); + VersioningUtil.validateEntityExistence(retrieved, input, VendorLicenseModelEntity.ENTITY_TYPE); + return retrieved; } private void validateCompletedVendorLicenseModel(String vendorLicenseModelId, String user) { - Version activeVersion = - getVersionInfo(vendorLicenseModelId, VersionableEntityAction.Read, user).getActiveVersion(); + Version version = VersioningUtil.resolveVersion(null, + getVersionInfo(vendorLicenseModelId, VersionableEntityAction.Read, user), user); Collection<LicenseAgreementEntity> licenseAgreements = licenseAgreementDao - .list(new LicenseAgreementEntity(vendorLicenseModelId, activeVersion, null)); + .list(new LicenseAgreementEntity(vendorLicenseModelId, version, null)); if (licenseAgreements == null || licenseAgreements.isEmpty()) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY); throw new CoreException( - new SubmitUncompletedLicenseModelErrorBuilder(vendorLicenseModelId).build()); + new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_MISSING_LA).build()); } for (LicenseAgreementEntity licenseAgreement : licenseAgreements) { - if (licenseAgreement.getFeatureGroupIds() == null - || licenseAgreement.getFeatureGroupIds().isEmpty()) { + if (licenseAgreement.getFeatureGroupIds() == null || licenseAgreement.getFeatureGroupIds().isEmpty()) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY); throw new CoreException( - new SubmitUncompletedLicenseModelErrorBuilder(vendorLicenseModelId).build()); + new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG).build()); } } - Collection<FeatureGroupEntity> featureGroupEntities = featureGroupDao - .list(new FeatureGroupEntity(vendorLicenseModelId, activeVersion, null)); + Collection<FeatureGroupEntity> featureGroupEntities = + featureGroupDao.list(new FeatureGroupEntity(vendorLicenseModelId, version, null)); for (FeatureGroupEntity featureGroupEntity : featureGroupEntities) { - if (featureGroupEntity.getEntitlementPoolIds() == null - || featureGroupEntity.getEntitlementPoolIds().isEmpty()) { + if (featureGroupEntity.getEntitlementPoolIds() == null || featureGroupEntity.getEntitlementPoolIds().isEmpty()) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY); throw new CoreException( - new SubmitUncompletedLicenseModelErrorBuilder(vendorLicenseModelId).build()); + new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_FG_MISSING_EP).build()); } } + } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/healing/impl/SimpleHealingServiceImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/healing/impl/SimpleHealingServiceImpl.java index 8f8f34e471..eeed3b069d 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/healing/impl/SimpleHealingServiceImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/healing/impl/SimpleHealingServiceImpl.java @@ -20,6 +20,14 @@ package org.openecomp.sdc.vendorlicense.healing.impl; +import org.openecomp.sdc.common.utils.CommonUtil; +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage; +import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerErrorCode; +import org.openecomp.sdc.logging.types.LoggerErrorDescription; +import org.openecomp.sdc.logging.types.LoggerTragetServiceName; import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDao; import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDaoFactory; import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao; @@ -29,11 +37,14 @@ import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity; import org.openecomp.sdc.vendorlicense.healing.HealingService; import org.openecomp.sdc.versioning.dao.types.VersionableEntity; +import java.util.UUID; + public class SimpleHealingServiceImpl implements HealingService { private static final EntitlementPoolDao entitlementPoolDao = EntitlementPoolDaoFactory.getInstance().createInterface(); private static final LicenseKeyGroupDao licenseKeyGroupDao = LicenseKeyGroupDaoFactory.getInstance().createInterface(); + private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage(); @Override public VersionableEntity heal(VersionableEntity toHeal, String user) { @@ -41,23 +52,30 @@ public class SimpleHealingServiceImpl implements HealingService { } private VersionableEntity handleMissingVersionId(VersionableEntity toHeal, String user) { - if (toHeal.getVersionUuId() != null) { + + + mdcDataDebugMessage.debugEntryMessage(null, null); + + if (toHeal != null && toHeal.getVersionUuId() != null) { return toHeal; } - if (toHeal instanceof EntitlementPoolEntity) { - toHeal.setVersionUuId(toHeal.getId()); + toHeal.setVersionUuId(UUID.randomUUID().toString()); entitlementPoolDao.update((EntitlementPoolEntity) toHeal); } else if (toHeal instanceof LicenseKeyGroupEntity) { - toHeal.setVersionUuId(toHeal.getId()); + toHeal.setVersionUuId(UUID.randomUUID().toString()); licenseKeyGroupDao.update((LicenseKeyGroupEntity) toHeal); } else { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.SELF_HEALING, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.UNSUPPORTED_OPERATION); throw new UnsupportedOperationException( "Unsupported operation for 1610 release/1607->1610 migration."); //todo maybe errorbuilder? } + + mdcDataDebugMessage.debugExitMessage(null, null); return toHeal; } - } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java b/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 2f11b75a98..580fc6c0e5 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java @@ -20,11 +20,10 @@ 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; } } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VnfLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VnfLicenseArtifact.java index 1f8607765a..f1da629960 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VnfLicenseArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/VnfLicenseArtifact.java @@ -36,11 +36,11 @@ import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinE import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinFeatureGroupModel; import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins.MixinLicenseKeyGroupEntityForVnfArtifact; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; import java.io.Writer; import java.util.ArrayList; import java.util.List; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamWriter; @JacksonXmlRootElement(localName = "vf-license-model", namespace = "http://xmlns.openecomp.org/asdc/license-model/1.0") diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/XmlArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/XmlArtifact.java index 78d5e22412..3a3fbd16a3 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/XmlArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/XmlArtifact.java @@ -22,6 +22,12 @@ package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.openecomp.sdc.common.errors.CoreException; +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerErrorCode; +import org.openecomp.sdc.logging.types.LoggerErrorDescription; +import org.openecomp.sdc.logging.types.LoggerTragetServiceName; import org.openecomp.sdc.vendorlicense.VendorLicenseConstants; import org.openecomp.sdc.vendorlicense.errors.JsonErrorBuilder; @@ -42,8 +48,11 @@ public abstract class XmlArtifact { try { xml = xmlMapper.writeValueAsString(this); - } catch (com.fasterxml.jackson.core.JsonProcessingException jsonProcessingException) { - throw new CoreException(new JsonErrorBuilder(jsonProcessingException.getMessage()).build()); + } catch (com.fasterxml.jackson.core.JsonProcessingException exception) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.WRITE_ARTIFACT_XML, ErrorLevel.ERROR.name(), + LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_JSON); + throw new CoreException(new JsonErrorBuilder(exception.getMessage()).build()); } diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java index 1458fa80a7..020316f019 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java @@ -22,13 +22,14 @@ package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction; import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther; import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric; import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime; import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope; +import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction; import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementMetricForXml; import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml; @@ -36,6 +37,7 @@ import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml; import java.util.Set; +@JsonPropertyOrder({ "entitlement-pool-invariant-uuid", "entitlement-pool-uuid" }) public abstract class MixinEntitlementPoolEntityForVendorLicenseArtifact { @JsonProperty(value = "threshold-value") abstract ThresholdForXml getThresholdForArtifact(); @@ -43,24 +45,26 @@ public abstract class MixinEntitlementPoolEntityForVendorLicenseArtifact { @JsonProperty(value = "entitlement-pool-uuid") abstract String getVersionUuId(); - @JsonProperty(value = "manufacturer-reference-number") - abstract String getManufacturerReferenceNumber(); - @JsonIgnore abstract Set<String> getReferencingFeatureGroups(); @JsonIgnore abstract String getFirstClassCitizenId(); - @JsonIgnore + @JsonProperty(value = "entitlement-pool-invariant-uuid") abstract String getId(); - @JsonIgnore - abstract String getVersion(); + @JsonProperty(value = "manufacturer-reference-number") + abstract String getManufacturerReferenceNumber(); + + @JsonProperty(value = "version") + abstract String getVersionForArtifact(); @JsonIgnore abstract String getVendorLicenseModelId(); + + @JsonIgnore abstract String getThresholdUnit(); @@ -79,7 +83,7 @@ public abstract class MixinEntitlementPoolEntityForVendorLicenseArtifact { @JsonIgnore abstract String getEntityType(); - @JacksonXmlProperty(isAttribute = false, localName = "value") + @JacksonXmlProperty(localName = "value") @JacksonXmlElementWrapper(localName = "operational-scope") abstract String getOperationalScopeForArtifact(); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java index c4f2b4d4bd..064d17b8fa 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java @@ -59,6 +59,9 @@ public abstract class MixinEntitlementPoolEntityForVnfArtifact { abstract String getVersion(); @JsonIgnore + abstract String getVersionForArtifact(); + + @JsonIgnore abstract String getVendorLicenseModelId(); @JsonIgnore diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java index 1e76a74f4c..f5eb5f0bad 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java @@ -38,7 +38,7 @@ public abstract class MixinFeatureGroupModel { @JacksonXmlElementWrapper(localName = "license-key-group-list") abstract Set<LicenseKeyGroupEntity> getLicenseKeyGroups(); - @JacksonXmlProperty(isAttribute = false, localName = "internal-part-number") + @JacksonXmlProperty(isAttribute = false, localName = "part-number") abstract String getEntityPartNumber(); @JacksonXmlProperty(isAttribute = false, localName = "feature-group-uuid") diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java index ed3083afe3..b5fb2f4549 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java @@ -37,8 +37,8 @@ public abstract class MixinLicenseKeyGroupEntityForVendorLicenseArtifact { @JsonIgnore abstract Set<String> getReferencingFeatureGroups(); - @JsonIgnore - abstract String getVersion(); + @JsonProperty(value = "version") + abstract String getVersionForArtifact(); @JsonIgnore abstract String getVendorLicenseModelId(); @@ -50,7 +50,7 @@ public abstract class MixinLicenseKeyGroupEntityForVendorLicenseArtifact { @JsonIgnore abstract String getFirstClassCitizenId(); - @JsonIgnore + @JsonProperty(value = "license-key-group-invariant-uuid") abstract String getId(); diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java index 6281c44830..ed171c6a4b 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java @@ -41,6 +41,9 @@ public abstract class MixinLicenseKeyGroupEntityForVnfArtifact { abstract String getVersion(); @JsonIgnore + abstract String getVersionForArtifact(); + + @JsonIgnore abstract String getVendorLicenseModelId(); @@ -54,7 +57,6 @@ public abstract class MixinLicenseKeyGroupEntityForVnfArtifact { abstract String getFirstClassCitizenId(); - @JsonIgnore abstract ChoiceOrOther<OperationalScope> getOperationalScope(); @@ -71,4 +73,3 @@ public abstract class MixinLicenseKeyGroupEntityForVnfArtifact { } - diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VendorLicenseArtifactsServiceUtils.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VendorLicenseArtifactsServiceUtils.java new file mode 100644 index 0000000000..f3e09766db --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VendorLicenseArtifactsServiceUtils.java @@ -0,0 +1,132 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util; + +import org.apache.commons.collections4.MultiValuedMap; +import org.apache.commons.collections4.multimap.ArrayListValuedHashMap; +import org.openecomp.sdc.vendorlicense.HealingServiceFactory; +import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity; +import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity; +import org.openecomp.sdc.vendorlicense.healing.HealingService; +import org.openecomp.sdc.vendorlicense.licenseartifacts.impl.VendorLicenseArtifactsServiceImpl; +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.HashSet; +import java.util.List; +import java.util.Set; + +/** + * @author katyr + * @since January 10, 2017 + */ + +public class VendorLicenseArtifactsServiceUtils { + private static final HealingService healingService = + HealingServiceFactory.getInstance().createInterface(); + + /** + * maps the entities by id + * + * @return a Map of id -> list of versionable entities with that id + */ + 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; + } + + /** + * For all entities with same id, only entities that differ from one another will be returned. + * If no change has occured, the entity with the earlier VLM version will be returned. + * If only one version of said entitity exists it will be returned + * @param versionableEntities + * @return a list of entities that has been changed + */ + public static List<VersionableEntity> filterChangedEntities( + Collection<? extends VersionableEntity> versionableEntities) { + MultiValuedMap<String, VersionableEntity> entitiesById = mapById( + versionableEntities); + MultiValuedMap<String, VersionableEntity> entitiesByVersionUuId = + new ArrayListValuedHashMap<>(); + 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); + } + } + + //for every list of eps which have the same uuid, get the one with the earliest vlm version. + for (String versionUid : entitiesByVersionUuId.keySet()) { + List<VersionableEntity> versionableEntitiesForUuid = + (List<VersionableEntity>) entitiesByVersionUuId.get(versionUid); + versionableEntitiesForUuid.sort(new VersionableEntitySortByVlmMajorVersion()); + changedOnly.add(versionableEntitiesForUuid.get(0)); + } + + return changedOnly; + } + + public static Set<LicenseKeyGroupEntity> healLkgs(String user, + Collection<? extends VersionableEntity> licenseKeyGroupEntities) { + Set<LicenseKeyGroupEntity> healed = new HashSet<>(); + for (VersionableEntity licenseKeyGroupEntity : licenseKeyGroupEntities) { + healed.add((LicenseKeyGroupEntity) VendorLicenseArtifactsServiceImpl.healingService + .heal(licenseKeyGroupEntity, user)); + } + + return healed; + } + + public static Set<EntitlementPoolEntity> healEPs(String user, + Collection<? extends VersionableEntity> entitlementPoolEntities) { + Set<EntitlementPoolEntity> healed = new HashSet<>(); + for (VersionableEntity entitlementPoolEntity : entitlementPoolEntities) { + healed.add((EntitlementPoolEntity) VendorLicenseArtifactsServiceImpl.healingService + .heal(entitlementPoolEntity, user)); + } + + return healed; + } + + public static List<Version> getFinalVersionsForVlm(String vlmId) { + VersionInfo versionInfo = + VendorLicenseArtifactsServiceImpl.vendorLicenseFacade + .getVersionInfo(vlmId, VersionableEntityAction.Read, ""); + return versionInfo.getFinalVersions(); + + } + + public static String getVendorName(String vendorLicenseModelId, String user) { + return VendorLicenseArtifactsServiceImpl.vendorLicenseFacade + .getVendorLicenseModel(vendorLicenseModelId, null, user) + .getVendorLicenseModel().getVendorName(); + } +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VersionableEntitySortByVlmMajorVersion.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VersionableEntitySortByVlmMajorVersion.java new file mode 100644 index 0000000000..1aee2dd97e --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/util/VersionableEntitySortByVlmMajorVersion.java @@ -0,0 +1,38 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.util; + +import org.openecomp.sdc.versioning.dao.types.VersionableEntity; + +import java.util.Comparator; + +/** + * @author katyr + * @since January 10, 2017 + */ + +public class VersionableEntitySortByVlmMajorVersion implements Comparator<VersionableEntity> { + @Override + public int compare(VersionableEntity o1, VersionableEntity o2) { + return Integer.compare(o1.getVersion().getMajor(), o2.getVersion().getMajor()); + + } +} diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml index b98a669207..80d6e04e4d 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml @@ -2,17 +2,17 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <name>openecomp-sdc-vendor-license-lib</name> + <artifactId>openecomp-sdc-vendor-license-lib</artifactId> + + <packaging>pom</packaging> <parent> <artifactId>openecomp-sdc-lib</artifactId> <groupId>org.openecomp.sdc</groupId> <version>1.1.0-SNAPSHOT</version> + <relativePath>..</relativePath> </parent> - <name>openecomp-sdc-vendor-license-lib</name> - <artifactId>openecomp-sdc-vendor-license-lib</artifactId> - - <packaging>pom</packaging> - <modules> <module>openecomp-sdc-vendor-license-api</module> <module>openecomp-sdc-vendor-license-core</module> @@ -21,4 +21,4 @@ <dependencies> </dependencies> -</project>
\ No newline at end of file +</project> diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup new file mode 100644 index 0000000000..0b6ebb62d8 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup @@ -0,0 +1,23 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <name>openecomp-sdc-vendor-license-lib</name> + <artifactId>openecomp-sdc-vendor-license-lib</artifactId> + + <packaging>pom</packaging> + <parent> + <artifactId>openecomp-sdc-lib</artifactId> + <groupId>org.openecomp.sdc</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + + <modules> + <module>openecomp-sdc-vendor-license-api</module> + <module>openecomp-sdc-vendor-license-core</module> + </modules> + + <dependencies> + + </dependencies> +</project>
\ No newline at end of file |