示例#1
0
def main(argv=None):
    if not argv:
        argv = sys.argv
    # Try to handle unexpected exceptions
    try:
        # Create and register the RPC server
        flaskserver = FlaskServer()
        xmlrpc = FlaskXMLRPC(flaskserver)
        # GENIv3
        geni_v3_handler = GENIv3Handler()
        geni_v3_delegate = GENIv3Delegate()
        geni_v3_handler.setDelegate(geni_v3_delegate)
        xmlrpc.registerXMLRPC("geni3_ro", geni_v3_handler, "/xmlrpc/geni/3/")
        # Services/Workers to add
        # Topology update
        geni_v3_scheduler = ROSchedulerService()
        # Run server starting the services
        flaskserver.runServer(services=[geni_v3_scheduler])
    except KeyboardInterrupt:
        return True
    except Exception as e:
        sys.stderr.write("Got an exception: %s\n" % str(e))
        return False
    finally:
        # Stop the services
        if "geni_v3_scheduler" in locals():
            geni_v3_scheduler.stop()
    return True
示例#2
0
文件: main.py 项目: HalasNet/felix
def main(argv=None):
    if not argv:
        argv = sys.argv
    # Try to handle unexpected exceptions
    try:
        # Create and register the RPC server
        flaskserver = FlaskServer()
        xmlrpc = FlaskXMLRPC(flaskserver)
        # GENIv3
        geni_v3_handler = GENIv3Handler()
        geni_v3_delegate = GENIv3Delegate()
        geni_v3_handler.setDelegate(geni_v3_delegate)
        xmlrpc.registerXMLRPC("geni3_ro", geni_v3_handler, "/xmlrpc/geni/3/")
        # Services/Workers to add
        # Topology update
        geni_v3_scheduler = ROSchedulerService()
        # Run server starting the services
        flaskserver.runServer(services=[geni_v3_scheduler])
    except KeyboardInterrupt:
        return True
    except Exception as e:
        sys.stderr.write("Got an exception: %s\n" % str(e))
        return False
    finally:
        # Stop the services
        if "geni_v3_scheduler" in locals():
            geni_v3_scheduler.stop()
    return True
示例#3
0
 def __schedule_tnres_update(self, func, secs, name):
     scheduler = ROSchedulerService.get_scheduler()
     if scheduler is not None:
         run = datetime.now() + timedelta(seconds=secs)
         ROSchedulerService.get_scheduler().add_job(func,
                                                    "date",
                                                    run_date=run,
                                                    id=name)
示例#4
0
 def __schedule_slice_release(self, end_time, slivers):
     scheduler = ROSchedulerService.get_scheduler()
     logger.debug("schedule_slice_release: endtime=%s, slivers=%s, obj=%s" %
                  (end_time, slivers, scheduler,))
     if (end_time is not None) and (scheduler is not None):
         urns = [s.get("geni_sliver_urn") for s in slivers]
         ROSchedulerService.get_scheduler().add_job(
             slice_expiration, "date", run_date=end_time, args=[urns])
示例#5
0
 def __schedule_slice_release(self, end_time, slivers):
     scheduler = ROSchedulerService.get_scheduler()
     logger.debug("schedule_slice_release: endtime=%s, slivers=%s, obj=%s" %
                  (
                      end_time,
                      slivers,
                      scheduler,
                  ))
     if (end_time is not None) and (scheduler is not None):
         urns = [s.get("geni_sliver_urn") for s in slivers]
         ROSchedulerService.get_scheduler().add_job(slice_expiration,
                                                    "date",
                                                    run_date=end_time,
                                                    args=[urns])
示例#6
0
 def __schedule_tnres_update(self, func, secs, name):
     scheduler = ROSchedulerService.get_scheduler()
     if scheduler is not None:
         run =datetime.now() + timedelta(seconds=secs)
         ROSchedulerService.get_scheduler().add_job(
             func, "date", run_date=run, id=name)