diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2013-06-24 22:34:22 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2013-06-24 22:34:22 +0200 |
| commit | 5377997abe18d1dc73d590f914ba21f670778c4a (patch) | |
| tree | a2092f3bd7b511c6fd791b33671cfb1be1439452 | |
| parent | 4168117e84eaa719006b2fc448a8060e2d6a3045 (diff) | |
Set agent in module scripts to either current user or system.
| -rw-r--r-- | src/main/java/com/c2kernel/process/module/Module.java | 2 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/process/module/ModuleScript.java | 15 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/scripting/Script.java | 8 |
3 files changed, 21 insertions, 4 deletions
diff --git a/src/main/java/com/c2kernel/process/module/Module.java b/src/main/java/com/c2kernel/process/module/Module.java index 16f2c29..a7a85bb 100644 --- a/src/main/java/com/c2kernel/process/module/Module.java +++ b/src/main/java/com/c2kernel/process/module/Module.java @@ -38,7 +38,7 @@ public class Module { for (ModuleScript script : scripts) {
if (script.shouldRun(event, isServer)) {
Logger.msg("Running "+script.event+" "+script.target+" script from "+name);
- Object result = script.getScript().execute();
+ Object result = script.getScript(ns).execute();
if (result instanceof ErrorInfo) {
ErrorInfo error = (ErrorInfo) result;
Logger.error(error.toString());
diff --git a/src/main/java/com/c2kernel/process/module/ModuleScript.java b/src/main/java/com/c2kernel/process/module/ModuleScript.java index 8612843..beed6f9 100644 --- a/src/main/java/com/c2kernel/process/module/ModuleScript.java +++ b/src/main/java/com/c2kernel/process/module/ModuleScript.java @@ -1,6 +1,7 @@ package com.c2kernel.process.module;
-import com.c2kernel.scripting.ErrorInfo;
+import com.c2kernel.entity.proxy.AgentProxy;
+import com.c2kernel.process.Gateway;
import com.c2kernel.scripting.Script;
import com.c2kernel.scripting.ScriptingEngineException;
@@ -22,8 +23,16 @@ public class ModuleScript { this.script = script;
}
- public Script getScript() throws ScriptingEngineException {
- return new Script(lang, script, ErrorInfo.class);
+ public Script getScript(String ns) throws ScriptingEngineException {
+ AgentProxy user = Gateway.getCurrentUser();
+ try {
+ if (user == null) user = (AgentProxy)Gateway.getProxyManager().getProxy(
+ Gateway.getLDAPLookup().getRoleManager().getAgentPath("system"));
+ } catch (Exception ex) {
+ throw new ScriptingEngineException("System agent unavailable");
+ }
+ return new Script(lang, ns+" "+target+" "+event, script, user);
+
}
public boolean shouldRun(String event, boolean isServer) {
diff --git a/src/main/java/com/c2kernel/scripting/Script.java b/src/main/java/com/c2kernel/scripting/Script.java index ec03cc3..4faade5 100644 --- a/src/main/java/com/c2kernel/scripting/Script.java +++ b/src/main/java/com/c2kernel/scripting/Script.java @@ -96,6 +96,14 @@ public class Script addOutput(null, returnType);
mScript = expr;
}
+
+ public Script(String lang, String name, String expr, AgentProxy agent) throws ScriptingEngineException
+ {
+ this(lang, expr, ErrorInfo.class);
+ mName = name;
+ addInputParam("agent", AgentProxy.class);
+ setInputParamValue("agent", agent);
+ }
public Script(String lang, String expr) throws ScriptingEngineException
{
|
