ADAPTER = 'openstack' METADATA = { 'security': { '_self': { 'required_in_whole_config': True, }, 'service_credentials': { '_self': { 'required_in_whole_config': True, 'key_extensions': { '$service': ['image', 'compute', 'dashboard', 'identity', 'metering', 'rabbitmq', 'volume', 'mysql'] }, 'mapping_to': 'service_credentials' }, '$service': { '_self': { 'required_in_whole_config': True, 'mapping_to': '$service' }, 'username': { '_self': { 'is_required': True, 'field': 'username', 'mapping_to': 'username' } }, 'password': { '_self': { 'is_required': True, 'field': 'password', 'mapping_to': 'password' } } } }, 'console_credentials': { '_self': { 'required_in_whole_config': True, 'key_extensions': { '$console': ['admin', 'compute', 'dashboard', 'image', 'metering', 'network', 'object-store', 'volume'] }, 'mapping_to': 'console_credentials' }, '$console': { '_self': { 'required_in_whole_config': True, 'mapping_to': '$console' }, 'username': { '_self': { 'is_required': True, 'field': 'username', 'mapping_to': 'username' } }, 'password': { '_self': { 'is_required': True, 'field': 'password', 'mapping_to': 'password' } } } } }, 'neutron_config': { '_self': { 'mapping_to': 'neutron_config' }, 'openvswitch': { '_self': { 'mapping_to': 'openvswitch', 'required_in_whole_config': True }, 'tenant_network_type': { '_self': { 'mapping_to': 'tenant_network_type', 'is_required': True, 'field': 'general', 'options': ['gre', 'vlan'], 'default_value': 'gre' } } } }, 'network_mapping': { '_self': { 'required_in_whole_config': True, 'key_extensions': { '$interface_type': ['management', 'external', 'storage', 'tenant'] } }, '$interface_type': { '_self': { 'required_in_whole_config': True, 'field': 'anytype', 'autofill_callback': autofill_network_mapping, 'mapping_to': '$interface_type' }, 'interface': { '_self': { 'is_required': True, 'field': 'general', } }, 'subnet': { '_self': { 'is_required': False, 'field': 'general' } } } }, 'ha_proxy': { '_self': { }, 'vip': { '_self': { 'is_required': True, 'field': 'general', 'mapping_to': 'ha_vip' } } } }