aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java114
1 files changed, 72 insertions, 42 deletions
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
index 1725df7e93..eb9a9ee408 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ResetOldVersion.java
@@ -1,14 +1,33 @@
+/*
+ * Copyright © 2016-2017 European Support Limited
+ *
+ * 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.
+ */
+
package org.openecomp.core.tools.Commands;
import com.amdocs.zusammen.datatypes.Id;
import com.amdocs.zusammen.datatypes.SessionContext;
import com.amdocs.zusammen.plugin.statestore.cassandra.dao.impl.VersionCassandraDao;
import com.google.common.collect.Sets;
+import org.apache.commons.lang3.StringUtils;
import org.openecomp.core.tools.store.ElementHandler;
import org.openecomp.core.tools.store.VersionInfoCassandraLoader;
import org.openecomp.core.tools.store.VspGeneralLoader;
import org.openecomp.core.zusammen.impl.CassandraConnectionInitializer;
import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionInfoEntity;
@@ -18,6 +37,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import static org.openecomp.core.tools.store.VspGeneralLoader.buildKey;
@@ -25,107 +45,118 @@ import static org.openecomp.core.tools.store.VspGeneralLoader.buildKey;
public class ResetOldVersion {
- public static final String OLD_VERSION = "oldVersion";
-
- private static Map<String, List<String>> itemVersionMap = new HashMap<>();
- private static Map<String, List<String>> itemChangeRefMap = new HashMap<>();
+ private static final String OLD_VERSION = "oldVersion";
+ private static final Logger LOGGER = LoggerFactory.getLogger(ResetOldVersion.class);
+ private static final String CASSANDRA_DOX_KEYSTORE = "cassandra.dox.keystore";
private static int count = 0;
- public static void reset(SessionContext context, String oldVersion, String emptyOldVersion) {
+ private ResetOldVersion() {
+ }
+ public static void reset(SessionContext context, String oldVersion, String emptyOldVersion) {
+ Map<String, List<String>> itemVersionMap = new HashMap<>();
+ Map<String, List<String>> itemChangeRefMap = new HashMap<>();
CassandraConnectionInitializer.setCassandraConnectionPropertiesToSystem();
- loadItemVersionInfo(context);
+ loadItemVersionInfo(context, itemChangeRefMap, itemVersionMap);
Map<String, ElementEntity> generalElementMap =
- VspGeneralLoader.load(context,
- itemVersionMap, itemChangeRefMap);
+ VspGeneralLoader.load(context, itemVersionMap, itemChangeRefMap);
generalElementMap.values().forEach(elementEntity -> updateOldVersionFlag(elementEntity,
- oldVersion, Boolean.TRUE.toString().equals(emptyOldVersion)));
+ oldVersion, Boolean.TRUE.toString().equals(emptyOldVersion)));
itemVersionMap.entrySet().forEach(entry -> updateElements(context, generalElementMap, entry));
itemChangeRefMap.entrySet().forEach(entry -> updateElements(context, generalElementMap, entry));
-
- System.out.println("number of element updated:" + count);
-
+ LOGGER.info("number of element updated:" + count);
}
private static void updateElements(SessionContext context, Map<String,
- ElementEntity> generalElementMap, Map.Entry<String, List<String>> entry) {
+ ElementEntity> generalElementMap, Map.Entry<String, List<String>> entry) {
- entry.getValue().stream().filter
- (changeRef -> generalElementMap
- .containsKey(buildKey(context, entry, changeRef))).
- forEach(changeref -> ElementHandler.update(context, entry.getKey(), changeref, changeref,
- generalElementMap.get(buildKey(context, entry, changeref))));
+ entry.getValue().stream()
+ .filter(changeRef -> generalElementMap.containsKey(buildKey(context, entry, changeRef)))
+ .forEach(changeref -> ElementHandler.update(context, entry.getKey(), changeref, changeref,
+ generalElementMap.get(buildKey(context, entry, changeref))));
}
private static void updateOldVersionFlag(ElementEntity elementEntity, String oldVersion,
boolean emptyOldVersion) {
- if (!emptyOldVersion) {
- elementEntity.getInfo().addProperty(OLD_VERSION, oldVersion);
- count++;
- } else if (elementEntity.getInfo().getProperty(OLD_VERSION) == null
- || "".equals(elementEntity.getInfo().getProperty(OLD_VERSION))) {
+ if (!emptyOldVersion
+ || StringUtils.isBlank(elementEntity.getInfo().getProperty(OLD_VERSION))) {
elementEntity.getInfo().addProperty(OLD_VERSION, oldVersion);
count++;
}
}
- private static void loadItemVersionInfo(SessionContext context) {
+ private static void loadItemVersionInfo(SessionContext context,
+ Map<String, List<String>> itemChangeRefMap,
+ Map<String, List<String>> itemVersionMap) {
List<String> items = new ArrayList<>();
- System.setProperty("cassandra.dox.keystore", "dox");
+ System.setProperty(CASSANDRA_DOX_KEYSTORE, "dox");
VersionInfoCassandraLoader versionInfoCassandraLoader = new VersionInfoCassandraLoader();
Collection<VersionInfoEntity> versions = versionInfoCassandraLoader.list();
versions.stream().filter(versionInfoEntity -> versionInfoEntity.getEntityType()
- .equals(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE)).forEach
- (versionInfoEntity -> {
- handleVersionInfoEntity(items, versionInfoEntity);
- });
+ .equals(VendorSoftwareProductConstants.VENDOR_SOFTWARE_PRODUCT_VERSIONABLE_TYPE))
+ .forEach(versionInfoEntity -> handleVersionInfoEntity(items, versionInfoEntity,
+ itemChangeRefMap));
- System.setProperty("cassandra.dox.keystore", "zusammen_dox");
+ System.setProperty(CASSANDRA_DOX_KEYSTORE, "zusammen_dox");
VersionCassandraDao versionCassandraDao = new VersionCassandraDao();
items.forEach(itemId -> versionCassandraDao.list(context, context.getUser().getUserName(),
- new Id(itemId)).forEach(itemVersion -> addItemVersion(itemId, itemVersion.getId())));
+ new Id(itemId)).forEach(itemVersion -> addItemVersion(itemId, itemVersion.getId(),
+ itemVersionMap)));
}
- private static void handleVersionInfoEntity(List<String> items, VersionInfoEntity versionInfoEntity) {
+ private static void handleVersionInfoEntity(List<String> items,
+ VersionInfoEntity versionInfoEntity,
+ Map<String, List<String>> itemChangeRefMap) {
items.add(versionInfoEntity.getEntityId());
Set<Version> viewableVersions;
if (versionInfoEntity.getViewableVersions() != null
- && !versionInfoEntity.getViewableVersions().isEmpty()) {
+ && !versionInfoEntity.getViewableVersions().isEmpty()) {
viewableVersions = versionInfoEntity.getViewableVersions();
} else {
viewableVersions = Sets.newHashSet(versionInfoEntity.getActiveVersion());
}
- addItemChangeRef(versionInfoEntity.getEntityId(), maxChangeRef(viewableVersions));
+ addItemChangeRef(versionInfoEntity.getEntityId(), maxChangeRef(viewableVersions),
+ itemChangeRefMap);
}
private static Id maxChangeRef(Set<Version> viewableVersions) {
+ Optional<Version> maxVersion = viewableVersions.stream()
+ .max(ResetOldVersion::evaluateMaxVersion);
- return new Id(viewableVersions.stream().max((o1, o2) -> o1.getMajor() > o2.getMajor()
- ?1:o1.getMajor
- () == o2.getMajor() ? (o1.getMinor() > o2.getMinor() ? 1: o1.getMinor() == o2.getMinor()
- ? 0 : -1) : -1).get().toString());
+ return maxVersion.map(version -> new Id(version.toString())).orElse(null);
+ }
+ private static int evaluateMaxVersion(Version version1, Version version2) {
+ if (version1.getMajor() > version2.getMajor()) {
+ return 1;
+ } else if (version1.getMajor() == version2.getMajor()) {
+ return Integer.compare(version1.getMinor(), version2.getMinor());
+ } else {
+ return -1;
+ }
}
- private static void addItemChangeRef(String itemId, Id changeRef) {
+ private static void addItemChangeRef(String itemId, Id changeRef,
+ Map<String, List<String>> itemChangeRefMap) {
addItemVersion(itemChangeRefMap, itemId, changeRef);
}
- private static void addItemVersion(String itemId, Id versionId) {
+ private static void addItemVersion(String itemId, Id versionId,
+ Map<String, List<String>> itemVersionMap) {
addItemVersion(itemVersionMap, itemId, versionId);
}
@@ -137,5 +168,4 @@ public class ResetOldVersion {
itemVersions.get(itemId).add(id.getValue());
}
-}
-
+} \ No newline at end of file