예제 #1
0
    def create_object(self, obj_type, payload, return_fields=None):
        """Create an Infoblox object of type 'obj_type'

        Args:
            obj_type        (str): Infoblox object type,
                                  e.g. 'network', 'range', etc.
            payload       (dict): Payload with data to send
            return_fields (list): List of fields to be returned
        Returns:
            The object reference of the newly create object
        Raises:
            InfobloxException
        """
        self._validate_obj_type_or_die(obj_type)

        query_params = self._build_query_params(return_fields=return_fields)

        url = self._construct_url(obj_type, query_params)
        opts = self._get_request_options(data=payload)
        r = self.session.post(url, **opts)

        self._validate_authorized(r)

        if r.status_code != requests.codes.CREATED:
            raise ib_ex.InfobloxCannotCreateObject(
                response=jsonutils.loads(r.content),
                obj_type=obj_type,
                content=r.content,
                args=payload,
                code=r.status_code)

        return jsonutils.loads(r.content)
 def side_effect(*args, **kwargs):
     raise exceptions.InfobloxCannotCreateObject(
         response={'Error': 'Message'},
         obj_type='object_type',
         content='hoge',
         args={},
         code=400)
예제 #3
0
 def create_object_mock(obj_type, payload, return_fields=None):
     if payload['name'] in allowed_eas:
         return payload
     else:
         raise exceptions.InfobloxCannotCreateObject(
             response='',
             obj_type='extensibleattributedef',
             content='',
             args={},
             code=500)