示例#1
0
 def test_image_compression(self):
     # Testing for nova.conf, too low, negative, and a correct value.
     self.assertEqual(vm_utils.get_compression_level(), None)
     self.flags(xenapi_image_compression_level=0)
     self.assertEqual(vm_utils.get_compression_level(), None)
     self.flags(xenapi_image_compression_level=-6)
     self.assertEqual(vm_utils.get_compression_level(), None)
     self.flags(xenapi_image_compression_level=6)
     self.assertEqual(vm_utils.get_compression_level(), 6)
示例#2
0
 def test_image_compression(self):
     # Testing for nova.conf, too low, negative, and a correct value.
     self.assertEqual(vm_utils.get_compression_level(), None)
     self.flags(xenapi_image_compression_level=0)
     self.assertEqual(vm_utils.get_compression_level(), None)
     self.flags(xenapi_image_compression_level=-6)
     self.assertEqual(vm_utils.get_compression_level(), None)
     self.flags(xenapi_image_compression_level=6)
     self.assertEqual(vm_utils.get_compression_level(), 6)
示例#3
0
 def upload_image(self, context, session, instance, image_id, vdi_uuids):
     try:
         host_url = CONF.xenserver.connection_url
         level = vm_utils.get_compression_level()
         metadata = self._get_metadata(context, instance, image_id)
         image_chunks = xenapi_image.stream_from_vdis(
             context, session, instance, host_url, vdi_uuids,
             compresslevel=level)
         image_stream = utils.IterableToFileAdapter(image_chunks)
         IMAGE_API.update(context, image_id, metadata,
                          data=image_stream)
     except xenapi_exception.OsXenApiException as e:
         LOG.error("Image upload failed with exception: %s", e)
         raise exception.CouldNotUploadImage(image_id=image_id)
 def upload_image(self, context, session, instance, image_id, vdi_uuids):
     try:
         host_url = CONF.xenserver.connection_url
         level = vm_utils.get_compression_level()
         metadata = self._get_metadata(context, instance, image_id)
         image_chunks = xenapi_image.stream_from_vdis(context,
                                                      session,
                                                      instance,
                                                      host_url,
                                                      vdi_uuids,
                                                      compresslevel=level)
         image_stream = utils.IterableToFileAdapter(image_chunks)
         IMAGE_API.update(context, image_id, metadata, data=image_stream)
     except xenapi_exception.OsXenApiException as e:
         LOG.error("Image upload failed with exception: %s", e)
         raise exception.CouldNotUploadImage(image_id=image_id)
示例#5
0
    def upload_image(self, context, session, instance, vdi_uuids, image_id):
        params = self._make_params(context, session, image_id)
        params['vdi_uuids'] = vdi_uuids

        props = params['properties'] = {}
        props['auto_disk_config'] = instance['auto_disk_config']
        props['os_type'] = instance['os_type'] or CONF.default_os_type

        compression_level = vm_utils.get_compression_level()
        if compression_level:
            props['xenapi_image_compression_level'] = compression_level

        try:
            self._call_glance_plugin(session, 'upload_vhd', params)
        except exception.PluginRetriesExceeded:
            raise exception.CouldNotUploadImage(image_id=image_id)
示例#6
0
文件: glance.py 项目: ainiaa/nova
    def upload_image(self, context, session, instance, vdi_uuids, image_id):
        params = self._make_params(context, session, image_id)
        params['vdi_uuids'] = vdi_uuids

        props = params['properties'] = {}
        props['auto_disk_config'] = instance['auto_disk_config']
        props['os_type'] = instance['os_type'] or CONF.default_os_type

        compression_level = vm_utils.get_compression_level()
        if compression_level:
            props['xenapi_image_compression_level'] = compression_level

        try:
            self._call_glance_plugin(session, 'upload_vhd', params)
        except exception.PluginRetriesExceeded:
            raise exception.CouldNotUploadImage(image_id=image_id)
    def upload_image(self, context, session, instance, image_id, vdi_uuids):
        params = self._make_params(context, session, image_id)
        params["vdi_uuids"] = vdi_uuids

        props = params["properties"] = {}
        props["auto_disk_config"] = instance["auto_disk_config"]
        props["os_type"] = instance.get("os_type", None) or (CONF.xenserver.default_os_type)

        compression_level = vm_utils.get_compression_level()
        if compression_level:
            props["xenapi_image_compression_level"] = compression_level

        auto_disk_config = utils.get_auto_disk_config_from_instance(instance)
        if utils.is_auto_disk_config_disabled(auto_disk_config):
            props["auto_disk_config"] = "disabled"

        try:
            self._call_glance_plugin(context, instance, session, "upload_vhd2", params)
        except exception.PluginRetriesExceeded:
            raise exception.CouldNotUploadImage(image_id=image_id)
示例#8
0
    def upload_image(self, context, session, instance, image_id, vdi_uuids):
        params = {'vdi_uuids': vdi_uuids}
        props = params['properties'] = {}
        props['auto_disk_config'] = instance['auto_disk_config']
        props['os_type'] = instance.get(
            'os_type', None) or (CONF.xenserver.default_os_type)

        compression_level = vm_utils.get_compression_level()
        if compression_level:
            props['xenapi_image_compression_level'] = compression_level

        auto_disk_config = utils.get_auto_disk_config_from_instance(instance)
        if utils.is_auto_disk_config_disabled(auto_disk_config):
            props["auto_disk_config"] = "disabled"

        try:
            self._call_glance_plugin(context, instance, session,
                                     host_glance.upload_vhd, image_id, params)
        except xenapi_exception.PluginRetriesExceeded:
            raise exception.CouldNotUploadImage(image_id=image_id)
示例#9
0
文件: glance.py 项目: arbrandes/nova
    def upload_image(self, context, session, instance, image_id, vdi_uuids):
        params = {'vdi_uuids': vdi_uuids}
        props = params['properties'] = {}
        props['auto_disk_config'] = instance['auto_disk_config']
        props['os_type'] = instance.get('os_type', None) or (
                CONF.xenserver.default_os_type)

        compression_level = vm_utils.get_compression_level()
        if compression_level:
            props['xenapi_image_compression_level'] = compression_level

        auto_disk_config = utils.get_auto_disk_config_from_instance(instance)
        if utils.is_auto_disk_config_disabled(auto_disk_config):
            props["auto_disk_config"] = "disabled"

        try:
            self._call_glance_plugin(context, instance, session,
                                     host_glance.upload_vhd, image_id, params)
        except xenapi_exception.PluginRetriesExceeded:
            raise exception.CouldNotUploadImage(image_id=image_id)
        except xenapi_exception.PluginImageNotFound:
            raise exception.ImageNotFound(image_id=image_id)