diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2014-04-09 23:17:03 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2014-04-09 23:17:03 +0200 |
| commit | c85dc62591ab2ce9eec3fd93004ba474f7b1fb19 (patch) | |
| tree | 9f345977429325c920becccce083cafe439a8d8f | |
| parent | 6f1332fb24e04b6970fc636788d219ac0d133e9a (diff) | |
Expanded server predefined steps to include server and agent maintenance
steps. Fixes #174
14 files changed, 338 insertions, 21 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/Erase.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/Erase.java index 305128b..0f3a246 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/Erase.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/Erase.java @@ -20,9 +20,7 @@ import com.c2kernel.lookup.AgentPath; import com.c2kernel.lookup.DomainPath;
import com.c2kernel.lookup.EntityPath;
import com.c2kernel.lookup.Path;
-import com.c2kernel.persistency.ClusterStorage;
import com.c2kernel.process.Gateway;
-import com.c2kernel.property.Property;
import com.c2kernel.utils.Logger;
@@ -48,12 +46,8 @@ public class Erase extends PredefinedStep try
{
- // FIXME: This should search for the entity key. Name shouldn't be unique.
- // find entity name
- Property name = (Property)Gateway.getStorage().get(itemSysKey, ClusterStorage.PROPERTY+"/Name", null);
-
// get all domain paths
- Enumeration<Path> domPaths = Gateway.getLDAPLookup().search(new DomainPath(), name.getValue());
+ Enumeration<Path> domPaths = Gateway.getLDAPLookup().searchAliases(new EntityPath(itemSysKey));
while (domPaths.hasMoreElements()) {
DomainPath path = (DomainPath)domPaths.nextElement();
// delete them
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStep.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStep.java index 3cf73ba..d0fde2a 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStep.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStep.java @@ -26,6 +26,15 @@ public abstract class PredefinedStep extends Activity ******************************************************************************************************************************************************************************************************************************************************************************************************/
private boolean isPredefined = false;
+ public static final int DONE = 0;
+ public static final int AVAILABLE = 0;
+
+ public PredefinedStep() {
+ super();
+ getProperties().put("SchemaType", "PredefinedStepOutcome");
+ getProperties().put("SchemaVersion", "0");
+ }
+
@Override
public boolean getActive()
{
@@ -35,8 +44,8 @@ public abstract class PredefinedStep extends Activity return super.getActive();
}
- public static final int DONE = 0;
- public static final int AVAILABLE = 0;
+
+
@Override
protected String getDefaultSMName() {
return "PredefinedStep";
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStepContainer.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStepContainer.java index bfab876..43cc8ca 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStepContainer.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/PredefinedStepContainer.java @@ -37,8 +37,6 @@ public class PredefinedStepContainer extends CompositeActivity act.setName(alias);
act.setType(alias);
act.getProperties().put("Description", Description);
- act.getProperties().put("SchemaType", "PredefinedStepOutcome");
- act.getProperties().put("SchemaVersion", "0");
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/ServerPredefinedStepContainer.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/ServerPredefinedStepContainer.java index d11c05b..667ae5d 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/ServerPredefinedStepContainer.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/ServerPredefinedStepContainer.java @@ -3,6 +3,11 @@ package com.c2kernel.lifecycle.instance.predefined; import com.c2kernel.graph.model.GraphPoint;
import com.c2kernel.lifecycle.instance.predefined.entitycreation.CreateNewAgent;
import com.c2kernel.lifecycle.instance.predefined.entitycreation.CreateNewItem;
+import com.c2kernel.lifecycle.instance.predefined.server.AddDomainContext;
+import com.c2kernel.lifecycle.instance.predefined.server.RemoveAgent;
+import com.c2kernel.lifecycle.instance.predefined.server.RemoveDomainContext;
+import com.c2kernel.lifecycle.instance.predefined.server.SetAgentPassword;
+import com.c2kernel.lifecycle.instance.predefined.server.SetAgentRoles;
/**************************************************************************
*
@@ -21,18 +26,22 @@ public class ServerPredefinedStepContainer extends PredefinedStepContainer { public void createChildren()
{
super.createChildren();
- serverPredInit("CreateNewItem", "Creates a new Item in this Server without description.", new CreateNewItem(), "NewItem");
- serverPredInit("CreateNewAgent", "Creates a new Agent in this Server without description.", new CreateNewAgent(), "NewAgent");
+ 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());
+ //TODO: remove the following when agents have workflows
+ serverPredInit("RemoveAgent", "Deletes the named Agent in this Server.", new RemoveAgent());
+ serverPredInit("SetAgentPassword", "Changes the named Agent's password in this Server.", new SetAgentPassword());
+ serverPredInit("SetAgentRoles", "Sets the roles of the named Agent.", new SetAgentRoles());
}
- public void serverPredInit(String alias, String Description, PredefinedStep act, String schema)
+ public void serverPredInit(String alias, String Description, PredefinedStep act)
{
act.setName(alias);
act.setType(alias);
act.getProperties().put("Description", Description);
- act.getProperties().put("SchemaType", schema);
- act.getProperties().put("SchemaVersion", "0");
- act.getProperties().put("AgentRole", "Admin");
+ 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/entitycreation/CreateNewAgent.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java index b85cbc3..7715e2a 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java @@ -18,6 +18,7 @@ public class CreateNewAgent extends PredefinedStep public CreateNewAgent()
{
super();
+ getProperties().put("SchemaType", "Agent");
}
//requestdata is xmlstring
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewItem.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewItem.java index 2db4fe6..bddb39f 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewItem.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewItem.java @@ -21,6 +21,7 @@ public class CreateNewItem extends PredefinedStep public CreateNewItem()
{
super();
+ getProperties().put("SchemaType", "Item");
}
//requestdata is xmlstring
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 new file mode 100644 index 0000000..7595711 --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/AddDomainContext.java @@ -0,0 +1,48 @@ +package com.c2kernel.lifecycle.instance.predefined.server;
+
+import java.util.Stack;
+
+import com.c2kernel.common.InvalidDataException;
+import com.c2kernel.common.ObjectAlreadyExistsException;
+import com.c2kernel.common.ObjectCannotBeUpdated;
+import com.c2kernel.lifecycle.instance.predefined.PredefinedStep;
+import com.c2kernel.lookup.AgentPath;
+import com.c2kernel.lookup.DomainPath;
+import com.c2kernel.process.Gateway;
+import com.c2kernel.utils.Logger;
+
+public class AddDomainContext extends PredefinedStep {
+
+ public AddDomainContext() {
+ super();
+ }
+
+ @Override
+ protected String runActivityLogic(AgentPath agent, int itemSysKey,
+ int transitionID, String requestData) throws InvalidDataException {
+
+ Logger.msg(1, "AddDomainContext::request() - Starting.");
+
+ DomainPath pathToAdd = new DomainPath(getDataList(requestData)[0]);
+ if (pathToAdd.exists())
+ throw new InvalidDataException("Context "+pathToAdd+" already exists", "");
+ // collect parent paths if they don't exist
+ Stack<DomainPath> pathsToAdd = new Stack<DomainPath>();
+ while(pathToAdd!= null && !pathToAdd.exists()) {
+ pathsToAdd.push(pathToAdd);
+ pathToAdd = pathToAdd.getParent();
+ }
+ while(!pathsToAdd.empty()) {
+ pathToAdd = pathsToAdd.pop();
+ try {
+ Gateway.getLDAPLookup().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(), "");
+ }
+ }
+ 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 new file mode 100644 index 0000000..75fe80b --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveAgent.java @@ -0,0 +1,61 @@ +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.getLDAPLookup().getRoleManager().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.getLDAPLookup().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 new file mode 100644 index 0000000..77a7545 --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java @@ -0,0 +1,41 @@ +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.DomainPath;
+import com.c2kernel.process.Gateway;
+import com.c2kernel.utils.Logger;
+
+public class RemoveDomainContext extends PredefinedStep {
+ public RemoveDomainContext() {
+ super();
+ }
+
+ @Override
+ protected String runActivityLogic(AgentPath agent, int itemSysKey,
+ int transitionID, String requestData) throws InvalidDataException {
+
+ Logger.msg(1, "RemoveDomainContext::request() - Starting.");
+
+ DomainPath pathToDelete = new DomainPath(getDataList(requestData)[0]);
+ if (!pathToDelete.exists())
+ throw new InvalidDataException("Context "+pathToDelete+" does not exist", "");
+ try {
+ pathToDelete.getEntity();
+ throw new InvalidDataException("Path "+pathToDelete+" is an Entity. Use its own Erase step instead, or RemoveAgent.", "");
+ } catch (ObjectNotFoundException ex) { }
+ if (pathToDelete.getChildren().hasMoreElements())
+ throw new InvalidDataException("Context "+pathToDelete+" is not empty. Cannot delete.", "");
+
+ try {
+ Gateway.getLDAPLookup().delete(pathToDelete);
+ } catch (ObjectCannotBeUpdated e) {
+ Logger.error(e);
+ throw new InvalidDataException("Exception deleting path"+pathToDelete+": "+e.getMessage(), "");
+ }
+ return requestData;
+ }
+}
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 new file mode 100644 index 0000000..bb19030 --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentPassword.java @@ -0,0 +1,52 @@ +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.getLDAPLookup().getRoleManager().getAgentPath(params[0]);
+ } catch (ObjectNotFoundException e) {
+ throw new InvalidDataException("Agent "+params[0]+" not found", "");
+ }
+
+ try {
+ Gateway.getLDAPLookup().getRoleManager().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 new file mode 100644 index 0000000..51be40a --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentRoles.java @@ -0,0 +1,74 @@ +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.LDAPRoleManager;
+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.getLDAPLookup().getRoleManager().getAgentPath(params[0]);
+ } catch (ObjectNotFoundException e) {
+ throw new InvalidDataException("Agent "+params[0]+" not found", "");
+ }
+
+ LDAPRoleManager roleMan = Gateway.getLDAPLookup().getRoleManager();
+ 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(roleMan.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;
+ }
+
+}
diff --git a/src/main/java/com/c2kernel/lookup/LDAPLookup.java b/src/main/java/com/c2kernel/lookup/LDAPLookup.java index 08a80b6..4ea6e68 100644 --- a/src/main/java/com/c2kernel/lookup/LDAPLookup.java +++ b/src/main/java/com/c2kernel/lookup/LDAPLookup.java @@ -352,10 +352,6 @@ public class LDAPLookup else
return search(start.getFullDN(),LDAPConnection.SCOPE_SUB,"(&"+query.toString()+")",searchCons);
}
-
- public LDAPPathSet searchType(Path start, Path type) {
- return null;
- }
protected LDAPPathSet search(String startDN, int scope, String filter, LDAPSearchConstraints searchCons)
{
@@ -396,6 +392,14 @@ public class LDAPLookup searchCons.setDereference(LDAPSearchConstraints.DEREF_NEVER);
return search(start.getFullDN(), LDAPConnection.SCOPE_SUB, "objectClass=aliasObject", searchCons);
}
+
+ public LDAPPathSet searchAliases(EntityPath entity) {
+ LDAPSearchConstraints searchCons = new LDAPSearchConstraints();
+ searchCons.setBatchSize(0);
+ searchCons.setDereference(LDAPSearchConstraints.DEREF_NEVER);
+ return search(new DomainPath().getFullDN(), LDAPConnection.SCOPE_SUB, "(&(objectClass=aliasObject)(aliasedObjectName="+
+ LDAPLookupUtils.escapeDN(entity.getFullDN())+"))", searchCons);
+ }
public boolean exists(Path path) {
return LDAPLookupUtils.exists(getConnection(), path.getFullDN());
diff --git a/src/main/java/com/c2kernel/lookup/LDAPRoleManager.java b/src/main/java/com/c2kernel/lookup/LDAPRoleManager.java index b2cffc6..f40cd53 100644 --- a/src/main/java/com/c2kernel/lookup/LDAPRoleManager.java +++ b/src/main/java/com/c2kernel/lookup/LDAPRoleManager.java @@ -1,5 +1,6 @@ package com.c2kernel.lookup;
+import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Enumeration;
@@ -207,5 +208,17 @@ public class LDAPRoleManager { // set attribute
LDAPLookupUtils.setAttributeValue(mLdap.getConnection(), roleEntry, "jobList", hasJobList?"TRUE":"FALSE");
}
+
+ public void setAgentPassword(AgentPath agent, String newPassword) throws ObjectNotFoundException, ObjectCannotBeUpdated, NoSuchAlgorithmException {
+ String encPasswd = AgentPath.generateUserPassword(newPassword, "SHA");
+ LDAPEntry agentEntry;
+ try {
+ agentEntry = LDAPLookupUtils.getEntry(mLdap.getConnection(), agent.getFullDN());
+ } catch (ObjectNotFoundException e) {
+ throw new ObjectNotFoundException("Agent "+agent.getAgentName()+" does not exist", "");
+ }
+ LDAPLookupUtils.setAttributeValue(mLdap.getConnection(), agentEntry, "userPassword", encPasswd);
+
+ }
}
diff --git a/src/test/resources/NewServerPredefStepTest.js b/src/test/resources/NewServerPredefStepTest.js new file mode 100644 index 0000000..64d3d29 --- /dev/null +++ b/src/test/resources/NewServerPredefStepTest.js @@ -0,0 +1,12 @@ +var serverPath=new com.c2kernel.lookup.DomainPath("/servers/pcuwe04.cern.ch");
+var serverItem=proxy.getProxy(serverPath);
+
+var predef = "AddDomainContext"; var params = new Array(1); params[0] = "/test/context"; agent.execute(serverItem, predef, params);
+var predef = "RemoveDomainContext"; agent.execute(serverItem, predef, params);
+params[0] = "/test"; agent.execute(serverItem, predef, params);
+var predef = "SetAgentPassword"; params = Array(2); params[0] = "dev"; params[1] = "hunter2"; agent.execute(serverItem, predef, params);
+com.c2kernel.process.Gateway.login("dev", "hunter2");
+var predef = "SetAgentRoles"; agent.execute(serverItem, predef, params); //Role shouldn't exist
+params = Array(3); params[0] = "dev"; params[1] = "Admin"; params[2] = "UserCode"; agent.execute(serverItem, predef, params);
+params = Array(2); params[0] = "dev"; params[1] = "Admin"; agent.execute(serverItem, predef, params);
+var predef = "RemoveAgent"; var params = new Array(1); params[0] = "dev"; agent.execute(serverItem, predef, params);
|
