To improve clarity and to anticipate future expansion (ticket #2287) some TPS token states have been renamed.

--
Endi S. Dewata
>From 8c55952d16d986f79ad55c098d80266c35012cc2 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <[email protected]>
Date: Sat, 23 Apr 2016 00:50:08 +0200
Subject: [PATCH] Refactored TokenStatus enumeration.

The TokenStatus enumeration has been converted into a class to
allow overriding the TokenStatus.valueOf() to provide backward
compatibility.

https://fedorahosted.org/pki/ticket/2286
---
 .../netscape/certsrv/tps/token/TokenClient.java    |   2 +-
 .../netscape/certsrv/tps/token/TokenResource.java  |   2 +-
 .../netscape/certsrv/tps/token/TokenStatus.java    | 130 ++++++++++++++++++---
 .../netscape/cmstools/tps/token/TokenFindCLI.java  |   8 +-
 .../org/dogtagpki/server/tps/engine/TPSEngine.java |   2 +-
 .../dogtagpki/server/tps/rest/TokenService.java    |  31 ++---
 6 files changed, 132 insertions(+), 43 deletions(-)

diff --git a/base/common/src/com/netscape/certsrv/tps/token/TokenClient.java b/base/common/src/com/netscape/certsrv/tps/token/TokenClient.java
index 63e0edcde173524f2833cdd2ca317bb0d05f8af1..9c43893bdb1bb0b8590a4de590db18935e18f2bd 100644
--- a/base/common/src/com/netscape/certsrv/tps/token/TokenClient.java
+++ b/base/common/src/com/netscape/certsrv/tps/token/TokenClient.java
@@ -45,7 +45,7 @@ public class TokenClient extends Client {
             String tokenID,
             String userID,
             String type,
-            String status,
+            TokenStatus status,
             Integer start,
             Integer size) {
 
diff --git a/base/common/src/com/netscape/certsrv/tps/token/TokenResource.java b/base/common/src/com/netscape/certsrv/tps/token/TokenResource.java
index 4c1bc39aa0264f5f4f01077e3642bc6650b81aa7..c37b02704ca6ab88846c8ab28052de2ef51b0c4a 100644
--- a/base/common/src/com/netscape/certsrv/tps/token/TokenResource.java
+++ b/base/common/src/com/netscape/certsrv/tps/token/TokenResource.java
@@ -48,7 +48,7 @@ public interface TokenResource {
             @QueryParam("tokenID") String tokenID,
             @QueryParam("userID") String userID,
             @QueryParam("type") String type,
-            @QueryParam("status") String status,
+            @QueryParam("status") TokenStatus status,
             @QueryParam("start") Integer start,
             @QueryParam("size") Integer size);
 
diff --git a/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java b/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java
index b85f9eee290bec685d526b535345ee076928cf2f..18c1d9302c0529279f303c9613d17383004078be 100644
--- a/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java
+++ b/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java
@@ -18,41 +18,133 @@
 
 package com.netscape.certsrv.tps.token;
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import com.netscape.certsrv.tps.token.TokenStatus.TokenStatusAdapter;
+
+
 /**
  * @author Endi S. Dewata
  */
-public enum TokenStatus {
+@XmlJavaTypeAdapter(TokenStatusAdapter.class)
+public class TokenStatus {
 
-    UNINITIALIZED(0),
-    DAMAGED(1),
-    PERM_LOST(2),
-    TEMP_LOST(3),
-    ACTIVE(4),
-    TEMP_LOST_PERM_LOST(5),
-    TERMINATED(6);
+    public static class TokenStatusAdapter extends XmlAdapter<String, TokenStatus> {
 
-    static Map<Integer, TokenStatus> map = new HashMap<Integer, TokenStatus>();
+        public String marshal(TokenStatus status) {
+            return status.name;
+        }
 
+        public TokenStatus unmarshal(String status) {
+            return TokenStatus.valueOf(status);
+        }
+    }
+
+    static Map<String, TokenStatus> instancesByName = new HashMap<String, TokenStatus>();
+    static Map<Integer, TokenStatus> instancesByValue = new HashMap<Integer, TokenStatus>();
+
+    public final static TokenStatus UNINITIALIZED       = new TokenStatus("UNINITIALIZED", 0);
+    public final static TokenStatus DAMAGED             = new TokenStatus("DAMAGED", 1);
+    public final static TokenStatus PERM_LOST           = new TokenStatus("PERM_LOST", 2);
+    public final static TokenStatus TEMP_LOST           = new TokenStatus("TEMP_LOST", 3);
+    public final static TokenStatus ACTIVE              = new TokenStatus("ACTIVE", 4);
+    public final static TokenStatus TEMP_LOST_PERM_LOST = new TokenStatus("TEMP_LOST_PERM_LOST", 5);
+    public final static TokenStatus TERMINATED          = new TokenStatus("TERMINATED", 6);
+
+    String name;
     Integer value;
 
-    static {
-        for (TokenStatus state : TokenStatus.values()) {
-            map.put(state.value, state);
+    public TokenStatus() {
+        // required for JAXB
+    }
+
+    public TokenStatus(String name, Integer value) {
+        this.name = name;
+        this.value = value;
+
+        instancesByName.put(name, this);
+        instancesByValue.put(value, this);
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getValue() {
+        return value;
+    }
+
+    public void setValue(Integer value) {
+        this.value = value;
+    }
+
+    public String toString() {
+        return name;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((name == null) ? 0 : name.hashCode());
+        result = prime * result + ((value == null) ? 0 : value.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        TokenStatus other = (TokenStatus) obj;
+        if (name == null) {
+            if (other.name != null)
+                return false;
+        } else if (!name.equals(other.name))
+            return false;
+        if (value == null) {
+            if (other.value != null)
+                return false;
+        } else if (!value.equals(other.value))
+            return false;
+        return true;
+    }
+
+    public static Collection<TokenStatus> values() {
+        return instancesByName.values();
+    }
+
+    public static TokenStatus valueOf(String name) {
+
+        TokenStatus status = instancesByName.get(name);
+
+        if (status == null) {
+            throw new IllegalArgumentException("Invalid token status name: " + name);
         }
-    }
 
-    TokenStatus(Integer value) {
-        this.value = value;
+        return status;
     }
 
     public static TokenStatus fromInt(Integer value) {
-        return map.get(value);
-    }
 
-    public int toInt() {
-        return value.intValue();
+        TokenStatus status = instancesByValue.get(value);
+
+        if (status == null) {
+            throw new IllegalArgumentException("Invalid token status value: " + value);
+        }
+
+        return status;
     }
 }
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenFindCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenFindCLI.java
index cfe7c2fe3b2a906367f5863296588de8ede81860..477d6d926c507ca5dc972ef434a0d85d09042791 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenFindCLI.java
@@ -26,6 +26,7 @@ import org.apache.commons.cli.Option;
 
 import com.netscape.certsrv.tps.token.TokenCollection;
 import com.netscape.certsrv.tps.token.TokenData;
+import com.netscape.certsrv.tps.token.TokenStatus;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -97,7 +98,12 @@ public class TokenFindCLI extends CLI {
         String tokenID = cmd.getOptionValue("token");
         String userID = cmd.getOptionValue("user");
         String type = cmd.getOptionValue("type");
-        String status = cmd.getOptionValue("status");
+        String statusStr = cmd.getOptionValue("status");
+
+        TokenStatus status = null;
+        if (statusStr != null) {
+            status = TokenStatus.valueOf(statusStr);
+        }
 
         String s = cmd.getOptionValue("start");
         Integer start = s == null ? null : Integer.valueOf(s);
diff --git a/base/tps/src/org/dogtagpki/server/tps/engine/TPSEngine.java b/base/tps/src/org/dogtagpki/server/tps/engine/TPSEngine.java
index bc9d12c19c480fec7814059c3e23ce2e2a72306d..a577a76199a51e37f8bbcd7b7477f39aad85c8e8 100644
--- a/base/tps/src/org/dogtagpki/server/tps/engine/TPSEngine.java
+++ b/base/tps/src/org/dogtagpki/server/tps/engine/TPSEngine.java
@@ -620,7 +620,7 @@ public class TPSEngine {
 
         }
 
-        String transition = oldState.toInt() + ":" + newState.toInt();
+        String transition = oldState.getValue() + ":" + newState.getValue();
 
         CMS.debug("TPSEngine.isOperationTransistionAllowed: checking for transition: " + transition);
 
diff --git a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java
index 78a503994283302b50fc771379d4760e8df0974a..312b09934282d0e508db868ac27a675d817c1238 100644
--- a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java
+++ b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java
@@ -90,14 +90,12 @@ public class TokenService extends PKIService implements TokenResource {
 
         auditModParams.put("UserID", tokenRecord.getUserID());
 
-        switch (tokenState) {
-        case UNINITIALIZED:
+        if (tokenState == TokenStatus.UNINITIALIZED) {
             tokenRecord.setStatus("uninitialized");
             newStatus = "uninitialized";
             tokenRecord.setReason(null);
-            break;
 
-        case ACTIVE:
+        } else if (tokenState == TokenStatus.ACTIVE) {
             if (tokenRecord.getTokenStatus() == TokenStatus.TEMP_LOST) {
                 // unrevoke certs
                 tps.tdb.unRevokeCertsByCUID(tokenRecord.getId(), ipAddress, remoteUser);
@@ -107,10 +105,7 @@ public class TokenService extends PKIService implements TokenResource {
             newStatus = "active";
             tokenRecord.setReason(null);
 
-            break;
-
-        case PERM_LOST:
-        case TEMP_LOST_PERM_LOST:
+        } else if (tokenState == TokenStatus.PERM_LOST || tokenState == TokenStatus.TEMP_LOST_PERM_LOST) {
             tokenRecord.setStatus("lost");
             newStatus = "lost";
             tokenRecord.setReason("keyCompromise");
@@ -118,9 +113,8 @@ public class TokenService extends PKIService implements TokenResource {
 
             //revoke certs
             tps.tdb.revokeCertsByCUID(tokenRecord.getId(), "keyCompromise", ipAddress, remoteUser);
-            break;
 
-        case DAMAGED:
+        } else if (tokenState == TokenStatus.DAMAGED) {
             tokenRecord.setStatus("lost");
             newStatus = "lost";
             tokenRecord.setReason("destroyed");
@@ -129,9 +123,7 @@ public class TokenService extends PKIService implements TokenResource {
             //revoke certs
             tps.tdb.revokeCertsByCUID(tokenRecord.getId(), "destroyed", ipAddress, remoteUser);
 
-            break;
-
-        case TEMP_LOST:
+        } else if (tokenState == TokenStatus.TEMP_LOST) {
             tokenRecord.setStatus("lost");
             newStatus = "lost";
             tokenRecord.setReason("onHold");
@@ -139,9 +131,8 @@ public class TokenService extends PKIService implements TokenResource {
 
             // put certs onHold
             tps.tdb.revokeCertsByCUID(tokenRecord.getId(), "onHold", ipAddress, remoteUser);
-            break;
 
-        case TERMINATED:
+        } else if (tokenState == TokenStatus.TERMINATED) {
             String reason = "terminated";
             String origStatus2 = tokenRecord.getStatus();
             String origReason2 = tokenRecord.getReason();
@@ -157,9 +148,8 @@ public class TokenService extends PKIService implements TokenResource {
 
             //revoke certs
             tps.tdb.revokeCertsByCUID(tokenRecord.getId(), reason, ipAddress, remoteUser);
-            break;
 
-        default:
+        } else {
             PKIException e = new PKIException("Unsupported token state: " + tokenState);
             auditTokenStateChange(ILogger.FAILURE, oldStatus,
                     newStatus, oldReason, newReason,
@@ -225,7 +215,7 @@ public class TokenService extends PKIService implements TokenResource {
             String tokenID,
             String userID,
             String type,
-            String status,
+            TokenStatus status,
             Integer start,
             Integer size) {
 
@@ -249,8 +239,8 @@ public class TokenService extends PKIService implements TokenResource {
             attributes.put("type", type);
         }
 
-        if (StringUtils.isNotEmpty(status)) {
-            attributes.put("status", status);
+        if (status != null) {
+            attributes.put("status", status.toString());
         }
 
         start = start == null ? 0 : start;
@@ -603,6 +593,7 @@ public class TokenService extends PKIService implements TokenResource {
                     "Token ID is null.");
             throw new BadRequestException("Token ID is null.");
         }
+
         auditModParams.put("tokenID", tokenID);
         if (tokenStatus == null) {
             auditConfigTokenGeneral(ILogger.FAILURE, method, null,
-- 
2.5.5

>From 6d8c81f00102e222fce9d375c006b8a01271f7d9 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <[email protected]>
Date: Sat, 23 Apr 2016 00:50:08 +0200
Subject: [PATCH] Renamed token status TEMP_LOST to SUSPENDED.

The token status TEMP_LOST has been renamed to SUSPENDED such that
it can be used more general contexts.

To simplify the transition, the CLIs and the REST API will continue
to accept TEMP_LOST but it will be converted internally into
SUSPENDED and a deprecation warning will be generated.

https://fedorahosted.org/pki/ticket/2286
---
 .../src/com/netscape/certsrv/tps/token/TokenStatus.java    |  7 ++++++-
 base/tps-client/doc/CS.cfg.in                              |  4 ++--
 base/tps/shared/conf/CS.cfg.in                             |  4 ++--
 base/tps/shared/conf/token-states.properties               | 14 +++++++-------
 base/tps/shared/webapps/tps/js/token.js                    |  2 +-
 base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java    |  4 ++--
 base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java |  2 +-
 .../src/org/dogtagpki/server/tps/rest/TokenService.java    |  4 ++--
 8 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java b/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java
index 18c1d9302c0529279f303c9613d17383004078be..790e092ef53f13312f869a5c45299291c42c8ace 100644
--- a/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java
+++ b/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java
@@ -51,7 +51,7 @@ public class TokenStatus {
     public final static TokenStatus UNINITIALIZED       = new TokenStatus("UNINITIALIZED", 0);
     public final static TokenStatus DAMAGED             = new TokenStatus("DAMAGED", 1);
     public final static TokenStatus PERM_LOST           = new TokenStatus("PERM_LOST", 2);
-    public final static TokenStatus TEMP_LOST           = new TokenStatus("TEMP_LOST", 3);
+    public final static TokenStatus SUSPENDED           = new TokenStatus("SUSPENDED", 3);
     public final static TokenStatus ACTIVE              = new TokenStatus("ACTIVE", 4);
     public final static TokenStatus TEMP_LOST_PERM_LOST = new TokenStatus("TEMP_LOST_PERM_LOST", 5);
     public final static TokenStatus TERMINATED          = new TokenStatus("TERMINATED", 6);
@@ -128,6 +128,11 @@ public class TokenStatus {
 
     public static TokenStatus valueOf(String name) {
 
+        if ("TEMP_LOST".equals(name)) {
+            System.err.println("WARNING: The token status " + name + " has been deprecated. Please use SUSPENDED instead.");
+            return SUSPENDED;
+        }
+
         TokenStatus status = instancesByName.get(name);
 
         if (status == null) {
diff --git a/base/tps-client/doc/CS.cfg.in b/base/tps-client/doc/CS.cfg.in
index f1a79032abb52660ef189aba3a91f6d4049614a2..457f6ebe4098460194b0b9691772334d7cff1b0f 100644
--- a/base/tps-client/doc/CS.cfg.in
+++ b/base/tps-client/doc/CS.cfg.in
@@ -1485,7 +1485,7 @@ tokendb._067=#   - has transitions between the following states
 tokendb._068=#     UNINITIALIZED = 0,
 tokendb._069=#     DAMAGED = 1,
 tokendb._070=#     PERM_LOST = 2,
-tokendb._071=#     TEMP_LOST = 3,
+tokendb._071=#     SUSPENDED = 3,
 tokendb._072=#     ACTIVE = 4,
 tokendb._073=#     TEMP_LOST_PERM_LOST = 5,
 tokendb._074=#     TERMINATED = 6
@@ -1595,7 +1595,7 @@ tps._009=#   - token operations, like formatting and enrollment have transitions
 tps._010=#     UNINITIALIZED = 0,
 tps._011=#     DAMAGED = 1,
 tps._012=#     PERM_LOST = 2,
-tps._013=#     TEMP_LOST =3 ,
+tps._013=#     SUSPENDED =3 ,
 tps._014=#     ACTIVE = 4,
 tps._015=#     TEMP_LOST_PERM_LOST = 5,
 tps._016=#     TERMINATED = 6
diff --git a/base/tps/shared/conf/CS.cfg.in b/base/tps/shared/conf/CS.cfg.in
index 39e504976762ec0af8824b53d977f0e94516df4e..b5441a0a1eb85e0b3c6e3c93ed27a806976a5bf2 100644
--- a/base/tps/shared/conf/CS.cfg.in
+++ b/base/tps/shared/conf/CS.cfg.in
@@ -1957,7 +1957,7 @@ tokendb._067=#   - has transitions between the following states
 tokendb._068=#     UNINITIALIZED = 0,
 tokendb._069=#     DAMAGED = 1,
 tokendb._070=#     PERM_LOST = 2,
-tokendb._071=#     TEMP_LOST = 3,
+tokendb._071=#     SUSPENDED = 3,
 tokendb._072=#     ACTIVE = 4,
 tokendb._073=#     TEMP_LOST_PERM_LOST = 5,
 tokendb._074=#     TERMINATED = 6
@@ -2026,7 +2026,7 @@ tps._009=#   - token operations, like formatting and enrollment have transitions
 tps._010=#     UNINITIALIZED = 0,
 tps._011=#     DAMAGED = 1,
 tps._012=#     PERM_LOST = 2,
-tps._013=#     TEMP_LOST = 3,
+tps._013=#     SUSPENDED = 3,
 tps._014=#     ACTIVE = 4,
 tps._015=#     TEMP_LOST_PERM_LOST = 5,
 tps._016=#     TERMINATED = 6
diff --git a/base/tps/shared/conf/token-states.properties b/base/tps/shared/conf/token-states.properties
index a64d940c61ebf13dce097805f0a256b1cf991569..3c7e7d6da2786a96d5fe3278b715000a56f96f68 100644
--- a/base/tps/shared/conf/token-states.properties
+++ b/base/tps/shared/conf/token-states.properties
@@ -1,7 +1,7 @@
 # Token states
 UNINITIALIZED       = Uninitialized
 ACTIVE              = Active
-TEMP_LOST           = Temporarily lost
+SUSPENDED           = Temporarily lost/suspended
 PERM_LOST           = Permanently lost
 DAMAGED             = Physically damaged
 TEMP_LOST_PERM_LOST = Temporarily lost then permanently lost
@@ -10,13 +10,13 @@ TERMINATED          = Terminated
 # Token state transitions
 UNINITIALIZED.DAMAGED    = This token has been physically damaged.
 UNINITIALIZED.PERM_LOST  = This token has been permanently lost.
-UNINITIALIZED.TEMP_LOST  = This token has been temporarily lost.
+UNINITIALIZED.SUSPENDED  = This token has been temporarily lost/suspended.
 UNINITIALIZED.TERMINATED = This token has been terminated.
-TEMP_LOST.ACTIVE         = This temporarily lost token has been found.
-TEMP_LOST.PERM_LOST      = This temporarily lost token has become permanently lost.
-TEMP_LOST.TERMINATED     = This temporarily lost token has been terminated.
-TEMP_LOST.UNINITIALIZED  = This temporarily lost token has been found.
+SUSPENDED.ACTIVE         = This temporarily lost/suspended token has been found.
+SUSPENDED.PERM_LOST      = This temporarily lost/suspended token has become permanently lost.
+SUSPENDED.TERMINATED     = This temporarily lost/suspended token has been terminated.
+SUSPENDED.UNINITIALIZED  = This temporarily lost/suspended token has been found.
 ACTIVE.DAMAGED           = This token has been physically damaged.
 ACTIVE.PERM_LOST         = This token has been permanently lost.
-ACTIVE.TEMP_LOST         = This token has been temporarily lost.
+ACTIVE.SUSPENDED         = This token has been temporarily lost/suspended.
 ACTIVE.TERMINATED        = This token has been terminated.
diff --git a/base/tps/shared/webapps/tps/js/token.js b/base/tps/shared/webapps/tps/js/token.js
index e09fa5fc6816f812c64e0fed5605707ceec71859..c81e2ccb8b29769e53fc37a38b85f12a9e3797ce 100644
--- a/base/tps/shared/webapps/tps/js/token.js
+++ b/base/tps/shared/webapps/tps/js/token.js
@@ -23,7 +23,7 @@
 var TokenStatus = {
     UNINITIALIZED       : "Uninitialized",
     ACTIVE              : "Active",
-    TEMP_LOST           : "Temporarily lost",
+    SUSPENDED           : "Temporarily lost/suspended",
     PERM_LOST           : "Permanently lost",
     DAMAGED             : "Physically damaged",
     TEMP_LOST_PERM_LOST : "Temporarily lost then permanently lost",
diff --git a/base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java b/base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java
index 008f61333e099049462c02564b99294b110410d5..b0ffb75704eb95a55b78654f75eae6cd4199d90f 100644
--- a/base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java
+++ b/base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java
@@ -145,7 +145,7 @@ public class TPSSubsystem implements IAuthority, ISubsystem {
     /**
      * Return the allowed next states for a given token based on TPS configuration.
      *
-     * If the current state is TEMP_LOST, token will be allowed transition to either
+     * If the current state is SUSPENDED, token will be allowed transition to either
      * UNINITIALIZED or ACTIVE depending on whether the token has certificates.
      *
      * @param tokenRecord
@@ -156,7 +156,7 @@ public class TPSSubsystem implements IAuthority, ISubsystem {
         TokenStatus currentState = tokenRecord.getTokenStatus();
         Collection<TokenStatus> nextStates = allowedTransitions.get(currentState);
 
-        if (currentState == TokenStatus.TEMP_LOST) {
+        if (currentState == TokenStatus.SUSPENDED) {
 
             Collection<TokenStatus> ns = new LinkedHashSet<TokenStatus>();
 
diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java
index a1aef5720830bdf9f621a8d54630bcf6c8319bd3..80fd30eb87bd9995ce358f0416dd8dabb5672e55 100644
--- a/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java
+++ b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java
@@ -258,7 +258,7 @@ public class TokenRecord extends DBRecord {
                 return TokenStatus.DAMAGED;
 
             } else if ("onHold".equals(reason)) {
-                return TokenStatus.TEMP_LOST;
+                return TokenStatus.SUSPENDED;
             }
 
         } else if ("terminated".equals(status)) {
diff --git a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java
index 312b09934282d0e508db868ac27a675d817c1238..09989219395278843662c0497cf8698f6308c57d 100644
--- a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java
+++ b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java
@@ -96,7 +96,7 @@ public class TokenService extends PKIService implements TokenResource {
             tokenRecord.setReason(null);
 
         } else if (tokenState == TokenStatus.ACTIVE) {
-            if (tokenRecord.getTokenStatus() == TokenStatus.TEMP_LOST) {
+            if (tokenRecord.getTokenStatus() == TokenStatus.SUSPENDED) {
                 // unrevoke certs
                 tps.tdb.unRevokeCertsByCUID(tokenRecord.getId(), ipAddress, remoteUser);
             }
@@ -123,7 +123,7 @@ public class TokenService extends PKIService implements TokenResource {
             //revoke certs
             tps.tdb.revokeCertsByCUID(tokenRecord.getId(), "destroyed", ipAddress, remoteUser);
 
-        } else if (tokenState == TokenStatus.TEMP_LOST) {
+        } else if (tokenState == TokenStatus.SUSPENDED) {
             tokenRecord.setStatus("lost");
             newStatus = "lost";
             tokenRecord.setReason("onHold");
-- 
2.5.5

>From c42fbef333f0128b6b80659996f08af22567b028 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <[email protected]>
Date: Sat, 23 Apr 2016 05:28:10 +0200
Subject: [PATCH] Renamed token status UNINITIALIZED to AVAILABLE.

The token status UNINITIALIZED has been renamed to AVAILABLE for
clarity.

To simplify the transition, the CLIs and the REST API will continue
to accept UNINITIALIZED but it will be converted internally into
AVAILABLE and a deprecation warning will be generated.

https://fedorahosted.org/pki/ticket/2288
---
 .../src/com/netscape/certsrv/tps/token/TokenStatus.java      |  7 ++++++-
 base/tps-client/doc/CS.cfg.in                                |  4 ++--
 base/tps/shared/conf/CS.cfg.in                               |  4 ++--
 base/tps/shared/conf/token-states.properties                 | 12 ++++++------
 base/tps/shared/webapps/tps/js/token.js                      |  2 +-
 base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java      |  6 +++---
 base/tps/src/org/dogtagpki/server/tps/TPSTokendb.java        |  2 +-
 base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java   |  4 ++--
 .../dogtagpki/server/tps/processor/TPSEnrollProcessor.java   |  6 +++---
 .../src/org/dogtagpki/server/tps/processor/TPSProcessor.java |  6 +++---
 base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java | 12 ++++++------
 11 files changed, 35 insertions(+), 30 deletions(-)

diff --git a/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java b/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java
index 790e092ef53f13312f869a5c45299291c42c8ace..db80b87d33f59c680fd96aa004b47ecc991176f5 100644
--- a/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java
+++ b/base/common/src/com/netscape/certsrv/tps/token/TokenStatus.java
@@ -48,7 +48,7 @@ public class TokenStatus {
     static Map<String, TokenStatus> instancesByName = new HashMap<String, TokenStatus>();
     static Map<Integer, TokenStatus> instancesByValue = new HashMap<Integer, TokenStatus>();
 
-    public final static TokenStatus UNINITIALIZED       = new TokenStatus("UNINITIALIZED", 0);
+    public final static TokenStatus AVAILABLE           = new TokenStatus("AVAILABLE", 0);
     public final static TokenStatus DAMAGED             = new TokenStatus("DAMAGED", 1);
     public final static TokenStatus PERM_LOST           = new TokenStatus("PERM_LOST", 2);
     public final static TokenStatus SUSPENDED           = new TokenStatus("SUSPENDED", 3);
@@ -128,6 +128,11 @@ public class TokenStatus {
 
     public static TokenStatus valueOf(String name) {
 
+        if ("UNINITIALIZED".equals(name)) {
+            System.err.println("WARNING: The token status " + name + " has been deprecated. Please use AVAILABLE instead.");
+            return AVAILABLE;
+        }
+
         if ("TEMP_LOST".equals(name)) {
             System.err.println("WARNING: The token status " + name + " has been deprecated. Please use SUSPENDED instead.");
             return SUSPENDED;
diff --git a/base/tps-client/doc/CS.cfg.in b/base/tps-client/doc/CS.cfg.in
index 457f6ebe4098460194b0b9691772334d7cff1b0f..2d1929ef68403543f629de1d496a8f346a482e4c 100644
--- a/base/tps-client/doc/CS.cfg.in
+++ b/base/tps-client/doc/CS.cfg.in
@@ -1482,7 +1482,7 @@ tokendb._064=#     is set to YES. Otherwise, re-enrollment is not
 tokendb._065=#     allowed.
 tokendb._066=# tokendb.allowedTransitions:
 tokendb._067=#   - has transitions between the following states
-tokendb._068=#     UNINITIALIZED = 0,
+tokendb._068=#     AVAILABLE = 0,
 tokendb._069=#     DAMAGED = 1,
 tokendb._070=#     PERM_LOST = 2,
 tokendb._071=#     SUSPENDED = 3,
@@ -1592,7 +1592,7 @@ tps._005=# tps.cert.subsystem.nickname=xxx
 tps._007=# tps.cert.audit_signing.nickname=xxx
 tps._008=# operations.allowedTransitions:
 tps._009=#   - token operations, like formatting and enrollment have transitions between the following states
-tps._010=#     UNINITIALIZED = 0,
+tps._010=#     AVAILABLE = 0,
 tps._011=#     DAMAGED = 1,
 tps._012=#     PERM_LOST = 2,
 tps._013=#     SUSPENDED =3 ,
diff --git a/base/tps/shared/conf/CS.cfg.in b/base/tps/shared/conf/CS.cfg.in
index b5441a0a1eb85e0b3c6e3c93ed27a806976a5bf2..0bcaf59e6c44ed19c4ecf693220a7a5ac25f9c80 100644
--- a/base/tps/shared/conf/CS.cfg.in
+++ b/base/tps/shared/conf/CS.cfg.in
@@ -1954,7 +1954,7 @@ tokendb._064=#     is set to YES. Otherwise, re-enrollment is not
 tokendb._065=#     allowed.
 tokendb._066=# tokendb.allowedTransitions:
 tokendb._067=#   - has transitions between the following states
-tokendb._068=#     UNINITIALIZED = 0,
+tokendb._068=#     AVAILABLE = 0,
 tokendb._069=#     DAMAGED = 1,
 tokendb._070=#     PERM_LOST = 2,
 tokendb._071=#     SUSPENDED = 3,
@@ -2023,7 +2023,7 @@ tps._005=# tps.cert.subsystem.nickname=xxx
 tps._007=# tps.cert.audit_signing.nickname=xxx
 tps._008=# operations.allowedTransitions:
 tps._009=#   - token operations, like formatting and enrollment have transitions between the following states
-tps._010=#     UNINITIALIZED = 0,
+tps._010=#     AVAILABLE = 0,
 tps._011=#     DAMAGED = 1,
 tps._012=#     PERM_LOST = 2,
 tps._013=#     SUSPENDED = 3,
diff --git a/base/tps/shared/conf/token-states.properties b/base/tps/shared/conf/token-states.properties
index 3c7e7d6da2786a96d5fe3278b715000a56f96f68..534aabf4d01b7b848f59ae3c9c18cc06e36e4f7a 100644
--- a/base/tps/shared/conf/token-states.properties
+++ b/base/tps/shared/conf/token-states.properties
@@ -1,5 +1,5 @@
 # Token states
-UNINITIALIZED       = Uninitialized
+AVAILABLE           = Uninitialized/available
 ACTIVE              = Active
 SUSPENDED           = Temporarily lost/suspended
 PERM_LOST           = Permanently lost
@@ -8,14 +8,14 @@ TEMP_LOST_PERM_LOST = Temporarily lost then permanently lost
 TERMINATED          = Terminated
 
 # Token state transitions
-UNINITIALIZED.DAMAGED    = This token has been physically damaged.
-UNINITIALIZED.PERM_LOST  = This token has been permanently lost.
-UNINITIALIZED.SUSPENDED  = This token has been temporarily lost/suspended.
-UNINITIALIZED.TERMINATED = This token has been terminated.
+AVAILABLE.DAMAGED        = This token has been physically damaged.
+AVAILABLE.PERM_LOST      = This token has been permanently lost.
+AVAILABLE.SUSPENDED      = This token has been temporarily lost/suspended.
+AVAILABLE.TERMINATED     = This token has been terminated.
 SUSPENDED.ACTIVE         = This temporarily lost/suspended token has been found.
 SUSPENDED.PERM_LOST      = This temporarily lost/suspended token has become permanently lost.
 SUSPENDED.TERMINATED     = This temporarily lost/suspended token has been terminated.
-SUSPENDED.UNINITIALIZED  = This temporarily lost/suspended token has been found.
+SUSPENDED.AVAILABLE      = This temporarily lost/suspended token has been found.
 ACTIVE.DAMAGED           = This token has been physically damaged.
 ACTIVE.PERM_LOST         = This token has been permanently lost.
 ACTIVE.SUSPENDED         = This token has been temporarily lost/suspended.
diff --git a/base/tps/shared/webapps/tps/js/token.js b/base/tps/shared/webapps/tps/js/token.js
index c81e2ccb8b29769e53fc37a38b85f12a9e3797ce..bc89641041687561da89ffd9c2805bde646951d8 100644
--- a/base/tps/shared/webapps/tps/js/token.js
+++ b/base/tps/shared/webapps/tps/js/token.js
@@ -21,7 +21,7 @@
 
 // TODO: load labels from server
 var TokenStatus = {
-    UNINITIALIZED       : "Uninitialized",
+    AVAILABLE           : "Uninitialized/available",
     ACTIVE              : "Active",
     SUSPENDED           : "Temporarily lost/suspended",
     PERM_LOST           : "Permanently lost",
diff --git a/base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java b/base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java
index b0ffb75704eb95a55b78654f75eae6cd4199d90f..ae9a82d70671fb697b7ef2b660f6c499f203c7df 100644
--- a/base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java
+++ b/base/tps/src/org/dogtagpki/server/tps/TPSSubsystem.java
@@ -146,7 +146,7 @@ public class TPSSubsystem implements IAuthority, ISubsystem {
      * Return the allowed next states for a given token based on TPS configuration.
      *
      * If the current state is SUSPENDED, token will be allowed transition to either
-     * UNINITIALIZED or ACTIVE depending on whether the token has certificates.
+     * AVAILABLE or ACTIVE depending on whether the token has certificates.
      *
      * @param tokenRecord
      * @return A non-null collection of allowed next token states.
@@ -163,9 +163,9 @@ public class TPSSubsystem implements IAuthority, ISubsystem {
             // check token certificates
             Collection<TPSCertRecord> certRecords = tdb.tdbGetCertRecordsByCUID(tokenRecord.getId());
 
-            // if token has no certificates, allow token to become uninitialized again
+            // if token has no certificates, allow token to become available again
             if (certRecords.isEmpty()) {
-                ns.add(TokenStatus.UNINITIALIZED);
+                ns.add(TokenStatus.AVAILABLE);
 
             } else { // otherwise, allow token to become active again
                 ns.add(TokenStatus.ACTIVE);
diff --git a/base/tps/src/org/dogtagpki/server/tps/TPSTokendb.java b/base/tps/src/org/dogtagpki/server/tps/TPSTokendb.java
index e69ce9359dd56a2f8796eb0b7d3227dd34b270b8..180c90ba2d329f6e7102c6dda854dad67c54baaf 100644
--- a/base/tps/src/org/dogtagpki/server/tps/TPSTokendb.java
+++ b/base/tps/src/org/dogtagpki/server/tps/TPSTokendb.java
@@ -186,7 +186,7 @@ public class TPSTokendb {
         } catch (Exception e) {
             CMS.debug("TPSTokendb.tdbUpdateTokenEntry: token entry not found; Adding");
             // add and exit
-            tdbAddTokenEntry(tokenRecord, "uninitialized");
+            tdbAddTokenEntry(tokenRecord, "available");
             return;
         }
         // token found; modify
diff --git a/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java
index 80fd30eb87bd9995ce358f0416dd8dabb5672e55..75e75ef77799ec1be1e24bca4e84fb276a4aeb9f 100644
--- a/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java
+++ b/base/tps/src/org/dogtagpki/server/tps/dbs/TokenRecord.java
@@ -242,8 +242,8 @@ public class TokenRecord extends DBRecord {
     public TokenStatus getTokenStatus() {
         String status = getStatus();
 
-        if ("uninitialized".equals(status)) {
-            return TokenStatus.UNINITIALIZED;
+        if ("available".equals(status)) {
+            return TokenStatus.AVAILABLE;
 
         } else if ("active".equals(status)) {
             return TokenStatus.ACTIVE;
diff --git a/base/tps/src/org/dogtagpki/server/tps/processor/TPSEnrollProcessor.java b/base/tps/src/org/dogtagpki/server/tps/processor/TPSEnrollProcessor.java
index 19df79f531c8e655bec1e6b9eec1b7e110c267fb..092e8396e66f9890b8b605c00538780c20611b85 100644
--- a/base/tps/src/org/dogtagpki/server/tps/processor/TPSEnrollProcessor.java
+++ b/base/tps/src/org/dogtagpki/server/tps/processor/TPSEnrollProcessor.java
@@ -319,7 +319,7 @@ public class TPSEnrollProcessor extends TPSProcessor {
             }
         } else {
             CMS.debug(method + " token does not exist");
-            tokenRecord.setStatus("uninitialized");
+            tokenRecord.setStatus("available");
 
             checkAllowUnknownToken(TPSEngine.OP_FORMAT_PREFIX);
         }
@@ -368,7 +368,7 @@ public class TPSEnrollProcessor extends TPSProcessor {
 
         if (!isTokenPresent) {
             try {
-                tps.tdb.tdbAddTokenEntry(tokenRecord, "uninitialized");
+                tps.tdb.tdbAddTokenEntry(tokenRecord, "available");
             } catch (Exception e) {
                 String failMsg = "add token failure";
                 logMsg = failMsg + ":" + e.toString();
@@ -1031,7 +1031,7 @@ public class TPSEnrollProcessor extends TPSProcessor {
                 //same token
                 logMsg = "found current token entry";
                 CMS.debug(method + ":" + logMsg);
-                if (tokenRecord.getStatus().equals("uninitialized")) {
+                if (tokenRecord.getStatus().equals("available")) {
                     // this is the current token
                     if (tokenRecords.size() == 1) {
                         // the current token is the only token owned by the user
diff --git a/base/tps/src/org/dogtagpki/server/tps/processor/TPSProcessor.java b/base/tps/src/org/dogtagpki/server/tps/processor/TPSProcessor.java
index 01cde7608dafe5504064cef0372546955b44e931..ddf3c5e35111e41a8be25d96270f1113e7fced41 100644
--- a/base/tps/src/org/dogtagpki/server/tps/processor/TPSProcessor.java
+++ b/base/tps/src/org/dogtagpki/server/tps/processor/TPSProcessor.java
@@ -2055,8 +2055,8 @@ public class TPSProcessor {
 
         if (isTokenPresent) {
             CMS.debug("TPSProcessor.format: token exists");
-            TokenStatus newState = TokenStatus.UNINITIALIZED;
-            // Check for transition to 0/UNINITIALIZED status.
+            TokenStatus newState = TokenStatus.AVAILABLE;
+            // Check for transition to 0/AVAILABLE status.
 
             if (!tps.engine.isOperationTransitionAllowed(tokenRecord.getTokenStatus(), newState)) {
                 String info = " illegal transition attempted: " + tokenRecord.getTokenStatus() +
@@ -2151,7 +2151,7 @@ public class TPSProcessor {
         }
 
         // Update Token DB
-        tokenRecord.setStatus("uninitialized");
+        tokenRecord.setStatus("available");
         try {
             tps.tdb.tdbUpdateTokenEntry(tokenRecord);
         } catch (Exception e) {
diff --git a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java
index 09989219395278843662c0497cf8698f6308c57d..40cf428c18ecbed6c424665cd4a64d8562e9e204 100644
--- a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java
+++ b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java
@@ -90,9 +90,9 @@ public class TokenService extends PKIService implements TokenResource {
 
         auditModParams.put("UserID", tokenRecord.getUserID());
 
-        if (tokenState == TokenStatus.UNINITIALIZED) {
-            tokenRecord.setStatus("uninitialized");
-            newStatus = "uninitialized";
+        if (tokenState == TokenStatus.AVAILABLE) {
+            tokenRecord.setStatus("available");
+            newStatus = "available";
             tokenRecord.setReason(null);
 
         } else if (tokenState == TokenStatus.ACTIVE) {
@@ -369,9 +369,9 @@ public class TokenService extends PKIService implements TokenResource {
                 auditModParams.put("Policy", policy);
             }
 
-            // new tokens are uninitialized when created
-            tokenRecord.setStatus("uninitialized");
-            auditModParams.put("Status", "uninitialized");
+            // new tokens are available when created
+            tokenRecord.setStatus("available");
+            auditModParams.put("Status", "available");
 
             database.addRecord(tokenID, tokenRecord);
             subsystem.tdb.tdbActivity(ActivityDatabase.OP_ADD, tokenRecord,
-- 
2.5.5

_______________________________________________
Pki-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/pki-devel

Reply via email to