Esempio n. 1
0
    def test_resize_server_revert(self):
        """Verify that a re-sized server can be reverted."""

        # Resize the server and wait for it to finish
        new_flavor = self.os.flavors.get(2)
        self.server.resize(new_flavor)

        # Let the resize-confirm register or self.os.serves.get will
        # raise an exception
        time.sleep(2)

        # Create list of states
        states = utils.StatusTracker('active', 'resize-confirm')

        # Wait for server to transition to next state and make sure it
        # went to the correct one
        dtutil.assert_is(True,
                         states.waitForState(self.os.servers.get,
                                             'status', self.server))

        # Revert the resize
        self.server.revert_resize()

        # Check that the was reverted to its original flavor
        self.server = self.os.servers.get(self.server)
        dtutil.assert_equal(new_flavor.id, self.server.flavorId)
Esempio n. 2
0
    def test_delete(self):
        """Verify servers can be deleted.

        This logically belongs in test_create_delete_server,
        which is a dependency for all the other tests. However,
        this test fails due to Nova bug #793785
        """

        server_name = self.randName()
        new_server = self.create_server(server_name, FLAGS.image, FLAGS.flavor)

        # Legal states...
        states = utils.StatusTracker("active", "build", "active")

        # Wait for server to transition to next state and make sure it
        # went to the correct one
        states.waitForState(self.os.servers.get, "status", new_server)

        # Delete the server and verify it is removed
        new_server.delete()

        # Legal states. Nova bug #793785
        # Status goes through 'build' when deleting, but should not.
        states = utils.StatusTracker("active", "deleted")

        # Verify that state goes to "deleted", or raises NotFound exception.
        try:
            dtutil.assert_is(True, states.waitForState(self.os.servers.get, "status", new_server))
        except novaclient.exceptions.NotFound:
            pass
Esempio n. 3
0
    def test_snap_and_restore(self):
        """Verify that a server is snapped and rebuilt from that snap"""

        states = utils.StatusTracker('active', 'queued', 'preparing',
                                     'saving', 'active')

        # Make a backup image for the server
        backup_image = self.os.images.create(server=self.server,
                                             name="backup")
        dtutil.assert_is(True,
                         states.waitForState(self.os.images.get,
                                             'status', backup_image))

        # wrap it in a try so that we can clean up afterwards
        try:
            dtutil.assert_equal(backup_image.name, "backup")

            # Finally, rebuild from the image
            states = utils.StatusTracker('active', 'build', 'active')
            self.os.servers.rebuild(self.server.id, backup_image.id)
            dtutil.assert_is(True,
                             states.waitForState(self.os.servers.get,
                                                 'status', self.server))
            created_server = self.os.servers.get(self.server.id)

            # This has the original image_id out of convention.
            image = self.os.images.get(created_server.imageId)
            dtutil.assert_equal(backup_image.name, image.name)
        finally:
            # delete the image
            self.glance_connection.delete_image(backup_image)
Esempio n. 4
0
    def test_reboot_server_hard(self):
        """Verify that a server can be hard-rebooted."""

        # Verify the server goes through the correct states
        # when rebooting
        # Nova bug 795228
        states = utils.StatusTracker('active', 'hard_reboot', 'active')
        self.os.servers.reboot(self.server, type='HARD')
        dtutil.assert_is(True,
                         states.waitForState(self.os.servers.get,
                                             'status', self.server))
Esempio n. 5
0
    def test_create_server_image(self):
        """Verify a backup image for a server can be created."""

        # Set legal states
        states = utils.StatusTracker('active', 'queued', 'preparing',
                                     'saving', 'active')

        # Make a backup image for the server
        backup_image = self.os.images.create(server=self.server,
                                             name="backup")
        dtutil.assert_is(True,
                         states.waitForState(self.os.images.get,
                                             'status', backup_image))

        dtutil.assert_equal(backup_image.name, "backup")

        # Cleanup
        self.os.images.delete(backup_image)
