From 1bf843f3dce013aee3b8ce82253a404d4ed5c761 Mon Sep 17 00:00:00 2001 From: Yves Noirjean <yves.noirjean@id.ethz.ch> Date: Tue, 15 May 2018 17:46:54 +0200 Subject: [PATCH] SSDM-6476: removed data_set_ prefix from data set settings --- .../OBis/integration_tests/integration_tests.py | 16 ++++++++-------- .../OBis/obis/dm/commands/openbis_command.py | 10 +++++----- src/python/OBis/obis/dm/commands/openbis_sync.py | 6 +++--- src/python/OBis/obis/dm/config.py | 12 ++---------- src/python/OBis/obis/dm/data_mgmt.py | 2 +- src/python/OBis/obis/dm/data_mgmt_test.py | 10 +++++----- src/python/OBis/obis/scripts/cli.py | 15 ++++++++------- 7 files changed, 32 insertions(+), 39 deletions(-) diff --git a/src/python/OBis/integration_tests/integration_tests.py b/src/python/OBis/integration_tests/integration_tests.py index 85d7c84d814..cf803f13e98 100644 --- a/src/python/OBis/integration_tests/integration_tests.py +++ b/src/python/OBis/integration_tests/integration_tests.py @@ -39,13 +39,13 @@ def test_obis(tmpdir): cmd('obis config -g set user=admin') cmd('obis config -g set verify_certificates=false') cmd('obis config -g set hostname=' + socket.gethostname()) - cmd('obis data_set -g set data_set_type=UNKNOWN') + cmd('obis data_set -g set type=UNKNOWN') settings = get_settings_global() assert settings['config']['openbis_url'] == 'https://obisserver:8443' assert settings['config']['user'] == 'admin' assert settings['config']['verify_certificates'] == False assert settings['config']['hostname'] == socket.gethostname() - assert settings['data_set']['data_set_type'] == 'UNKNOWN' + assert settings['data_set']['type'] == 'UNKNOWN' with cd(tmpdir): cmd('mkdir obis_data') with cd(tmpdir + '/obis_data'): @@ -243,12 +243,12 @@ def test_obis(tmpdir): with cd('data8'): result = cmd('obis data_set -p set a=0') settings = get_settings() - assert settings['data_set']['data_set_properties'] == { 'A': '0' } - cmd('obis data_set set data_set_properties={"a":"0","b":"1","c":"2"}') + assert settings['data_set']['properties'] == { 'A': '0' } + cmd('obis data_set set properties={"a":"0","b":"1","c":"2"}') cmd('obis data_set -p set c=3') settings = get_settings() - assert settings['data_set']['data_set_properties'] == { 'A': '0', 'B': '1', 'C': '3' } - result = cmd('obis data_set set data_set_properties={"a":"0","A":"1"}') + assert settings['data_set']['properties'] == { 'A': '0', 'B': '1', 'C': '3' } + result = cmd('obis data_set set properties={"a":"0","A":"1"}') assert 'Duplicate key after capitalizing JSON config: A' in result output_buffer = '=================== 15. Removeref ===================\n' @@ -303,7 +303,7 @@ def test_obis(tmpdir): settings = get_settings() assert "Created data set {}.".format(settings['repository']['data_set_id']) in result cmd('touch file2') - cmd('obis config user=watney') + cmd('obis config set user=watney') # expect timeout because obis is asking for the password of the new user try: timeout = False @@ -351,7 +351,7 @@ def get_cmd_result(completed_process, tmpdir=''): def assert_matching(settings, data_set, tmpdir, path): content_copies = data_set['linkedData']['contentCopies'] content_copy = list(filter(lambda cc: cc['path'].endswith(path) == 1, content_copies))[0] - assert data_set['type']['code'] == settings['data_set']['data_set_type'] + assert data_set['type']['code'] == settings['data_set']['type'] assert content_copy['externalDms']['code'] == settings['repository']['external_dms_id'] assert content_copy['gitCommitHash'] == cmd('git rev-parse --short HEAD') assert content_copy['gitRepositoryId'] == settings['repository']['repository_id'] diff --git a/src/python/OBis/obis/dm/commands/openbis_command.py b/src/python/OBis/obis/dm/commands/openbis_command.py index 66fe02b99f3..2703c943f54 100644 --- a/src/python/OBis/obis/dm/commands/openbis_command.py +++ b/src/python/OBis/obis/dm/commands/openbis_command.py @@ -46,16 +46,16 @@ class OpenbisCommand(object): self.config_dict['repository']['data_set_id'] = value def data_set_type(self): - return self.config_dict['data_set']['data_set_type'] + return self.config_dict['data_set']['type'] def set_data_set_type(self, value): - self.config_dict['data_set']['data_set_type'] = value + self.config_dict['data_set']['type'] = value def data_set_properties(self): - return self.config_dict['data_set']['data_set_properties'] + return self.config_dict['data_set']['properties'] def set_data_set_properties(self, value): - self.config_dict['data_set']['data_set_properties'] = value + self.config_dict['data_set']['properties'] = value def object_id(self): return self.config_dict['object']['object_id'] @@ -135,7 +135,7 @@ class OpenbisCommand(object): if result.failure(): return result external_dms = result.output - self.settings_resolver.set_value_for_parameter('external_dms_id', external_dms.code, 'local') + self.settings_resolver.repository_resolver.set_value_for_parameter('external_dms_id', external_dms.code, 'local') self.set_external_dms_id(external_dms.code) return result diff --git a/src/python/OBis/obis/dm/commands/openbis_sync.py b/src/python/OBis/obis/dm/commands/openbis_sync.py index 8499d92741d..d087dd399f7 100644 --- a/src/python/OBis/obis/dm/commands/openbis_sync.py +++ b/src/python/OBis/obis/dm/commands/openbis_sync.py @@ -22,7 +22,7 @@ class OpenbisSync(OpenbisCommand): if self.user() is None: missing_config_settings.append('user') if self.data_set_type() is None: - missing_config_settings.append('data_set_type') + missing_config_settings.append('data_set type') if self.object_id() is None and self.collection_id() is None: missing_config_settings.append('object_id') missing_config_settings.append('collection_id') @@ -71,7 +71,7 @@ class OpenbisSync(OpenbisCommand): repository_id = self.repository_id() if self.repository_id() is None: repository_id = str(uuid.uuid4()) - self.settings_resolver.set_value_for_parameter('repository_id', repository_id, 'local') + self.settings_resolver.repository_resolver.set_value_for_parameter('repository_id', repository_id, 'local') return CommandResult(returncode=0, output=repository_id) @@ -159,7 +159,7 @@ class OpenbisSync(OpenbisCommand): self.commit_metadata_updates() # Update data set id as last commit so we can easily revert it on failure - self.settings_resolver.set_value_for_parameter('data_set_id', data_set_code, 'local') + self.settings_resolver.repository_resolver.set_value_for_parameter('data_set_id', data_set_code, 'local') self.commit_metadata_updates("data set id") # create a data set, using the existing data set as a parent, if there is one diff --git a/src/python/OBis/obis/dm/config.py b/src/python/OBis/obis/dm/config.py index d81ee21df03..57ef0a32faf 100644 --- a/src/python/OBis/obis/dm/config.py +++ b/src/python/OBis/obis/dm/config.py @@ -133,10 +133,9 @@ class ObjectEnv(ConfigEnv): class DataSetEnv(ConfigEnv): - # TODO remove data_set from property names def initialize_params(self): - self.add_param(ConfigParam(name='data_set_type', private=False)) - self.add_param(ConfigParam(name='data_set_properties', private=False, is_json=True)) + self.add_param(ConfigParam(name='type', private=False)) + self.add_param(ConfigParam(name='properties', private=False, is_json=True)) class RepositoryEnv(ConfigEnv): @@ -331,18 +330,11 @@ class SettingsResolver(object): combined_dict[key] = resolver.config_dict(local_only=local_only) return combined_dict - def set_value_for_parameter(self, name, value, loc): - for resolver in self.resolvers: - if name in resolver.env.params: - return resolver.set_value_for_parameter(name, value, loc) - raise ValueError('Config does not exist: ' + name) - def set_value_for_json_parameter(self, json_param_name, name, value, loc): for resolver in self.resolvers: if json_param_name in resolver.env.params: return resolver.set_value_for_json_parameter(json_param_name, name, value, loc) - # TODO return a list def local_public_properties_paths(self, get_usersettings=False): paths = [] for resolver in self.resolvers: diff --git a/src/python/OBis/obis/dm/data_mgmt.py b/src/python/OBis/obis/dm/data_mgmt.py index 537bfcbad44..fa7cd6f7b2a 100644 --- a/src/python/OBis/obis/dm/data_mgmt.py +++ b/src/python/OBis/obis/dm/data_mgmt.py @@ -258,7 +258,7 @@ class GitDataMgmt(AbstractDataMgmt): return CommandResult(returncode=-1, output="Not within a repository and no parent set.") # set data_set_id to analysis repository so it will be used as parent when committing with cd(path): - cli.set_property(self, "data_set_id", parent_data_set_id, False, False) + cli.set_property(self, self.settings_resolver.repository_resolver, "data_set_id", parent_data_set_id, False, False) return result diff --git a/src/python/OBis/obis/dm/data_mgmt_test.py b/src/python/OBis/obis/dm/data_mgmt_test.py index 8b4ceca636a..cf4027c4b3f 100644 --- a/src/python/OBis/obis/dm/data_mgmt_test.py +++ b/src/python/OBis/obis/dm/data_mgmt_test.py @@ -242,12 +242,12 @@ def test_init_analysis(tmpdir): def set_registration_configuration(dm, properties=None): resolver = dm.settings_resolver - resolver.set_value_for_parameter('openbis_url', "http://localhost:8888", 'local') - resolver.set_value_for_parameter('user', "auser", 'local') - resolver.set_value_for_parameter('data_set_type', "DS_TYPE", 'local') - resolver.set_value_for_parameter('object_id', "/SAMPLE/ID", 'local') + resolver.config_resolver.set_value_for_parameter('openbis_url', "http://localhost:8888", 'local') + resolver.config_resolver.set_value_for_parameter('user', "auser", 'local') + resolver.data_set_resolver.set_value_for_parameter('type', "DS_TYPE", 'local') + resolver.object_resolver.set_value_for_parameter('object_id', "/SAMPLE/ID", 'local') if properties is not None: - resolver.set_value_for_parameter('data_set_properties', properties, 'local') + resolver.data_set_resolver.set_value_for_parameter('properties', properties, 'local') def prepare_registration_expectations(dm): diff --git a/src/python/OBis/obis/scripts/cli.py b/src/python/OBis/obis/scripts/cli.py index 42adc1eab78..9cab46d3edc 100644 --- a/src/python/OBis/obis/scripts/cli.py +++ b/src/python/OBis/obis/scripts/cli.py @@ -71,13 +71,12 @@ def cli(ctx, quiet, skip_verification): ctx.obj['verify_certificates'] = False -def set_property(data_mgmt, prop, value, is_global, is_data_set_property): +def set_property(data_mgmt, resolver, prop, value, is_global, is_data_set_property=False): """Helper function to implement the property setting semantics.""" loc = 'global' if is_global else 'local' - resolver = data_mgmt.settings_resolver try: if is_data_set_property: - resolver.set_value_for_json_parameter('data_set_properties', prop, value, loc) + resolver.set_value_for_json_parameter('properties', prop, value, loc) else: resolver.set_value_for_parameter(prop, value, loc) except ValueError as e: @@ -110,9 +109,11 @@ def init_handle_cleanup(result, object_id, collection_id, folder, data_mgmt): return check_result("init_data", result) with dm.cd(folder): if object_id: - return check_result("init_data", set_property(data_mgmt, 'object_id', object_id, False, False)) + resolver = data_mgmt.object_resolver + return check_result("init_data", set_property(data_mgmt, resolver, 'object_id', object_id, False, False)) if collection_id: - return check_result("init_data", set_property(data_mgmt, 'collection_id', collection_id, False, False)) + resolver = data_mgmt.collection_resolver + return check_result("init_data", set_property(data_mgmt, resolver, 'collection_id', collection_id, False, False)) # settings commands @@ -202,7 +203,7 @@ def _config_internal(data_mgmt, resolver, is_global, is_data_set_property, prop, config_dict = resolver.config_dict() if is_data_set_property: - config_dict = config_dict['data_set_properties'] + config_dict = config_dict['properties'] if not prop: config_str = json.dumps(config_dict, indent=4, sort_keys=True) click.echo("{}".format(config_str)) @@ -211,7 +212,7 @@ def _config_internal(data_mgmt, resolver, is_global, is_data_set_property, prop, config_str = json.dumps(little_dict, indent=4, sort_keys=True) click.echo("{}".format(config_str)) else: - return check_result("config", set_property(data_mgmt, prop, value, is_global, is_data_set_property)) + return check_result("config", set_property(data_mgmt, resolver, prop, value, is_global, is_data_set_property)) def _set(ctx, settings): -- GitLab