summaryrefslogtreecommitdiffstats
path: root/controlloop/common/guard/src/main/java
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2019-09-27 11:22:47 -0400
committerJim Hahn <jrh3@att.com>2019-10-22 16:06:10 -0400
commitac5c19ddbed1ff5905d16a6359ee23b4888c717a (patch)
treeacd501248ae73dcd90b2318695acc535a9bb9dcc /controlloop/common/guard/src/main/java
parent636a1b2fcafa5249cf2bf380dfb6e20f6fe98691 (diff)
Modify drools-applications to use new Lock API
Modified code to use new Lock API. Also deleted TargetLock and PolicyGuard, as they are no longer needed. Issue-ID: POLICY-2113 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: I5bc9b7732f9cfc6056789b2902d9f6f838b560be
Diffstat (limited to 'controlloop/common/guard/src/main/java')
-rw-r--r--controlloop/common/guard/src/main/java/org/onap/policy/guard/LockCallback.java29
-rw-r--r--controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuard.java241
-rw-r--r--controlloop/common/guard/src/main/java/org/onap/policy/guard/TargetLock.java37
-rw-r--r--controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/PnfTargetLock.java47
-rw-r--r--controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/TargetLockImpl.java86
-rw-r--r--controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VmTargetLock.java47
-rw-r--r--controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VnfTargetLock.java47
7 files changed, 0 insertions, 534 deletions
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/LockCallback.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/LockCallback.java
deleted file mode 100644
index 2b33e0e57..000000000
--- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/LockCallback.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * guard
- * ================================================================================
- * Copyright (C) 2017-2018 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.onap.policy.guard;
-
-public interface LockCallback {
-
- public boolean isActive();
-
- public boolean releaseLock();
-
-}
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuard.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuard.java
deleted file mode 100644
index 90e6e8753..000000000
--- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuard.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * guard
- * ================================================================================
- * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2019 Tech Mahindra
- * ================================================================================
- * 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.onap.policy.guard;
-
-import java.util.UUID;
-import org.onap.policy.controlloop.policy.TargetType;
-import org.onap.policy.drools.core.lock.PolicyResourceLockManager;
-import org.onap.policy.guard.impl.PnfTargetLock;
-import org.onap.policy.guard.impl.VmTargetLock;
-import org.onap.policy.guard.impl.VnfTargetLock;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class PolicyGuard {
-
- private static final Logger logger = LoggerFactory.getLogger(PolicyGuard.class);
-
- /**
- * Factory to access various objects. Can be changed for junit tests.
- */
- private static Factory factory = new Factory();
-
- public static class LockResult<A, B> {
- private A parameterA;
- private B parameterB;
-
- public LockResult(A parameterA, B parameterB) {
- this.parameterA = parameterA;
- this.parameterB = parameterB;
- }
-
- public A getA() {
- return parameterA;
- }
-
- public B getB() {
- return parameterB;
- }
-
- public static <A, B> LockResult<A, B> createLockResult(A parameterA, B parameterB) {
- return new LockResult<>(parameterA, parameterB);
- }
- }
-
- private PolicyGuard() {
- // Cannot instantiate this static class
- }
-
- /**
- * Get the factory.
- *
- * @return the factory used to access various objects
- */
- protected static Factory getFactory() {
- return factory;
- }
-
- /**
- * Sets the factory to be used by junit tests.
- * @param factory factory
- */
- protected static void setFactory(Factory factory) {
- PolicyGuard.factory = factory;
- }
-
- /**
- * Create a lock.
- *
- * @param targetType the target type
- * @param targetInstance the target instance
- * @param requestId the request Id
- * @return the TargetLock
- * @throws IllegalArgumentException if an argument is null
- */
- public static TargetLock createTargetLock(TargetType targetType, String targetInstance,
- UUID requestId, LockCallback callback) {
- switch (targetType) {
- case PNF:
- //
- // Create the Lock object
- //
- return new PnfTargetLock(targetType, targetInstance, requestId, callback);
- case VM:
- //
- // Create the Lock object
- //
- return new VmTargetLock(targetType, targetInstance, requestId, callback);
- case VNF:
- //
- // Create the Lock object
- //
- return new VnfTargetLock(targetType, targetInstance, requestId, callback);
-
- case VFMODULE:
- //
- // Create the Lock object
- //
- return new VnfTargetLock(targetType, targetInstance, requestId, callback);
- default:
- logger.error("invalid target type {} for lock on {}", targetType, targetInstance);
- return null;
- }
- }
-
- /**
- * Lock a target.
- *
- * @param targetType the target type
- * @param targetInstance the target instance
- * @param requestId the request Id
- * @param callback the LockCallback
- * @param holdSec maximum number of seconds to hold the lock
- * @return the LockResult
- * @throws IllegalArgumentException if an argument is null
- */
- public static LockResult<GuardResult, TargetLock> lockTarget(TargetType targetType, String targetInstance,
- UUID requestId, LockCallback callback, int holdSec) {
- String owner = makeOwner(targetType, requestId);
- boolean result = factory.getManager().lock(targetInstance, owner, holdSec);
- if (!result) {
- return LockResult.createLockResult(GuardResult.LOCK_DENIED, null);
- }
-
- TargetLock lock = createTargetLock(targetType, targetInstance, requestId, callback);
- if (lock == null) {
- //
- // Bad lock type: unlock and return exception result
- //
- factory.getManager().unlock(targetInstance, owner);
- return LockResult.createLockResult(GuardResult.LOCK_EXCEPTION, null);
- } else {
- //
- // Return result
- //
- logger.debug("Locked {}", lock);
- return LockResult.createLockResult(GuardResult.LOCK_ACQUIRED, lock);
- }
- }
-
- /**
- * Extends a lock on a target.
- * @param lock current lock
- * @param holdSec maximum number of seconds to hold the lock
- * @return the result: acquired or denied
- */
- public static GuardResult lockTarget(TargetLock lock, int holdSec) {
- String owner = makeOwner(lock.getTargetType(), lock.getRequestId());
-
- boolean result = factory.getManager().refresh(lock.getTargetInstance(), owner, holdSec);
-
- logger.debug("Lock {} extend {}", lock, result);
- return (result ? GuardResult.LOCK_ACQUIRED : GuardResult.LOCK_DENIED);
- }
-
- /**
- * Unlock a target.
- *
- * @param lock the target lock to unlock
- * @return <code>true</code> if the target is successfully unlocked, <code>false</code>
- * otherwise
- * @throws IllegalArgumentException if an argument is null
- */
- public static boolean unlockTarget(TargetLock lock) {
- String owner = makeOwner(lock.getTargetType(), lock.getRequestId());
- boolean result = factory.getManager().unlock(lock.getTargetInstance(), owner);
-
- if (result) {
- logger.debug("Unlocked {}", lock);
- return true;
- }
-
- return false;
- }
-
- /**
- * Check if a target is locked.
- *
- * @param targetType the target type
- * @param targetInstance the target instance
- * @param requestId the request Id
- * @return <code>true</code> if the target is locked, <code>false</code> otherwise
- * @throws IllegalArgumentException if an argument is null
- */
- public static boolean isLocked(TargetType targetType, String targetInstance, UUID requestId) {
- String owner = makeOwner(targetType, requestId);
- return factory.getManager().isLockedBy(targetInstance, owner);
- }
-
- /**
- * Combines the target type and request ID to yield a single, "owner" string.
- * @param targetType target type
- * @param requestID request id
- * @return the "owner" of a resource
- * @throws IllegalArgumentException if either argument is null
- */
- private static String makeOwner(TargetType targetType, UUID requestId) {
- if (targetType == null) {
- throw new IllegalArgumentException("null targetType for lock request id " + requestId);
- }
-
- if (requestId == null) {
- throw new IllegalArgumentException("null requestID for lock type " + targetType);
- }
-
- return targetType + ":" + requestId;
- }
-
- /**
- * Factory to access various objects.
- */
- public static class Factory {
-
- /**
- * Get the manager.
- *
- * @return the lock manager to be used
- */
- public PolicyResourceLockManager getManager() {
- return PolicyResourceLockManager.getInstance();
- }
- }
-}
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/TargetLock.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/TargetLock.java
deleted file mode 100644
index eea46c3cc..000000000
--- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/TargetLock.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * guard
- * ================================================================================
- * Copyright (C) 2017, 2019 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.onap.policy.guard;
-
-import java.util.UUID;
-
-import org.onap.policy.controlloop.policy.TargetType;
-
-public interface TargetLock {
-
- public UUID getLockId();
-
- public TargetType getTargetType();
-
- public String getTargetInstance();
-
- public UUID getRequestId();
-
-}
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/PnfTargetLock.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/PnfTargetLock.java
deleted file mode 100644
index 8ddb5ffcf..000000000
--- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/PnfTargetLock.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * guard
- * ================================================================================
- * Copyright (C) 2017-2019 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.onap.policy.guard.impl;
-
-import java.util.UUID;
-import org.onap.policy.controlloop.policy.TargetType;
-import org.onap.policy.guard.LockCallback;
-
-public class PnfTargetLock extends TargetLockImpl {
-
- private static final long serialVersionUID = 2335897394577202732L;
-
- /**
- * Construct an instance.
- *
- * @param type the target type
- * @param target the target
- * @param requestId the request Id
- * @param callback the callback
- */
- public PnfTargetLock(TargetType type, String target, UUID requestId, LockCallback callback) {
- super(type, target, requestId, callback);
- }
-
- @Override
- public String toString() {
- return "PnfTargetLock [" + super.toString() + "]";
- }
-}
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/TargetLockImpl.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/TargetLockImpl.java
deleted file mode 100644
index d406999f4..000000000
--- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/TargetLockImpl.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * guard
- * ================================================================================
- * Copyright (C) 2019 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.onap.policy.guard.impl;
-
-import java.io.Serializable;
-import java.util.UUID;
-
-import org.onap.policy.controlloop.policy.TargetType;
-import org.onap.policy.guard.LockCallback;
-import org.onap.policy.guard.TargetLock;
-
-public class TargetLockImpl implements TargetLock, Serializable {
-
- private static final long serialVersionUID = 2335897394577202732L;
-
- private final UUID lockId;
- private final TargetType targetType;
- private final String target;
- private final UUID requestId;
- private final transient LockCallback callback;
-
- /**
- * Construct an instance.
- *
- * @param type the target type
- * @param target the target
- * @param requestId the request Id
- * @param callback the callback
- */
- public TargetLockImpl(TargetType type, String target, UUID requestId, LockCallback callback) {
- this.lockId = UUID.randomUUID();
- this.targetType = type;
- this.target = target;
- this.requestId = requestId;
- this.callback = callback;
- }
-
- @Override
- public UUID getLockId() {
- return this.lockId;
- }
-
-
- @Override
- public TargetType getTargetType() {
- return targetType;
- }
-
- @Override
- public String getTargetInstance() {
- return target;
- }
-
- @Override
- public UUID getRequestId() {
- return this.requestId;
- }
-
- public LockCallback getCallback() {
- return this.callback;
- }
-
- @Override
- public String toString() {
- return "lockId=" + lockId + ", targetType=" + targetType + ", target=" + target + ", requestId="
- + requestId;
- }
-}
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VmTargetLock.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VmTargetLock.java
deleted file mode 100644
index 2e612a03a..000000000
--- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VmTargetLock.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * guard
- * ================================================================================
- * Copyright (C) 2017-2019 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.onap.policy.guard.impl;
-
-import java.util.UUID;
-import org.onap.policy.controlloop.policy.TargetType;
-import org.onap.policy.guard.LockCallback;
-
-public class VmTargetLock extends TargetLockImpl {
-
- private static final long serialVersionUID = 2335897394577202732L;
-
- /**
- * Construct an instance.
- *
- * @param type the target type
- * @param target the target
- * @param requestId the request Id
- * @param callback the callback
- */
- public VmTargetLock(TargetType type, String target, UUID requestId, LockCallback callback) {
- super(type, target, requestId, callback);
- }
-
- @Override
- public String toString() {
- return "VmTargetLock [" + super.toString() + "]";
- }
-}
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VnfTargetLock.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VnfTargetLock.java
deleted file mode 100644
index 2912c7ad4..000000000
--- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VnfTargetLock.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * guard
- * ================================================================================
- * Copyright (C) 2017-2019 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.onap.policy.guard.impl;
-
-import java.util.UUID;
-import org.onap.policy.controlloop.policy.TargetType;
-import org.onap.policy.guard.LockCallback;
-
-public class VnfTargetLock extends TargetLockImpl {
-
- private static final long serialVersionUID = 2335897394577202732L;
-
- /**
- * Construct an instance.
- *
- * @param type the target type
- * @param target the target
- * @param requestId the request Id
- * @param callback the callback
- */
- public VnfTargetLock(TargetType type, String target, UUID requestId, LockCallback callback) {
- super(type, target, requestId, callback);
- }
-
- @Override
- public String toString() {
- return "VnfTargetLock [" + super.toString() + "]";
- }
-}