Example #1
0
  def post(self, target_environment, reqdata=None):

    environment = abort_if_obj_doesnt_exist(self.filter_by, str(target_environment), Environment, blame_for_all=False)

    
    if not reqdata:
      self.parser.add_argument('server', type=str)
      self.parser.add_argument('action', type=str, required=True)
      self.parser.add_argument('destination', type=str, required=True)
      self.parser.add_argument('status', type=str, default='pending')
      self.parser.add_argument('response', type=str, default='')
      reqdata = self.parser.parse_args()

    # when called from inside reqdata is already filled so the above if block 
    # is skipped and cannot set default value of pending if not defined. 
    # The code bellow check and set it.
    if 'status' not in reqdata:
      reqdata['status'] = 'pending'
    if 'response' not in reqdata:
      reqdata['response'] = ''


    # if server not null it will create only one task itself. Otherwise
    # will create one task for each environment's server.
    servers = []
    if reqdata['server']:
      servers = [reqdata['server']]
    else:
      for server in environment.servers:
        print 'server:%s\n\n\n\n\n\n\n\n\n' % server.name
        servers.append(server.name)

    for server in servers:

      taskid = str(uuid.uuid4())
      task = Task(
        taskid = taskid,
        action = reqdata['action'],
        destination = reqdata['destination'],
        status = reqdata['status'] or 'pending',
        response = reqdata['response'] or '',
        environment = environment.name,
        server = server
      )

      # it will try sava or update task.  
      try:
        task.save()
        
      except Exception, e:
        logger.error('Error trying to create task %s' %  e)
        abort(500, message='Error trying to create task')

      return {
        'response': 'task sucessfully created taskid:[%s]' % taskid
      }, 201
Example #2
0
    def post(self, target_environment, reqdata=None):

        environment = abort_if_obj_doesnt_exist(self.filter_by,
                                                str(target_environment),
                                                Environment,
                                                blame_for_all=False)

        if not reqdata:
            self.parser.add_argument('server', type=str)
            self.parser.add_argument('action', type=str, required=True)
            self.parser.add_argument('destination', type=str, required=True)
            self.parser.add_argument('status', type=str, default='pending')
            self.parser.add_argument('response', type=str, default='')
            reqdata = self.parser.parse_args()

        # when called from inside reqdata is already filled so the above if block
        # is skipped and cannot set default value of pending if not defined.
        # The code bellow check and set it.
        if 'status' not in reqdata:
            reqdata['status'] = 'pending'
        if 'response' not in reqdata:
            reqdata['response'] = ''

        # if server not null it will create only one task itself. Otherwise
        # will create one task for each environment's server.
        servers = []
        if reqdata['server']:
            servers = [reqdata['server']]
        else:
            for server in environment.servers:
                print 'server:%s\n\n\n\n\n\n\n\n\n' % server.name
                servers.append(server.name)

        for server in servers:

            taskid = str(uuid.uuid4())
            task = Task(taskid=taskid,
                        action=reqdata['action'],
                        destination=reqdata['destination'],
                        status=reqdata['status'] or 'pending',
                        response=reqdata['response'] or '',
                        environment=environment.name,
                        server=server)

            # it will try sava or update task.
            try:
                task.save()

            except Exception, e:
                logger.error('Error trying to create task %s' % e)
                abort(500, message='Error trying to create task')

            return {
                'response': 'task sucessfully created taskid:[%s]' % taskid
            }, 201