Esempio n. 1
0
    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()))
Esempio n. 2
0
    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()
        ))
Esempio n. 3
0
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')
Esempio n. 4
0
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])