Ejemplo n.º 1
0
 def save(self):
     predicsis.log('Updating: ' + self.__class__.res_name() + '..', 1)
     post_data = self.__class__.parse_post_data(self.to_update)
     json_data = APIClient.request('patch', self.__class__.res_url() + '/' + self.id, post_data)
     j = json_data[self.__class__.res_name()]
     try:
         jid = j['job_ids'][0]
         status = 'pending'
         job = Job.retrieve(jid)
         status = job.status
         while ((status != 'completed') and (status != 'failed')):
             job = Job.retrieve(jid)
             status = job.status
             if status == 'failed':
                 raise PredicSisError("Job failed! (job_id: " + job.id + ")")
             #time.sleep(1)
         json_data = APIClient.request('get', self.res_url() + '/' + self.id)
         obj = json_data[self.res_name()]
         for k, v in obj.iteritems():
             if isinstance(v, dict):
                 setattr(self, k, APIResource(v))
             else:
                 setattr(self, k, v)
     except KeyError:
         json_data = APIClient.request('get', self.res_url() + '/' + self.id)
         obj = json_data[self.res_name()]
         for k, v in obj.iteritems():
             if isinstance(v, dict):
                 setattr(self, k, APIResource(v))
             else:
                 setattr(self, k, v)
     except IndexError:
         raise PredicSisError("Job launching failed. Report this bug to [email protected]");
Ejemplo n.º 2
0
 def create(cls, **data):
     if validate('c', cls.__name__, data) < 0:
         raise PredicSisError("Validation failed!")
     predicsis.log('Creating: ' + cls.res_name() + '..', 1)
     post_data = cls.parse_post_data(data)
     json_data = APIClient.request('post', cls.res_url(), post_data)
     j = json_data[cls.res_name()]
     try:
         jid = j['job_ids'][0]
         status = 'pending'
         job = Job.retrieve(jid)
         status = job.status
         while ((status != 'completed') and (status != 'failed')):
             job = Job.retrieve(jid)
             status = job.status
             if status == 'failed':
                 raise PredicSisError("Job failed! (job_id: " + job.id + ")")
             #time.sleep(1)
         return cls.retrieve(j['id'])
     except KeyError:
         return cls(j)
     except IndexError:
         raise PredicSisError("Job launching failed. Report this bug to [email protected]");
Ejemplo n.º 3
0
 def retrieve_all(cls):
     predicsis.log('Retrieving all: ' + cls.res_name() + '..', 1)
     json_data = APIClient.request('get', cls.res_url())
     j = json_data[cls.res_url().split('/')[-1]]
     return [cls(i) for i in j]
Ejemplo n.º 4
0
 def retrieve(cls, id):
     predicsis.log('Retrieving: ' + cls.res_name() + '..', 1)
     json_data = APIClient.request('get', cls.res_url() + '/' + id)
     j = json_data[cls.res_name()]
     return cls(j)
Ejemplo n.º 5
0
 def delete(self):
     predicsis.log('Deleting: ' + self.__class__.res_name() + '..', 1)
     APIClient.request('delete', self.__class__.res_url() + '/' + self.id)
     for id in self.source_ids:
         APIClient.request('delete', 'sources/' + id)
Ejemplo n.º 6
0
 def delete(self):
     predicsis.log('Deleting: ' + self.__class__.res_name() + '..', 1)
     APIClient.request('delete', self.__class__.res_url() + '/' + self.id)