diff --git a/src/python/OBis/obis/dm/data_mgmt.py b/src/python/OBis/obis/dm/data_mgmt.py index d7f87efbfd8e71b3b5deeeb8b4f9e16104489d43..828665b4337372b971addd190a4e993a41f979ca 100644 --- a/src/python/OBis/obis/dm/data_mgmt.py +++ b/src/python/OBis/obis/dm/data_mgmt.py @@ -187,6 +187,16 @@ class AbstractDataMgmt(metaclass=abc.ABCMeta): """ return + @abc.abstractmethod + def sync(self): + """ + Syc the current repo. + + This connects to openBIS and creates a data set in openBIS. + :return: + """ + return + class NoGitDataMgmt(AbstractDataMgmt): """DataMgmt operations when git is not available -- show error messages.""" diff --git a/src/python/OBis/obis/scripts/cli.py b/src/python/OBis/obis/scripts/cli.py index 450e860d0411345d2c3dbca5b872e606211ebe5a..c542a7722b6309145743362e1b67157d09b2b47e 100644 --- a/src/python/OBis/obis/scripts/cli.py +++ b/src/python/OBis/obis/scripts/cli.py @@ -32,9 +32,10 @@ def click_progress_no_ts(progress_data): click.echo("{}".format(progress_data['message'])) -def shared_data_mgmt(): +def shared_data_mgmt(verify_certificates=True): git_config = {'find_git': True} - return dm.DataMgmt(git_config=git_config) + openbis_config = {'verify_certificates': verify_certificates} + return dm.DataMgmt(openbis_config=openbis_config, git_config=git_config) @click.group() @@ -114,6 +115,17 @@ def commit(ctx, msg, auto_add): return data_mgmt.commit(msg, auto_add) +@cli.command() +@click.pass_context +@click.option('-s', '--skip_verification', default=False, is_flag=True, help='Do not veryify cerficiates') +def sync(ctx, skip_verification): + """Sync the repository with openBIS. + """ + verify_certificates = not skip_verification + data_mgmt = shared_data_mgmt(verify_certificates=verify_certificates) + return data_mgmt.sync() + + @cli.command() @click.pass_context @click.argument('other', type=click.Path(exists=True))