Пример #1
0
    def update(self, indicator, owner=None):
        """ add indicator to resource container """
        # resource object
        resource_obj = IndicatorObject()
        resource_type = get_resource_type(self.tc._indicators_regex, indicator)
        resource_obj.set_indicator(indicator, resource_type)  # set temporary resource id
        resource_obj.set_owner_name(owner)
        resource_obj.set_phase(2)  # set resource api phase (1 = add)

        # return object for modification
        return self._method_wrapper(resource_obj)
Пример #2
0
    def add(self, indicator, owner=None, type=None, api_entity=None):
        """ add indicator to resource container """
        if type is not None:
            if isinstance(type, IndicatorType):
                if type == IndicatorType.CUSTOM_INDICATORS and not isinstance(indicator, OrderedDict):
                    # change dicts to be Ordered before calling set_indicator
                    field_names = self.tc.indicator_parser.get_field_labels_by_api_entity(api_entity)
                    ordered_indicator = OrderedDict()
                    for field_name in field_names:
                        ordered_indicator[field_name] = indicator.get(field_name)

                    indicator = ordered_indicator

                # generate unique temporary id
                resource_id = uuid.uuid4().int

                # resource object
                resource_obj = self.tc.indicator_parser.construct_typed_indicator(ResourceType(type.value), api_entity=api_entity)
                resource_obj.set_id(int(resource_id))  # set temporary resource id
                resource_obj.set_indicator(indicator, ResourceType(type.value), False)
                resource_obj.set_owner_name(owner)
                resource_obj.set_phase(1)  # set resource api phase (1 = add)

                return self._method_wrapper(resource_obj)

            else:
                raise AttributeError(ErrorCodes.e10060.name.format(indicator))

        elif SharedMethods.validate_indicator(self.tc._indicators_regex, indicator):
            # validate indicator

            # generate unique temporary id
            resource_id = uuid.uuid4().int

            resource_type = get_resource_type(self.tc._indicators_regex, indicator)

            # resource object
            resource_obj = self.tc.indicator_parser.construct_typed_indicator(resource_type)
            resource_obj.set_id(int(resource_id))  # set temporary resource id
            resource_obj.set_indicator(indicator, resource_type, False)
            resource_obj.set_owner_name(owner)
            resource_obj.set_phase(1)  # set resource api phase (1 = add)

            # return object for modification
            return self._method_wrapper(resource_obj)
        else:
            raise AttributeError(ErrorCodes.e10050.name.format(indicator))
Пример #3
0
    def delete(self, indicator, owner=None):
        """ add indicator to resource container """
        # generate unique temporary id
        resource_id = indicator

        # resource object
        resource_type = get_resource_type(self.tc._indicators_regex, indicator)
        resource_obj = self.tc.indicator_parser.construct_typed_indicator(resource_type)
        resource_obj.set_id(int(resource_id))  # set temporary resource id
        resource_obj.set_owner_name(owner)
        resource_obj.set_phase(2)  # set resource api phase (1 = add)

        # call delete to queue call
        wrapper = self._method_wrapper(resource_obj)
        wrapper.delete()
        # return object for modification
        return wrapper
Пример #4
0
    def add(self, indicator, owner=None, type=None):
        """ add indicator to resource container """

        if type is not None:
            if isinstance(type, IndicatorType):
                # generate unique temporary id
                resource_id = uuid.uuid4().int

                # resource object
                resource_obj = IndicatorObject()
                resource_obj.set_id(int(resource_id))  # set temporary resource id
                # resource_obj.set_resource_type(ResourceType(type.value)) # set this before indicator
                resource_obj.set_indicator(indicator, ResourceType(type.value), False)
                resource_obj.set_owner_name(owner)
                resource_obj.set_phase(1)  # set resource api phase (1 = add)

                # return object for modification
                return self._method_wrapper(resource_obj)
            else:
                raise AttributeError(ErrorCodes.e10060.name.format(indicator))

        elif SharedMethods.validate_indicator(self.tc._indicators_regex, indicator):
            # validate indicator

            # generate unique temporary id
            resource_id = uuid.uuid4().int

            # resource object
            resource_obj = IndicatorObject()
            resource_obj.set_id(int(resource_id))  # set temporary resource id
            resource_type = get_resource_type(self.tc._indicators_regex, indicator)
            resource_obj.set_indicator(indicator, resource_type, False)
            resource_obj.set_owner_name(owner)
            resource_obj.set_phase(1)  # set resource api phase (1 = add)

            # return object for modification
            return self._method_wrapper(resource_obj)
        else:
            raise AttributeError(ErrorCodes.e10050.name.format(indicator))