コード例 #1
0
    def getTask(self, robotName, serviceGuid, taskGuid, **kwargs):
        service = self._get_service(robotName, serviceGuid)
        try:
            task = service.task_list.get_task_by_guid(taskGuid)
        except TaskNotFoundError:
            raise exceptions.NotFound(
                "Couldn't find task with guid: {}".format(taskGuid))

        ecoid = ''
        duration = "{0:.8f}".format(
            task.duration
        ) if task.duration else 'Duration info not available yet.'
        if task.eco:
            eco = j.portal.tools.models.system.Errorcondition.find(
                {'uniquekey': task.eco.uniquekey})[0]
            ecoid = str(eco.pk)
        data = {
            'actionName': task.action_name,
            'guid': task.guid,
            'createdTime': j.data.time.epoch2HRDateTime(task.created),
            'state': task.state,
            'duration': duration,
            'result': task.result or '',
            'ecoid': ecoid
        }
        return data
コード例 #2
0
 def _get_service(self, robotName, guid):
     self._check_zrobot(robotName)
     zrobot_api = j.clients.zrobot.robots[robotName]
     if guid not in zrobot_api.services.guids:
         raise exceptions.NotFound(
             "Couldn't find service with guid: {}".format(guid))
     service = zrobot_api.services.guids[guid]
     return service
コード例 #3
0
    def editGroup(self, name, description, users, **args):
        """
        edit a group
        param:name name of group
        param:description of group
        result bool

        """
        groups = j.portal.tools.models.system.Group.find({"name": name})

        if not groups:
            raise exceptions.NotFound("Group with name %s does not exists" %
                                      name)
        else:
            group = groups[0]
        if users and isinstance(users, str):
            users = users.split(',')
        elif not users:
            users = []
        users_old = [
            u['name']
            for u in j.portal.tools.models.system.User.find({'groups': name})
        ]
        users_remove = [x for x in users_old if x not in users]
        for user_name in users_remove:
            user = self._getUser(user_name)
            user['groups'].remove(group.name)
            user.save()

        users_add = [x for x in users if x not in users_old]
        for user_name in users_add:
            user = self._getUser(user_name)
            if not user:
                raise exceptions.BadRequest(
                    "user with name %s does not exists" % user)
            user['groups'].append(group.name)
            user.save()

        group['name'] = name
        group['description'] = description
        group.save()
        return True
コード例 #4
0
 def _check_zrobot(self, name):
     if name not in j.clients.zrobot.list():
         raise exceptions.NotFound(
             "Couldn't find robot instance: {}".format(name))