コード例 #1
0
    def __init__(self, *args, **kwargs):
        super(TimingTestCase, self).__init__(*args, **kwargs)

        if self.sch is None:
            configuration.select('marvinctld',
                                 preset={'inventory': {'sync': False},
                                         'database': TEMP_DB,
                                         'log': {'level': 50,
                                                 'file': TEMP_LOG}})

            from scheduler import Scheduler
            self.sch = Scheduler(refresh=True)
            self.assertIsNotNone(self.sch.db())

            self.assertTrue(os.path.isfile(TEMP_DB))

            userid, error = self.sch.create_user('admin', 'admin', 'admin')
            self.assertIsNotNone(userid)

            c = self.sch.db().cursor()
            nodes = self.sch.get_nodes()
            if nodes is None or len(nodes) < 25:
                print "creating 25 nodes...",
                for nodeid in xrange(1,25):
                    c.execute("INSERT OR IGNORE INTO nodes VALUES (?, ?, ?, ?)",
                              (nodeid, 'test %i' % nodeid, 'active', 0))
                    self.sch.db().commit()
                    self.sch.set_node_types(nodeid, 'status:test')
                print "done."
コード例 #2
0
    def __init__(self, *args, **kwargs):
        super(SchedulerTestCase, self).__init__(*args, **kwargs)

        if self.sch is None:
            configuration.select('marvinctld',
                                 preset={'inventory': {'sync': False},
                                         'database': TEMP_DB,
                                         'repository': {
                                                 'deployment':'server.xyz'},
                                         'log': {'level': 50,
                                                 'file': TEMP_LOG}})

            from scheduler import Scheduler
            self.sch = Scheduler()

            c = self.sch.db().cursor()
            now = int(time.time())
            c.execute("INSERT OR IGNORE INTO nodes VALUES (?, ?, ?, ?)",
                  ('1', 'test-node', 'active', now))
            c.execute("INSERT OR IGNORE INTO nodes VALUES (?, ?, ?, ?)",
                  ('2', 'test-node 2', 'active', now))
            c.execute("INSERT OR REPLACE INTO node_interface "
                  "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
                  ('1', 'a', 'ab', 'abc', 'abcd', 0, 0, 0, 0, 0, 0))
            c.execute("INSERT OR REPLACE INTO node_interface "
                  "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
                  ('2', 'a', 'ab', 'abc', 'abcd', 0, 0, 0, 0, 0, 0))
            self.sch.db().commit()
            self.sch.set_node_types(1, 'status:test')
コード例 #3
0
ファイル: geniam.py プロジェクト: MONROE-PROJECT/Scheduler
Allows to schedule tasks through a GENI AMv3 API XML-RPC interface.
"""

import logging
from logging.handlers import WatchedFileHandler
import simplejson as json
import traceback
import configuration

from SimpleXMLRPCServer import SimpleXMLRPCServer as XRS
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler as XRH
from lxml import etree as e
from time import strftime
# from subprocess import check_output

config = configuration.select('marvinctld')

GENI_RT_SUCCESS = 0
GENI_RT_BADARGS = 1
GENI_RT_REFUSED = 7

RSPEC_NS = "http://www.geni.net/resources/rspec/3"
RSPEC = "{" + RSPEC_NS + "}%s"
XSI_NS = "http://www.w3.org/2001/XMLSchema-instance"
XSI = "{" + XSI_NS + "}%s"
XSI_SCHEMA_LOCATION = "http://www.geni.net/resources/rspec/3 " \
                      "http://www.geni.net/resources/rspec/3/ad.xsd"
NSMAP = {
  None: RSPEC_NS,
  "xsi": XSI_NS
}
コード例 #4
0
ファイル: marvind.py プロジェクト: MONROE-PROJECT/Scheduler
import threading
from datetime import datetime
from subprocess import Popen, PIPE

sys.path.append("/usr/bin")  # to import node utilities
from interfaces import get_interfaces

requests.packages.urllib3.disable_warnings()

if len(sys.argv) < 2:
    cfile = "/etc/marvind.conf"
    print "Using default configuration at %s" % cfile
else:
    nope, cfile = sys.argv

config = configuration.select("marvind", cfile)

log = logging.getLogger("marvind")
log.addHandler(WatchedFileHandler(config["log"]["file"]))
log.setLevel(config["log"]["level"])

print "Logging to %s" % (config["log"]["file"],)

AT_TIME_FORMAT = "%H:%M %Y-%m-%d"

SYSEVENT_SCHEDULING_STARTED = "Scheduling.Started"

PREFETCH_LIMIT = 3


class SchedulingClient: