コード例 #1
0
    def WaitForNodeToComeUp(self, node, Timeout=300):
        '''Return TRUE when given node comes up, or None/FALSE if timeout'''
        timeout = Timeout
        anytimeouts = 0
        while timeout > 0:
            if self.IsNodeBooted(node) and self.IsSshdUp(node):
                if anytimeouts:
                     # Fudge to wait for the system to finish coming up
                     time.sleep(30)
                     LogFactory().debug("Node %s now up" % node)
                return 1

            time.sleep(30)
            if (not anytimeouts):
                LogFactory().debug("Waiting for node %s to come up" % node)

            anytimeouts = 1
            timeout = timeout - 1

        LogFactory().log("%s did not come up within %d tries" % (node, Timeout))
        if self.Env["continue"] == 1:
            answer = "Y"
        else:
            try:
                answer = raw_input('Continue? [nY]')
            except EOFError as e:
                answer = "n"
        if answer and answer == "n":
            raise ValueError("%s did not come up within %d tries" % (node, Timeout))
コード例 #2
0
    def __init__(self, Environment, randseed=None):
        self.Env = EnvFactory().getInstance()
        self.templates = PatternSelector(self.Env["Name"])
        self.__InitialConditions()
        self.logger = LogFactory()
        self.TestLoggingLevel = 0
        self.data = {}
        self.name = self.Env["Name"]

        self.rsh = RemoteFactory().getInstance()
        self.ShouldBeStatus = {}
        self.ns = NodeStatus(self.Env)
        self.OurNode = os.uname()[1].lower()
        self.__instance_errorstoignore = []

        self.fastfail = 0
        self.cib_installed = 0
        self.config = None
        self.cluster_monitor = 0
        self.use_short_names = 1

        if self.Env["DoBSC"]:
            del self.templates["Pat:They_stopped"]

        self._finalConditions()

        self.check_transitions = 0
        self.check_elections = 0
        self.CIBsync = {}
        self.CibFactory = ConfigFactory(self)
        self.cib = self.CibFactory.createConfig(self.Env["Schema"])
コード例 #3
0
 def __init__(self, node, command, completionDelegate=None):
     self.proc = None
     self.node = node
     self.command = command
     self.logger = LogFactory()
     self.delegate = completionDelegate
     Thread.__init__(self)
コード例 #4
0
    def __init__(self, rsh, silent=False):
        print repr(self)
        self. async = []
        self.rsh = rsh
        self.silent = silent
        self.logger = LogFactory()

        if trace_rsh:
            self.silent = False

        self.OurNode = string.lower(os.uname()[1])
コード例 #5
0
ファイル: CTS.py プロジェクト: shinjb/pacemaker
    def __init__(self, Environment, randseed=None):
        self.Env = EnvFactory().getInstance()
        self.templates = PatternSelector(self.Env["Name"])
        self.__InitialConditions()
        self.logger = LogFactory()
        self.TestLoggingLevel=0
        self.data = {}
        self.name = self.Env["Name"]

        self.rsh = RemoteFactory().getInstance()
        self.ShouldBeStatus={}
        self.ns = NodeStatus(self.Env)
        self.OurNode = os.uname()[1].lower()
        self.__instance_errorstoignore = []
コード例 #6
0
ファイル: CTSlab.py プロジェクト: urusha/pacemaker
def sig_handler(signum, frame):
    LogFactory().log("Interrupted by signal %d" % signum)
    if scenario: scenario.summarize()
    if signum == 15:
        if scenario: scenario.TearDown()
        sys.exit(1)
コード例 #7
0
ファイル: CTSlab.py プロジェクト: urusha/pacemaker
    sys.stderr.write("(check your install and PYTHONPATH)\n")

    # Now do it again to get more details
    from cts.CTSvars import *
    from cts.CM_ais import *
    from cts.CM_lha import crm_lha
    from cts.CTSaudits import AuditList
    from cts.CTStests import TestList
    from cts.CTSscenarios import *
    from cts.logging import LogFactory
    sys.exit(-1)

cm = None
scenario = None

LogFactory().add_stderr()


def sig_handler(signum, frame):
    LogFactory().log("Interrupted by signal %d" % signum)
    if scenario: scenario.summarize()
    if signum == 15:
        if scenario: scenario.TearDown()
        sys.exit(1)


if __name__ == '__main__':

    Environment = CtsLab(sys.argv[1:])
    NumIter = Environment["iterations"]
    Tests = []
コード例 #8
0
 def __init__(self, args=None):
     self.Env = EnvFactory().getInstance(args)
     self.Scenario = None
     self.logger = LogFactory()
     self.rsh = RemoteFactory().getInstance()
コード例 #9
0
    from cts.CM_ais       import *
    from cts.CM_lha       import crm_lha
    from cts.CTSaudits    import AuditList
    from cts.CTStests     import TestList
    from cts.CTSscenarios import *
    from cts.logging      import LogFactory
except ImportError as e:
    sys.stderr.write("abort: %s\n" % e)
    sys.stderr.write("check your install and PYTHONPATH; couldn't find cts libraries in:\n%s\n" %
                     ' '.join(sys.path))
    sys.exit(1)

# These are globals so they can be used by the signal handler.
cm = None
scenario = None
LogFactory().add_stderr()


def sig_handler(signum, frame) :
    LogFactory().log("Interrupted by signal %d"%signum)
    if scenario: scenario.summarize()
    if signum == 15 :
        if scenario: scenario.TearDown()
        sys.exit(1)


if __name__ == '__main__':

    Environment = CtsLab(sys.argv[1:])
    NumIter = Environment["iterations"]
    Tests = []