Пример #1
0
    def test_boot_server_from_volume_and_delete(self, mock_block_storage):
        fake_server = object()
        scenario = servers.BootServerFromVolumeAndDelete(self.context,
                                                         clients=mock.Mock())
        scenario._boot_server = mock.MagicMock(return_value=fake_server)
        scenario.sleep_between = mock.MagicMock()
        scenario._delete_server = mock.MagicMock()

        fake_volume = fakes.FakeVolumeManager().create()
        fake_volume.id = "volume_id"
        cinder = mock_block_storage.return_value
        cinder.create_volume.return_value = fake_volume

        scenario.run("img", 0, 5, None, 10, 20, fakearg="f")

        cinder.create_volume.assert_called_once_with(5,
                                                     imageRef="img",
                                                     volume_type=None)
        scenario._boot_server.assert_called_once_with(
            None,
            0,
            block_device_mapping={"vda": "volume_id:::0"},
            fakearg="f")
        scenario.sleep_between.assert_called_once_with(10, 20)
        scenario._delete_server.assert_called_once_with(fake_server,
                                                        force=False)
    def test_boot_server_from_volume_and_delete(self):
        fake_server = object()
        scenario = servers.NovaServers(self.context)
        scenario._boot_server = mock.MagicMock(return_value=fake_server)
        scenario.generate_random_name = mock.MagicMock(return_value="name")
        scenario.sleep_between = mock.MagicMock()
        scenario._delete_server = mock.MagicMock()

        fake_volume = fakes.FakeVolumeManager().create()
        fake_volume.id = "volume_id"
        scenario._create_volume = mock.MagicMock(return_value=fake_volume)

        scenario.boot_server_from_volume_and_delete("img",
                                                    0,
                                                    5,
                                                    10,
                                                    20,
                                                    fakearg="f")

        scenario._create_volume.assert_called_once_with(5, imageRef="img")
        scenario._boot_server.assert_called_once_with(
            "img",
            0,
            block_device_mapping={"vda": "volume_id:::1"},
            fakearg="f")
        scenario.sleep_between.assert_called_once_with(10, 20)
        scenario._delete_server.assert_called_once_with(fake_server,
                                                        force=False)
Пример #3
0
    def test_boot_server_from_volume(self, mock_block_storage):
        fake_server = object()
        scenario = servers.BootServerFromVolume(self.context,
                                                clients=mock.Mock())
        scenario._boot_server = mock.MagicMock(return_value=fake_server)

        fake_volume = fakes.FakeVolumeManager().create()
        fake_volume.id = "volume_id"
        cinder = mock_block_storage.return_value
        cinder.create_volume.return_value = fake_volume

        scenario.run("img",
                     0,
                     5,
                     volume_type=None,
                     auto_assign_nic=False,
                     fakearg="f")

        cinder.create_volume.assert_called_once_with(5,
                                                     imageRef="img",
                                                     volume_type=None)
        scenario._boot_server.assert_called_once_with(
            None,
            0,
            auto_assign_nic=False,
            block_device_mapping={"vda": "volume_id:::0"},
            fakearg="f")
Пример #4
0
    def test_boot_server_from_volume_and_live_migrate(self):
        fake_server = mock.MagicMock()

        scenario = servers.NovaServers()
        scenario._generate_random_name = mock.MagicMock(return_value="name")
        scenario._boot_server = mock.MagicMock(return_value=fake_server)
        scenario._find_host_to_migrate = mock.MagicMock(
            return_value="host_name")
        scenario._live_migrate = mock.MagicMock()
        scenario._delete_server = mock.MagicMock()

        fake_volume = fakes.FakeVolumeManager().create()
        fake_volume.id = "volume_id"
        scenario._create_volume = mock.MagicMock(return_value=fake_volume)

        scenario.boot_server_from_volume_and_live_migrate("img",
                                                          0,
                                                          5,
                                                          fakearg="f")

        scenario._create_volume.assert_called_once_with(5, imageRef="img")

        scenario._boot_server.assert_called_once_with(
            "img",
            0,
            block_device_mapping={"vda": "volume_id:::1"},
            fakearg="f")

        scenario._find_host_to_migrate.assert_called_once_with(fake_server)

        scenario._live_migrate.assert_called_once_with(fake_server,
                                                       "host_name", False,
                                                       False)
        scenario._delete_server.assert_called_once_with(fake_server,
                                                        force=False)
Пример #5
0
    def test_boot_server_from_volume_and_resize(self,
                                                mock_block_storage,
                                                confirm=False,
                                                do_delete=False):
        fake_server = object()
        flavor = mock.MagicMock()
        to_flavor = mock.MagicMock()
        scenario = servers.BootServerFromVolumeAndResize(self.context,
                                                         clients=mock.Mock())
        scenario._boot_server = mock.MagicMock(return_value=fake_server)
        scenario.generate_random_name = mock.MagicMock(return_value="name")
        scenario._resize_confirm = mock.MagicMock()
        scenario._resize_revert = mock.MagicMock()
        scenario._resize = mock.MagicMock()
        scenario.sleep_between = mock.MagicMock()
        scenario._delete_server = mock.MagicMock()

        fake_volume = fakes.FakeVolumeManager().create()
        fake_volume.id = "volume_id"
        cinder = mock_block_storage.return_value
        cinder.create_volume.return_value = fake_volume

        volume_size = 10
        scenario.run("img",
                     flavor,
                     to_flavor,
                     volume_size,
                     min_sleep=10,
                     max_sleep=20,
                     confirm=confirm,
                     do_delete=do_delete)

        cinder.create_volume.assert_called_once_with(10, imageRef="img")
        scenario._boot_server.assert_called_once_with(
            None, flavor, block_device_mapping={"vda": "volume_id:::0"})
        scenario.sleep_between.assert_called_once_with(10, 20)
        scenario._resize.assert_called_once_with(fake_server, to_flavor)

        if confirm:
            scenario._resize_confirm.assert_called_once_with(fake_server)
        else:
            scenario._resize_revert.assert_called_once_with(fake_server)

        if do_delete:
            scenario._delete_server.assert_called_once_with(fake_server,
                                                            force=False)
