blob: 0dd0156fa3b4cea5e06387922b68226faa825098 [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'
17ADMIN_STATE_UP = 'admin_state_up'
18BYTES_IN = 'bytes_in'
19BYTES_OUT = 'bytes_out'
20CREATED_AT = 'created_at'
21DESCRIPTION = 'description'
Adam Harwella795ae62018-04-23 12:11:19 -070022FLAVOR_ID = 'flavor_id'
Jude Cross986e3f52017-07-24 14:57:20 -070023ID = 'id'
24LISTENERS = 'listeners'
25LOADBALANCER = 'loadbalancer'
26NAME = 'name'
27OPERATING_STATUS = 'operating_status'
28POOLS = 'pools'
29PROJECT_ID = 'project_id'
30PROVIDER = 'provider'
Michael Johnsonaff2e862019-01-11 16:38:00 -080031PROVIDER_NAME = 'provider_name'
Jude Cross986e3f52017-07-24 14:57:20 -070032PROVISIONING_STATUS = 'provisioning_status'
33REQUEST_ERRORS = 'request_errors'
34TOTAL_CONNECTIONS = 'total_connections'
35UPDATED_AT = 'updated_at'
36VIP_ADDRESS = 'vip_address'
37VIP_NETWORK_ID = 'vip_network_id'
38VIP_PORT_ID = 'vip_port_id'
39VIP_SUBNET_ID = 'vip_subnet_id'
40VIP_QOS_POLICY_ID = 'vip_qos_policy_id'
Jude Crossfbbd2b42017-08-09 15:21:04 -070041PROTOCOL = 'protocol'
42PROTOCOL_PORT = 'protocol_port'
43LOADBALANCER_ID = 'loadbalancer_id'
44CONNECTION_LIMIT = 'connection_limit'
45INSERT_HEADERS = 'insert_headers'
46X_FORWARDED_FOR = 'X-Forwarded-For'
47X_FORWARDED_PORT = 'X-Forwarded-Port'
48TIMEOUT_CLIENT_DATA = 'timeout_client_data'
49TIMEOUT_MEMBER_CONNECT = 'timeout_member_connect'
50TIMEOUT_MEMBER_DATA = 'timeout_member_data'
51TIMEOUT_TCP_INSPECT = 'timeout_tcp_inspect'
52DEFAULT_TLS_CONTAINER_REF = 'default_tls_container_ref'
53SNI_CONTAINER_REFS = 'sni_container_refs'
54DEFAULT_POOL_ID = 'default_pool_id'
55L7_POLICIES = 'l7_policies'
Jude Cross986e3f52017-07-24 14:57:20 -070056
Adam Harwell8ffce3e2018-05-01 21:18:44 -070057LB_ALGORITHM = 'lb_algorithm'
58LB_ALGORITHM_ROUND_ROBIN = 'ROUND_ROBIN'
59LB_ALGORITHM_LEAST_CONNECTIONS = 'LEAST_CONNECTIONS'
60LB_ALGORITHM_SOURCE_IP = 'SOURCE_IP'
61SESSION_PERSISTENCE = 'session_persistence'
62LISTENER_ID = 'listener_id'
63LOADBALANCERS = 'loadbalancers'
64
Adam Harwellde3e0542018-05-03 18:21:06 -070065POOL_ID = 'pool_id'
66ADDRESS = 'address'
67WEIGHT = 'weight'
68BACKUP = 'backup'
69SUBNET_ID = 'subnet_id'
70MONITOR_ADDRESS = 'monitor_address'
71MONITOR_PORT = 'monitor_port'
72
Adam Harwell60ed9d92018-05-10 13:23:13 -070073DELAY = 'delay'
74TIMEOUT = 'timeout'
75MAX_RETRIES = 'max_retries'
76MAX_RETRIES_DOWN = 'max_retries_down'
77HTTP_METHOD = 'http_method'
78URL_PATH = 'url_path'
79EXPECTED_CODES = 'expected_codes'
80
Michael Johnsonaff2e862019-01-11 16:38:00 -080081FLAVOR_DATA = 'flavor_data'
82
Adam Harwell60ed9d92018-05-10 13:23:13 -070083# Other constants
84ACTIVE = 'ACTIVE'
85ADMIN_STATE_UP_TRUE = 'true'
86ASC = 'asc'
87DELETED = 'DELETED'
88DESC = 'desc'
89FIELDS = 'fields'
90OFFLINE = 'OFFLINE'
91ONLINE = 'ONLINE'
92NO_MONITOR = 'NO_MONITOR'
93ERROR = 'ERROR'
94SORT = 'sort'
Michael Johnsonaff2e862019-01-11 16:38:00 -080095SINGLE = 'SINGLE'
96ACTIVE_STANDBY = 'ACTIVE_STANDBY'
Adam Harwell60ed9d92018-05-10 13:23:13 -070097
98# Protocols
99HTTP = 'HTTP'
100HTTPS = 'HTTPS'
101TCP = 'TCP'
102
103# HTTP Methods
104GET = 'GET'
105POST = 'POST'
106PUT = 'PUT'
107DELETE = 'DELETE'
108
109# HM Types
110HEALTH_MONITOR_PING = 'PING'
111HEALTH_MONITOR_TCP = 'TCP'
112HEALTH_MONITOR_HTTP = 'HTTP'
113HEALTH_MONITOR_HTTPS = 'HTTPS'
114HEALTH_MONITOR_TLS_HELLO = 'TLS-HELLO'
115
116# Session Persistence
117TYPE = 'type'
118COOKIE_NAME = 'cookie_name'
119SESSION_PERSISTENCE_SOURCE_IP = 'SOURCE_IP'
120SESSION_PERSISTENCE_HTTP_COOKIE = 'HTTP_COOKIE'
121SESSION_PERSISTENCE_APP_COOKIE = 'APP_COOKIE'
122
Adam Harwell446f8be2018-05-24 16:51:03 -0700123# L7Policy options
124POSITION = 'position'
125REDIRECT_URL = 'redirect_url'
126REDIRECT_POOL_ID = 'redirect_pool_id'
127
128ACTION = 'action'
129REDIRECT_TO_POOL = 'REDIRECT_TO_POOL'
130REDIRECT_TO_URL = 'REDIRECT_TO_URL'
131REJECT = 'REJECT'
132
Adam Harwelle029af22018-05-24 17:13:28 -0700133# L7Rule options
134L7POLICY_ID = 'l7policy_id'
135VALUE = 'value'
136COMPARE_TYPE = 'compare_type'
137KEY = 'key'
138INVERT = 'invert'
139# Compare types
140EQUAL_TO = 'EQUAL_TO'
141STARTS_WITH = 'STARTS_WITH'
142ENDS_WITH = 'ENDS_WITH'
143CONTAINS = 'CONTAINS'
144REGEX = 'REGEX'
145# Types
146COOKIE = 'COOKIE'
147FILE_TYPE = 'FILE_TYPE'
148HEADER = 'HEADER'
149HOST_NAME = 'HOST_NAME'
150PATH = 'PATH'
151
Adam Harwell60ed9d92018-05-10 13:23:13 -0700152# RBAC options
153ADVANCED = 'advanced'
154OWNERADMIN = 'owner_or_admin'
155NONE = 'none'
156
Adam Harwelldfc11ee2018-05-30 09:38:55 -0700157# Amphora fields
158COMPUTE_ID = 'compute_id'
159LB_NETWORK_IP = 'lb_network_ip'
160VRRP_IP = 'vrrp_ip'
161HA_IP = 'ha_ip'
162VRRP_PORT_ID = 'vrrp_port_id'
163HA_PORT_ID = 'ha_port_id'
164CERT_EXPIRATION = 'cert_expiration'
165CERT_BUSY = 'cert_busy'
166ROLE = 'role'
167STATUS = 'status'
168VRRP_INTERFACE = 'vrrp_interface'
169VRRP_ID = 'vrrp_id'
170VRRP_PRIORITY = 'vrrp_priority'
171CACHED_ZONE = 'cached_zone'
172IMAGE_ID = 'image_id'
173
174# Amphora roles
175ROLE_STANDALONE = 'STANDALONE'
176ROLE_MASTER = 'MASTER'
177ROLE_BACKUP = 'BACKUP'
178AMPHORA_ROLES = (ROLE_STANDALONE, ROLE_MASTER, ROLE_BACKUP)
179
180# Amphora statuses
181STATUS_BOOTING = 'BOOTING'
182STATUS_ALLOCATED = 'ALLOCATED'
183STATUS_READY = 'READY'
184STATUS_PENDING_CREATE = 'PENDING_CREATE'
185STATUS_PENDING_DELETE = 'PENDING_DELETE'
186STATUS_DELETED = 'DELETED'
187STATUS_ERROR = 'ERROR'
188AMPHORA_STATUSES = (
189 STATUS_BOOTING, STATUS_ALLOCATED, STATUS_READY, STATUS_PENDING_CREATE,
190 STATUS_PENDING_DELETE, STATUS_DELETED, STATUS_ERROR
191)
192
Michael Johnsonaff2e862019-01-11 16:38:00 -0800193# Flavor capabilities
194LOADBALANCER_TOPOLOGY = 'loadbalancer_topology'
195
Jude Cross986e3f52017-07-24 14:57:20 -0700196# API valid fields
197SHOW_LOAD_BALANCER_RESPONSE_FIELDS = (
Adam Harwella795ae62018-04-23 12:11:19 -0700198 ADMIN_STATE_UP, CREATED_AT, DESCRIPTION, FLAVOR_ID, ID, LISTENERS, NAME,
Jude Cross986e3f52017-07-24 14:57:20 -0700199 OPERATING_STATUS, POOLS, PROJECT_ID, PROVIDER, PROVISIONING_STATUS,
200 UPDATED_AT, VIP_ADDRESS, VIP_NETWORK_ID, VIP_PORT_ID, VIP_SUBNET_ID,
201 VIP_QOS_POLICY_ID)
202
Michael Johnsondfd818a2018-08-21 20:54:54 -0700203SHOW_LISTENER_RESPONSE_FIELDS = [
Jude Crossfbbd2b42017-08-09 15:21:04 -0700204 ID, NAME, DESCRIPTION, PROVISIONING_STATUS, OPERATING_STATUS,
205 ADMIN_STATE_UP, PROTOCOL, PROTOCOL_PORT, CONNECTION_LIMIT,
206 DEFAULT_TLS_CONTAINER_REF, SNI_CONTAINER_REFS, PROJECT_ID,
Michael Johnsondfd818a2018-08-21 20:54:54 -0700207 DEFAULT_POOL_ID, L7_POLICIES, INSERT_HEADERS, CREATED_AT, UPDATED_AT
208]
Jude Crossfbbd2b42017-08-09 15:21:04 -0700209
Adam Harwell8ffce3e2018-05-01 21:18:44 -0700210SHOW_POOL_RESPONSE_FIELDS = (
211 ID, NAME, DESCRIPTION, PROVISIONING_STATUS, OPERATING_STATUS,
212 ADMIN_STATE_UP, PROTOCOL, LB_ALGORITHM, SESSION_PERSISTENCE,
213 CREATED_AT, UPDATED_AT
214)
215
Michael Johnsondfd818a2018-08-21 20:54:54 -0700216SHOW_MEMBER_RESPONSE_FIELDS = [
Adam Harwellde3e0542018-05-03 18:21:06 -0700217 ID, NAME, PROVISIONING_STATUS, OPERATING_STATUS, ADMIN_STATE_UP,
Michael Johnsondfd818a2018-08-21 20:54:54 -0700218 ADDRESS, PROTOCOL_PORT, WEIGHT, MONITOR_PORT, MONITOR_ADDRESS
219]
Adam Harwellde3e0542018-05-03 18:21:06 -0700220
Adam Harwell60ed9d92018-05-10 13:23:13 -0700221SHOW_HEALTHMONITOR_RESPONSE_FIELDS = (
222 ID, NAME, PROVISIONING_STATUS, OPERATING_STATUS, ADMIN_STATE_UP,
223 TYPE, DELAY, TIMEOUT, MAX_RETRIES, MAX_RETRIES_DOWN, HTTP_METHOD,
224 URL_PATH, EXPECTED_CODES, CREATED_AT, UPDATED_AT
225)
Adam Harwell446f8be2018-05-24 16:51:03 -0700226
227SHOW_L7POLICY_RESPONSE_FIELDS = (
228 ID, NAME, DESCRIPTION, PROVISIONING_STATUS, OPERATING_STATUS,
229 ADMIN_STATE_UP, LISTENER_ID, POSITION, ACTION, REDIRECT_URL,
230 REDIRECT_POOL_ID, CREATED_AT, UPDATED_AT
231)
Adam Harwelle029af22018-05-24 17:13:28 -0700232
233SHOW_L7RULE_RESPONSE_FIELDS = (
234 ID, ADMIN_STATE_UP, CREATED_AT, UPDATED_AT, TYPE, VALUE, COMPARE_TYPE,
235 KEY, INVERT
236)
Adam Harwelldfc11ee2018-05-30 09:38:55 -0700237
Michael Johnsondfd818a2018-08-21 20:54:54 -0700238SHOW_AMPHORA_RESPONSE_FIELDS = [
Adam Harwelldfc11ee2018-05-30 09:38:55 -0700239 ID, LOADBALANCER_ID, COMPUTE_ID, LB_NETWORK_IP, VRRP_IP, HA_IP,
240 VRRP_PORT_ID, HA_PORT_ID, CERT_EXPIRATION, CERT_BUSY, ROLE, STATUS,
Michael Johnsondfd818a2018-08-21 20:54:54 -0700241 VRRP_INTERFACE, VRRP_ID, VRRP_PRIORITY, CACHED_ZONE
242]
Michael Johnsonaff2e862019-01-11 16:38:00 -0800243
244SHOW_FLAVOR_PROFILE_FIELDS = [ID, NAME, PROVIDER_NAME, FLAVOR_DATA]