diff --git a/compass/api/api.py b/compass/api/api.py index 2e0011cc..50d866bd 100644 --- a/compass/api/api.py +++ b/compass/api/api.py @@ -1334,6 +1334,26 @@ def show_os_metadata(os_id): ) +@app.route("/oses//ui_metadata", methods=['GET']) +@log_user_action +@login_required +@update_user_token +def convert_os_metadata(os_id): + """Convert os metadata to ui os metadata.""" + metadatas = metadata_api.get_os_metadata( + os_id, user=current_user + ) + configs = util.load_configs(setting.OS_MAPPING_DIR) + metadata = metadatas['os_config'] + config = configs[0]['OS_CONFIG_MAPPING'] + return utils.make_json_response( + 200, + metadata_api.get_ui_metadata( + metadata, config + ) + ) + + @app.route( "/adapters//oses//metadata", methods=['GET'] diff --git a/compass/db/api/metadata_holder.py b/compass/db/api/metadata_holder.py index f2f395f6..652772a9 100644 --- a/compass/db/api/metadata_holder.py +++ b/compass/db/api/metadata_holder.py @@ -21,6 +21,8 @@ from compass.db.api import permission from compass.db.api import user as user_api from compass.db.api import utils from compass.db import exception +from compass.utils import setting_wrapper as setting +from compass.utils import util RESP_METADATA_FIELDS = [ @@ -133,7 +135,7 @@ def get_package_metadata_internal(session, adapter_id): permission.PERMISSION_LIST_METADATAS ) @utils.wrap_to_dict(RESP_METADATA_FIELDS) -def get_package_metadata(getter, adapter_id, session=None, **kwargs): +def get_package_metadata(adapter_id, user=None, session=None, **kwargs): return { 'package_config': get_package_metadata_internal(session, adapter_id) } @@ -158,18 +160,65 @@ def get_os_metadata_internal(session, os_id): permission.PERMISSION_LIST_METADATAS ) @utils.wrap_to_dict(RESP_METADATA_FIELDS) -def get_os_metadata(getter, os_id, session=None, **kwargs): +def get_os_metadata(os_id, user=None, session=None, **kwargs): """get os metadatas.""" return {'os_config': get_os_metadata_internal(session, os_id)} +def get_ui_metadata(metadata, config): + """convert os_metadata to ui os_metadata.""" + result_config = {} + result_config[config['mapped_name']] = [] + for mapped_child in config['mapped_children']: + data_dict = {} + for config_key, config_value in mapped_child.items(): + for key, value in config_value.items(): + if 'data' == key: + result_data = [] + _get_data(metadata[config_key], value, result_data) + data_dict['data'] = result_data + else: + data_dict[key] = value + result_config[config['mapped_name']].append(data_dict) + return result_config + + +def _get_data(metadata, config, result_data): + data_dict = {} + for key, config_value in config.items(): + if isinstance(config_value, dict): + if key in metadata.keys(): + _get_data(metadata[key], config_value, result_data) + else: + _get_data(metadata, config_value, result_data) + elif isinstance(config_value, list): + option_list = [] + for item in config_value: + if isinstance(item, dict): + option_list.append(item) + data_dict[key] = option_list + else: + if isinstance(metadata['_self'][item], bool): + data_dict[item] = str(metadata['_self'][item]) + else: + data_dict[item] = metadata['_self'][item] + else: + data_dict[key] = config_value + if data_dict: + result_data.append(data_dict) + return result_data + + @utils.supported_filters([]) @database.run_in_session() @user_api.check_user_permission_in_session( permission.PERMISSION_LIST_METADATAS ) @utils.wrap_to_dict(RESP_METADATA_FIELDS) -def get_package_os_metadata(getter, adapter_id, os_id, session=None, **kwargs): +def get_package_os_metadata( + adapter_id, os_id, + user=None, session=None, **kwargs +): from compass.db.api import adapter_holder as adapter_api adapter = adapter_api.get_adapter_internal(session, adapter_id) os_ids = [os['os_id'] for os in adapter['supported_oses']] diff --git a/compass/db/models.py b/compass/db/models.py index ba1c80fb..32a88c8a 100644 --- a/compass/db/models.py +++ b/compass/db/models.py @@ -322,7 +322,7 @@ class FieldMixin(HelperMixin): Enum( 'checkbox', 'radio', 'select', 'multiselect', 'combobox', 'text', - 'multitext', 'password' + 'multitext', 'password', 'dropdown' ), ColumnDefault('text') ) diff --git a/compass/tests/api/data/os_field/domain.conf b/compass/tests/api/data/os_field/domain.conf new file mode 100644 index 00000000..fdf74289 --- /dev/null +++ b/compass/tests/api/data/os_field/domain.conf @@ -0,0 +1,2 @@ +NAME = 'domain' +VALIDATOR = is_valid_domain diff --git a/compass/tests/api/data/os_field/general.conf b/compass/tests/api/data/os_field/general.conf index 4d8cb371..8ca13a3e 100644 --- a/compass/tests/api/data/os_field/general.conf +++ b/compass/tests/api/data/os_field/general.conf @@ -1 +1,2 @@ NAME = 'general' +DISPLAY_TYPE = 'dropdown' diff --git a/compass/tests/api/data/os_field/general_list.conf b/compass/tests/api/data/os_field/general_list.conf index 9b37cb99..8cd77837 100644 --- a/compass/tests/api/data/os_field/general_list.conf +++ b/compass/tests/api/data/os_field/general_list.conf @@ -1,2 +1,3 @@ NAME = 'general_list' FIELD_TYPE = list +DISPLAY_TYPE = 'multitext' diff --git a/compass/tests/api/data/os_field/ip_list.conf b/compass/tests/api/data/os_field/ip_list.conf new file mode 100644 index 00000000..718ffa13 --- /dev/null +++ b/compass/tests/api/data/os_field/ip_list.conf @@ -0,0 +1,4 @@ +NAME = 'ip_list' +FIELD_TYPE = list +VALIDATOR = is_valid_ip +DISPLAY_TYPE = 'multitext' diff --git a/compass/tests/api/data/os_field/password.conf b/compass/tests/api/data/os_field/password.conf index bdb026e5..5cf7c3d6 100644 --- a/compass/tests/api/data/os_field/password.conf +++ b/compass/tests/api/data/os_field/password.conf @@ -1,3 +1,4 @@ NAME = 'password' VALIDATOR = is_valid_password DESCRIPTION = 'password' +DISPLAY_TYPE = 'password' diff --git a/compass/tests/api/data/os_field/url.conf b/compass/tests/api/data/os_field/url.conf new file mode 100644 index 00000000..b6a74f35 --- /dev/null +++ b/compass/tests/api/data/os_field/url.conf @@ -0,0 +1,2 @@ +NAME = 'url' +VALIDATOR = is_valid_url diff --git a/compass/tests/api/data/os_mapping/os_mapping.conf b/compass/tests/api/data/os_mapping/os_mapping.conf new file mode 100644 index 00000000..15c06ed1 --- /dev/null +++ b/compass/tests/api/data/os_mapping/os_mapping.conf @@ -0,0 +1,129 @@ +OS_CONFIG_MAPPING = { + "mapped_name": "os_global_config", + "mapped_children": [{ + "server_credentials":{ + "name": "sever_credentials", + "title": "Server Credentials", + "data": { + "username": { + "placeholder": "Username", + "display_name": "User name", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "password": { + "placeholder": "Password", + "display_name": "Password", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "confirm_password": { + "placeholder": "Confirm Password", + "name": "confirmPassword", + "placeholder": "Confirm Password", + "display_type": "password", + "required": "true", + "default_value": "huawei" + } + } + } + },{ + "general": { + "name": "general", + "title": "", + "data": { + "language": { + "display_name": "Language", + "option": [{ + "name": "English", + "value": "en" + },{ + "name": "Chinese", + "value": "cn" + }], + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "timezone": { + "display_name": "Timezone", + "option": [{ + "name": "Los Angeles", + "value": "Los Angeles" + },{ + "name": "Chicago", + "value": "Chicago" + }], + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "http_proxy": { + "placeholder": "HTTP Proxy", + "display_name": "HTTP Proxy", + "mapped_key": [ + "name", "is_required", "display_type" + ] + }, + "https_proxy": { + "placeholder": "HTTPS Proxy", + "display_name": "HTTPS Proxy", + "mapped_key": [ + "name", "is_required", "display_type" + ] + }, + "no_proxy": { + "placeholder": "No Proxy", + "display_name": "No Proxy", + "mapped_key": [ + "name", "is_required", "display_type" + ] + }, + "ntp_server": { + "placeholder": "NTP Server", + "display_name": "NTP Server", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "dns_server": { + "placeholder": "DNS Server", + "display_name": "DNS Server", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "search_path": { + "placeholder": "Search Path", + "display_name": "DNS Servers", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "domain": { + "placeholder": "Domain", + "display_name": "Domain", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "default_gateway": { + "placeholder": "Gateway", + "display_name": "Default Gateway", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "local_repo": { + "placeholder": "Local Repo", + "display_name": "Local Repository", + "mapped_key": [ + "name", "is_required", "display_type" + ] + } + } + } + }] +} diff --git a/compass/tests/api/test_api.py b/compass/tests/api/test_api.py index 6f6fa313..d8f591e9 100644 --- a/compass/tests/api/test_api.py +++ b/compass/tests/api/test_api.py @@ -1004,6 +1004,22 @@ class TestSwitchMachines(ApiTestCase): self.assertEqual(return_value.status_code, 200) +class TestMetadataAPI(ApiTestCase): + """Test metadata api.""" + + def setUp(self): + super(TestMetadataAPI, self).setUp() + + def tearDown(self): + super(TestMetadataAPI, self).tearDown() + + def test_get_os_ui_metadata(self): + url = '/oses/1/ui_metadata' + return_value = self.get(url) + self.assertEqual(return_value.status_code, 200) + self.assertIn('os_global_config', return_value.get_data()) + + if __name__ == '__main__': flags.init() logsetting.init() diff --git a/compass/tests/db/api/data/os_field/domain.conf b/compass/tests/db/api/data/os_field/domain.conf new file mode 100644 index 00000000..fdf74289 --- /dev/null +++ b/compass/tests/db/api/data/os_field/domain.conf @@ -0,0 +1,2 @@ +NAME = 'domain' +VALIDATOR = is_valid_domain diff --git a/compass/tests/db/api/data/os_field/general.conf b/compass/tests/db/api/data/os_field/general.conf index 4d8cb371..8ca13a3e 100644 --- a/compass/tests/db/api/data/os_field/general.conf +++ b/compass/tests/db/api/data/os_field/general.conf @@ -1 +1,2 @@ NAME = 'general' +DISPLAY_TYPE = 'dropdown' diff --git a/compass/tests/db/api/data/os_field/general_list.conf b/compass/tests/db/api/data/os_field/general_list.conf index 9b37cb99..8cd77837 100644 --- a/compass/tests/db/api/data/os_field/general_list.conf +++ b/compass/tests/db/api/data/os_field/general_list.conf @@ -1,2 +1,3 @@ NAME = 'general_list' FIELD_TYPE = list +DISPLAY_TYPE = 'multitext' diff --git a/compass/tests/db/api/data/os_field/ip_list.conf b/compass/tests/db/api/data/os_field/ip_list.conf new file mode 100644 index 00000000..718ffa13 --- /dev/null +++ b/compass/tests/db/api/data/os_field/ip_list.conf @@ -0,0 +1,4 @@ +NAME = 'ip_list' +FIELD_TYPE = list +VALIDATOR = is_valid_ip +DISPLAY_TYPE = 'multitext' diff --git a/compass/tests/db/api/data/os_field/password.conf b/compass/tests/db/api/data/os_field/password.conf index bdb026e5..5cf7c3d6 100644 --- a/compass/tests/db/api/data/os_field/password.conf +++ b/compass/tests/db/api/data/os_field/password.conf @@ -1,3 +1,4 @@ NAME = 'password' VALIDATOR = is_valid_password DESCRIPTION = 'password' +DISPLAY_TYPE = 'password' diff --git a/compass/tests/db/api/data/os_field/url.conf b/compass/tests/db/api/data/os_field/url.conf new file mode 100644 index 00000000..b6a74f35 --- /dev/null +++ b/compass/tests/db/api/data/os_field/url.conf @@ -0,0 +1,2 @@ +NAME = 'url' +VALIDATOR = is_valid_url diff --git a/compass/tests/db/api/data/os_mapping/os_mapping.conf b/compass/tests/db/api/data/os_mapping/os_mapping.conf new file mode 100644 index 00000000..0bc72708 --- /dev/null +++ b/compass/tests/db/api/data/os_mapping/os_mapping.conf @@ -0,0 +1,119 @@ +OS_CONFIG_MAPPING = { + "mapped_name": "os_global_config", + "mapped_children": [{ + "server_credentials":{ + "name": "sever_credentials", + "title": "Server Credentials", + "data": { + "username": { + "placeholder": "Username", + "display_name": "User name", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "password": { + "placeholder": "Password", + "display_name": "Password", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "confirm_password": { + "placeholder": "Confirm Password", + "name": "confirmPassword", + "placeholder": "Confirm Password", + "display_type": "password", + "required": "true", + "default_value": "huawei" + } + } + } + },{ + "general": { + "name": "general", + "title": "", + "data": { + "language": { + "display_name": "Language", + "mapped_key": [ + "name", "is_required", "display_type", "default_value", "options" + ] + }, + "timezone": { + "display_name": "Timezone", + "mapped_key": [ + "name", "is_required", "display_type", "default_value", "options" + ] + }, + "http_proxy": { + "placeholder": "HTTP Proxy", + "display_name": "HTTP Proxy", + "mapped_key": [ + "name", "is_required", "display_type" + ] + }, + "https_proxy": { + "placeholder": "HTTPS Proxy", + "display_name": "HTTPS Proxy", + "mapped_key": [ + "name", "is_required", "display_type" + ] + }, + "no_proxy": { + "placeholder": "No Proxy", + "display_name": "No Proxy", + "validation": "maxLength", + "validationResponse":[], + "mapped_key": [ + "name", "is_required", "display_type" + ] + }, + "ntp_server": { + "placeholder": "NTP Server", + "display_name": "NTP Server", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "dns_server": { + "placeholder": "DNS Server", + "display_name": "DNS Server", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "search_path": { + "placeholder": "Search Path", + "display_name": "DNS Servers", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "domain": { + "placeholder": "Domain", + "display_name": "Domain", + "validation":"isNumber", + "validationResponse":{}, + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "default_gateway": { + "placeholder": "Gateway", + "display_name": "Default Gateway", + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "local_repo": { + "placeholder": "Local Repo", + "display_name": "Local Repository", + "mapped_key": [ + "name", "is_required", "display_type" + ] + } + } + } + }] +} diff --git a/compass/tests/db/api/data/os_metadata/general.conf b/compass/tests/db/api/data/os_metadata/general.conf index 6acc43db..b6a6c481 100644 --- a/compass/tests/db/api/data/os_metadata/general.conf +++ b/compass/tests/db/api/data/os_metadata/general.conf @@ -29,77 +29,60 @@ METADATA = { }, 'http_proxy': { '_self': { - 'field': 'general', - 'default_value': 'http://127.0.0.1:3128', - 'options': [ - 'http://127.0.0.1:3128' - ], + 'field': 'url', + 'default_callback': default_proxy, + 'options_callback': proxy_options, 'mapping_to': 'http_proxy' } }, 'https_proxy': { '_self': { - 'field': 'general', - 'default_value': 'http://127.0.0.1:3128', - 'options': [ - 'http://127.0.0.1:3128' - ], + 'field': 'url', + 'default_callback': default_proxy, + 'options_callback': proxy_options, 'mapping_to': 'https_proxy' } }, 'no_proxy': { '_self': { 'field': 'general_list', - 'default_value': [ - '127.0.0.1', - 'compass' - ], - 'options': [ - '127.0.0.1', - 'compass' - ], + 'default_callback': default_noproxy, + 'options_callback': noproxy_options, + 'autofill_callback': autofill_no_proxy, 'mapping_to': 'no_proxy' } }, 'ntp_server': { '_self': { 'is_required': True, - 'field': 'general', - 'default_value': '127.0.0.1', - 'options': [ - '127.0.0.1' - ], + 'field': 'ip', + 'default_callback': default_ntp_server, + 'options_callback': ntp_server_options, 'mapping_to': 'ntp_server' } }, 'dns_servers': { '_self': { 'is_required': True, - 'field': 'general_list', - 'default_value': [ - '127.0.0.1', - ], - 'options': [ - '127.0.0.1' - ], + 'field': 'ip_list', + 'default_callback': default_dns_servers, + 'options_callback': dns_servers_options, 'mapping_to': 'nameservers' } }, 'domain': { '_self': { - 'field': 'general', + 'field': 'domain', 'is_required' : True, - 'default_value': 'ods.com', - 'options': ['ods.com'], + 'default_callback': default_domain, + 'options_callback': domain_options, } }, 'search_path': { '_self': { 'field': 'general_list', - 'default_value': [ - 'ods.com' - ], - 'options': ['ods.com'], + 'default_callback': default_search_path, + 'options_callback': search_path_options, 'mapping_to': 'search_path' } }, @@ -107,9 +90,16 @@ METADATA = { '_self': { 'is_required': True, 'field': 'ip', - 'default_value': '127.0.0.1', + 'default_callback': default_gateway, 'mapping_to': 'gateway' } + }, + 'local_repo': { + '_self': { + 'field': 'url', + 'default_callback': default_localrepo, + 'mapping_to': 'local_repo' + } } }, 'server_credentials': { @@ -142,7 +132,8 @@ METADATA = { }, '$partition': { '_self': { - 'validator': is_valid_partition + 'validator': is_valid_partition, + 'mapping_to': '$partition' }, 'max_size': { '_self': { diff --git a/compass/tests/db/api/test_metadata_holder.py b/compass/tests/db/api/test_metadata_holder.py index 83957120..f4268a7c 100644 --- a/compass/tests/db/api/test_metadata_holder.py +++ b/compass/tests/db/api/test_metadata_holder.py @@ -138,8 +138,8 @@ class TestGetPackageMetadata(MetadataTestCase): def test_get_package_metadata(self): """Test get package metadata.""" package_metadata = metadata.get_package_metadata( - self.user_object, - self.adapter_id + self.adapter_id, + user=self.user_object ) expected = [] for k, v in package_metadata['package_config'].iteritems(): @@ -152,8 +152,8 @@ class TestGetPackageMetadata(MetadataTestCase): self.assertRaises( exception.RecordNotExists, metadata.get_package_metadata, - self.user_object, - 99 + 99, + user=self.user_object ) @@ -216,8 +216,8 @@ class TestGetOsMetadata(MetadataTestCase): def test_get_os_metadata(self): """Test get os metadata.""" os_metadata = metadata.get_os_metadata( - self.user_object, - self.os_id + self.os_id, + user=self.user_object ) expected = [] for k, v in os_metadata['os_config'].iteritems(): @@ -230,8 +230,8 @@ class TestGetOsMetadata(MetadataTestCase): self.assertRaises( exception.RecordNotExists, metadata.get_os_metadata, - self.user_object, - 99 + 99, + user=self.user_object ) @@ -245,9 +245,9 @@ class TestGetPackageOsMetadata(MetadataTestCase): def test_get_package_os_metadata(self): """Test get package and os metadata.""" package_os_metadata = metadata.get_package_os_metadata( - self.user_object, self.adapter_id, - self.os_id + self.os_id, + user=self.user_object ) self.assertIsNotNone(package_os_metadata) @@ -256,9 +256,9 @@ class TestGetPackageOsMetadata(MetadataTestCase): self.assertRaises( exception.InvalidParameter, metadata.get_package_os_metadata, - self.user_object, self.adapter_id, - 99 + 99, + user=self.user_object ) diff --git a/compass/utils/setting_wrapper.py b/compass/utils/setting_wrapper.py index aa5f4905..457e2190 100644 --- a/compass/utils/setting_wrapper.py +++ b/compass/utils/setting_wrapper.py @@ -124,6 +124,9 @@ MACHINE_LIST_DIR = lazypy.delay( PROGRESS_CALCULATOR_DIR = lazypy.delay( lambda: os.path.join(CONFIG_DIR, 'progress_calculator') ) +OS_MAPPING_DIR = lazypy.delay( + lambda: os.path.join(CONFIG_DIR, 'os_mapping') +) PROXY_URL_PREFIX = 'http://10.145.81.205:5000' if ( diff --git a/conf/os_field/general.conf b/conf/os_field/general.conf index 4d8cb371..8ca13a3e 100644 --- a/conf/os_field/general.conf +++ b/conf/os_field/general.conf @@ -1 +1,2 @@ NAME = 'general' +DISPLAY_TYPE = 'dropdown' diff --git a/conf/os_field/general_list.conf b/conf/os_field/general_list.conf index 9b37cb99..8cd77837 100644 --- a/conf/os_field/general_list.conf +++ b/conf/os_field/general_list.conf @@ -1,2 +1,3 @@ NAME = 'general_list' FIELD_TYPE = list +DISPLAY_TYPE = 'multitext' diff --git a/conf/os_field/ip_list.conf b/conf/os_field/ip_list.conf index 28969cb2..718ffa13 100644 --- a/conf/os_field/ip_list.conf +++ b/conf/os_field/ip_list.conf @@ -1,3 +1,4 @@ NAME = 'ip_list' FIELD_TYPE = list VALIDATOR = is_valid_ip +DISPLAY_TYPE = 'multitext' diff --git a/conf/os_field/password.conf b/conf/os_field/password.conf index bdb026e5..5cf7c3d6 100644 --- a/conf/os_field/password.conf +++ b/conf/os_field/password.conf @@ -1,3 +1,4 @@ NAME = 'password' VALIDATOR = is_valid_password DESCRIPTION = 'password' +DISPLAY_TYPE = 'password' diff --git a/conf/os_mapping/os_mapping.conf b/conf/os_mapping/os_mapping.conf new file mode 100644 index 00000000..d08cb387 --- /dev/null +++ b/conf/os_mapping/os_mapping.conf @@ -0,0 +1,147 @@ +OS_CONFIG_MAPPING = { + "mapped_name": "os_global_config", + "mapped_children": [{ + "server_credentials":{ + "name": "sever_credentials", + "title": "Server Credentials", + "order": 1, + "data": { + "username": { + "placeholder": "Username", + "display_name": "User name", + "order": 1, + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "password": { + "placeholder": "Password", + "display_name": "Password", + "order": 2, + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "confirm_password": { + "placeholder": "Confirm Password", + "name": "confirmPassword", + "placeholder": "Confirm Password", + "display_type": "password", + "is_required": "True", + "default_value": "huawei", + "order": 3 + } + } + } + },{ + "general": { + "name": "general", + "title": "", + "order": 2, + "data": { + "language": { + "display_name": "Language", + "order": 1, + "default_value": "en", + "mapped_key": [ + "name", "is_required", "display_type" + ], + "options": [{ + "name": "English", + "value": "en" + },{ + "name": "Chinese", + "value": "cn" + }], + }, + "timezone": { + "display_name": "Timezone", + "order": 2, + "default_value": "Los Angeles", + "mapped_key": [ + "name", "is_required", "display_type" + ], + "options": [{ + "name": "Los Angeles", + "value": "Los Angeles" + },{ + "name": "Chicago", + "value": "Chicago" + }], + }, + "http_proxy": { + "placeholder": "HTTP Proxy", + "display_name": "HTTP Proxy", + "order": 3, + "mapped_key": [ + "name", "is_required", "display_type" + ] + }, + "https_proxy": { + "placeholder": "HTTPS Proxy", + "display_name": "HTTPS Proxy", + "order": 4, + "mapped_key": [ + "name", "is_required", "display_type" + ] + }, + "no_proxy": { + "placeholder": "No Proxy", + "display_name": "No Proxy", + "order": 5, + "mapped_key": [ + "name", "is_required", "display_type" + ] + }, + "ntp_server": { + "placeholder": "NTP Server", + "display_name": "NTP Server", + "order": 6, + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "dns_servers": { + "placeholder": "DNS Server", + "display_name": "DNS Server", + "order": 7, + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "search_path": { + "placeholder": "Search Path", + "display_name": "Search Path", + "order": 8, + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "domain": { + "placeholder": "Domain", + "display_name": "Domain", + "order": 9, + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "default_gateway": { + "placeholder": "Gateway", + "display_name": "Default Gateway", + "order": 10, + "mapped_key": [ + "name", "is_required", "display_type", "default_value" + ] + }, + "local_repo": { + "placeholder": "Local Repo", + "display_name": "Local Repository", + "order": 11, + "mapped_key": [ + "name", "is_required", "display_type" + ] + } + } + } + }] +} diff --git a/requirements.txt b/requirements.txt index 3c15ea67..87e26a4a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ amqplib argparse celery -Markdown==2.6.1 +Markdown<2.5 Cheetah<=2.4.1 daemon Flask