diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2013-05-17 11:44:46 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2013-05-17 11:44:46 +0200 |
| commit | be9aa9c636204051381f4efe4b895dff968f0c4d (patch) | |
| tree | 71e1c27aecd0c6231a216fb37df039549a53f193 /src/main/java/com/c2kernel/process/module | |
| parent | d6919d4772e79c3de3df8a69355b84e1677c011f (diff) | |
Add Role management support to module, instead of just creating one if
it's not already there.
Supports 'jobList' attribute to enable job pushing
Diffstat (limited to 'src/main/java/com/c2kernel/process/module')
| -rw-r--r-- | src/main/java/com/c2kernel/process/module/Module.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/main/java/com/c2kernel/process/module/Module.java b/src/main/java/com/c2kernel/process/module/Module.java index 91c43b2..33180ae 100644 --- a/src/main/java/com/c2kernel/process/module/Module.java +++ b/src/main/java/com/c2kernel/process/module/Module.java @@ -9,8 +9,10 @@ import com.c2kernel.lifecycle.instance.predefined.entitycreation.Dependency; import com.c2kernel.lifecycle.instance.predefined.entitycreation.DependencyMember;
import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewAgent;
import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewItem;
+import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewRole;
import com.c2kernel.lifecycle.instance.predefined.entitycreation.Outcome;
import com.c2kernel.lookup.DomainPath;
+import com.c2kernel.lookup.RolePath;
import com.c2kernel.process.Bootstrap;
import com.c2kernel.process.Gateway;
import com.c2kernel.scripting.ErrorInfo;
@@ -74,6 +76,7 @@ public class Module { public void importAll(ItemProxy serverEntity, String moduleXML) throws Exception {
addModuleItem(moduleXML);
+ int systemAgentId = Gateway.getLDAPLookup().getRoleManager().getAgentPath("system").getSysKey();
for (ModuleImport thisImp : imports.list) {
Logger.msg(1, "Checking for "+thisImp.name+" "+thisImp.getClass().getSimpleName());
if (thisImp instanceof ModuleResource) {
@@ -93,7 +96,21 @@ public class Module { continue;
} catch (ObjectNotFoundException ex) { }
Logger.msg("Module.importAll() - Item '"+thisItem.name+"' not found. Creating.");
- thisItem.create(Gateway.getLDAPLookup().getRoleManager().getAgentPath("system").getSysKey());
+ thisItem.create(systemAgentId);
+ }
+ else if (thisImp instanceof NewRole) {
+ NewRole thisRole = (NewRole)thisImp;
+ RolePath rolePath;
+ try {
+ rolePath = Gateway.getLDAPLookup().getRoleManager().getRolePath(thisRole.name);
+ if (rolePath.hasJobList() != thisRole.jobList) {
+ Logger.msg("Module.importAll() - Role '"+thisRole.name+"' has incorrect joblist settings. Correcting.");
+ rolePath.setHasJobList(thisRole.jobList);
+ }
+ } catch (ObjectNotFoundException ex) {
+ Logger.msg("Module.importAll() - Role '"+thisRole.name+"' not found. Creating.");
+ thisRole.create(systemAgentId);
+ }
}
else if (thisImp instanceof NewAgent) {
NewAgent thisAgent = (NewAgent)thisImp;
@@ -103,7 +120,7 @@ public class Module { continue;
} catch (ObjectNotFoundException ex) { }
Logger.msg("Module.importAll() - User '"+thisAgent.name+"' not found. Creating.");
- thisAgent.create(Gateway.getLDAPLookup().getRoleManager().getAgentPath("system").getSysKey());
+ thisAgent.create(systemAgentId);
}
}
}
|
