Exemplo n.º 1
0
class gpStartTestCase(unittest.TestCase):
	def setUp(self):
                self.basedir = os.path.dirname(__file__)
		self.gphome = os.environ.get('GPHOME')
                self.gp=GpStart()
                self.gps=GpStop()
                self.MAX_TRY=3
                self.TIMEOUT=90
                self.MAXPARALLELSEG=60

    	def test_gpstart_logDir(self):
                tinctest.logger.info("Running test_gpstart_logDir")
                self.logdir=''.join([self.basedir,'/logs'])
                cmd = Command(name='Remove gpstop<nnnn>.log', cmdStr='rm -f %s/gpstop*' % (self.logdir))
                tinctest.logger.info("Removing gpstop<nnnn>.log : %s" % cmd)
                cmd.run(validateAfter=True)
                result = cmd.get_results()
                if result.rc != 0 or result.stderr:
                   raise gpstopException("Not able to delete existing gpstop<nnnn>.log")
                lcmd=' '.join(['ls',self.logdir, '| wc -l'])
                res=False
                if self.is_not_running_gpdb():
                   res=self.gp.run_gpstart_cmd(logdir=self.logdir)
                if res is not True:
                   raise GPstopError("Error : run_gpstart_cmd(logdir) failed \n")
                cmd = Command(name='count of  gpstart<nnnn>.log', cmdStr=' %s ' % (lcmd))
                tinctest.logger.info("Count gpstart<nnnn>.log : %s" % cmd)
                cmd.run(validateAfter=True)
                result = cmd.get_results()
                if result.rc != 0 or result.stderr:
                   raise gpstopException("Not able to get count of gpstart<nnnn>.log")
                assert int(result.stdout) > 0

    	def test_gpstart_getversion(self):
        	res=self.gp.get_version()
		self.assertTrue(res)
    	def test_gpstart_restrict(self):
                tinctest.logger.info("Running test_gpstart_restrict")
                if self.is_not_running_gpdb():
			res=self.gp.run_gpstart_cmd(restrict ='y')
		self.assertTrue(res)

    	def test_gpstart_timeout(self):
                tinctest.logger.info("Running test_gpstart_timeout")
                if self.is_not_running_gpdb():
			res=self.gp.run_gpstart_cmd(timeout = self.TIMEOUT)
		self.assertTrue(res)

    	def test_gpstart_parallelproc(self):
                tinctest.logger.info("Running test_gpstart_parallelproc")
                if self.is_not_running_gpdb():
			res=self.gp.run_gpstart_cmd(parallelproc=self.MAXPARALLELSEG)
		self.assertTrue(res)

    	def test_gpstart_noprompt(self):
                tinctest.logger.info("Running test_gpstart_noprompt")
                if self.is_not_running_gpdb():
			res=self.gp.run_gpstart_cmd()
		self.assertTrue(res)


        def test_gpstart_cmd_masterOnly(self):
                tinctest.logger.info("Running test_gpstart_cmd_masterOnly")
                if self.is_not_running_gpdb():
			self.gp.run_gpstart_cmd(masteronly='y')
		res=self.gpstartCheck()
		self.assertTrue(res)

        def test_gpstart_cmd_quiet(self):
                tinctest.logger.info("Running test_gpstart_cmd_quiet")
                if self.is_not_running_gpdb():
			res=self.gp.run_gpstart_cmd(quietmode='y')
		self.assertTrue(res)
        def test_gpstart_cmd_startcluster(self):
                tinctest.logger.info("Running test_gpstart_cmd_startcluster")
                if self.is_not_running_gpdb():
			res=self.gp.run_gpstart_cmd()
		self.assertTrue(res)

        def test_gpstart_cmd_verbose(self):
                tinctest.logger.info("Running test_gpstart_cmd_verbose")
		if self.is_not_running_gpdb():
			res=self.gp.run_gpstart_cmd(verbose='y')
		self.assertTrue(res)

    	def test_gpstart_check(self):
        	if not self.gpstartCheck():
			res2=self.gp.gp.run_gpstart_cmd()
			res=self.gpstartCheck()
			self.assertTrue(res)

	def test_func_gpstart_quiet(self):
               if self.is_not_running_gpdb():
                        res=self.gp.gpstart_quiet()
               self.assertTrue(res)

	

       	def is_not_running_gpdb(self):
                res=False
                ctr=0
                while ctr < self.MAX_TRY:
                    ctr=ctr+1
                    res=self.gpstartCheck()
                    if res is True:
			self.gps.run_gpstop_cmd(quietmode='y')
                    else:
                        return True
                if (res is True and ctr < self.MAX_TRY):
                        return True
                else:
                        return False


        def gpstartCheck(self):
        	"""
        	Checks if the cluster is brought up correctly and all segments are in sync
        	"""
        	bashCmd = 'source ' + (self.gphome)+'/greenplum_path.sh;'+(self.gphome)+'/bin/pg_ctl status -D $MASTER_DATA_DIRECTORY | grep \'pg_ctl: server is running\''
        	dbStart = Command(name='gpstartCheck ',cmdStr=bashCmd)
        	dbStart.run()
        	rc = dbStart.get_results().rc
        	if rc != 0:
           		return False
        	return True
