From 14e2fe28c2b7ecaae53a10d1aa7aa4b921b6efbc Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 11 Jun 2014 23:38:35 +0200 Subject: Separate PredefinedStepContainers for Agents and Items (and Server Item) --- .../instance/predefined/server/RemoveAgent.java | 61 ------------------ .../server/ServerPredefinedStepContainer.java | 41 ++++++++++++ .../predefined/server/SetAgentPassword.java | 52 ---------------- .../instance/predefined/server/SetAgentRoles.java | 72 ---------------------- 4 files changed, 41 insertions(+), 185 deletions(-) delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveAgent.java create mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/server/ServerPredefinedStepContainer.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentPassword.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentRoles.java (limited to 'src/main/java/com/c2kernel/lifecycle/instance/predefined/server') 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/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 requestedRoles = new ArrayList(); - if (params.length>1) - for (int i=1; i rolesToRemove = new ArrayList(); - 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; - } - -} -- cgit v1.2.3