|
@@ -7,9 +7,10 @@ from nova import app, db, models
|
|
|
from itsdangerous import Signer, BadSignature
|
|
|
|
|
|
|
|
|
-def create_dataset(name, user, parent=None):
|
|
|
+def create_dataset(name, user, parent_id=None):
|
|
|
root = app.config['NOVA_ROOT_PATH']
|
|
|
path = hashlib.sha256(user.name + name + str(datetime.datetime.now())).hexdigest()
|
|
|
+ parent = db.session.query(models.Dataset).filter(models.Dataset.id == parent_id).first()
|
|
|
dataset = models.Dataset(name=name, path=path, parent=[parent] if parent else [])
|
|
|
abspath = os.path.join(root, path)
|
|
|
os.makedirs(abspath)
|
|
@@ -33,21 +34,3 @@ def check_token(token):
|
|
|
abort(401)
|
|
|
|
|
|
return user
|
|
|
-
|
|
|
-
|
|
|
-def copy(dataset, parent):
|
|
|
- def copytree(src, dst, symlinks=False, ignore=None):
|
|
|
- for item in os.listdir(src):
|
|
|
- s = os.path.join(src, item)
|
|
|
- d = os.path.join(dst, item)
|
|
|
- if os.path.isdir(s):
|
|
|
- copytree(s, d, symlinks, ignore)
|
|
|
- else:
|
|
|
- if not os.path.exists(d) or os.stat(s).st_mtime - os.stat(d).st_mtime > 1:
|
|
|
- shutil.copy2(s, d)
|
|
|
-
|
|
|
- root = app.config['NOVA_ROOT_PATH']
|
|
|
- src = os.path.join(root, parent.path)
|
|
|
- dst = os.path.join(root, dataset.path)
|
|
|
- app.logger.info("Copy data from {} to {}".format(src, dst))
|
|
|
- copytree(src, dst)
|