- job_reg allows to explicitly set job's owner
authorJiří Filipovič <fila@ics.muni.cz>
Thu, 6 Sep 2012 08:56:53 +0000 (08:56 +0000)
committerJiří Filipovič <fila@ics.muni.cz>
Thu, 6 Sep 2012 08:56:53 +0000 (08:56 +0000)
- added new sources: CloudManager, VMManager, VMSystem
- removed sources from VMRunning and VMShutdown events

org.glite.lb.client/examples/job_reg.c
org.glite.lb.client/src/EventAttrNames.pl
org.glite.lb.common/interface/context.h
org.glite.lb.common/src/context.c
org.glite.lb.server/src/ws_typemap.h
org.glite.lb.server/src/ws_typeref.c.T
org.glite.lb.state-machine/src/process_event_virtual_machine.c
org.glite.lb.types/events.T
org.glite.lb.ws-interface/src/LBTypes.xml.T

index 2f87adf..106f2f9 100644 (file)
@@ -35,7 +35,7 @@ extern int opterr,optind;
 
 static void usage(char *me)
 {
-       fprintf(stderr,"usage: %s [-m bkserver] [-x|-X non-default_sock_path] [-j dg_jobid] [-s source_id] [-n num_subjobs [-S][-C]] [-P] [-l jdl_file] [-e seed] [-E]\n", me);
+       fprintf(stderr,"usage: %s [-m bkserver] [-x|-X non-default_sock_path] [-j dg_jobid] [-s source_id] [-o owner] [-n num_subjobs [-S][-C]] [-P] [-l jdl_file] [-e seed] [-E]\n", me);
 }
 
 int main(int argc, char *argv[])
