def _blackout_server(zkclient, server, reason): """Blackout server.""" if not reason: raise click.UsageError('--reason is required.') path = z.path.blackedout_server(server) zkutils.ensure_exists(zkclient, path, acl=[zkutils.make_host_acl(server, 'rwcda')], data=str(reason)) presence.kill_node(zkclient, server)
def test_kill(self): """Checks removal of the endpoints.""" zk_content = { 'running': { 'myproid.aaa': b'xxx.xx.com', 'myproid.bbb': b'yyy.xx.com' }, 'endpoints': { 'myproid': { 'aaa:tcp:http': b'xxx.xx.com:1234', 'bbb:tcp:http': b'yyy.xx.com:1234', }, }, 'servers': { 'xxx.xx.com': {}, }, 'server.presence': { 'xxx.xx.com': {}, }, 'placement': { 'xxx.xx.com': { 'myproid.aaa': {}, 'myproid.bbb': {}, } }, 'scheduled': { 'myproid.aaa': { 'endpoints': [{ 'name': 'http', 'port': 8888 }], }, 'myproid.bbb': { 'endpoints': [{ 'name': 'http', 'port': 8888 }], }, } } self.make_mock_zk(zk_content) presence.kill_node(self.zkclient, 'xxx.xx.com') # aaa running node is removed. self.assertNotIn('myproid.aaa', zk_content['running']) # bbb is not removed, as 'running' node has different hostname. self.assertIn('myproid.bbb', zk_content['running']) # Same for endpoints - aaa is removed, bbb is not. self.assertNotIn('aaa:tcp:http', zk_content['endpoints']['myproid']) self.assertIn('bbb:tcp:http', zk_content['endpoints']['myproid']) self.assertNotIn('xxx.xx.com', zk_content['server.presence'])
def delete_servers_by_name(servers, pool=None): """Delete servers by name.""" _LOGGER.info('Deleting servers: %r', servers) zkclient = context.GLOBAL.zk.conn for server in servers: try: presence.kill_node(zkclient, server) except kazoo.exceptions.NoNodeError: pass if pool: batches = _split_list(servers, pool.workers) for _res, err in pool.map(_delete_hosts_no_exc, batches): if err: raise err else: _delete_hosts(servers)
def delete_servers_by_name(servers): """Delete servers by name.""" ec2_conn = awscontext.GLOBAL.ec2 ipa_client = awscontext.GLOBAL.ipaclient admin_srv = context.GLOBAL.admin.server() zkclient = context.GLOBAL.zk.conn _LOGGER.info('Deleting servers: %r', servers) for server in servers: try: presence.kill_node(zkclient, server) except kazoo.exceptions.NoNodeError: pass hostmanager.delete_hosts(ipa_client=ipa_client, ec2_conn=ec2_conn, hostnames=servers) for server in servers: admin_srv.delete(server)