| Maru Newby | b096d9f | 2015-03-09 18:54:54 +0000 | [diff] [blame] | 1 | #    Licensed under the Apache License, Version 2.0 (the "License"); you may | 
|  | 2 | #    not use this file except in compliance with the License. You may obtain | 
|  | 3 | #    a copy of the License at | 
|  | 4 | # | 
|  | 5 | #         http://www.apache.org/licenses/LICENSE-2.0 | 
|  | 6 | # | 
|  | 7 | #    Unless required by applicable law or agreed to in writing, software | 
|  | 8 | #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | 
|  | 9 | #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | 
|  | 10 | #    License for the specific language governing permissions and limitations | 
|  | 11 | #    under the License. | 
|  | 12 |  | 
| Ihar Hrachyshka | c695f9f | 2015-02-26 23:26:41 +0100 | [diff] [blame] | 13 | from oslo_config import cfg | 
| Assaf Muller | d22ca2e | 2016-01-19 11:47:14 -0500 | [diff] [blame] | 14 | from tempest import config | 
|  | 15 |  | 
| Assaf Muller | 65cc2d2 | 2016-04-07 17:56:03 -0400 | [diff] [blame] | 16 |  | 
| Assaf Muller | d22ca2e | 2016-01-19 11:47:14 -0500 | [diff] [blame] | 17 | CONF = config.CONF | 
| Maru Newby | b096d9f | 2015-03-09 18:54:54 +0000 | [diff] [blame] | 18 |  | 
|  | 19 |  | 
| Assaf Muller | d22ca2e | 2016-01-19 11:47:14 -0500 | [diff] [blame] | 20 | NeutronPluginOptions = [ | 
| Armando Migliaccio | 7f84c42 | 2017-02-21 18:43:38 -0800 | [diff] [blame] | 21 | cfg.ListOpt('provider_vlans', | 
|  | 22 | default=[], | 
|  | 23 | help='List of provider networks available in the deployment.'), | 
| Yuuichi Fujioka | 1257b57 | 2015-06-10 17:18:12 +0900 | [diff] [blame] | 24 | cfg.BoolOpt('specify_floating_ip_address_available', | 
|  | 25 | default=True, | 
|  | 26 | help='Allow passing an IP Address of the floating ip when ' | 
| Hynek Mlnarik | c510676 | 2016-09-01 11:47:31 +0200 | [diff] [blame] | 27 | 'creating the floating ip'), | 
|  | 28 | cfg.ListOpt('available_type_drivers', | 
|  | 29 | default=[], | 
|  | 30 | help='List of network types available to neutron, ' | 
|  | 31 | 'e.g. vxlan,vlan,gre.'), | 
| Chandan Kumar | c125fd1 | 2017-11-15 19:41:01 +0530 | [diff] [blame] | 32 | cfg.StrOpt('agent_availability_zone', | 
|  | 33 | help='The availability zone for all agents in the deployment. ' | 
|  | 34 | 'Configure this only when the single value is used by ' | 
|  | 35 | 'all agents in the deployment.'), | 
| Yariv Rachmani | fed6f86 | 2017-12-19 11:55:25 +0200 | [diff] [blame] | 36 | cfg.IntOpt('max_networks_per_project', | 
|  | 37 | default=4, | 
|  | 38 | help='Max number of networks per project. ' | 
|  | 39 | 'Configure this only when project is limited with real ' | 
|  | 40 | 'vlans in deployment.'), | 
| Dongcan Ye | 91017ca | 2018-02-11 10:46:03 +0000 | [diff] [blame] | 41 | cfg.StrOpt('l3_agent_mode', | 
|  | 42 | help='The agent mode for L3 agents in the deployment. ' | 
|  | 43 | 'Configure this only when the single value is used by ' | 
|  | 44 | 'all agents in the deployment.'), | 
| Yariv Rachmani | 9497088 | 2018-03-04 11:35:17 +0200 | [diff] [blame] | 45 | cfg.StrOpt('test_mtu_networks', | 
|  | 46 | default='[{"provider:network_type":"vxlan",' | 
|  | 47 | '"mtu":1200, "cidr":"10.100.0.0/16"}' | 
|  | 48 | ',' | 
|  | 49 | '{"provider:network_type":"vxlan",' | 
|  | 50 | '"mtu":1300, "cidr":"10.200.0.0/16"}]', | 
|  | 51 | help='Configuration for test networks. The format is JSON. ' | 
|  | 52 | '"provider:network_type":<TYPE> - string ' | 
|  | 53 | '"mtu":<MTU> - integer ' | 
|  | 54 | '"cidr"<SUBNET/MASK> - string ' | 
| Federico Ressi | e9c89bf | 2018-04-19 13:02:33 +0200 | [diff] [blame] | 55 | '"provider:segmentation_id":<VLAN_ID> - integer'), | 
|  | 56 |  | 
|  | 57 | # Option for feature to connect via SSH to VMs using an intermediate SSH | 
|  | 58 | # server | 
|  | 59 | cfg.StrOpt('ssh_proxy_jump_host', | 
|  | 60 | default=None, | 
|  | 61 | help='Proxy jump host used to connect via SSH to VMs..'), | 
|  | 62 | cfg.StrOpt('ssh_proxy_jump_username', | 
|  | 63 | default='root', | 
|  | 64 | help='User name used to connect to "ssh_proxy_jump_host".'), | 
|  | 65 | cfg.StrOpt('ssh_proxy_jump_password', | 
|  | 66 | default=None, | 
|  | 67 | help='Password used to connect to "ssh_proxy_jump_host".'), | 
|  | 68 | cfg.StrOpt('ssh_proxy_jump_keyfile', | 
|  | 69 | default=None, | 
|  | 70 | help='Keyfile used to connect to "ssh_proxy_jump_host".'), | 
|  | 71 | cfg.IntOpt('ssh_proxy_jump_port', | 
|  | 72 | default=22, | 
|  | 73 | help='Port used to connect to "ssh_proxy_jump_host".'), | 
| Slawek Kaplonski | da17f00 | 2018-10-11 18:35:23 +0200 | [diff] [blame^] | 74 |  | 
|  | 75 | # Options for special, "advanced" image like e.g. Ubuntu. Such image can be | 
|  | 76 | # used in tests which require some more advanced tool than available in | 
|  | 77 | # Cirros | 
|  | 78 | cfg.StrOpt('advanced_image_ref', | 
|  | 79 | default=None, | 
|  | 80 | help='Valid advanced image uuid to be used in tests. ' | 
|  | 81 | 'It is an image that supports features that Cirros ' | 
|  | 82 | 'does not, like Ubuntu or CentOS supporting advanced ' | 
|  | 83 | 'features.'), | 
|  | 84 | cfg.StrOpt('advanced_image_flavor_ref', | 
|  | 85 | default=None, | 
|  | 86 | help='Valid flavor to use with advanced image in tests. ' | 
|  | 87 | 'This is required if advanced image has to be used in ' | 
|  | 88 | 'tests.'), | 
|  | 89 | cfg.StrOpt('advanced_image_ssh_user', | 
|  | 90 | default=None, | 
|  | 91 | help='Name of ssh user to use with advanced image in tests. ' | 
|  | 92 | 'This is required if advanced image has to be used in ' | 
|  | 93 | 'tests.'), | 
| Hynek Mlnarik | c510676 | 2016-09-01 11:47:31 +0200 | [diff] [blame] | 94 | ] | 
| Maru Newby | b096d9f | 2015-03-09 18:54:54 +0000 | [diff] [blame] | 95 |  | 
| Assaf Muller | d22ca2e | 2016-01-19 11:47:14 -0500 | [diff] [blame] | 96 | # TODO(amuller): Redo configuration options registration as part of the planned | 
|  | 97 | # transition to the Tempest plugin architecture | 
|  | 98 | for opt in NeutronPluginOptions: | 
|  | 99 | CONF.register_opt(opt, 'neutron_plugin_options') | 
| Assaf Muller | 65cc2d2 | 2016-04-07 17:56:03 -0400 | [diff] [blame] | 100 |  | 
|  | 101 |  | 
|  | 102 | config_opts_translator = { | 
|  | 103 | 'project_network_cidr': 'tenant_network_cidr', | 
|  | 104 | 'project_network_v6_cidr': 'tenant_network_v6_cidr', | 
|  | 105 | 'project_network_mask_bits': 'tenant_network_mask_bits', | 
|  | 106 | 'project_network_v6_mask_bits': 'tenant_network_v6_mask_bits'} | 
|  | 107 |  | 
|  | 108 |  | 
|  | 109 | def safe_get_config_value(group, name): | 
|  | 110 | """Safely get Oslo config opts from Tempest, using old and new names.""" | 
|  | 111 | conf_group = getattr(CONF, group) | 
|  | 112 |  | 
|  | 113 | try: | 
|  | 114 | return getattr(conf_group, name) | 
|  | 115 | except cfg.NoSuchOptError: | 
|  | 116 | return getattr(conf_group, config_opts_translator[name]) |