blob: 6c65245f7d8c23c79be2d33bc43f39d73b368a6e [file] [log] [blame]
Jude Cross986e3f52017-07-24 14:57:20 -07001# Copyright 2018 Rackspace US Inc. All rights reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
14
15# API field names
16ACTIVE_CONNECTIONS = 'active_connections'
Adam Harwellc2aa20c2019-11-20 11:15:07 -080017AVAILABILITY_ZONE = 'availability_zone'
18AVAILABILITY_ZONE_DATA = 'availability_zone_data'
19AVAILABILITY_ZONE_PROFILE_ID = 'availability_zone_profile_id'
Jude Cross986e3f52017-07-24 14:57:20 -070020ADMIN_STATE_UP = 'admin_state_up'
21BYTES_IN = 'bytes_in'
22BYTES_OUT = 'bytes_out'
Michael Johnson63786632019-11-08 23:22:13 -080023CLIENT_AUTHENTICATION = 'client_authentication'
24CLIENT_AUTH_NONE = 'NONE'
25CLIENT_AUTH_OPTIONAL = 'OPTIONAL'
26CLIENT_AUTH_MANDATORY = 'MANDATORY'
27CLIENT_CA_TLS_CONTAINER_REF = 'client_ca_tls_container_ref'
28CLIENT_CRL_CONTAINER_REF = 'client_crl_container_ref'
Jude Cross986e3f52017-07-24 14:57:20 -070029CREATED_AT = 'created_at'
30DESCRIPTION = 'description'
Adam Harwellc2aa20c2019-11-20 11:15:07 -080031FLAVOR_DATA = 'flavor_data'
Adam Harwella795ae62018-04-23 12:11:19 -070032FLAVOR_ID = 'flavor_id'
Adam Harwellc2aa20c2019-11-20 11:15:07 -080033FLAVOR_PROFILE_ID = 'flavor_profile_id'
Jude Cross986e3f52017-07-24 14:57:20 -070034ID = 'id'
35LISTENERS = 'listeners'
36LOADBALANCER = 'loadbalancer'
37NAME = 'name'
38OPERATING_STATUS = 'operating_status'
39POOLS = 'pools'
40PROJECT_ID = 'project_id'
41PROVIDER = 'provider'
Michael Johnsonaff2e862019-01-11 16:38:00 -080042PROVIDER_NAME = 'provider_name'
Jude Cross986e3f52017-07-24 14:57:20 -070043PROVISIONING_STATUS = 'provisioning_status'
44REQUEST_ERRORS = 'request_errors'
45TOTAL_CONNECTIONS = 'total_connections'
46UPDATED_AT = 'updated_at'
47VIP_ADDRESS = 'vip_address'
48VIP_NETWORK_ID = 'vip_network_id'
49VIP_PORT_ID = 'vip_port_id'
50VIP_SUBNET_ID = 'vip_subnet_id'
51VIP_QOS_POLICY_ID = 'vip_qos_policy_id'
Jude Crossfbbd2b42017-08-09 15:21:04 -070052PROTOCOL = 'protocol'
53PROTOCOL_PORT = 'protocol_port'
54LOADBALANCER_ID = 'loadbalancer_id'
55CONNECTION_LIMIT = 'connection_limit'
56INSERT_HEADERS = 'insert_headers'
57X_FORWARDED_FOR = 'X-Forwarded-For'
58X_FORWARDED_PORT = 'X-Forwarded-Port'
59TIMEOUT_CLIENT_DATA = 'timeout_client_data'
60TIMEOUT_MEMBER_CONNECT = 'timeout_member_connect'
61TIMEOUT_MEMBER_DATA = 'timeout_member_data'
62TIMEOUT_TCP_INSPECT = 'timeout_tcp_inspect'
63DEFAULT_TLS_CONTAINER_REF = 'default_tls_container_ref'
64SNI_CONTAINER_REFS = 'sni_container_refs'
65DEFAULT_POOL_ID = 'default_pool_id'
66L7_POLICIES = 'l7_policies'
Jude Cross986e3f52017-07-24 14:57:20 -070067
Adam Harwell8ffce3e2018-05-01 21:18:44 -070068LB_ALGORITHM = 'lb_algorithm'
69LB_ALGORITHM_ROUND_ROBIN = 'ROUND_ROBIN'
70LB_ALGORITHM_LEAST_CONNECTIONS = 'LEAST_CONNECTIONS'
71LB_ALGORITHM_SOURCE_IP = 'SOURCE_IP'
72SESSION_PERSISTENCE = 'session_persistence'
73LISTENER_ID = 'listener_id'
74LOADBALANCERS = 'loadbalancers'
75
Adam Harwellde3e0542018-05-03 18:21:06 -070076POOL_ID = 'pool_id'
77ADDRESS = 'address'
78WEIGHT = 'weight'
79BACKUP = 'backup'
80SUBNET_ID = 'subnet_id'
81MONITOR_ADDRESS = 'monitor_address'
82MONITOR_PORT = 'monitor_port'
83
Adam Harwell60ed9d92018-05-10 13:23:13 -070084DELAY = 'delay'
85TIMEOUT = 'timeout'
86MAX_RETRIES = 'max_retries'
87MAX_RETRIES_DOWN = 'max_retries_down'
88HTTP_METHOD = 'http_method'
89URL_PATH = 'url_path'
90EXPECTED_CODES = 'expected_codes'
91
Michael Johnsona2d03072019-01-14 17:18:21 -080092ENABLED = 'enabled'
Michael Johnsonaff2e862019-01-11 16:38:00 -080093
Adam Harwell60ed9d92018-05-10 13:23:13 -070094# Other constants
95ACTIVE = 'ACTIVE'
Carlos Goncalvesc2e12162019-02-14 23:57:44 +010096PENDING_UPDATE = 'PENDING_UPDATE'
Adam Harwell60ed9d92018-05-10 13:23:13 -070097ADMIN_STATE_UP_TRUE = 'true'
98ASC = 'asc'
99DELETED = 'DELETED'
100DESC = 'desc'
101FIELDS = 'fields'
102OFFLINE = 'OFFLINE'
103ONLINE = 'ONLINE'
104NO_MONITOR = 'NO_MONITOR'
105ERROR = 'ERROR'
106SORT = 'sort'
Michael Johnsonaff2e862019-01-11 16:38:00 -0800107SINGLE = 'SINGLE'
108ACTIVE_STANDBY = 'ACTIVE_STANDBY'
Carlos Goncalvesee09a1b2019-07-22 11:45:04 +0200109SUPPORTED_LB_TOPOLOGIES = (SINGLE, ACTIVE_STANDBY)
Adam Harwell60ed9d92018-05-10 13:23:13 -0700110
111# Protocols
112HTTP = 'HTTP'
113HTTPS = 'HTTPS'
114TCP = 'TCP'
Carlos Goncalves9777f112019-05-02 12:22:45 -0600115TERMINATED_HTTPS = 'TERMINATED_HTTPS'
Gregory Thiemonge26853ac2019-07-02 08:56:41 +0200116UDP = 'UDP'
Adam Harwell60ed9d92018-05-10 13:23:13 -0700117
118# HTTP Methods
119GET = 'GET'
120POST = 'POST'
121PUT = 'PUT'
122DELETE = 'DELETE'
123
124# HM Types
125HEALTH_MONITOR_PING = 'PING'
126HEALTH_MONITOR_TCP = 'TCP'
127HEALTH_MONITOR_HTTP = 'HTTP'
128HEALTH_MONITOR_HTTPS = 'HTTPS'
129HEALTH_MONITOR_TLS_HELLO = 'TLS-HELLO'
130
131# Session Persistence
132TYPE = 'type'
133COOKIE_NAME = 'cookie_name'
134SESSION_PERSISTENCE_SOURCE_IP = 'SOURCE_IP'
135SESSION_PERSISTENCE_HTTP_COOKIE = 'HTTP_COOKIE'
136SESSION_PERSISTENCE_APP_COOKIE = 'APP_COOKIE'
137
Adam Harwell446f8be2018-05-24 16:51:03 -0700138# L7Policy options
139POSITION = 'position'
140REDIRECT_URL = 'redirect_url'
141REDIRECT_POOL_ID = 'redirect_pool_id'
142
143ACTION = 'action'
144REDIRECT_TO_POOL = 'REDIRECT_TO_POOL'
145REDIRECT_TO_URL = 'REDIRECT_TO_URL'
146REJECT = 'REJECT'
147
Adam Harwelle029af22018-05-24 17:13:28 -0700148# L7Rule options
149L7POLICY_ID = 'l7policy_id'
150VALUE = 'value'
151COMPARE_TYPE = 'compare_type'
152KEY = 'key'
153INVERT = 'invert'
154# Compare types
155EQUAL_TO = 'EQUAL_TO'
156STARTS_WITH = 'STARTS_WITH'
157ENDS_WITH = 'ENDS_WITH'
158CONTAINS = 'CONTAINS'
159REGEX = 'REGEX'
160# Types
161COOKIE = 'COOKIE'
162FILE_TYPE = 'FILE_TYPE'
163HEADER = 'HEADER'
164HOST_NAME = 'HOST_NAME'
165PATH = 'PATH'
166
Adam Harwell60ed9d92018-05-10 13:23:13 -0700167# RBAC options
168ADVANCED = 'advanced'
169OWNERADMIN = 'owner_or_admin'
170NONE = 'none'
171
Adam Harwelldfc11ee2018-05-30 09:38:55 -0700172# Amphora fields
173COMPUTE_ID = 'compute_id'
174LB_NETWORK_IP = 'lb_network_ip'
175VRRP_IP = 'vrrp_ip'
176HA_IP = 'ha_ip'
177VRRP_PORT_ID = 'vrrp_port_id'
178HA_PORT_ID = 'ha_port_id'
179CERT_EXPIRATION = 'cert_expiration'
180CERT_BUSY = 'cert_busy'
181ROLE = 'role'
182STATUS = 'status'
183VRRP_INTERFACE = 'vrrp_interface'
184VRRP_ID = 'vrrp_id'
185VRRP_PRIORITY = 'vrrp_priority'
186CACHED_ZONE = 'cached_zone'
187IMAGE_ID = 'image_id'
188
189# Amphora roles
190ROLE_STANDALONE = 'STANDALONE'
191ROLE_MASTER = 'MASTER'
192ROLE_BACKUP = 'BACKUP'
193AMPHORA_ROLES = (ROLE_STANDALONE, ROLE_MASTER, ROLE_BACKUP)
194
195# Amphora statuses
196STATUS_BOOTING = 'BOOTING'
197STATUS_ALLOCATED = 'ALLOCATED'
198STATUS_READY = 'READY'
199STATUS_PENDING_CREATE = 'PENDING_CREATE'
200STATUS_PENDING_DELETE = 'PENDING_DELETE'
201STATUS_DELETED = 'DELETED'
202STATUS_ERROR = 'ERROR'
203AMPHORA_STATUSES = (
204 STATUS_BOOTING, STATUS_ALLOCATED, STATUS_READY, STATUS_PENDING_CREATE,
205 STATUS_PENDING_DELETE, STATUS_DELETED, STATUS_ERROR
206)
207
Ann Taraday7d0b5822019-10-17 15:28:30 +0400208# Amphora providers list
209AMPHORA_PROVIDERS = ['amphora', 'amphorav2', 'octavia']
210
Michael Johnsonaff2e862019-01-11 16:38:00 -0800211# Flavor capabilities
212LOADBALANCER_TOPOLOGY = 'loadbalancer_topology'
213
Adam Harwellc2aa20c2019-11-20 11:15:07 -0800214# Availability zone capabilities
215COMPUTE_ZONE = 'compute_zone'
216MANAGEMENT_NETWORK = 'management_network'
217
Jude Cross986e3f52017-07-24 14:57:20 -0700218# API valid fields
219SHOW_LOAD_BALANCER_RESPONSE_FIELDS = (
Adam Harwella795ae62018-04-23 12:11:19 -0700220 ADMIN_STATE_UP, CREATED_AT, DESCRIPTION, FLAVOR_ID, ID, LISTENERS, NAME,
Jude Cross986e3f52017-07-24 14:57:20 -0700221 OPERATING_STATUS, POOLS, PROJECT_ID, PROVIDER, PROVISIONING_STATUS,
222 UPDATED_AT, VIP_ADDRESS, VIP_NETWORK_ID, VIP_PORT_ID, VIP_SUBNET_ID,
223 VIP_QOS_POLICY_ID)
224
Michael Johnsondfd818a2018-08-21 20:54:54 -0700225SHOW_LISTENER_RESPONSE_FIELDS = [
Jude Crossfbbd2b42017-08-09 15:21:04 -0700226 ID, NAME, DESCRIPTION, PROVISIONING_STATUS, OPERATING_STATUS,
227 ADMIN_STATE_UP, PROTOCOL, PROTOCOL_PORT, CONNECTION_LIMIT,
228 DEFAULT_TLS_CONTAINER_REF, SNI_CONTAINER_REFS, PROJECT_ID,
Michael Johnsondfd818a2018-08-21 20:54:54 -0700229 DEFAULT_POOL_ID, L7_POLICIES, INSERT_HEADERS, CREATED_AT, UPDATED_AT
230]
Jude Crossfbbd2b42017-08-09 15:21:04 -0700231
Adam Harwell8ffce3e2018-05-01 21:18:44 -0700232SHOW_POOL_RESPONSE_FIELDS = (
233 ID, NAME, DESCRIPTION, PROVISIONING_STATUS, OPERATING_STATUS,
234 ADMIN_STATE_UP, PROTOCOL, LB_ALGORITHM, SESSION_PERSISTENCE,
235 CREATED_AT, UPDATED_AT
236)
237
Michael Johnsondfd818a2018-08-21 20:54:54 -0700238SHOW_MEMBER_RESPONSE_FIELDS = [
Adam Harwellde3e0542018-05-03 18:21:06 -0700239 ID, NAME, PROVISIONING_STATUS, OPERATING_STATUS, ADMIN_STATE_UP,
Michael Johnsondfd818a2018-08-21 20:54:54 -0700240 ADDRESS, PROTOCOL_PORT, WEIGHT, MONITOR_PORT, MONITOR_ADDRESS
241]
Adam Harwellde3e0542018-05-03 18:21:06 -0700242
Adam Harwell60ed9d92018-05-10 13:23:13 -0700243SHOW_HEALTHMONITOR_RESPONSE_FIELDS = (
244 ID, NAME, PROVISIONING_STATUS, OPERATING_STATUS, ADMIN_STATE_UP,
245 TYPE, DELAY, TIMEOUT, MAX_RETRIES, MAX_RETRIES_DOWN, HTTP_METHOD,
246 URL_PATH, EXPECTED_CODES, CREATED_AT, UPDATED_AT
247)
Adam Harwell446f8be2018-05-24 16:51:03 -0700248
249SHOW_L7POLICY_RESPONSE_FIELDS = (
250 ID, NAME, DESCRIPTION, PROVISIONING_STATUS, OPERATING_STATUS,
251 ADMIN_STATE_UP, LISTENER_ID, POSITION, ACTION, REDIRECT_URL,
252 REDIRECT_POOL_ID, CREATED_AT, UPDATED_AT
253)
Adam Harwelle029af22018-05-24 17:13:28 -0700254
255SHOW_L7RULE_RESPONSE_FIELDS = (
256 ID, ADMIN_STATE_UP, CREATED_AT, UPDATED_AT, TYPE, VALUE, COMPARE_TYPE,
257 KEY, INVERT
258)
Adam Harwelldfc11ee2018-05-30 09:38:55 -0700259
Michael Johnsondfd818a2018-08-21 20:54:54 -0700260SHOW_AMPHORA_RESPONSE_FIELDS = [
Adam Harwelldfc11ee2018-05-30 09:38:55 -0700261 ID, LOADBALANCER_ID, COMPUTE_ID, LB_NETWORK_IP, VRRP_IP, HA_IP,
262 VRRP_PORT_ID, HA_PORT_ID, CERT_EXPIRATION, CERT_BUSY, ROLE, STATUS,
Michael Johnsondfd818a2018-08-21 20:54:54 -0700263 VRRP_INTERFACE, VRRP_ID, VRRP_PRIORITY, CACHED_ZONE
264]
Michael Johnsonaff2e862019-01-11 16:38:00 -0800265
266SHOW_FLAVOR_PROFILE_FIELDS = [ID, NAME, PROVIDER_NAME, FLAVOR_DATA]
Michael Johnsona2d03072019-01-14 17:18:21 -0800267
268SHOW_FLAVOR_FIELDS = [ID, NAME, DESCRIPTION, ENABLED, FLAVOR_PROFILE_ID]
Adam Harwellc2aa20c2019-11-20 11:15:07 -0800269
270SHOW_AVAILABILITY_ZONE_PROFILE_FIELDS = [
271 ID, NAME, PROVIDER_NAME, AVAILABILITY_ZONE_DATA]
272
273SHOW_AVAILABILITY_ZONE_FIELDS = [
274 NAME, DESCRIPTION, ENABLED, AVAILABILITY_ZONE_PROFILE_ID]