This file is indexed.

/usr/lib/python2.7/dist-packages/networking_arista/common/config.py is in python-networking-arista 2017.2.2-2ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# Copyright (c) 2013 OpenStack Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.


from oslo_config import cfg

from networking_arista._i18n import _


# Arista ML2 Mechanism driver specific configuration knobs.
#
# Following are user configurable options for Arista ML2 Mechanism
# driver. The eapi_username, eapi_password, and eapi_host are
# required options. Region Name must be the same that is used by
# Keystone service. This option is available to support multiple
# OpenStack/Neutron controllers.

ARISTA_DRIVER_OPTS = [
    cfg.StrOpt('eapi_username',
               default='',
               help=_('Username for Arista EOS. This is required field. '
                      'If not set, all communications to Arista EOS '
                      'will fail.')),
    cfg.StrOpt('eapi_password',
               default='',
               secret=True,  # do not expose value in the logs
               help=_('Password for Arista EOS. This is required field. '
                      'If not set, all communications to Arista EOS '
                      'will fail.')),
    cfg.StrOpt('eapi_host',
               default='',
               help=_('Arista EOS IP address. This is required field. '
                      'If not set, all communications to Arista EOS '
                      'will fail.')),
    cfg.BoolOpt('use_fqdn',
                default=True,
                help=_('Defines if hostnames are sent to Arista EOS as FQDNs '
                       '("node1.domain.com") or as short names ("node1"). '
                       'This is optional. If not set, a value of "True" '
                       'is assumed.')),
    cfg.IntOpt('sync_interval',
               default=30,
               help=_('Sync interval in seconds between Neutron plugin and '
                      'EOS. This interval defines how often the '
                      'synchronization is performed. This is an optional '
                      'field. If not set, a value of 30 seconds is '
                      'assumed.')),
    cfg.IntOpt('conn_timeout',
               default=10,
               help=_('Connection timeout interval in seconds. This interval '
                      'defines how long an EAPI request from the driver to '
                      'EOS waits before timing out. If not set, a value of 10 '
                      'seconds is assumed.')),
    cfg.StrOpt('region_name',
               default='RegionOne',
               help=_('Defines Region Name that is assigned to this OpenStack '
                      'Controller. This is useful when multiple '
                      'OpenStack/Neutron controllers are managing the same '
                      'Arista HW clusters. Note that this name must match '
                      'with the region name registered (or known) to keystone '
                      'service. Authentication with Keysotne is performed by '
                      'EOS. This is optional. If not set, a value of '
                      '"RegionOne" is assumed.')),
    cfg.BoolOpt('sec_group_support',
                default=False,
                help=_('Specifies if the Security Groups needs to deployed '
                       'for baremetal deployments. If this flag is set to '
                       'True, this means switch_info(see below) must be '
                       'defined. If this flag is not defined, it is assumed '
                       'to be False')),
    cfg.ListOpt('switch_info',
                default=[],
                help=_('This is a comma separated list of Arista switches '
                       'where security groups (i.e. ACLs) need to be '
                       'applied. Each string has three values separated  '
                       'by : in the follow format '
                       '<IP of switch>:<username>:<password>, ...... '
                       'For Example: 172.13.23.55:admin:admin, '
                       '172.13.23.56:admin:admin, .... '
                       'This is required if sec_group_support is set to '
                       '"True"')),
    cfg.StrOpt('api_type',
               default='JSON',
               help=_('Tells the plugin to use a sepcific API interfaces '
                      'to communicate with CVX. Valid options are:'
                      'EAPI - Use EOS\' extensible API.'
                      'JSON - Use EOS\' JSON/REST API.')),
    cfg.ListOpt('managed_physnets',
                default=[],
                help=_('This is a comma separated list of physical networks '
                       'which are managed by Arista switches.'
                       'This list will be used by the Arista ML2 plugin'
                       'to make the decision if it can participate in binding'
                       'or updating a port.'
                       'For Example: '
                       'managed_physnets = arista_network')),
    cfg.BoolOpt('manage_fabric',
                default=False,
                help=_('Specifies whether the Arista ML2 plugin should bind '
                       'ports to vxlan fabric segments and dynamically '
                       'allocate vlan segments based on the host to connect '
                       'the port to the vxlan fabric')),
]


""" Arista L3 Service Plugin specific configuration knobs.

Following are user configurable options for Arista L3 plugin
driver. The eapi_username, eapi_password, and eapi_host are
required options.
"""

ARISTA_L3_PLUGIN = [
    cfg.StrOpt('primary_l3_host_username',
               default='',
               help=_('Username for Arista EOS. This is required field. '
                      'If not set, all communications to Arista EOS '
                      'will fail')),
    cfg.StrOpt('primary_l3_host_password',
               default='',
               secret=True,  # do not expose value in the logs
               help=_('Password for Arista EOS. This is required field. '
                      'If not set, all communications to Arista EOS '
                      'will fail')),
    cfg.StrOpt('primary_l3_host',
               default='',
               help=_('Arista EOS IP address. This is required field. '
                      'If not set, all communications to Arista EOS '
                      'will fail')),
    cfg.StrOpt('secondary_l3_host',
               default='',
               help=_('Arista EOS IP address for second Switch MLAGed with '
                      'the first one. This an optional field, however, if '
                      'mlag_config flag is set, then this is required. '
                      'If not set, all communications to Arista EOS '
                      'will fail')),
    cfg.IntOpt('conn_timeout',
               default=10,
               help=_('Connection timeout interval in seconds. This interval '
                      'defines how long an EAPI request from the driver to '
                      'EOS waits before timing out. If not set, a value of 10 '
                      'seconds is assumed.')),
    cfg.BoolOpt('mlag_config',
                default=False,
                help=_('This flag is used indicate if Arista Switches are '
                       'configured in MLAG mode. If yes, all L3 config '
                       'is pushed to both the switches automatically. '
                       'If this flag is set to True, ensure to specify IP '
                       'addresses of both switches. '
                       'This is optional. If not set, a value of "False" '
                       'is assumed.')),
    cfg.BoolOpt('use_vrf',
                default=False,
                help=_('A "True" value for this flag indicates to create a '
                       'router in VRF. If not set, all routers are created '
                       'in default VRF. '
                       'This is optional. If not set, a value of "False" '
                       'is assumed.')),
    cfg.IntOpt('l3_sync_interval',
               default=180,
               help=_('Sync interval in seconds between L3 Service plugin '
                      'and EOS. This interval defines how often the '
                      'synchronization is performed. This is an optional '
                      'field. If not set, a value of 180 seconds is assumed'))
]


ARISTA_TYPE_DRIVER_OPTS = [
    cfg.IntOpt('sync_interval',
               default=10,
               help=_('VLAN Sync interval in seconds between Neutron plugin '
                      'and EOS. This interval defines how often the VLAN '
                      'synchronization is performed. This is an optional '
                      'field. If not set, a value of 10 seconds is '
                      'assumed.')),
]

cfg.CONF.register_opts(ARISTA_L3_PLUGIN, "l3_arista")

cfg.CONF.register_opts(ARISTA_DRIVER_OPTS, "ml2_arista")

cfg.CONF.register_opts(ARISTA_TYPE_DRIVER_OPTS, "arista_type_driver")