diff options
Diffstat (limited to 'src/main/java/org/onap/music/service')
-rw-r--r-- | src/main/java/org/onap/music/service/MusicCoreService.java | 9 | ||||
-rw-r--r-- | src/main/java/org/onap/music/service/impl/MusicCassaCore.java | 20 |
2 files changed, 22 insertions, 7 deletions
diff --git a/src/main/java/org/onap/music/service/MusicCoreService.java b/src/main/java/org/onap/music/service/MusicCoreService.java index 1ecb2ee1..b3226906 100644 --- a/src/main/java/org/onap/music/service/MusicCoreService.java +++ b/src/main/java/org/onap/music/service/MusicCoreService.java @@ -133,15 +133,10 @@ public interface MusicCoreService { public void destroyLockRef(String lockId) throws MusicLockingException; - //public MusicLockState destroyLockRef(String fullyQualifiedKey, String lockReference); // lock name, lock id - - //public MusicLockState voluntaryReleaseLock(String fullyQualifiedKey, String lockReference) - // throws MusicLockingException;// lock name,lock id - public void deleteLock(String lockName) throws MusicLockingException; - //public MusicLockState forciblyReleaseLock(String fullyQualifiedKey, String lockReference) throws MusicLockingException, MusicServiceException, MusicQueryException; - + public ReturnType promoteLock(String lockIdToPromote) throws MusicLockingException; + public List<String> getLockQueue(String fullyQualifiedKey) throws MusicServiceException, MusicQueryException, MusicLockingException; diff --git a/src/main/java/org/onap/music/service/impl/MusicCassaCore.java b/src/main/java/org/onap/music/service/impl/MusicCassaCore.java index 0c30cc74..0d2e3f0a 100644 --- a/src/main/java/org/onap/music/service/impl/MusicCassaCore.java +++ b/src/main/java/org/onap/music/service/impl/MusicCassaCore.java @@ -158,6 +158,26 @@ public class MusicCassaCore implements MusicCoreService { logger.info(EELFLoggerDelegate.applicationLogger,"Time taken to create lock reference:" + (end - start) + " ms"); return lockReference; } + + public ReturnType promoteLock(String lockId) throws MusicLockingException { + String[] splitString = lockId.split("\\."); + String keyspace = splitString[0].substring(1);//remove '$' + String table = splitString[1]; + String primaryKeyValue = splitString[2].substring(0, splitString[2].lastIndexOf("$")); + String localFullyQualifiedKey = lockId.substring(1, lockId.lastIndexOf("$")); + String lockRef = lockId.substring(lockId.lastIndexOf("$")+1); //lockRef is "$" to end + + logger.info(EELFLoggerDelegate.applicationLogger,"Attempting to promote lock " + lockId); + + try { + return getLockingServiceHandle().promoteLock(keyspace, table, primaryKeyValue, lockRef); + } catch (MusicServiceException e) { + throw new MusicLockingException("Unable to promote lock. ", e); + } catch (MusicQueryException e) { + throw new MusicLockingException("Unable to promote lock. ", e); + } + + } public ReturnType acquireLockWithLease(String fullyQualifiedKey, String lockReference, long leasePeriod) |