예제 #1
0
 def test_bootstrap_release_initialize_key_on_watchdog_failure(self):
     self.ha.cluster = get_cluster_not_initialized_without_leader()
     self.e.initialize = true
     self.ha.bootstrap()
     self.p.is_running.return_value = MockPostmaster()
     self.p.is_leader = true
     with patch.object(Watchdog, 'activate', Mock(return_value=False)):
         self.assertEquals(self.ha.post_bootstrap(), 'running post_bootstrap')
         self.assertRaises(PatroniException, self.ha.post_bootstrap)
예제 #2
0
파일: test_ha.py 프로젝트: vieyahn/patroni
        self.replicatefrom = None
        self.api.connection_string = 'http://127.0.0.1:8008'
        self.clonefrom = None
        self.nosync = False
        self.scheduled_restart = {
            'schedule': future_restart_time,
            'postmaster_start_time': str(postmaster_start_time)
        }
        self.watchdog = Watchdog(self.config)


def run_async(self, func, args=()):
    return func(*args) if args else func()


@patch.object(Postgresql, 'is_running', Mock(return_value=MockPostmaster()))
@patch.object(Postgresql, 'is_leader', Mock(return_value=True))
@patch.object(Postgresql, 'wal_position', Mock(return_value=10))
@patch.object(Postgresql, 'call_nowait', Mock(return_value=True))
@patch.object(Postgresql, 'data_directory_empty', Mock(return_value=False))
@patch.object(Postgresql, 'controldata',
              Mock(return_value={'Database system identifier': '1234567890'}))
@patch.object(Postgresql, 'sync_replication_slots', Mock())
@patch.object(Postgresql, 'write_pg_hba', Mock())
@patch.object(Postgresql, 'write_pgpass', Mock(return_value={}))
@patch.object(Postgresql, 'write_recovery_conf', Mock())
@patch.object(Postgresql, 'query', Mock())
@patch.object(Postgresql, 'checkpoint', Mock())
@patch.object(Postgresql, 'call_nowait', Mock())
@patch.object(etcd.Client, 'write', etcd_write)
@patch.object(etcd.Client, 'read', etcd_read)