Ejemplo n.º 1
0
    def _update(self,
                image_id,
                image_meta,
                data=None,
                method='update',
                purge_props=False):
        """Modify the given image with the new data.

        :param image_id: The opaque image identifier.
        :param data: (Optional) File object to update data from.
        :param purge_props: (Optional=False) Purge existing properties.
        :returns: dict -- New created image metadata
        """
        (image_id, self.glance_host, self.glance_port,
         use_ssl) = service_utils.parse_image_ref(image_id)
        if image_meta:
            image_meta = service_utils.translate_to_glance(image_meta)
        else:
            image_meta = {}
        if self.version == 1:
            image_meta['purge_props'] = purge_props
            if data:
                image_meta['data'] = data

        # NOTE(bcwaldon): id is not an editable field, but it is likely to be
        # passed in by calling code. Let's be nice and ignore it.
        image_meta.pop('id', None)

        image_meta = self.call(method, image_id, **image_meta)

        if self.version == 2 and data:
            self.call('upload', image_id, data)
            image_meta = self._show(image_id)

        return image_meta
Ejemplo n.º 2
0
    def _update(self, image_id, image_meta, data=None, method='update',
                purge_props=False):

        """Modify the given image with the new data.

        :param image_id: The opaque image identifier.
        :param data: (Optional) File object to update data from.
        :param purge_props: (Optional=False) Purge existing properties.
        :returns: dict -- New created image metadata
        """
        (image_id, self.glance_host,
         self.glance_port, use_ssl) = service_utils.parse_image_ref(image_id)
        if image_meta:
            image_meta = service_utils.translate_to_glance(image_meta)
        else:
            image_meta = {}
        if self.version == 1:
            image_meta['purge_props'] = purge_props
            if data:
                image_meta['data'] = data

        #NOTE(bcwaldon): id is not an editable field, but it is likely to be
        # passed in by calling code. Let's be nice and ignore it.
        image_meta.pop('id', None)

        image_meta = self.call(method, image_id, **image_meta)

        if self.version == 2 and data:
            self.call('upload', image_id, data)
            image_meta = self._show(image_id)

        return image_meta
Ejemplo n.º 3
0
    def _create(self, image_meta, data=None, method='create'):
        """Store the image data and return the new image object.

        :param image_meta: A dict containing image metadata
        :param data: (Optional) File object to create image from.
        :returns: dict -- New created image metadata
        """
        sent_service_image_meta = service_utils.translate_to_glance(image_meta)

        # TODO(ghe): Allow copy-from or location headers Bug #1199532

        if data:
            sent_service_image_meta['data'] = data

        recv_service_image_meta = self.call(method, **sent_service_image_meta)

        return service_utils.translate_from_glance(recv_service_image_meta)
Ejemplo n.º 4
0
    def _create(self, image_meta, data=None, method='create'):
        """Store the image data and return the new image object.

        :param image_meta: A dict containing image metadata
        :param data: (Optional) File object to create image from.
        :returns: dict -- New created image metadata
        """
        sent_service_image_meta = service_utils.translate_to_glance(image_meta)

        #TODO(ghe): Allow copy-from or location headers Bug #1199532

        if data:
            sent_service_image_meta['data'] = data

        recv_service_image_meta = self.call(method, **sent_service_image_meta)

        return service_utils.translate_from_glance(recv_service_image_meta)