2to3 on accessory scripts
[myplc.git] / plc_sliceinitscripts / sirius
index 8dd41be..e85140f 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 """The Sirius Calendar Service.
 
@@ -106,7 +106,9 @@ class Periodic:
 
 SLOTDURATION = ONEHOUR
 
-SCHEDULEURL = 'XXXSITEXXX/planetlab/sirius/schedule.txt'
+# instances of @SITE@ and @PREFIX@ below are replaced 
+# as appropriate by db-config
+SCHEDULEURL = '@SITE@/planetlab/sirius/schedule.txt'
 
 schedulelock = threading.Lock()
 
@@ -166,7 +168,7 @@ def updateloans():
     log('Current loans are %s' % loans)
 
     if DEBUGLEVEL < 2:
-        nodemanager.SetLoans('XXXPREFIXXXX_sirius', loans)
+        nodemanager.SetLoans('@PREFIX@_sirius', loans)
     log('Updated loans successfully')
 
     recipientcond.acquire()
@@ -238,20 +240,54 @@ def server():
 
 ########################################
 
-if DEBUGLEVEL < 2:
-    PIDFILE = '/tmp/sirius.pid'
-else:
-    PIDFILE = 'sirius.pid'
-
-try:
-    if os.fork():
-        sys.exit(0)
-    f = open(PIDFILE, 'w')
-    fcntl.flock(f.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
-except:
-    logexception()
-    sys.exit(1)
-
-Periodic(updateschedule, SLOTDURATION, -5*ONEMINUTE, -1*ONEMINUTE)
-Periodic(updateloans, 5*ONEMINUTE, 0, 0)
-server()
+def start (slicename):
+    if DEBUGLEVEL < 2:
+        PIDFILE = '/tmp/%s.pid'%slicename
+    else:
+        PIDFILE = '%s.pid'%slicename
+    try:
+        if os.fork():
+            sys.exit(0)
+        f = open(PIDFILE, 'w')
+        fcntl.flock(f.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)
+    except:
+        logexception()
+        sys.exit(1)
+
+    Periodic(updateschedule, SLOTDURATION, -5*ONEMINUTE, -1*ONEMINUTE)
+    Periodic(updateloans, 5*ONEMINUTE, 0, 0)
+    server()
+
+# xxx fixme
+# at the very least, do nothing 
+def stop(slicename):
+    print '(dummy) stopping',slicename
+    pass
+
+def restart(slicename):
+    stop(slicename)
+    start(slicename)
+
+def main():
+    args=sys.argv[1:]
+    mode='start'
+    slicename='sirius'
+    argc=len(args)
+    if argc>=3: 
+        print 'too many arguments to initscript',args
+        sys.exit(1)
+    elif argc==2: (mode,slicename)=args
+    elif argc==1: mode=args[0]
+    
+#    print "sirius initscript called with mode=%s and slicename=%s"%(mode,slicename)
+
+    if mode=='start': start(slicename)
+    elif mode=='stop': stop(slicename)
+    elif mode=='restart': restart(slicename)
+    else: 
+        print "unknown mode %s"%mode
+        sys.exit(1)
+    sys.exit(0)
+
+if __name__ == '__main__':
+    main()