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)
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))
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
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))