def test_execute_together(self, execute_async, client, policy, logger): stderr = [' ', '0', '1', ' '] stdout = [' ', '2', '3', ' '] exit_code = 0 chan = mock.Mock() recv_exit_status = mock.Mock(return_value=exit_code) chan.attach_mock(recv_exit_status, 'recv_exit_status') execute_async.return_value = chan, '', stderr, stdout host2 = '127.0.0.2' ssh = SSHClient(host=host, port=port, username=username, password=password, private_keys=private_keys) ssh2 = SSHClient(host=host2, port=port, username=username, password=password, private_keys=private_keys) remotes = ssh, ssh2 SSHClient.execute_together(remotes=remotes, command=command) self.assertEqual(execute_async.call_count, len(remotes)) chan.assert_has_calls( (mock.call.recv_exit_status(), mock.call.close(), mock.call.recv_exit_status(), mock.call.close()))
def test_execute_together(self, execute_async, client, policy, logger): stderr = [' ', '0', '1', ' '] stdout = [' ', '2', '3', ' '] exit_code = 0 chan = mock.Mock() recv_exit_status = mock.Mock(return_value=exit_code) chan.attach_mock(recv_exit_status, 'recv_exit_status') execute_async.return_value = chan, '', stderr, stdout host2 = '127.0.0.2' ssh = SSHClient( host=host, port=port, username=username, password=password, private_keys=private_keys) ssh2 = SSHClient( host=host2, port=port, username=username, password=password, private_keys=private_keys) remotes = ssh, ssh2 SSHClient.execute_together( remotes=remotes, command=command) self.assertEqual(execute_async.call_count, len(remotes)) chan.assert_has_calls(( mock.call.recv_exit_status(), mock.call.close(), mock.call.recv_exit_status(), mock.call.close() ))
def one(): environment = Environment.create('cdrom') internal_pool = Network.create_network_pool( networks=[IPNetwork('10.108.0.0/16')], prefix=24) private_pool = Network.create_network_pool( networks=[IPNetwork('10.108.0.0/16')], prefix=24) external_pool = Network.create_network_pool( networks=[IPNetwork('172.18.95.0/24')], prefix=27) internal = Network.network_create(environment=environment, name='internal', pool=internal_pool) external = Network.network_create(environment=environment, name='external', pool=external_pool, forward='nat') private = Network.network_create(environment=environment, name='private', pool=private_pool) for i in range(1, 2): node = Node.node_create(name='test_node' + str(i), environment=environment) Interface.interface_create(node=node, network=internal) Interface.interface_create(node=node, network=external) Interface.interface_create(node=node, network=private) volume = Volume.volume_get_predefined( '/var/lib/libvirt/images/centos63-cobbler-base.qcow2') v3 = Volume.volume_create_child('test_vp895' + str(i), backing_store=volume, environment=environment) v4 = Volume.volume_create_child('test_vp896' + str(i), backing_store=volume, environment=environment) DiskDevice.node_attach_volume(node=node, volume=v3) DiskDevice.node_attach_volume(node, v4) DiskDevice.node_attach_volume( node, Volume.volume_get_predefined( '/var/lib/libvirt/images/fuel-centos-6.3-x86_64.iso'), device='cdrom', bus='sata') environment.define() environment.start() remotes = [] for node in environment.get_nodes(): node. await ('internal') node.remote('internal', 'root', 'r00tme').check_stderr('ls -la', verbose=True) remotes.append(node.remote('internal', 'root', 'r00tme')) SSHClient.execute_together(remotes, 'ls -la')
def one(): environment = Environment.create('cdrom') internal_pool = Network.create_network_pool( networks=[IPNetwork('10.108.0.0/16')], prefix=24 ) private_pool = Network.create_network_pool( networks=[IPNetwork('10.108.0.0/16')], prefix=24 ) external_pool = Network.create_network_pool( networks=[IPNetwork('172.18.95.0/24')], prefix=27 ) internal = Network.network_create( environment=environment, name='internal', pool=internal_pool) external = Network.network_create( environment=environment, name='external', pool=external_pool, forward='nat') private = Network.network_create( environment=environment, name='private', pool=private_pool) for i in range(1, 2): node = Node.node_create( name='test_node' + str(i), environment=environment) Interface.interface_create(node=node, network=internal) Interface.interface_create(node=node, network=external) Interface.interface_create(node=node, network=private) volume = Volume.volume_get_predefined( '/var/lib/libvirt/images/centos63-cobbler-base.qcow2') v3 = Volume.volume_create_child( 'test_vp895' + str(i), backing_store=volume, environment=environment) v4 = Volume.volume_create_child( 'test_vp896' + str(i), backing_store=volume, environment=environment) DiskDevice.node_attach_volume(node=node, volume=v3) DiskDevice.node_attach_volume(node, v4) DiskDevice.node_attach_volume( node, Volume.volume_get_predefined( '/var/lib/libvirt/images/fuel-centos-6.3-x86_64.iso'), device='cdrom', bus='sata') environment.define() environment.start() remotes = [] for node in environment.get_nodes(): node.await('internal') node.remote('internal', 'root', 'r00tme').check_stderr( 'ls -la', verbose=True) remotes.append(node.remote('internal', 'root', 'r00tme')) SSHClient.execute_together(remotes, 'ls -la')
def test_execute_together(self, execute_async, client, policy, logger): chan, _stdin, stderr, stdout = self.get_patched_execute_async_retval() execute_async.return_value = chan, _stdin, stderr, stdout host2 = '127.0.0.2' ssh = self.get_ssh() ssh2 = SSHClient( host=host2, port=port, auth=SSHAuth( username=username, password=password )) remotes = [ssh, ssh2] SSHClient.execute_together( remotes=remotes, command=command) self.assertEqual(execute_async.call_count, len(remotes)) chan.assert_has_calls(( mock.call.recv_exit_status(), mock.call.close(), mock.call.recv_exit_status(), mock.call.close() )) SSHClient.execute_together( remotes=remotes, command=command, expected=[1], raise_on_err=False) with self.assertRaises(DevopsCalledProcessError): SSHClient.execute_together( remotes=remotes, command=command, expected=[1])