diff options
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/predefined/server')
6 files changed, 49 insertions, 187 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/AddDomainContext.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/AddDomainContext.java index a931143..585f96f 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/AddDomainContext.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/AddDomainContext.java @@ -2,6 +2,7 @@ package com.c2kernel.lifecycle.instance.predefined.server; import java.util.Stack;
+import com.c2kernel.common.CannotManageException;
import com.c2kernel.common.InvalidDataException;
import com.c2kernel.common.ObjectAlreadyExistsException;
import com.c2kernel.common.ObjectCannotBeUpdated;
@@ -35,12 +36,14 @@ public class AddDomainContext extends PredefinedStep { while(!pathsToAdd.empty()) {
pathToAdd = pathsToAdd.pop();
try {
- Gateway.getLookup().add(pathToAdd);
+ Gateway.getLookupManager().add(pathToAdd);
} catch (ObjectAlreadyExistsException e) {
Logger.error("Context "+pathToAdd+" inconsistently exists.");
} catch (ObjectCannotBeUpdated e) {
Logger.error(e);
throw new InvalidDataException("Exception adding path "+pathToAdd+": "+e.getMessage(), "");
+ } catch (CannotManageException e) {
+ throw new InvalidDataException("Cannot alter directory in a non-server process", "");
}
}
return requestData;
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveAgent.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveAgent.java deleted file mode 100644 index 19641fe..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveAgent.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.server;
-
-import com.c2kernel.common.InvalidDataException;
-import com.c2kernel.common.ObjectCannotBeUpdated;
-import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.lifecycle.instance.predefined.PredefinedStep;
-import com.c2kernel.lookup.AgentPath;
-import com.c2kernel.lookup.RolePath;
-import com.c2kernel.persistency.ClusterStorageException;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.utils.Logger;
-
-public class RemoveAgent extends PredefinedStep {
-
- public RemoveAgent() {
- super();
- }
-
- @Override
- protected String runActivityLogic(AgentPath agent, int itemSysKey,
- int transitionID, String requestData) throws InvalidDataException {
-
- Logger.msg(1, "RemoveAgent::request() - Starting.");
-
- String[] params = getDataList(requestData);
- AgentPath targetAgent;
- try {
- targetAgent = Gateway.getLookup().getAgentPath(params[0]);
- } catch (ObjectNotFoundException e) {
- throw new InvalidDataException("Agent "+params[0]+" not found", "");
- }
- //remove from roles
- for (RolePath role: targetAgent.getRoles()) {
- try {
- role.removeAgent(targetAgent);
- } catch (ObjectCannotBeUpdated e) {
- Logger.error(e);
- throw new InvalidDataException("Error removing "+params[0]+" from Role "+role.getName(), "");
- } catch (ObjectNotFoundException e) {
- Logger.error(e);
- throw new InvalidDataException("Tried to remove "+params[0]+" from Role "+role.getName()+" that doesn't exist.", "");
- }
- }
- //clear out all storages
- try {
- Gateway.getStorage().removeCluster(targetAgent.getSysKey(), "", null);
- } catch (ClusterStorageException e) {
- Logger.error(e);
- throw new InvalidDataException("Error deleting storage for "+params[0], "");
- }
- //remove entity path
- try {
- Gateway.getLookup().delete(targetAgent);
- } catch (ObjectCannotBeUpdated e) {
- throw new InvalidDataException("Error deleting AgentPath for "+params[0], "");
- }
- return requestData;
-
- }
-
-}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java index a55f7dd..956166a 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java @@ -1,5 +1,6 @@ package com.c2kernel.lifecycle.instance.predefined.server;
+import com.c2kernel.common.CannotManageException;
import com.c2kernel.common.InvalidDataException;
import com.c2kernel.common.ObjectCannotBeUpdated;
import com.c2kernel.common.ObjectNotFoundException;
@@ -31,10 +32,12 @@ public class RemoveDomainContext extends PredefinedStep { throw new InvalidDataException("Context "+pathToDelete+" is not empty. Cannot delete.", "");
try {
- Gateway.getLookup().delete(pathToDelete);
+ Gateway.getLookupManager().delete(pathToDelete);
} catch (ObjectCannotBeUpdated e) {
Logger.error(e);
throw new InvalidDataException("Exception deleting path"+pathToDelete+": "+e.getMessage(), "");
+ } catch (CannotManageException e) {
+ throw new InvalidDataException("Cannot alter directory in a non-server process", "");
}
return requestData;
}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/ServerPredefinedStepContainer.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/ServerPredefinedStepContainer.java new file mode 100644 index 0000000..412c468 --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/ServerPredefinedStepContainer.java @@ -0,0 +1,41 @@ +package com.c2kernel.lifecycle.instance.predefined.server;
+
+import com.c2kernel.graph.model.GraphPoint;
+import com.c2kernel.lifecycle.instance.predefined.PredefinedStep;
+import com.c2kernel.lifecycle.instance.predefined.PredefinedStepContainer;
+
+/**************************************************************************
+ *
+ * $Revision: 1.2 $
+ * $Date: 2005/06/02 10:19:33 $
+ *
+ * Copyright (C) 2003 CERN - European Organization for Nuclear Research
+ * All rights reserved.
+ **************************************************************************/
+
+// public static final String codeRevision = "$Revision: 1.2 $ $Date: 2005/06/02 10:19:33 $ $Author: abranson $";
+public class ServerPredefinedStepContainer extends PredefinedStepContainer {
+
+
+ @Override
+ public void createChildren()
+ {
+ super.createChildren();
+ serverPredInit("CreateNewItem", "Creates a new Item in this Server without description.", new CreateNewItem());
+ serverPredInit("CreateNewAgent", "Creates a new Agent in this Server without description.", new CreateNewAgent());
+ serverPredInit("RemoveDomainContext", "Deletes an existing context in the domain tree, but only if empty", new RemoveDomainContext());
+ serverPredInit("AddDomainContext", "Creates an empty domain context in the tree", new AddDomainContext());
+ }
+
+ public void serverPredInit(String alias, String Description, PredefinedStep act)
+ {
+ act.setName(alias);
+ act.setType(alias);
+ act.getProperties().put("Description", Description);
+ act.getProperties().put("Agent Role", "Admin");
+ act.setCentrePoint(new GraphPoint());
+ act.setIsPredefined(true);
+ addChild(act, new GraphPoint(100, 75 * ++num));
+ }
+
+}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentPassword.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentPassword.java deleted file mode 100644 index 8a2863a..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentPassword.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.server;
-
-import java.security.NoSuchAlgorithmException;
-
-import com.c2kernel.common.InvalidDataException;
-import com.c2kernel.common.ObjectCannotBeUpdated;
-import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.lifecycle.instance.predefined.PredefinedStep;
-import com.c2kernel.lookup.AgentPath;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.utils.Logger;
-
-public class SetAgentPassword extends PredefinedStep {
-
- public SetAgentPassword() {
- super();
- }
-
- @Override
- protected String runActivityLogic(AgentPath agent, int itemSysKey,
- int transitionID, String requestData) throws InvalidDataException {
-
- Logger.msg(1, "SetAgentPassword::request() - Starting.");
-
- String[] params = getDataList(requestData);
- if (params.length!=2)
- throw new InvalidDataException("Requires 2 params: agent name and new password", "");
- AgentPath targetAgent;
- try {
- targetAgent = Gateway.getLookup().getAgentPath(params[0]);
- } catch (ObjectNotFoundException e) {
- throw new InvalidDataException("Agent "+params[0]+" not found", "");
- }
-
- try {
- Gateway.getLookup().setAgentPassword(targetAgent, params[1]);
- } catch (ObjectNotFoundException e) {
- Logger.error(e);
- throw new InvalidDataException("Agent "+params[0]+" not found.", "");
- } catch (ObjectCannotBeUpdated e) {
- Logger.error(e);
- throw new InvalidDataException("Error updating LDAP entry.", "");
- } catch (NoSuchAlgorithmException e) {
- Logger.error(e);
- throw new InvalidDataException("Cryptographic libraries for password hashing not found.", "");
- }
-
- params[1] = "REDACTED"; // censor user's password from outcome
- return bundleData(params);
- }
-
-}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentRoles.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentRoles.java deleted file mode 100644 index 19c6bd8..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentRoles.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.server;
-
-import java.util.ArrayList;
-
-import com.c2kernel.common.InvalidDataException;
-import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.lifecycle.instance.predefined.PredefinedStep;
-import com.c2kernel.lookup.AgentPath;
-import com.c2kernel.lookup.RolePath;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.utils.Logger;
-
-public class SetAgentRoles extends PredefinedStep {
-
- public SetAgentRoles() {
- super();
- }
-
- @Override
- protected String runActivityLogic(AgentPath agent, int itemSysKey,
- int transitionID, String requestData) throws InvalidDataException {
-
- Logger.msg(1, "SetAgentRoles::request() - Starting.");
-
- String[] params = getDataList(requestData);
- AgentPath targetAgent;
- try {
- targetAgent = Gateway.getLookup().getAgentPath(params[0]);
- } catch (ObjectNotFoundException e) {
- throw new InvalidDataException("Agent "+params[0]+" not found", "");
- }
-
- RolePath[] currentRoles = targetAgent.getRoles();
- ArrayList<RolePath> requestedRoles = new ArrayList<RolePath>();
- if (params.length>1)
- for (int i=1; i<params.length; i++)
- try {
- requestedRoles.add(Gateway.getLookup().getRolePath(params[i]));
- } catch (ObjectNotFoundException e) {
- throw new InvalidDataException("Role "+params[i]+" not found", "");
- }
-
- ArrayList<RolePath> rolesToRemove = new ArrayList<RolePath>();
- for (RolePath existingRole : currentRoles) { //
- if (requestedRoles.contains(existingRole)) // if we have it, and it's requested, then it will be kept
- requestedRoles.remove(existingRole); // so remove it from request - this will be left with roles to be added
- else
- rolesToRemove.add(existingRole); // else this role will be removed
- }
-
- // remove roles not in new list
- for (RolePath roleToRemove : rolesToRemove)
- try {
- roleToRemove.removeAgent(targetAgent);
- } catch (Exception e) {
- Logger.error(e);
- throw new InvalidDataException("Error removing role "+roleToRemove.getName(), "");
- }
-
- // add requested roles we don't already have
- for (RolePath roleToAdd : requestedRoles)
- try {
- roleToAdd.addAgent(targetAgent);
- } catch (Exception e) {
- Logger.error(e);
- throw new InvalidDataException("Error adding role "+roleToAdd.getName(), "");
- }
-
- return requestData;
- }
-
-}
|