Esempio n. 6
0
    def test_create_delete_server(self):
        """Verify that a server is created and that it is deleted."""

        # Setup
        server_name = self.randName()
        new_server = self.create_server(server_name, FLAGS.image, FLAGS.flavor)

        # Legal states...
        states = utils.StatusTracker("active", "build", "active")

        # Wait for server to transition to next state and make sure it
        # went to the correct one
        dtutil.assert_is(True, states.waitForState(self.os.servers.get, "status", new_server))

        # Verify the server was created correctly
        created_server = self.os.servers.get(new_server.id)
        dtutil.assert_equal(server_name, created_server.name)

        # Delete the server.  The delete testing is moved to
        # test_delete
        new_server.delete()
Esempio n. 7
0
    def test_resize_server_confirm(self):
        """Verify that the flavor of a server can be changed."""

        # Resize the server and wait for it to finish
        new_flavor = self.os.flavors.get(2)
        self.server.resize(new_flavor)

        # Legal states...
        states = utils.StatusTracker('active', 'resize-confirm')

        # Wait for server to transition to next state and make sure it
        # went to the correct one
        dtutil.assert_is(True,
                         states.waitForState(self.os.servers.get,
                                             'status', self.server))

        # Confirm the resize
        self.server.confirm_resize()

        # Check that server's flavor has changed
        self.server = self.os.servers.get(self.server)
        dtutil.assert_equal(new_flavor.id, self.server.flavorId)
Esempio n. 8
0
    def test_create_from_bad_image(self):
        """Verify a bad image will not boot"""

        # Create a bad image
        new_meta = self.create_glance_image(
            file_name=FLAGS.bad_test_image, image_name=self.randName(prefix="bad_image")
        )

        try:
            # Boot the bad image
            server_name = self.randName(prefix="bad_image")
            new_server = self.create_server(server_name, new_meta["id"], FLAGS.flavor)

            # Specify expeted states
            states = utils.StatusTracker("build", "error")

            # Verify state transition
            dtutil.assert_is(True, states.waitForState(self.os.servers.get, "status", new_server))
        finally:
            # Cleanup
            self.glance_connection.delete_image(new_meta["id"])
            self.os.servers.delete(new_server)
Esempio n. 9
0
    def setUpClass(cls):
        """Set up an instance for use by the enclosed tests."""

        # Need an OpenStack instance so we can create the server
        os = cls.getOpenStack()

        # Select a random key and value for metadata; used by the
        # metadata tests
        cls.meta_key = cls.randName(length=10)
        cls.meta_data = cls.randName(length=50)

        # Set up the server
        cls.flavor = FLAGS.flavor
        cls.image = FLAGS.image
        cls.server_name = cls.randName()
        cls.server = os.servers.create(
            name=cls.server_name, image=cls.image, flavor=cls.flavor, meta={cls.meta_key: cls.meta_data}
        )

        # Wait for the server to transition to the appropriate state
        states = utils.StatusTracker("active", "build", "active")
        dtutil.assert_is(True, states.waitForState(os.servers.get, "status", cls.server))
Esempio n. 10
0
    def test_rebuild_server(self):
        """Verify that a server is created, rebuilt, and then deleted."""

        # Trigger a rebuild
        self.os.servers.rebuild(self.server.id, FLAGS.image)

        # Must wait for the rebuild to start, or self.os.servers.get
        # throws an exception
        time.sleep(4)

        # Legal states...
        states = utils.StatusTracker('active', 'build', 'active')

        # Wait for server to transition to next state and make sure it
        # went to the correct one
        dtutil.assert_is(True,
                         states.waitForState(self.os.servers.get,
                                             'status', self.server))

        # Verify that rebuild acted correctly
        created_server = self.os.servers.get(self.server.id)
        img = self.os.images.get(FLAGS.image)

        dtutil.assert_equal(img.id, created_server.imageId)