예제 #1
0
    def test_existingDatabase(self):
        domain = None
        database = None
        try:
            domain = Domain(self.host, DOMAIN_USER, DOMAIN_PASSWORD)

            peer = domain.entry_peer
            sm = peer.start_storage_manager(TEST_DB_NAME,
                                            gen_archive_path(),
                                            True,
                                            wait_seconds=10)
            te = peer.start_transaction_engine(
                TEST_DB_NAME, [('--dba-user', DBA_USER),
                               ('--dba-password', DBA_PASSWORD)],
                wait_seconds=10)
            database = domain.get_database(TEST_DB_NAME)
            self.assertIsNotNone(database)
            domain.disconnect()
            time.sleep(1)

            domain = Domain(self.host, DOMAIN_USER, DOMAIN_PASSWORD)
            database = domain.get_database(TEST_DB_NAME)
            self.assertIsNotNone(database)

            self.assertEqual(len(database.processes), 2)

        finally:
            self._cleanup(domain)
예제 #2
0
    def test_existingDatabase(self):
        domain = None
        database = None
        try:
            domain = Domain(self.host, DOMAIN_USER, DOMAIN_PASSWORD)

            peer = domain.entry_peer
            sm = peer.start_storage_manager(TEST_DB_NAME, gen_archive_path(), True, wait_seconds=10)
            te = peer.start_transaction_engine(TEST_DB_NAME,
                                               [('--dba-user', DBA_USER), ('--dba-password', DBA_PASSWORD)],
                                               wait_seconds=10)
            database = domain.get_database(TEST_DB_NAME)
            self.assertIsNotNone(database)
            domain.disconnect()
            time.sleep(1)

            domain = Domain(self.host, DOMAIN_USER, DOMAIN_PASSWORD)
            database = domain.get_database(TEST_DB_NAME)
            self.assertIsNotNone(database)

            self.assertEqual(len(database.processes), 2)


        finally:
            self._cleanup(domain)
예제 #3
0
 def test_existingDatabase(self):
     domain = None
     database = None
     try:
         domain = Domain(BROKER_HOST, DOMAIN_USER, DOMAIN_PASSWORD)
         
         peer = domain.getEntryPeer()
         sm = peer.startStorageManager(TEST_DB_NAME, tempfile.mkdtemp(), True, waitSeconds=10)
         te = peer.startTransactionEngine(TEST_DB_NAME, [('--dba-user', DBA_USER),('--dba-password', DBA_PASSWORD)], waitSeconds=10)
         database = domain.getDatabase(TEST_DB_NAME)
         self.assertIsNotNone(database)
         domain.disconnect()
         time.sleep(1)
         
         domain = Domain(BROKER_HOST, DOMAIN_USER, DOMAIN_PASSWORD)
         database = domain.getDatabase(TEST_DB_NAME)
         self.assertIsNotNone(database)
         
         self.assertEqual(database.getProcessCount(), 2)            
         
         
     finally:
         self._cleanup(domain)
예제 #4
0
    def test_listenDomain(self):
        domain = None
        database = None
        dl = NuoTestListener()
        try:
            domain = Domain(self.host, DOMAIN_USER, DOMAIN_PASSWORD, dl)
            peer = domain.entry_peer

            self.assertIs(peer, dl.pJoined)
            self.assertIsNone(dl.pLeft)
            self.assertIsNone(dl.nJoined)
            self.assertIsNone(dl.nLeft)
            self.assertIsNone(dl.nFailed)
            self.assertIsNone(dl.nStatusChanged[0])
            self.assertIsNone(dl.nStatusChanged[1])
            self.assertIsNone(dl.dJoined)
            self.assertIsNone(dl.dLeft)
            self.assertFalse(dl.c)

            sm = peer.start_storage_manager(TEST_DB_NAME,
                                            gen_archive_path(),
                                            True,
                                            wait_seconds=10)
            i = 0
            while dl.nJoined is not sm and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(sm, dl.nJoined)
            i = 0
            while dl.nStatusChanged[0] is not sm and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(sm, dl.nStatusChanged[0])
            self.assertEqual("RUNNING", dl.nStatusChanged[1])

            te = peer.start_transaction_engine(
                TEST_DB_NAME, [('--dba-user', DBA_USER),
                               ('--dba-password', DBA_PASSWORD)],
                wait_seconds=10)
            i = 0
            while dl.nJoined is not te and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(te, dl.nJoined)
            i = 0
            while dl.nStatusChanged[0] is not te and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(te, dl.nStatusChanged[0])
            self.assertEqual("RUNNING", dl.nStatusChanged[1])

            database = domain.get_database(TEST_DB_NAME)
            self.assertIs(database, dl.dJoined)

            self.assertIsNone(dl.pLeft)
            self.assertIsNone(dl.nLeft)
            self.assertIsNone(dl.nFailed)
            self.assertIsNone(dl.dLeft)

            te.shutdown()
            i = 0
            while dl.nLeft is not te and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(te, dl.nLeft)
            self.assertIsNone(dl.dLeft)

            sm.shutdown()
            i = 0
            while dl.nLeft is not sm and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(sm, dl.nLeft)

            self.assertIs(database, dl.dLeft)

            self.assertFalse(dl.c)
            domain.disconnect()
            self.assertTrue(dl.c)

        finally:
            self._cleanup(domain)
