summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/predefined/agent')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/AgentPredefinedStepContainer.java47
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java136
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/RemoveAgent.java89
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/SetAgentPassword.java69
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/SetAgentRoles.java93
5 files changed, 0 insertions, 434 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/AgentPredefinedStepContainer.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/AgentPredefinedStepContainer.java
deleted file mode 100644
index 6ded51a..0000000
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/AgentPredefinedStepContainer.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * This file is part of the CRISTAL-iSE kernel.
- * Copyright (c) 2001-2014 The CRISTAL Consortium. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 3 of the License, or (at
- * your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- *
- * http://www.fsf.org/licensing/licenses/lgpl.html
- */
-package com.c2kernel.lifecycle.instance.predefined.agent;
-
-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 class AgentPredefinedStepContainer extends PredefinedStepContainer {
-
-
- @Override
- public void createChildren()
- {
- super.createChildren();
- predInit("CreateAgentFromDescription", "Create a new item using this item as its description", new CreateAgentFromDescription());
- predInit("RemoveAgent", "Deletes the Agent", new RemoveAgent());
- predInit("SetAgentPassword", "Changes the Agent's password", new SetAgentPassword());
- predInit("SetAgentRoles", "Sets the roles of the Agent", new SetAgentRoles());
- }
-}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java
deleted file mode 100644
index a2dfeae..0000000
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * This file is part of the CRISTAL-iSE kernel.
- * Copyright (c) 2001-2014 The CRISTAL Consortium. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 3 of the License, or (at
- * your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- *
- * http://www.fsf.org/licensing/licenses/lgpl.html
- */
-package com.c2kernel.lifecycle.instance.predefined.agent;
-
-import java.util.Arrays;
-
-import com.c2kernel.common.CannotManageException;
-import com.c2kernel.common.InvalidDataException;
-import com.c2kernel.common.ObjectAlreadyExistsException;
-import com.c2kernel.common.ObjectCannotBeUpdated;
-import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.common.PersistencyException;
-import com.c2kernel.entity.CorbaServer;
-import com.c2kernel.entity.agent.ActiveEntity;
-import com.c2kernel.lifecycle.instance.predefined.item.CreateItemFromDescription;
-import com.c2kernel.lookup.AgentPath;
-import com.c2kernel.lookup.ItemPath;
-import com.c2kernel.lookup.RolePath;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.property.PropertyArrayList;
-import com.c2kernel.utils.Logger;
-
-/**************************************************************************
- *
- * @author $Author: abranson $ $Date: 2005/10/13 08:13:58 $
- * @version $Revision: 1.47 $
- **************************************************************************/
-public class CreateAgentFromDescription extends CreateItemFromDescription
-{
- public CreateAgentFromDescription()
- {
- super();
- }
-
- /**
- * Params:
- * <ol><li>New Agent name</li>
- * <li>Description version to use</li>
- * <li>Comma-delimited Role names to assign to the agent. Must already exist.</li>
- * <li>Initial properties to set in the new Agent</li>
- * </ol>
- * @throws ObjectNotFoundException
- * @throws InvalidDataException The input parameters were incorrect
- * @throws ObjectAlreadyExistsException The Agent already exists
- * @throws CannotManageException The Agent could not be created
- * @throws ObjectCannotBeUpdated The addition of the new entries into the LookupManager failed
- * @see com.c2kernel.lifecycle.instance.predefined.item.CreateItemFromDescription#runActivityLogic(com.c2kernel.lookup.AgentPath, int, int, java.lang.String)
- */
- @Override
- protected String runActivityLogic(AgentPath agent, ItemPath item,
- int transitionID, String requestData) throws ObjectNotFoundException, InvalidDataException, ObjectAlreadyExistsException, CannotManageException, ObjectCannotBeUpdated {
-
- String[] params = getDataList(requestData);
- if (Logger.doLog(3)) Logger.msg(3, "CreateAgentFromDescription: called by "+agent+" on "+item+" with parameters "+Arrays.toString(params));
- if (params.length < 3 || params.length > 4)
- throw new InvalidDataException("CreateAgentFromDescription: Invalid parameters "+Arrays.toString(params));
-
- String newName = params[0];
- String descVer = params[1];
- String roles = params[2];
- PropertyArrayList initProps =
- params.length > 3 ? getInitProperties(params[3]):new PropertyArrayList();
-
- Logger.msg(1, "CreateAgentFromDescription::request() - Starting.");
-
- // check if given roles exist
- String[] roleArr = roles.split(",");
- for(int i=0; i<roleArr.length; i++) {
- RolePath thisRole = Gateway.getLookup().getRolePath(roleArr[i]);
- }
-
- // check if the path is already taken
- try {
- Gateway.getLookup().getAgentPath(newName);
- throw new ObjectAlreadyExistsException("The agent name " +newName+ " exists already.");
- } catch (ObjectNotFoundException ex) { }
-
- // generate new entity key
- Logger.msg(6, "CreateItemFromDescription - Requesting new agent path");
- AgentPath newAgentPath = new AgentPath(new ItemPath(), newName);
-
- // resolve the item factory
- Logger.msg(6, "CreateItemFromDescription - Resolving item factory");
-
- // create the Item object
- Logger.msg(3, "CreateItemFromDescription - Creating Item");
- CorbaServer factory = Gateway.getCorbaServer();
- if (factory == null) throw new CannotManageException("This process cannot create new Items");
- ActiveEntity newAgent = factory.createAgent(newAgentPath);
- Gateway.getLookupManager().add(newAgentPath);
-
- // initialise it with its properties and workflow
-
- Logger.msg(3, "CreateItemFromDescription - Initializing Item");
-
- try {
- newAgent.initialise(
- agent.getSystemKey(),
- Gateway.getMarshaller().marshall(getNewProperties(item, descVer, initProps, newName, agent)),
- Gateway.getMarshaller().marshall(getNewWorkflow(item, descVer)),
- Gateway.getMarshaller().marshall(getNewCollections(item, descVer))
- );
- } catch (PersistencyException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (Exception e) {
- throw new InvalidDataException("CreateAgentFromDescription: Problem initializing new Agent. See log: "+e.getMessage());
- }
-
- // add roles if given
-
- for(int i=1; i<roleArr.length; i++) {
- newAgent.addRole(roleArr[i]);
- }
-
- return requestData;
- }
-}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/RemoveAgent.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/RemoveAgent.java
deleted file mode 100644
index 41fc7ba..0000000
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/RemoveAgent.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * This file is part of the CRISTAL-iSE kernel.
- * Copyright (c) 2001-2014 The CRISTAL Consortium. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 3 of the License, or (at
- * your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- *
- * http://www.fsf.org/licensing/licenses/lgpl.html
- */
-package com.c2kernel.lifecycle.instance.predefined.agent;
-
-import com.c2kernel.common.CannotManageException;
-import com.c2kernel.common.InvalidDataException;
-import com.c2kernel.common.ObjectCannotBeUpdated;
-import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.common.PersistencyException;
-import com.c2kernel.lifecycle.instance.predefined.PredefinedStep;
-import com.c2kernel.lookup.AgentPath;
-import com.c2kernel.lookup.InvalidAgentPathException;
-import com.c2kernel.lookup.ItemPath;
-import com.c2kernel.lookup.RolePath;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.utils.Logger;
-
-public class RemoveAgent extends PredefinedStep {
-
- public RemoveAgent() {
- super();
- }
-
- @Override
- protected String runActivityLogic(AgentPath agent, ItemPath itemPath,
- int transitionID, String requestData) throws InvalidDataException {
-
- Logger.msg(1, "RemoveAgent::request() - Starting.");
-
- AgentPath targetAgent;
- try {
- targetAgent = new AgentPath(itemPath);
- } catch (InvalidAgentPathException ex) {
- throw new InvalidDataException("Could not resolve "+itemPath+" as an Agent.");
- }
- String agentName = targetAgent.getAgentName();
-
- //remove from roles
- for (RolePath role: targetAgent.getRoles()) {
- try {
- Gateway.getLookupManager().removeRole(targetAgent, role);
- } catch (ObjectCannotBeUpdated e) {
- Logger.error(e);
- throw new InvalidDataException("Error removing "+agentName+" from Role "+role.getName());
- } catch (ObjectNotFoundException e) {
- Logger.error(e);
- throw new InvalidDataException("Tried to remove "+agentName+" from Role "+role.getName()+" that doesn't exist.");
- } catch (CannotManageException e) {
- throw new InvalidDataException("Tried to alter roles in a non-server process.");
- }
- }
-
- //clear out all storages
- try {
- Gateway.getStorage().removeCluster(targetAgent, "", null);
- } catch (PersistencyException e) {
- Logger.error(e);
- throw new InvalidDataException("Error deleting storage for "+agentName);
- }
-
- //remove entity path
- try {
- Gateway.getLookupManager().delete(targetAgent);
- } catch (Exception e) {
- throw new InvalidDataException("Error deleting AgentPath for "+agentName);
- }
- return requestData;
-
- }
-
-}
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/SetAgentPassword.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/SetAgentPassword.java
deleted file mode 100644
index 3832337..0000000
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/SetAgentPassword.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * This file is part of the CRISTAL-iSE kernel.
- * Copyright (c) 2001-2014 The CRISTAL Consortium. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 3 of the License, or (at
- * your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- *
- * http://www.fsf.org/licensing/licenses/lgpl.html
- */
-package com.c2kernel.lifecycle.instance.predefined.agent;
-
-import java.security.NoSuchAlgorithmException;
-import java.util.Arrays;
-
-import com.c2kernel.common.CannotManageException;
-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.InvalidItemPathException;
-import com.c2kernel.lookup.ItemPath;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.utils.Logger;
-
-public class SetAgentPassword extends PredefinedStep {
-
- public SetAgentPassword() {
- super();
- }
-
- @Override
- protected String runActivityLogic(AgentPath agent, ItemPath item,
- int transitionID, String requestData) throws InvalidDataException, ObjectNotFoundException, ObjectCannotBeUpdated, CannotManageException {
-
- String[] params = getDataList(requestData);
- if (Logger.doLog(3)) Logger.msg(3, "SetAgentPassword: called by "+agent+" on "+item+" with parameters "+Arrays.toString(params));
- if (params.length != 1) throw new InvalidDataException("SetAgentPassword: Invalid parameters "+Arrays.toString(params));
-
- AgentPath targetAgent;
- try {
- targetAgent = new AgentPath(item);
- } catch (InvalidItemPathException ex) {
- throw new InvalidDataException("Can only set password on an Agent. "+item+" is an Item.");
- }
-
- try {
- Gateway.getLookupManager().setAgentPassword(targetAgent, params[0]);
- } 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/agent/SetAgentRoles.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/SetAgentRoles.java
deleted file mode 100644
index d326d05..0000000
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/SetAgentRoles.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * This file is part of the CRISTAL-iSE kernel.
- * Copyright (c) 2001-2014 The CRISTAL Consortium. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 3 of the License, or (at
- * your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- *
- * http://www.fsf.org/licensing/licenses/lgpl.html
- */
-package com.c2kernel.lifecycle.instance.predefined.agent;
-
-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.InvalidItemPathException;
-import com.c2kernel.lookup.ItemPath;
-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, ItemPath item,
- int transitionID, String requestData) throws InvalidDataException {
-
- Logger.msg(1, "SetAgentRoles::request() - Starting.");
-
- String[] params = getDataList(requestData);
- AgentPath targetAgent;
- try {
- targetAgent = new AgentPath(item);
- } catch (InvalidItemPathException ex) {
- throw new InvalidDataException("Could not resolve syskey "+item+" as an Agent.");
- }
-
- RolePath[] currentRoles = targetAgent.getRoles();
- ArrayList<RolePath> requestedRoles = new ArrayList<RolePath>();
- for (int i=0; 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 {
- Gateway.getLookupManager().removeRole(targetAgent, roleToRemove);
- } 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 {
- Gateway.getLookupManager().addRole(targetAgent, roleToAdd);
- } catch (Exception e) {
- Logger.error(e);
- throw new InvalidDataException("Error adding role "+roleToAdd.getName());
- }
-
- return requestData;
- }
-
-}