@@ -55,7 +55,7 @@ int main(int argc, char *argv[])
        opterr = 0;
 
        do {
-               switch (getopt(argc,argv,"xX:s:j:m:n:SCl:e:PcvE")) {
+               switch (getopt(argc,argv,"xX:s:j:m:o:n:SCl:e:PcvE")) {
                        case 'x': lbproxy = 1; break;
                        case 'X': lbproxy = 1; 
                                  edg_wll_SetParam(ctx, EDG_WLL_PARAM_LBPROXY_STORE_SOCK, optarg);
@@ -63,6 +63,7 @@ int main(int argc, char *argv[])
                        case 's': src = (char *) strdup(optarg); break;
                        case 'j': job = (char *) strdup(optarg); break;
                        case 'm': server = strdup(optarg); break;
+                       case 'o': edg_wll_SetParam(ctx, EDG_WLL_PARAM_LBPROXY_USER, optarg); break;
                        case 'n': num_subjobs = atoi(optarg); break;
                        case 'S': reg_subjobs = 1; break;
                        case 'C': collection = 1; break;
index 76ba113..f6c4fcf 100644 (file)
        REQUIRE
        HOSTNAME
        ID
-       VM_SOURCE
        MANAGER
 /;
index 94dbf5d..d90f7bf 100644 (file)
@@ -104,6 +104,9 @@ typedef enum _edg_wll_Source {
        EDG_WLL_SOURCE_PBS_SMOM,
        EDG_WLL_SOURCE_PBS_MOM,
        EDG_WLL_SOURCE_PBS_SCHEDULER,
+       EDG_WLL_SOURCE_CLOUD_MANAGER,
+       EDG_WLL_SOURCE_VM_MANAGER,
+       EDG_WLL_SOURCE_VM_SYSTEM,
        EDG_WLL_SOURCE__LAST            /* marker, for internal use only */
 } edg_wll_Source;
 
index 4a02168..1c68b24 100644 (file)
@@ -360,7 +360,10 @@ static const char* const srcNames[] = {
        "PBSServer",
        "PBSMomSuperior",
        "PBSMom",
-       "PBSScheduler"
+       "PBSScheduler",
+       "CloudManager",
+       "VMManager",
+       "VMSystem"
 };
 
 edg_wll_Source edg_wll_StringToSource(const char *name)
index 65e4712..5701e2f 100644 (file)
@@ -93,6 +93,9 @@ limitations under the License.
 #define PBSsMom                lbt__eventSource__PBSsMom
 #define PBSMom         lbt__eventSource__PBSMom
 #define PBSScheduler   lbt__eventSource__PBSScheduler
+#define CloudManager   lbt__eventSource__CloudManager
+#define VMManager      lbt__eventSource__VMManager
+#define VMSystem       lbt__eventSource__VMSystem
 
 #endif
 
index cdf8b2c..561b55e 100644 (file)
@@ -871,6 +871,9 @@ static void edg_wll_SoapToSource(enum lbt__eventSource in, edg_wll_Source *out)
         case PBSsMom: *out = EDG_WLL_SOURCE_PBS_SMOM; break;
         case PBSMom: *out = EDG_WLL_SOURCE_PBS_MOM; break;
         case PBSScheduler: *out = EDG_WLL_SOURCE_PBS_SCHEDULER; break;
+       case CloudManager: *out = EDG_WLL_SOURCE_CLOUD_MANAGER; break;
+       case VMManager: *out = EDG_WLL_SOURCE_VM_MANAGER; break;
+       case VMSystem: *out = EDG_WLL_SOURCE_VM_SYSTEM; break;
         default: assert(0); break;
         }
 }
@@ -1002,6 +1005,10 @@ static void edg_wll_SourceToSoap(edg_wll_Source in, enum lbt__eventSource *out)
                case EDG_WLL_SOURCE_PBS_SMOM: *out = PBSsMom; break;
                case EDG_WLL_SOURCE_PBS_MOM: *out = PBSMom; break;
                case EDG_WLL_SOURCE_PBS_SCHEDULER: *out = PBSScheduler; break;
+               case EDG_WLL_SOURCE_CLOUD_MANAGER: *out = CloudManager; break;
+               case EDG_WLL_SOURCE_VM_MANAGER: *out = VMManager; break;
+               case EDG_WLL_SOURCE_VM_SYSTEM: *out = VMSystem; break;
+
                case EDG_WLL_SOURCE_NONE:
                case EDG_WLL_SOURCE__LAST:
                default:
index 27beb0c..461e8fd 100644 (file)
@@ -92,12 +92,13 @@ int processEvent_VirtualMachine(intJobStat *js, edg_wll_Event *e, int ev_seq, in
                        break;
                case EDG_WLL_EVENT_VMRUNNING:
                        if (USABLE(res)) {
-                               switch( e->vMRunning.vm_source){
-                               case EDG_WLL_VMRUNNING_CM:
-                               case EDG_WLL_VMRUNNING_VMM:
-                                       js->pub.vm_state = EDG_WLL_STAT_VM_RUNNING;
+                               switch( e->any.source){
+                               case EDG_WLL_SOURCE_CLOUD_MANAGER:
+                               case EDG_WLL_SOURCE_VM_MANAGER:
+                                       if (js->pub.vm_state != EDG_WLL_STAT_VM_REALLY_RUNNING)
+                                               js->pub.vm_state = EDG_WLL_STAT_VM_RUNNING;
                                        break;
-                               case EDG_WLL_VMRUNNING_MACHINE:
+                               case EDG_WLL_SOURCE_VM_SYSTEM:
                                        js->pub.vm_state = EDG_WLL_STAT_VM_REALLY_RUNNING;
                                         break;
                                default:
@@ -108,14 +109,14 @@ int processEvent_VirtualMachine(intJobStat *js, edg_wll_Event *e, int ev_seq, in
                        break;
                case EDG_WLL_EVENT_VMSHUTDOWN:
                         if (USABLE(res)) {
-                               switch (e->vMShutdown.vm_source){
-                               case EDG_WLL_VMSHUTDOWN_CM:
+                               switch (e->any.source){
+                               case EDG_WLL_SOURCE_CLOUD_MANAGER:
                                        js->pub.vm_state = EDG_WLL_STAT_VM_SHUTDOWN;
                                        break;
-                               case EDG_WLL_VMSHUTDOWN_VMM:
+                               case EDG_WLL_SOURCE_VM_MANAGER:
                                        js->pub.vm_system_halting = 1;
                                        break;
-                               case EDG_WLL_VMSHUTDOWN_MACHINE:
+                               case EDG_WLL_SOURCE_VM_SYSTEM:
                                        js->pub.vm_system_halting = 1;
                                        if (js->pub.vm_state == EDG_WLL_STAT_VM_REALLY_RUNNING)
                                                js->pub.vm_state = EDG_WLL_STAT_VM_RUNNING;
index 67073e4..cafdbda 100644 (file)
        string image            machine image
 
 @type VMRunning                        VM is running
-       int     vm_source
-       _code_  CM              cloud manager
-       _code_  VMM             VM manager
-       _code_  MACHINE         system
 
 @type VMShutdown
-       int vm_source
-       _code_  CM              cloud manager
-        _code_  VMM             VM manager
-        _code_  MACHINE         system
        string  usage
         _optional_
 
index b42da9e..3750458 100644 (file)
                        <val name="PBSsMom"/>
                        <val name="PBSMom"/>
                        <val name="PBSScheduler"/>
+                       <val name="CloudManager"/>
+                       <val name="VMManager"/>
+                       <val name="VMSystem"/>
                </enum>
 
                <struct name="stateEnterTimesItem">