def make_application(self, action_id, resource_id): if not resource_id: action = models.ActionWithoutResources(action_id) actions = [action] return models.Application(settings.APP_ID, actions) instance = models.ResourceInstance([ models.ResourceNode(self.resource_type_id, resource_id, resource_id) ]) related_resource_type = models.RelatedResourceType( settings.APP_ID, self.resource_type_id, [instance]) action = models.ActionWithResources(action_id, [related_resource_type]) return models.Application(settings.APP_ID, actions=[action])
def to_action( self ) -> Union[models.ActionWithResources, models.ActionWithoutResources]: # 资源实例相关 if self.resources: parent_chain_node = self._to_parent_chain_node() instances = [ models.ResourceInstance( parent_chain_node + [models.ResourceNode(self.resource_type, res_id, res_id)]) for res_id in self.resources ] related_resource_type = models.RelatedResourceType( settings.BK_IAM_SYSTEM_ID, self.resource_type, instances) return models.ActionWithResources(self.action_id, [related_resource_type]) # 资源实例无关 return models.ActionWithoutResources(self.action_id)