diff options
author | Endi S. Dewata <edewata@redhat.com> | 2016-02-02 04:15:02 +0100 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2016-02-03 01:57:21 +0100 |
commit | ce872456a09f5c5d146c6cb465b2466ad3ddc73d (patch) | |
tree | e0575b424ebc4cbd46577a1b02a0ef5a3ae7727c /base/java-tools/src/com/netscape | |
parent | d42f39334ce4b4f5fa89707bfb6145039ff04579 (diff) | |
download | pki-ce872456a09f5c5d146c6cb465b2466ad3ddc73d.tar.gz pki-ce872456a09f5c5d146c6cb465b2466ad3ddc73d.tar.xz pki-ce872456a09f5c5d146c6cb465b2466ad3ddc73d.zip |
Fixed TPS token state transitions.
The TPS service has been modified to provide a list of allowed
state transitions based on the current token state. The TPS UI
was modified to display only the allowed state transitions when
changing the token status.
The allowed state transition list has been modified to remove
invalid token transitions including:
* UNINITIALIZED -> FOUND
* UNINITIALIZED -> TEMP_LOST_PERM_LOST
The token FOUND state has been renamed to ACTIVE for clarity.
The token TEMP_LOST_PERM_LOST state has been merged into
PERM_LOST since they are identical in the database.
https://fedorahosted.org/pki/ticket/1289
https://fedorahosted.org/pki/ticket/1291
https://fedorahosted.org/pki/ticket/1684
Diffstat (limited to 'base/java-tools/src/com/netscape')
-rw-r--r-- | base/java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java | 2 | ||||
-rw-r--r-- | base/java-tools/src/com/netscape/cmstools/tps/token/TokenModifyCLI.java | 60 |
2 files changed, 54 insertions, 8 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java index e7dd6a308..328490a49 100644 --- a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java @@ -18,6 +18,7 @@ package com.netscape.cmstools.tps.token; +import org.apache.commons.lang.StringUtils; import org.jboss.resteasy.plugins.providers.atom.Link; import com.netscape.certsrv.tps.token.TokenClient; @@ -54,6 +55,7 @@ public class TokenCLI extends CLI { if (token.getUserID() != null) System.out.println(" User ID: " + token.getUserID()); if (token.getType() != null) System.out.println(" Type: " + token.getType()); if (token.getStatus() != null) System.out.println(" Status: " + token.getStatus()); + if (token.getNextStates() != null) System.out.println(" Next States: " + StringUtils.join(token.getNextStates(), ", ")); if (token.getAppletID() != null) System.out.println(" Applet ID: " + token.getAppletID()); if (token.getKeyInfo() != null) System.out.println(" Key Info: " + token.getKeyInfo()); if (token.getPolicy() != null) System.out.println(" Policy: " + token.getPolicy()); diff --git a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenModifyCLI.java index 38e9fb00d..071d15000 100644 --- a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenModifyCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenModifyCLI.java @@ -24,6 +24,7 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; 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; @@ -65,6 +66,10 @@ public class TokenModifyCLI extends CLI { option = new Option(null, "policy", true, "Policy"); option.setArgName("Policy"); options.addOption(option); + + option = new Option(null, "status", true, "Status"); + option.setArgName("Status"); + options.addOption(option); } public void execute(String[] args) throws Exception { @@ -94,17 +99,56 @@ public class TokenModifyCLI extends CLI { System.exit(-1); } - String tokenID = cmdArgs[0]; - TokenData tokenData = new TokenData(); + boolean modify = false; + + String tokenID = cmdArgs[0]; tokenData.setID(tokenID); - tokenData.setUserID(cmd.getOptionValue("user")); - tokenData.setType(cmd.getOptionValue("type")); - tokenData.setAppletID(cmd.getOptionValue("applet")); - tokenData.setKeyInfo(cmd.getOptionValue("key-info")); - tokenData.setPolicy(cmd.getOptionValue("policy")); - tokenData = tokenCLI.tokenClient.modifyToken(tokenID, tokenData); + String userID = cmd.getOptionValue("user"); + if (userID != null) { + tokenData.setUserID(userID); + modify = true; + } + + String type = cmd.getOptionValue("type"); + if (type != null) { + tokenData.setType(type); + modify = true; + } + + String appletID = cmd.getOptionValue("applet"); + if (appletID != null) { + tokenData.setAppletID(appletID); + modify = true; + } + + String keyInfo = cmd.getOptionValue("key-info"); + if (keyInfo != null) { + tokenData.setKeyInfo(keyInfo); + modify = true; + } + + String policy = cmd.getOptionValue("policy"); + if (policy != null) { + tokenData.setPolicy(policy); + modify = true; + } + + if (modify) { + tokenData = tokenCLI.tokenClient.modifyToken(tokenID, tokenData); + } + + String status = cmd.getOptionValue("status"); + if (status != null) { + tokenData = tokenCLI.tokenClient.changeTokenStatus(tokenID, TokenStatus.valueOf(status)); + } + + if (!modify && status == null) { + System.err.println("Error: No modifications specified."); + printHelp(); + System.exit(-1); + } MainCLI.printMessage("Modified token \"" + tokenID + "\""); |