From 9bd010f09cff41f5d25763406a0ac4d61815a8c5 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 9 Apr 2014 16:37:26 +0200 Subject: Expanded server predefined steps to include server and agent maintenance steps. Fixes #174 Fixed schema of CreateNewItem and CreateNewAgent. --- .../predefined/server/RemoveDomainContext.java | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java (limited to 'src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java') 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..8bfa016 --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java @@ -0,0 +1,47 @@ +package com.c2kernel.lifecycle.instance.predefined.server; + +import com.c2kernel.common.AccessRightsException; +import com.c2kernel.common.InvalidDataException; +import com.c2kernel.common.InvalidTransitionException; +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 + public void request(AgentPath agent, int transitionID, String requestData) + throws AccessRightsException, + InvalidTransitionException, + InvalidDataException + { + Logger.msg(1, "RemoveDomainContext::request() - Starting."); + + checkAccessRights(agent); + + 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(), ""); + } + sendEventStoreOutcome(transitionID, requestData, agent); + } +} -- cgit v1.2.3