summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db')
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java52
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java260
2 files changed, 264 insertions, 48 deletions
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java
index 6381b2efd2..9005bb84c3 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/ZusammenConnector.java
@@ -1,7 +1,9 @@
package org.openecomp.core.zusammen.db;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementConflict;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ItemVersionConflict;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
import com.amdocs.zusammen.commons.health.data.HealthInfo;
import com.amdocs.zusammen.datatypes.Id;
@@ -11,22 +13,31 @@ import com.amdocs.zusammen.datatypes.item.Info;
import com.amdocs.zusammen.datatypes.item.Item;
import com.amdocs.zusammen.datatypes.item.ItemVersion;
import com.amdocs.zusammen.datatypes.item.ItemVersionData;
+import com.amdocs.zusammen.datatypes.item.ItemVersionStatus;
+import com.amdocs.zusammen.datatypes.item.Resolution;
+import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
import com.amdocs.zusammen.datatypes.itemversion.Tag;
-import com.amdocs.zusammen.datatypes.response.Response;
import java.util.Collection;
-import java.util.Optional;
public interface ZusammenConnector {
+ Collection<HealthInfo> checkHealth(SessionContext sessionContext);
+
+ String getVersion(SessionContext sessionContext);
+
Collection<Item> listItems(SessionContext context);
+ Item getItem(SessionContext context, Id itemId);
+
Id createItem(SessionContext context, Info info);
void updateItem(SessionContext context, Id itemId, Info info);
- Collection<ItemVersion> listVersions(SessionContext context, Id itemId);
+ Collection<ItemVersion> listPublicVersions(SessionContext context, Id itemId);
+
+ ItemVersion getPublicVersion(SessionContext context, Id itemId, Id versionId);
Id createVersion(SessionContext context, Id itemId, Id baseVersionId,
ItemVersionData itemVersionData);
@@ -34,23 +45,42 @@ public interface ZusammenConnector {
void updateVersion(SessionContext context, Id itemId, Id versionId,
ItemVersionData itemVersionData);
+ ItemVersion getVersion(SessionContext context, Id itemId, Id versionId);
+
+ ItemVersionStatus getVersionStatus(SessionContext context, Id itemId, Id versionId);
+
void tagVersion(SessionContext context, Id itemId, Id versionId, Tag tag);
- void resetVersionHistory(SessionContext context, Id itemId, Id versionId, String changeRef);
+ void resetVersionRevision(SessionContext context, Id itemId, Id versionId, Id revisionId);
+
+ void revertVersionRevision(SessionContext context, Id itemId, Id versionId, Id revisionId);
+
+ ItemVersionRevisions listVersionRevisions(SessionContext context, Id itemId, Id versionId);
+
+ void publishVersion(SessionContext context, Id itemId, Id versionId, String message);
+
+ void syncVersion(SessionContext context, Id itemId, Id versionId);
+
+ void forceSyncVersion(SessionContext context, Id itemId, Id versionId);
+
+ ItemVersionConflict getVersionConflict(SessionContext context, Id itemId, Id versionId);
Collection<ElementInfo> listElements(SessionContext context, ElementContext elementContext,
Id parentElementId);
- Response<ElementInfo> getElementInfo(SessionContext context, ElementContext elementContext, Id
- elementId);
+ ElementInfo getElementInfo(SessionContext context, ElementContext elementContext, Id elementId);
- Response<Element> getElement(SessionContext context, ElementContext elementContext, Id elementId);
+ Element getElement(SessionContext context, ElementContext elementContext, Id elementId);
- Optional<Element> saveElement(SessionContext context, ElementContext elementContext,
- ZusammenElement element, String message);
+ ElementConflict getElementConflict(SessionContext context, ElementContext elementContext,
+ Id elementId);
- Collection<HealthInfo> checkHealth(SessionContext sessionContext);
+ Element saveElement(SessionContext context, ElementContext elementContext,
+ ZusammenElement element, String message);
- String getVersion(SessionContext sessionContext);
+ void resolveElementConflict(SessionContext context, ElementContext elementContext,
+ ZusammenElement element, Resolution resolution);
+
+ void resetVersionHistory(SessionContext context, Id itemId, Id versionId, String changeRef);
}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java
index deb5ffde35..1d387b939f 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/db/impl/ZusammenConnectorImpl.java
@@ -1,11 +1,14 @@
package org.openecomp.core.zusammen.db.impl;
+import com.amdocs.zusammen.adaptor.inbound.api.health.HealthAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.item.ElementAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.item.ItemAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.item.ItemVersionAdaptorFactory;
-import com.amdocs.zusammen.adaptor.inbound.api.health.HealthAdaptorFactory;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementConflict;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.ItemVersionConflict;
+import com.amdocs.zusammen.adaptor.inbound.api.types.item.MergeResult;
import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
import com.amdocs.zusammen.commons.health.data.HealthInfo;
import com.amdocs.zusammen.datatypes.Id;
@@ -16,6 +19,9 @@ import com.amdocs.zusammen.datatypes.item.Info;
import com.amdocs.zusammen.datatypes.item.Item;
import com.amdocs.zusammen.datatypes.item.ItemVersion;
import com.amdocs.zusammen.datatypes.item.ItemVersionData;
+import com.amdocs.zusammen.datatypes.item.ItemVersionStatus;
+import com.amdocs.zusammen.datatypes.item.Resolution;
+import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
import com.amdocs.zusammen.datatypes.itemversion.Tag;
import com.amdocs.zusammen.datatypes.response.Response;
import com.amdocs.zusammen.datatypes.response.ReturnCode;
@@ -28,14 +34,18 @@ import org.openecomp.sdc.logging.types.LoggerConstants;
import org.openecomp.sdc.logging.types.LoggerErrorCode;
import java.util.Collection;
-import java.util.Optional;
public class ZusammenConnectorImpl implements ZusammenConnector {
+ private static final String GET_ELEMENT_ERR_MSG =
+ "Failed to get element. Item Id: %s, version Id: %s, element Id: %s message: %s";
+ private static final String GET_ELEMENT_IN_REV_ERR_MSG =
+ "Failed to get element. Item Id: %s, version Id: %s, revision Id: %s, element Id: %s message: %s";
private ItemAdaptorFactory itemAdaptorFactory;
private ItemVersionAdaptorFactory versionAdaptorFactory;
private ElementAdaptorFactory elementAdaptorFactory;
private HealthAdaptorFactory healthAdaptorFactory;
+
public ZusammenConnectorImpl(
ItemAdaptorFactory itemAdaptorFactory,
ItemVersionAdaptorFactory versionAdaptorFactory,
@@ -69,14 +79,23 @@ public class ZusammenConnectorImpl implements ZusammenConnector {
}
@Override
+ public Item getItem(SessionContext context, Id itemId) {
+ Response<Item> response = itemAdaptorFactory.createInterface(context).get(context, itemId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(
+ "Failed to get Item. message:" + response.getReturnCode().toString());
+ }
+ return response.getValue();
+ }
+
+ @Override
public Id createItem(SessionContext context, Info info) {
Response<Id> response = itemAdaptorFactory.createInterface(context).create(context, info);
- if (response.isSuccessful()) {
- return response.getValue();
- } else {
+ if (!response.isSuccessful()) {
throw new RuntimeException(
- "failed to create Item. message:" + response.getReturnCode().toString());
+ "Failed to create Item. message:" + response.getReturnCode().toString());
}
+ return response.getValue();
}
@Override
@@ -91,18 +110,30 @@ public class ZusammenConnectorImpl implements ZusammenConnector {
}
@Override
- public Collection<ItemVersion> listVersions(SessionContext context, Id itemId) {
+ public Collection<ItemVersion> listPublicVersions(SessionContext context, Id itemId) {
Response<Collection<ItemVersion>> versions =
- versionAdaptorFactory.createInterface(context).list(context, Space.PRIVATE, itemId);
+ versionAdaptorFactory.createInterface(context).list(context, Space.PUBLIC, itemId);
if (!versions.isSuccessful()) {
logErrorMessageToMdc(ItemElementLoggerTargetServiceName.ITEM_VERSION_RETRIEVAL, versions
.getReturnCode());
- throw new RuntimeException(versions.getReturnCode().toString()); // TODO: 3/26/2017
+ throw new RuntimeException(versions.getReturnCode().toString());
}
return versions.getValue();
}
@Override
+ public ItemVersion getPublicVersion(SessionContext context, Id itemId, Id versionId) {
+ Response<ItemVersion> response = versionAdaptorFactory.createInterface(context)
+ .get(context, Space.PUBLIC, itemId, versionId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(
+ String.format("failed to get public Item Version. ItemId: %s, versionId: %s, message: %s",
+ itemId.getValue(), versionId.getValue(), response.getReturnCode().toString()));
+ }
+ return response.getValue();
+ }
+
+ @Override
public Id createVersion(SessionContext context, Id itemId, Id baseVersionId,
ItemVersionData itemVersionData) {
Response<Id> response = versionAdaptorFactory.createInterface(context).create(context, itemId,
@@ -110,10 +141,9 @@ public class ZusammenConnectorImpl implements ZusammenConnector {
if (response.isSuccessful()) {
return response.getValue();
} else {
- throw new RuntimeException("failed to create Item Version. ItemId:" + itemId + " based " +
- "on:" + baseVersionId +
- " message:" + response
- .getReturnCode().toString());
+ throw new RuntimeException(String.format(
+ "failed to create Item Version. ItemId: %s, base versionId: %s, message: %s",
+ itemId.getValue(), baseVersionId.getValue(), response.getReturnCode().toString()));
}
}
@@ -124,9 +154,33 @@ public class ZusammenConnectorImpl implements ZusammenConnector {
.update(context, itemId, versionId, itemVersionData);
if (!response.isSuccessful()) {
throw new RuntimeException(
- String.format("failed to create Item Version. ItemId: %s, versionId: %s, message: %s",
+ String.format("failed to update Item Version. ItemId: %s, versionId: %s, message: %s",
+ itemId.getValue(), versionId.getValue(), response.getReturnCode().toString()));
+ }
+ }
+
+ @Override
+ public ItemVersion getVersion(SessionContext context, Id itemId, Id versionId) {
+ Response<ItemVersion> response = versionAdaptorFactory.createInterface(context)
+ .get(context, Space.PRIVATE, itemId, versionId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(
+ String.format("failed to get Item Version. ItemId: %s, versionId: %s, message: %s",
itemId.getValue(), versionId.getValue(), response.getReturnCode().toString()));
}
+ return response.getValue();
+ }
+
+ @Override
+ public ItemVersionStatus getVersionStatus(SessionContext context, Id itemId, Id versionId) {
+ Response<ItemVersionStatus> response =
+ versionAdaptorFactory.createInterface(context).getStatus(context, itemId, versionId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(
+ String.format("failed to get Item Version status. ItemId: %s, versionId: %s, message: %s",
+ itemId.getValue(), versionId.getValue(), response.getReturnCode().toString()));
+ }
+ return response.getValue();
}
@Override
@@ -136,65 +190,197 @@ public class ZusammenConnectorImpl implements ZusammenConnector {
if (!response.isSuccessful()) {
throw new RuntimeException(String.format(
"failed to tag Item Version with tag %s. ItemId: %s, versionId: %s, message: %s",
- tag.getName(), itemId.getValue(), versionId.getValue(), response.getReturnCode()
- .getMessage()));
+ tag.getName(), itemId.getValue(), versionId.getValue(),
+ response.getReturnCode().toString()));
}
}
@Override
- public void resetVersionHistory(SessionContext context, Id itemId, Id versionId,
- String changeRef) {
+ public void resetVersionRevision(SessionContext context, Id itemId, Id versionId,
+ Id revisionId) {
Response<Void> response = versionAdaptorFactory.createInterface(context)
- .resetHistory(context, itemId, versionId, changeRef);
+ .resetRevision(context, itemId, versionId, revisionId);
if (!response.isSuccessful()) {
throw new RuntimeException(String.format(
- "failed to reset Item Version back to %s. ItemId: %s, versionId: %s, message: %s",
- changeRef, itemId.getValue(), versionId.getValue(),
+ "failed to reset Item Version back to revision: %s. ItemId: %s, versionId: %s, message:" +
+ " %s",
+ revisionId.getValue(), itemId.getValue(), versionId.getValue(),
response.getReturnCode().toString()));
}
}
@Override
+ public void revertVersionRevision(SessionContext context, Id itemId, Id versionId,
+ Id revisionId) {
+ Response<Void> response = versionAdaptorFactory.createInterface(context)
+ .revertRevision(context, itemId, versionId, revisionId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(String.format(
+ "failed to revert Item Version back to revision: %s. ItemId: %s, versionId: %s, " +
+ "message: %s",
+ revisionId.getValue(), itemId.getValue(), versionId.getValue(),
+ response.getReturnCode().toString()));
+ }
+ }
+
+ @Override
+ public ItemVersionRevisions listVersionRevisions(SessionContext context, Id itemId,
+ Id versionId) {
+ Response<ItemVersionRevisions> response =
+ versionAdaptorFactory.createInterface(context)
+ .listRevisions(context, itemId, versionId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(String.format(
+ "failed to list revisions of Item Version. ItemId: %s, versionId: %s, message: %s",
+ itemId.getValue(), versionId.getValue(), response.getReturnCode().toString()));
+ }
+ return response.getValue();
+ }
+
+
+ @Override
+ public void publishVersion(SessionContext context, Id itemId, Id versionId, String message) {
+ Response<Void> response =
+ versionAdaptorFactory.createInterface(context).publish(context, itemId, versionId, message);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(String.format(
+ "failed to publish item Version. ItemId: %s, versionId: %s, message: %s",
+ itemId.getValue(), versionId.getValue(), response.getReturnCode().toString()));
+ }
+ }
+
+ @Override
+ public void syncVersion(SessionContext context, Id itemId, Id versionId) {
+ Response<MergeResult> response =
+ versionAdaptorFactory.createInterface(context).sync(context, itemId, versionId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(String.format(
+ "failed to sync item Version. ItemId: %s, versionId: %s, message: %s",
+ itemId.getValue(), versionId.getValue(), response.getReturnCode().toString()));
+ }
+ }
+
+ @Override
+ public void forceSyncVersion(SessionContext context, Id itemId, Id versionId) {
+ Response<MergeResult> response =
+ versionAdaptorFactory.createInterface(context).forceSync(context, itemId, versionId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(String.format(
+ "failed to force sync item Version. ItemId: %s, versionId: %s, message: %s",
+ itemId.getValue(), versionId.getValue(), response.getReturnCode().toString()));
+ }
+ }
+
+ @Override
+ public ItemVersionConflict getVersionConflict(SessionContext context, Id itemId, Id versionId) {
+ Response<ItemVersionConflict> response =
+ versionAdaptorFactory.createInterface(context).getConflict(context, itemId, versionId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(String
+ .format("failed to get Item Version conflict. ItemId: %s, versionId: %s, message: %s",
+ itemId.getValue(), versionId.getValue(), response.getReturnCode().toString()));
+ }
+ return response.getValue();
+ }
+
+ @Override
public Collection<ElementInfo> listElements(SessionContext context,
ElementContext elementContext,
Id parentElementId) {
- Response<Collection<ElementInfo>> elementInfosResponse = elementAdaptorFactory
+ Response<Collection<ElementInfo>> response = elementAdaptorFactory
.createInterface(context).list(context, elementContext, parentElementId);
- if (elementInfosResponse.isSuccessful()) {
- return elementInfosResponse.getValue();
+ if (response.isSuccessful()) {
+ return response.getValue();
} else {
logErrorMessageToMdc(ItemElementLoggerTargetServiceName.ELEMENT_GET_BY_PROPERTY,
- elementInfosResponse.getReturnCode());
- throw new RuntimeException(elementInfosResponse.getReturnCode().toString());
+ response.getReturnCode());
+ throw new RuntimeException(response.getReturnCode().toString());
}
}
+
@Override
- public Response<ElementInfo> getElementInfo(SessionContext context, ElementContext elementContext,
- Id elementId) {
- return elementAdaptorFactory.createInterface(context)
- .getInfo(context, elementContext, elementId);
+ public ElementInfo getElementInfo(SessionContext context, ElementContext elementContext,
+ Id elementId) {
+ Response<ElementInfo> response =
+ elementAdaptorFactory.createInterface(context).getInfo(context, elementContext, elementId);
+ if (!response.isSuccessful()) {
+ throw buildGetElementException(elementContext, elementId,
+ response.getReturnCode().toString());
+
+ }
+ return response.getValue();
}
+ @Override
+ public Element getElement(SessionContext context, ElementContext elementContext,
+ Id elementId) {
+ Response<Element> response =
+ elementAdaptorFactory.createInterface(context).get(context, elementContext, elementId);
+ if (!response.isSuccessful()) {
+ throw buildGetElementException(elementContext, elementId,
+ response.getReturnCode().toString());
+ }
+ return response.getValue();
+ }
@Override
- public Response<Element> getElement(SessionContext context, ElementContext elementContext,
- Id elementId) {
- return elementAdaptorFactory.createInterface(context).get(context, elementContext, elementId);
+ public ElementConflict getElementConflict(SessionContext context, ElementContext elementContext,
+ Id elementId) {
+ Response<ElementConflict> response = elementAdaptorFactory.createInterface(context)
+ .getConflict(context, elementContext, elementId);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(String.format(
+ "Failed to get element conflict. Item Id: %s, version Id: %s, element Id: %s message: %s",
+ elementContext.getItemId().getValue(), elementContext.getVersionId().getValue(),
+ elementId.getValue(), response.getReturnCode().toString()));
+ }
+ return response.getValue();
}
@Override
- public Optional<Element> saveElement(SessionContext context, ElementContext elementContext,
- ZusammenElement element, String message) {
+ public Element saveElement(SessionContext context, ElementContext elementContext,
+ ZusammenElement element, String message) {
Response<Element> response = elementAdaptorFactory.createInterface(context)
.save(context, elementContext, element, message);
if (!response.isSuccessful()) {
throw new RuntimeException(String
- .format("Failed to save element %s. ItemId: %s, versionId: %s, message: %s",
+ .format("Failed to create element %s. ItemId: %s, versionId: %s, message: %s",
element.getElementId().getValue(), elementContext.getItemId().getValue(),
elementContext.getVersionId().getValue(), response.getReturnCode().toString()));
}
- return Optional.of(response.getValue());
+ return response.getValue();
+ }
+
+ @Override
+ public void resolveElementConflict(SessionContext context, ElementContext elementContext,
+ ZusammenElement element,
+ Resolution resolution) {
+ Response<Void> response = elementAdaptorFactory.createInterface(context)
+ .resolveConflict(context, elementContext, element, resolution);
+ if (!response.isSuccessful()) {
+ throw new RuntimeException(
+ "Failed to resolve conflict. message:" + response.getReturnCode().toString());
+ }
+ }
+
+ @Override
+ public void resetVersionHistory(SessionContext context, Id itemId, Id versionId,
+ String revision_id) {
+
+ }
+
+ private RuntimeException buildGetElementException(ElementContext elementContext, Id elementId,
+ String zusammenErrorMessage) {
+ if (elementContext.getRevisionId() == null) {
+ return new RuntimeException(String.format(GET_ELEMENT_ERR_MSG,
+ elementContext.getItemId().getValue(), elementContext.getVersionId().getValue(),
+ elementId.getValue(), zusammenErrorMessage));
+ }
+ return new RuntimeException(String.format(GET_ELEMENT_IN_REV_ERR_MSG,
+ elementContext.getItemId().getValue(), elementContext.getVersionId().getValue(),
+ elementContext.getRevisionId().getValue(),
+ elementId.getValue(), zusammenErrorMessage));
}
private void logErrorMessageToMdc(ItemElementLoggerTargetServiceName