def _action(self, session, body, action="action"):
        """Perform instance action"""
        url = utils.urljoin(self.base_path, self._get_id(self), action)
        endpoint_override = self.service.get_endpoint_override()
        if endpoint_override is None:
            url = self._get_custom_url(session, url)
        else:
            endpoint_override = self._get_custom_override(endpoint_override)
        if action == "action":
            response = session.post(url,
                                    endpoint_filter=self.service,
                                    endpoint_override=endpoint_override,
                                    json=body,
                                    raise_exc=False,
                                    headers={
                                        "Accept": "application/json",
                                        "Content-type": "application/json",
                                        "X-Language": "en-us"
                                    })
        else:
            response = session.get(url,
                                   endpoint_filter=self.service,
                                   endpoint_override=endpoint_override,
                                   json=body,
                                   raise_exc=False,
                                   headers={
                                       "Accept": "application/json",
                                       "Content-type": "application/json",
                                       "X-Language": "en-us"
                                   })
        if response.status_code >= 400:
            return ErrorResponse.make_response(response)

        self._translate_response(response)
        return self
Beispiel #2
0
 def create(self, session, prepend_key=True):
     endpoint_override = self.service.get_endpoint_override()
     request = self._prepare_request(requires_id=False, prepend_key=False)
     if endpoint_override is None:
         request.uri = self._get_custom_url(session, request.uri)
     response = session.post(request.uri,
                             endpoint_filter=self.service,
                             endpoint_override=endpoint_override,
                             json=request.body,
                             headers=request.headers,
                             raise_exc=False)
     if response.status_code >= 400:
         return ErrorResponse.make_response(response)
     self._translate_response(response)
     return self
    def recovery_instance(self, session, **params):
        endpoint_override = self.service.get_endpoint_override()
        if endpoint_override is None:
            url = self._get_custom_url(session, self.base_path)
        else:
            endpoint_override = self._get_custom_override(endpoint_override)
        response = session.post(url,
                                endpoint_filter=self.service,
                                endpoint_override=endpoint_override,
                                json=params,
                                raise_exc=False,
                                headers={
                                    "Accept": "application/json",
                                    "Content-type": "application/json",
                                    "X-Language": "en-us"
                                })
        if response.status_code >= 400:
            return ErrorResponse.make_response(response)

        self._translate_response(response)
        return self
    def set_params(self, session, **params):
        uri = self.base_path % params
        params.pop('instance_id')
        body = {'values': params}
        endpoint_override = self.service.get_endpoint_override()
        if endpoint_override is None:
            uri = self._get_custom_url(session, uri)
        else:
            endpoint_override = self._get_custom_override(endpoint_override)
        response = session.put(uri,
                               endpoint_filter=self.service,
                               endpoint_override=endpoint_override,
                               raise_exc=False,
                               headers={
                                   "Accept": "application/json",
                                   "Content-type": "application/json",
                                   "X-Language": "en-us"
                               },
                               json=body)
        if response.status_code >= 400:
            return ErrorResponse.make_response(response)

        self._translate_response(response)
        return self