예제 #5
0
    def test_listenDomain(self):
        domain = None
        database = None
        dl = TestListener()
        try:
            domain = Domain(self.host, DOMAIN_USER, DOMAIN_PASSWORD, dl)
            peer = domain.entry_peer

            self.assertIs(peer, dl.pJoined)
            self.assertIsNone(dl.pLeft)
            self.assertIsNone(dl.nJoined)
            self.assertIsNone(dl.nLeft)
            self.assertIsNone(dl.nFailed)
            self.assertIsNone(dl.nStatusChanged[0])
            self.assertIsNone(dl.nStatusChanged[1])
            self.assertIsNone(dl.dJoined)
            self.assertIsNone(dl.dLeft)
            self.assertFalse(dl.c)

            sm = peer.start_storage_manager(TEST_DB_NAME, gen_archive_path(), True, wait_seconds=10)
            i = 0
            while dl.nJoined is not sm and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(sm, dl.nJoined)
            i = 0
            while dl.nStatusChanged[0] is not sm and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(sm, dl.nStatusChanged[0])
            self.assertEqual("RUNNING", dl.nStatusChanged[1])

            te = peer.start_transaction_engine(TEST_DB_NAME,
                                               [('--dba-user', DBA_USER), ('--dba-password', DBA_PASSWORD)],
                                               wait_seconds=10)
            i = 0
            while dl.nJoined is not te and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(te, dl.nJoined)
            i = 0
            while dl.nStatusChanged[0] is not te and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(te, dl.nStatusChanged[0])
            self.assertEqual("RUNNING", dl.nStatusChanged[1])

            database = domain.get_database(TEST_DB_NAME)
            self.assertIs(database, dl.dJoined)

            self.assertIsNone(dl.pLeft)
            self.assertIsNone(dl.nLeft)
            self.assertIsNone(dl.nFailed)
            self.assertIsNone(dl.dLeft)

            te.shutdown()
            i = 0
            while dl.nLeft is not te and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(te, dl.nLeft)
            self.assertIsNone(dl.dLeft)

            sm.shutdown()
            i = 0
            while dl.nLeft is not sm and i < 10:
                time.sleep(1)
                i += 1
            self.assertIs(sm, dl.nLeft)

            self.assertIs(database, dl.dLeft)

            self.assertFalse(dl.c)
            domain.disconnect()
            self.assertTrue(dl.c)

        finally:
            self._cleanup(domain)
예제 #6
0
 def test_listenDomain(self):
     domain = None
     database = None
     dl = TestListener()
     try:
         domain = Domain(BROKER_HOST, DOMAIN_USER, DOMAIN_PASSWORD, dl)
         peer = domain.getEntryPeer()
         
         self.assertIs(peer, dl.pJoined)
         self.assertIsNone(dl.pLeft)
         self.assertIsNone(dl.nJoined)
         self.assertIsNone(dl.nLeft)
         self.assertIsNone(dl.nFailed)
         self.assertIsNone(dl.nStatusChanged[0])
         self.assertIsNone(dl.nStatusChanged[1])
         self.assertIsNone(dl.dJoined)
         self.assertIsNone(dl.dLeft)
         self.assertFalse(dl.c)
         
         sm = peer.startStorageManager(TEST_DB_NAME, tempfile.mkdtemp(), True, waitSeconds=10)
         i = 0
         while dl.nJoined is not sm and i < 10:
             time.sleep(1)
         self.assertIs(sm, dl.nJoined)
         i = 0
         while dl.nStatusChanged[0] is not sm and i < 10:
             time.sleep(1)
         self.assertIs(sm, dl.nStatusChanged[0])
         self.assertEqual("RUNNING", dl.nStatusChanged[1])
         
         te = peer.startTransactionEngine(TEST_DB_NAME, [('--dba-user', DBA_USER),('--dba-password', DBA_PASSWORD)], waitSeconds=10)
         i = 0
         while dl.nJoined is not te and i < 10:
             time.sleep(1)
         self.assertIs(te, dl.nJoined)
         self.assertIs(te, dl.nStatusChanged[0])
         self.assertEqual("RUNNING", dl.nStatusChanged[1])
         
         database = domain.getDatabase(TEST_DB_NAME)
         self.assertIs(database, dl.dJoined)
         
         self.assertIsNone(dl.pLeft)
         self.assertIsNone(dl.nLeft)
         self.assertIsNone(dl.nFailed)
         self.assertIsNone(dl.dLeft)
         
         te.shutdown()
         i = 0
         while dl.nLeft is not te and i < 10:
             time.sleep(1)
         self.assertIs(te, dl.nLeft)
         self.assertIsNone(dl.dLeft)  
         
         sm.shutdown()
         i = 0
         while dl.nLeft is not sm and i < 10:
             time.sleep(1)
         self.assertIs(sm, dl.nLeft)
         
         self.assertIs(database, dl.dLeft) 
         
         self.assertFalse(dl.c)
         domain.disconnect()
         self.assertTrue(dl.c)
         
     finally:
         self._cleanup(domain)