Add api to convert os metadata to ui os metadata
Change-Id: Iad5938a5e34a44506c82afb6cf5f8bea0610105e
This commit is contained in:
parent
7fa34625ed
commit
8c68fb6f4c
@ -1334,6 +1334,26 @@ def show_os_metadata(os_id):
|
||||
)
|
||||
|
||||
|
||||
@app.route("/oses/<int:os_id>/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/<int:adapter_id>/oses/<int:os_id>/metadata",
|
||||
methods=['GET']
|
||||
|
@ -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']]
|
||||
|
@ -322,7 +322,7 @@ class FieldMixin(HelperMixin):
|
||||
Enum(
|
||||
'checkbox', 'radio', 'select',
|
||||
'multiselect', 'combobox', 'text',
|
||||
'multitext', 'password'
|
||||
'multitext', 'password', 'dropdown'
|
||||
),
|
||||
ColumnDefault('text')
|
||||
)
|
||||
|
2
compass/tests/api/data/os_field/domain.conf
Normal file
2
compass/tests/api/data/os_field/domain.conf
Normal file
@ -0,0 +1,2 @@
|
||||
NAME = 'domain'
|
||||
VALIDATOR = is_valid_domain
|
@ -1 +1,2 @@
|
||||
NAME = 'general'
|
||||
DISPLAY_TYPE = 'dropdown'
|
||||
|
@ -1,2 +1,3 @@
|
||||
NAME = 'general_list'
|
||||
FIELD_TYPE = list
|
||||
DISPLAY_TYPE = 'multitext'
|
||||
|
4
compass/tests/api/data/os_field/ip_list.conf
Normal file
4
compass/tests/api/data/os_field/ip_list.conf
Normal file
@ -0,0 +1,4 @@
|
||||
NAME = 'ip_list'
|
||||
FIELD_TYPE = list
|
||||
VALIDATOR = is_valid_ip
|
||||
DISPLAY_TYPE = 'multitext'
|
@ -1,3 +1,4 @@
|
||||
NAME = 'password'
|
||||
VALIDATOR = is_valid_password
|
||||
DESCRIPTION = 'password'
|
||||
DISPLAY_TYPE = 'password'
|
||||
|
2
compass/tests/api/data/os_field/url.conf
Normal file
2
compass/tests/api/data/os_field/url.conf
Normal file
@ -0,0 +1,2 @@
|
||||
NAME = 'url'
|
||||
VALIDATOR = is_valid_url
|
129
compass/tests/api/data/os_mapping/os_mapping.conf
Normal file
129
compass/tests/api/data/os_mapping/os_mapping.conf
Normal file
@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}]
|
||||
}
|
@ -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()
|
||||
|
2
compass/tests/db/api/data/os_field/domain.conf
Normal file
2
compass/tests/db/api/data/os_field/domain.conf
Normal file
@ -0,0 +1,2 @@
|
||||
NAME = 'domain'
|
||||
VALIDATOR = is_valid_domain
|
@ -1 +1,2 @@
|
||||
NAME = 'general'
|
||||
DISPLAY_TYPE = 'dropdown'
|
||||
|
@ -1,2 +1,3 @@
|
||||
NAME = 'general_list'
|
||||
FIELD_TYPE = list
|
||||
DISPLAY_TYPE = 'multitext'
|
||||
|
4
compass/tests/db/api/data/os_field/ip_list.conf
Normal file
4
compass/tests/db/api/data/os_field/ip_list.conf
Normal file
@ -0,0 +1,4 @@
|
||||
NAME = 'ip_list'
|
||||
FIELD_TYPE = list
|
||||
VALIDATOR = is_valid_ip
|
||||
DISPLAY_TYPE = 'multitext'
|
@ -1,3 +1,4 @@
|
||||
NAME = 'password'
|
||||
VALIDATOR = is_valid_password
|
||||
DESCRIPTION = 'password'
|
||||
DISPLAY_TYPE = 'password'
|
||||
|
2
compass/tests/db/api/data/os_field/url.conf
Normal file
2
compass/tests/db/api/data/os_field/url.conf
Normal file
@ -0,0 +1,2 @@
|
||||
NAME = 'url'
|
||||
VALIDATOR = is_valid_url
|
119
compass/tests/db/api/data/os_mapping/os_mapping.conf
Normal file
119
compass/tests/db/api/data/os_mapping/os_mapping.conf
Normal file
@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}]
|
||||
}
|
@ -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': {
|
||||
|
@ -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
|
||||
)
|
||||
|
||||
|
||||
|
@ -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 (
|
||||
|
@ -1 +1,2 @@
|
||||
NAME = 'general'
|
||||
DISPLAY_TYPE = 'dropdown'
|
||||
|
@ -1,2 +1,3 @@
|
||||
NAME = 'general_list'
|
||||
FIELD_TYPE = list
|
||||
DISPLAY_TYPE = 'multitext'
|
||||
|
@ -1,3 +1,4 @@
|
||||
NAME = 'ip_list'
|
||||
FIELD_TYPE = list
|
||||
VALIDATOR = is_valid_ip
|
||||
DISPLAY_TYPE = 'multitext'
|
||||
|
@ -1,3 +1,4 @@
|
||||
NAME = 'password'
|
||||
VALIDATOR = is_valid_password
|
||||
DESCRIPTION = 'password'
|
||||
DISPLAY_TYPE = 'password'
|
||||
|
147
conf/os_mapping/os_mapping.conf
Normal file
147
conf/os_mapping/os_mapping.conf
Normal file
@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}]
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
amqplib
|
||||
argparse
|
||||
celery
|
||||
Markdown==2.6.1
|
||||
Markdown<2.5
|
||||
Cheetah<=2.4.1
|
||||
daemon
|
||||
Flask
|
||||
|
Loading…
x
Reference in New Issue
Block a user