Ejemplo n.º 1
0
 def refresh(self):
     try:
         self.raw = self._api.get_blob_properties(self._container,
                                                  self._name)
     except CloudError as e:
         if e.response.status_code == 404:
             raise ImageNotFoundError(self._name)
     return self.raw
Ejemplo n.º 2
0
 def refresh(self):
     try:
         self.raw = self._api.get(project=self._project, image=self._name).execute()
     except errors.HttpError as error:
         if error.resp.status == 404:
             raise ImageNotFoundError(self._name)
         else:
             raise
     return self.raw
Ejemplo n.º 3
0
 def get_template(self, name_or_id):
     matches = self.find_templates(name=name_or_id)
     if not matches:
         raise ImageNotFoundError(
             'Unable to find image {}'.format(name_or_id))
     elif len(matches) > 1:
         raise MultipleImagesError(
             'Image name {} returned more than one image '
             'Use the ami-ID or remove duplicates from EC2'.format(
                 name_or_id))
     return matches[0]
Ejemplo n.º 4
0
 def get_template(self, name=None, id=None):
     """
     Get a template by name OR id
     """
     if name:
         matches = self.find_templates(name)
         if not matches:
             raise ImageNotFoundError(name)
         elif len(matches) > 1:
             raise MultipleImagesError(name)
         result = matches[0]
     elif id:
         try:
             raw_image = self.api.images.get(id)
         except os_exceptions.NotFound:
             raise ImageNotFoundError(id)
         result = OpenstackImage(system=self, uuid=raw_image.id, raw=raw_image)
     else:
         raise AttributeError("Must specify either 'name' or 'id' with get_template")
     return result
Ejemplo n.º 5
0
 def get_template(self, name, project=None):
     if not project:
         project = self._project
     try:
         image = self._compute.images().get(project=project, image=name).execute()
         return GoogleCloudImage(system=self, raw=image, project=project, name=name)
     except errors.HttpError as error:
         if error.resp.status == 404:
             raise ImageNotFoundError("'{}' not found in project '{}'".format(name, project))
         else:
             raise
Ejemplo n.º 6
0
    def get_template(self, name):
        """
        Find template with name 'name'.

        Raises ImageNotFoundError if no matches found
        Raises MultipleItemsError if multiple matches found
        """
        matches = self.find_templates(name=name)
        if not matches:
            raise ImageNotFoundError('template with name {}'.format(name))
        if len(matches) > 1:
            raise MultipleItemsError('multiple templates with name {}'.format(name))
        return matches[0]
Ejemplo n.º 7
0
    def get_template(self, name, container=None):
        """
        Return template with given name

        Raises MultipleItemsError if more than 1 exist with that name

        Args:
            container (str) -- specific container to search in
        """
        templates = self.find_templates(name=name, container=container)
        if not templates:
            raise ImageNotFoundError(name)
        elif len(templates) > 1:
            raise MultipleImagesError(
                "Image with name '{}' exists in multiple containers".format(
                    name))
        return templates[0]
Ejemplo n.º 8
0
    def refresh(self):
        """
        Get Template from SCVMM

        Returns:
            dict of raw template json
        """
        script = 'Get-SCVMTemplate -ID \"{}\" -VMMServer $scvmm_server'
        try:
            data = self._get_json(script.format(self._id))
        except SCVMMSystem.PowerShellScriptError as error:
            if "Error ID: 801" in str(error):
                # Error ID 801 is a "not found" error
                data = None
            else:
                raise
        if not data:
            raise ImageNotFoundError(self._id)
        self.raw = data
        return self.raw
Ejemplo n.º 9
0
 def refresh(self):
     try:
         self.raw = self._api.images.get(self._uuid)
     except os_exceptions.NotFound:
         raise ImageNotFoundError(self.name if self.name else self._uuid)
     return self.raw
Ejemplo n.º 10
0
 def refresh(self):
     image = self.system.get_template(self.raw.id).raw
     if not image:
         raise ImageNotFoundError(self._uuid)
     self.raw = image
     return self.raw
Ejemplo n.º 11
0
 def refresh(self):
     image = self._api.get_image(self._uuid)
     if not image:
         raise ImageNotFoundError(self._uuid)
     self.raw = image
     return self.raw