Beispiel #1
0
    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])
Beispiel #2
0
    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)