aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java')
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java105
1 files changed, 48 insertions, 57 deletions
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java
index 9fcc6e5b74..2d89661d26 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java
@@ -7,9 +7,9 @@
* 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.
@@ -17,9 +17,13 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.sdc.healing.healers;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Optional;
import org.openecomp.sdc.common.errors.SdcRuntimeException;
import org.openecomp.sdc.common.session.SessionContextProviderFactory;
import org.openecomp.sdc.healing.interfaces.Healer;
@@ -34,70 +38,57 @@ import org.openecomp.sdc.versioning.dao.ItemDaoFactory;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.types.Item;
-import java.util.*;
-
/**
* Created by ayalaben on 8/28/2017
*/
public class OwnerHealer implements Healer {
- private static final String HEALING_USER_SUFFIX = "_healer";
- private static final ItemPermissionsDao permissionsDao =
- ItemPermissionsDaoFactory.getInstance().createInterface();
- private static final ItemDao itemDao = ItemDaoFactory.getInstance().createInterface();
-
- private static final SubscribersDao subscribersDao = SubscribersDaoFactory.getInstance()
- .createInterface();
-
- @Override
- public boolean isHealingNeeded(String itemId, Version version) {
- return permissionsDao.listItemPermissions(itemId).stream().noneMatch(this::isOwnerPermission) ||
- isOwnerMissingOnItem(itemId);
- }
-
- public void heal(String itemId, Version version) {
- Collection<ItemPermissionsEntity> itemPermissions = permissionsDao.listItemPermissions(itemId);
- if (itemPermissions.stream().noneMatch(this::isOwnerPermission)) {
- String currentUserId =
- SessionContextProviderFactory.getInstance().createInterface().get().getUser().getUserId()
- .replace(HEALING_USER_SUFFIX, "");
+ private static final String HEALING_USER_SUFFIX = "_healer";
+ private static final ItemPermissionsDao permissionsDao = ItemPermissionsDaoFactory.getInstance().createInterface();
+ private static final ItemDao itemDao = ItemDaoFactory.getInstance().createInterface();
+ private static final SubscribersDao subscribersDao = SubscribersDaoFactory.getInstance().createInterface();
- permissionsDao.updateItemPermissions(itemId, PermissionTypes.Owner.name(),
- Collections.singleton(currentUserId), new HashSet<>());
-
- updateItemOwner(itemId, currentUserId);
-
- subscribersDao.subscribe(currentUserId, itemId);
+ @Override
+ public boolean isHealingNeeded(String itemId, Version version) {
+ return permissionsDao.listItemPermissions(itemId).stream().noneMatch(this::isOwnerPermission) || isOwnerMissingOnItem(itemId);
+ }
- } else if (isOwnerMissingOnItem(itemId)) {
- Optional<ItemPermissionsEntity> ownerOpt =
- itemPermissions.stream().filter(this::isOwnerPermission).findFirst();
- if (ownerOpt.isPresent()) {
- updateItemOwner(itemId, ownerOpt.get().getUserId());
- } else {
- throw new SdcRuntimeException("Unexpected error in Owner Healer. Item id: " + itemId);
- }
+ public void heal(String itemId, Version version) {
+ Collection<ItemPermissionsEntity> itemPermissions = permissionsDao.listItemPermissions(itemId);
+ if (itemPermissions.stream().noneMatch(this::isOwnerPermission)) {
+ String currentUserId = SessionContextProviderFactory.getInstance().createInterface().get().getUser().getUserId()
+ .replace(HEALING_USER_SUFFIX, "");
+ permissionsDao.updateItemPermissions(itemId, PermissionTypes.Owner.name(), Collections.singleton(currentUserId), new HashSet<>());
+ updateItemOwner(itemId, currentUserId);
+ subscribersDao.subscribe(currentUserId, itemId);
+ } else if (isOwnerMissingOnItem(itemId)) {
+ Optional<ItemPermissionsEntity> ownerOpt = itemPermissions.stream().filter(this::isOwnerPermission).findFirst();
+ if (ownerOpt.isPresent()) {
+ updateItemOwner(itemId, ownerOpt.get().getUserId());
+ } else {
+ throw new SdcRuntimeException("Unexpected error in Owner Healer. Item id: " + itemId);
+ }
+ }
}
- }
- private void updateItemOwner(String itemId, String userId) {
- Item item = new Item();
- item.setId(itemId);
- Item retrievedItem = itemDao.get(item);
- if (Objects.nonNull(retrievedItem)) {
- retrievedItem.setOwner(userId);
- itemDao.update(retrievedItem);
+ private void updateItemOwner(String itemId, String userId) {
+ Item item = new Item();
+ item.setId(itemId);
+ Item retrievedItem = itemDao.get(item);
+ if (Objects.nonNull(retrievedItem)) {
+ retrievedItem.setOwner(userId);
+ itemDao.update(retrievedItem);
+ }
}
- }
- private boolean isOwnerMissingOnItem(String itemId) {
- Item item = new Item();
- item.setId(itemId);
- Item retrievedItem = itemDao.get(item);
- return Objects.nonNull(retrievedItem) && Objects.isNull(retrievedItem.getOwner());
- }
+ private boolean isOwnerMissingOnItem(String itemId) {
+ Item item = new Item();
+ item.setId(itemId);
+ Item retrievedItem = itemDao.get(item);
+ return Objects.nonNull(retrievedItem) && Objects.isNull(retrievedItem.getOwner());
+ }
- private boolean isOwnerPermission(ItemPermissionsEntity permissionsEntity) {
- return permissionsEntity.getPermission().equals(PermissionTypes.Owner.name());
- }
+ private boolean isOwnerPermission(ItemPermissionsEntity permissionsEntity) {
+ return permissionsEntity.getPermission().equals(PermissionTypes.Owner.name());
+ }
}