Exemplo n.º 2
0
class gpStartTestCase(unittest.TestCase):
    def setUp(self):
        self.basedir = os.path.dirname(__file__)
        self.gphome = os.environ.get("GPHOME")
        self.gp = GpStart()
        self.gps = GpStop()
        self.MAX_TRY = 3
        self.TIMEOUT = 90
        self.MAXPARALLELSEG = 60

    def test_gpstart_logDir(self):
        tinctest.logger.info("Running test_gpstart_logDir")
        self.logdir = "".join([self.basedir, "/logs"])
        cmd = Command(name="Remove gpstop<nnnn>.log", cmdStr="rm -f %s/gpstop*" % (self.logdir))
        tinctest.logger.info("Removing gpstop<nnnn>.log : %s" % cmd)
        cmd.run(validateAfter=True)
        result = cmd.get_results()
        if result.rc != 0 or result.stderr:
            raise gpstopException("Not able to delete existing gpstop<nnnn>.log")
        lcmd = " ".join(["ls", self.logdir, "| wc -l"])
        res = False
        if self.is_not_running_gpdb():
            res = self.gp.run_gpstart_cmd(logdir=self.logdir)
        if res is not True:
            raise GPstopError("Error : run_gpstart_cmd(logdir) failed \n")
        cmd = Command(name="count of  gpstart<nnnn>.log", cmdStr=" %s " % (lcmd))
        tinctest.logger.info("Count gpstart<nnnn>.log : %s" % cmd)
        cmd.run(validateAfter=True)
        result = cmd.get_results()
        if result.rc != 0 or result.stderr:
            raise gpstopException("Not able to get count of gpstart<nnnn>.log")
        assert int(result.stdout) > 0

    def test_gpstart_getversion(self):
        res = self.gp.get_version()
        self.assertTrue(res)

    def test_gpstart_restrict(self):
        tinctest.logger.info("Running test_gpstart_restrict")
        if self.is_not_running_gpdb():
            res = self.gp.run_gpstart_cmd(restrict="y")
        self.assertTrue(res)

    def test_gpstart_timeout(self):
        tinctest.logger.info("Running test_gpstart_timeout")
        if self.is_not_running_gpdb():
            res = self.gp.run_gpstart_cmd(timeout=self.TIMEOUT)
        self.assertTrue(res)

    def test_gpstart_parallelproc(self):
        tinctest.logger.info("Running test_gpstart_parallelproc")
        if self.is_not_running_gpdb():
            res = self.gp.run_gpstart_cmd(parallelproc=self.MAXPARALLELSEG)
        self.assertTrue(res)

    def test_gpstart_noprompt(self):
        tinctest.logger.info("Running test_gpstart_noprompt")
        if self.is_not_running_gpdb():
            res = self.gp.run_gpstart_cmd()
        self.assertTrue(res)

    def test_gpstart_cmd_masterOnly(self):
        tinctest.logger.info("Running test_gpstart_cmd_masterOnly")
        if self.is_not_running_gpdb():
            self.gp.run_gpstart_cmd(masteronly="y")
        res = self.gpstartCheck()
        self.assertTrue(res)

    def test_gpstart_cmd_quiet(self):
        tinctest.logger.info("Running test_gpstart_cmd_quiet")
        if self.is_not_running_gpdb():
            res = self.gp.run_gpstart_cmd(quietmode="y")
        self.assertTrue(res)

    def test_gpstart_cmd_startcluster(self):
        tinctest.logger.info("Running test_gpstart_cmd_startcluster")
        if self.is_not_running_gpdb():
            res = self.gp.run_gpstart_cmd()
        self.assertTrue(res)

    def test_gpstart_cmd_verbose(self):
        tinctest.logger.info("Running test_gpstart_cmd_verbose")
        if self.is_not_running_gpdb():
            res = self.gp.run_gpstart_cmd(verbose="y")
        self.assertTrue(res)

    def test_gpstart_check(self):
        if not self.gpstartCheck():
            res2 = self.gp.gp.run_gpstart_cmd()
            res = self.gpstartCheck()
            self.assertTrue(res)

    def test_func_gpstart_quiet(self):
        if self.is_not_running_gpdb():
            res = self.gp.gpstart_quiet()
        self.assertTrue(res)

    def is_not_running_gpdb(self):
        res = False
        ctr = 0
        while ctr < self.MAX_TRY:
            ctr = ctr + 1
            res = self.gpstartCheck()
            if res is True:
                self.gps.run_gpstop_cmd(quietmode="y")
            else:
                return True
        if res is True and ctr < self.MAX_TRY:
            return True
        else:
            return False

    def gpstartCheck(self):
        """
        	Checks if the cluster is brought up correctly and all segments are in sync
        	"""
        bashCmd = (
            "source "
            + (self.gphome)
            + "/greenplum_path.sh;"
            + (self.gphome)
            + "/bin/pg_ctl status -D $MASTER_DATA_DIRECTORY | grep 'pg_ctl: server is running'"
        )
        dbStart = Command(name="gpstartCheck ", cmdStr=bashCmd)
        dbStart.run()
        rc = dbStart.get_results().rc
        if rc != 0:
            return False
        return True