Пример #6
0
    def test_boot_server_from_volume_and_live_migrate(self,
                                                      mock_block_storage):
        fake_server = mock.MagicMock()

        scenario = servers.BootServerFromVolumeAndLiveMigrate(
            self.context, clients=mock.Mock())
        scenario.generate_random_name = mock.MagicMock(return_value="name")
        scenario._boot_server = mock.MagicMock(return_value=fake_server)
        scenario.sleep_between = mock.MagicMock()
        scenario._find_host_to_migrate = mock.MagicMock(
            return_value="host_name")
        scenario._live_migrate = mock.MagicMock()
        scenario._delete_server = mock.MagicMock()

        fake_volume = fakes.FakeVolumeManager().create()
        fake_volume.id = "volume_id"
        cinder = mock_block_storage.return_value
        cinder.create_volume.return_value = fake_volume

        scenario.run("img",
                     0,
                     5,
                     volume_type=None,
                     min_sleep=10,
                     max_sleep=20,
                     fakearg="f")

        cinder.create_volume.assert_called_once_with(5,
                                                     imageRef="img",
                                                     volume_type=None)

        scenario._boot_server.assert_called_once_with(
            None,
            0,
            block_device_mapping={"vda": "volume_id:::1"},
            fakearg="f")

        scenario.sleep_between.assert_called_once_with(10, 20)

        scenario._find_host_to_migrate.assert_called_once_with(fake_server)

        scenario._live_migrate.assert_called_once_with(fake_server,
                                                       "host_name", False,
                                                       False)
        scenario._delete_server.assert_called_once_with(fake_server,
                                                        force=False)
Пример #7
0
    def test_boot_server_from_volume(self):
        fake_server = object()
        scenario = servers.NovaServers(self.context)
        scenario._boot_server = mock.MagicMock(return_value=fake_server)

        fake_volume = fakes.FakeVolumeManager().create()
        fake_volume.id = "volume_id"
        scenario._create_volume = mock.MagicMock(return_value=fake_volume)

        scenario.boot_server_from_volume("img", 0, 5, volume_type=None,
                                         auto_assign_nic=False,
                                         fakearg="f")

        scenario._create_volume.assert_called_once_with(5, imageRef="img",
                                                        volume_type=None)
        scenario._boot_server.assert_called_once_with(
            None, 0, auto_assign_nic=False,
            block_device_mapping={"vda": "volume_id:::1"},
            fakearg="f")
Пример #8
0
    def test_boot_runcommand_delete(self, mock_json_loads):
        # Setup mocks
        scenario = vmtasks.VMTasks()
        fake_server = fakes.FakeServer()
        fake_server.addresses = dict(
            private=[dict(
                version=4,
                addr="1.2.3.4"
            )]
        )

        scenario._boot_server = mock.MagicMock(return_value=fake_server)

        fake_volume = fakes.FakeVolumeManager().create()
        fake_volume.id = "volume_id"
        scenario._create_volume = mock.MagicMock(return_value=fake_volume)

        scenario._generate_random_name = mock.MagicMock(return_value="name")

        fake_floating_ip = fakes.FakeFloatingIP()
        fake_floating_ip.ip = "4.3.2.1"
        scenario._create_floating_ip = mock.MagicMock(
            return_value=fake_floating_ip)
        scenario._associate_floating_ip = mock.MagicMock()
        scenario._release_server_floating_ip = mock.MagicMock()

        fake_floating_ip_pool = fakes.FakeFloatingIPPool()
        fake_floating_ip_pool.name = "public"
        scenario._list_floating_ip_pools = mock.MagicMock(
            return_value=[fake_floating_ip_pool])

        scenario.run_command = mock.MagicMock()
        scenario.run_command.return_value = (0, 'stdout', 'stderr')
        scenario._delete_server = mock.MagicMock()

        # Run scenario
        scenario.boot_runcommand_delete(
            "image_id", "flavour_id", "script_path", "interpreter",
            fixed_network='private', floating_network='public',
            volume_args={'size': 10}, username="******", ip_version=4,
            port=22, use_floatingip=True, fakearg="f")

        # Assertions
        scenario._boot_server.assert_called_once_with(
            'name', 'image_id', "flavour_id", key_name="rally_ssh_key",
            fakearg="f", block_device_mapping={'vda': 'volume_id:::1'})

        scenario._create_volume.assert_called_once_with(10, imageRef=None)
        scenario._create_floating_ip.assert_called_once_with(
            fake_floating_ip_pool.name)
        scenario._associate_floating_ip.assert_called_once_with(
            fake_server, fake_floating_ip)
        scenario.run_command.assert_called_once_with(
            fake_floating_ip.ip, 22, 'username',
            "interpreter", "script_path")

        mock_json_loads.assert_called_once_with('stdout')

        scenario._release_server_floating_ip.assert_called_once_with(
            fake_server, fake_floating_ip)
        scenario._delete_server.assert_called_once_with(fake_server)