Esempio n. 1
0
 def on_post(self, req, resp, dataset, snapshot):
     """Commit a revision (snapshot) from the working tree."""
     queue = dataset_queue(dataset)
     media = req.media
     description_fields = {}
     snapshot_changes = []
     if media != None:
         description_fields = media.get('description_fields')
         snapshot_changes = media.get('snapshot_changes')
     create = create_snapshot.si(self.store.annex_path, dataset, snapshot,
                                 description_fields,
                                 snapshot_changes).set(queue=queue)
     created = create.apply_async()
     created.wait()
     if not created.failed():
         resp.media = get_snapshot.s(
             self.store.annex_path, dataset,
             snapshot).apply_async(queue=queue).get()
         resp.status = falcon.HTTP_OK
         # Publish after response
         publish = publish_snapshot.s(self.store.annex_path, dataset,
                                      snapshot, req.cookies)
         skip_publishing = req.media != None and media.get(
             'skip_publishing')
         if not skip_publishing and skip_publishing is not None:
             publish.apply_async(queue=queue)
     else:
         resp.media = {'error': 'tag already exists'}
         resp.status = falcon.HTTP_CONFLICT
Esempio n. 2
0
 def on_post(self, req, resp, dataset, snapshot):
     """Commit a revision (snapshot) from the working tree."""
     queue = dataset_queue(dataset)
     create = create_snapshot.si(
         self.store.annex_path, dataset, snapshot).set(queue=queue)
     created = create.apply_async()
     created.wait()
     if not created.failed():
         resp.media = get_snapshot.s(
             self.store.annex_path, dataset, snapshot).apply_async(queue=queue).get()
         resp.status = falcon.HTTP_OK
         # Publish after response
         publish = publish_snapshot.s(
             self.store.annex_path, dataset, snapshot, req.cookies)
         publish.apply_async(queue=queue)
     else:
         resp.media = {'error': 'tag already exists'}
         resp.status = falcon.HTTP_CONFLICT
Esempio n. 3
0
 def on_get(self, req, resp, dataset, snapshot=None):
     """Get the tree of files for a snapshot."""
     queue = dataset_queue(dataset)
     if snapshot:
         ds = self.store.get_dataset(dataset)
         files = get_files.s(self.store.annex_path, dataset,
                             branch=snapshot).apply_async(queue=queue)
         response = get_snapshot.s(
             self.store.annex_path, dataset, snapshot).apply_async(queue=queue).get()
         response['files'] = files.get()
         resp.media = response
         resp.status = falcon.HTTP_OK
     else:
         tags = get_snapshots.s(self.store.annex_path,
                                dataset).apply_async(queue=queue)
         # Index of all tags
         ds = self.store.get_dataset(dataset)
         resp.media = {'snapshots': tags.get()}
         resp.status = falcon.HTTP_OK