Пример #1
0
 def ddtest_create_bootable_volume_from_last_of_3_snapshots_of_a_server(
     self,
     image,
     flavor,
     volume_type=BlockstorageDatasets.default_volume_type_model()):
     self.create_bootable_volume_from_third_snapshot_of_server_test(
         image, flavor, volume_type)
    def ddtest_verify_data_on_custom_snapshot_after_copy_to_volume(
            self, image, flavor,
            volume_type=BlockstorageDatasets.default_volume_type_model()):
        """This test currently only works for Linux images"""

        # Create a server
        original_server = self.new_server(
            name=self.random_server_name(), image=image.id, flavor=flavor.id,
            add_cleanup=False)

        # Connect to server
        original_server_connection = self.connect_to_instance(
            original_server)

        # Write data to the root disk
        file_name = random_string("original_data")
        file_content = "a" * 1024
        self.create_remote_file(
            original_server_connection, '/', file_name, file_content)
        original_server_connection.filesystem_sync()

        # Get hash of remote file
        original_hash = self.get_remote_file_md5_hash(
            original_server_connection, '/', file_name)

        # Create a snapshot of the server
        server_snapshot = self.make_server_snapshot(original_server)

        # Create a bootable volume from the server snapshot
        bootable_volume = self.create_volume_from_image_test(
            volume_type, server_snapshot)

        # Create block device mapping
        bdm = self.compute.servers.behaviors.create_block_device_mapping_v1(
            bootable_volume.id_, True, 'vda', bootable_volume.size,
            volume_type.id_)

        # Boot a server from the volume
        new_bfv_server = self.servers.behaviors.create_active_server(
            name=self.random_server_name(), flavor_ref=flavor.id,
            block_device_mapping=bdm).entity

        assert new_bfv_server is not None, (
            "Unable to build a server from volume '{volume}' and flavor "
            "'{flavor}' with block device mapping: {bdm}".format(
                volume=bootable_volume.id_, flavor=flavor.id, bdm=bdm))

        # Setup remote instance client
        new_bfv_server_conn = self.connect_to_instance(
            new_bfv_server, os_type='linux')

        # Get hash of remote file
        restored_hash = self.get_remote_file_md5_hash(
            new_bfv_server_conn, '/', file_name)

        assert original_hash == restored_hash, (
            'Restored data hash "{0}" did not match original data hash "{1}"'
            .format(restored_hash, original_hash))
Пример #3
0
    def ddtest_verify_data_on_custom_snapshot_after_copy_to_volume(
            self, image, flavor,
            volume_type=BlockstorageDatasets.default_volume_type_model()):
        """This test currently only works for Linux images"""

        # Create a server
        original_server = self.new_server(
            name=self.random_server_name(), image=image.id, flavor=flavor.id,
            add_cleanup=False)

        # Connect to server
        original_server_connection = self.connect_to_instance(
            original_server)

        # Write data to the root disk
        file_name = random_string("original_data")
        file_content = "a" * 1024
        self.create_remote_file(
            original_server_connection, '/', file_name, file_content)
        original_server_connection.filesystem_sync()

        # Get hash of remote file
        original_hash = self.get_remote_file_md5_hash(
            original_server_connection, '/', file_name)

        # Create a snapshot of the server
        server_snapshot = self.make_server_snapshot(original_server)

        # Create a bootable volume from the server snapshot
        bootable_volume = self.create_volume_from_image_test(
            volume_type, server_snapshot)

        # Create block device mapping
        bdm = self.compute.servers.behaviors.create_block_device_mapping_v1(
            bootable_volume.id_, True, 'vda', bootable_volume.size,
            volume_type.id_)

        # Boot a server from the volume
        new_bfv_server = self.servers.behaviors.create_active_server(
            name=self.random_server_name(), flavor_ref=flavor.id,
            block_device_mapping=bdm).entity

        assert new_bfv_server is not None, (
            "Unable to build a server from volume '{volume}' and flavor "
            "'{flavor}' with block device mapping: {bdm}".format(
                volume=bootable_volume.id_, flavor=flavor.id, bdm=bdm))

        # Setup remote instance client
        new_bfv_server_conn = self.connect_to_instance(
            new_bfv_server, os_type='linux')

        # Get hash of remote file
        restored_hash = self.get_remote_file_md5_hash(
            new_bfv_server_conn, '/', file_name)

        assert original_hash == restored_hash, (
            'Restored data hash "{0}" did not match original data hash "{1}"'
            .format(restored_hash, original_hash))
 def ddtest_create_bootable_volume_from_last_of_3_snapshots_of_a_server(
         self, image, flavor,
         volume_type=BlockstorageDatasets.default_volume_type_model()):
     self.create_bootable_volume_from_third_snapshot_of_server_test(
         image, flavor, volume_type)