octavia 14.0.0.0rc1__py3-none-any.whl → 15.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. octavia/amphorae/backends/agent/agent_jinja_cfg.py +1 -4
  2. octavia/amphorae/backends/agent/api_server/amphora_info.py +5 -5
  3. octavia/amphorae/backends/agent/api_server/keepalived.py +26 -53
  4. octavia/amphorae/backends/agent/api_server/keepalivedlvs.py +44 -83
  5. octavia/amphorae/backends/agent/api_server/loadbalancer.py +94 -112
  6. octavia/amphorae/backends/agent/api_server/lvs_listener_base.py +1 -1
  7. octavia/amphorae/backends/agent/api_server/osutils.py +11 -8
  8. octavia/amphorae/backends/agent/api_server/plug.py +12 -13
  9. octavia/amphorae/backends/agent/api_server/server.py +4 -3
  10. octavia/amphorae/backends/agent/api_server/templates/keepalived_lvs_check_script.sh.j2 +0 -4
  11. octavia/amphorae/backends/agent/api_server/util.py +23 -68
  12. octavia/amphorae/backends/agent/templates/amphora_agent_conf.template +0 -3
  13. octavia/amphorae/backends/health_daemon/health_daemon.py +6 -7
  14. octavia/amphorae/backends/health_daemon/health_sender.py +2 -2
  15. octavia/amphorae/backends/utils/haproxy_query.py +3 -6
  16. octavia/amphorae/backends/utils/interface.py +11 -50
  17. octavia/amphorae/backends/utils/interface_file.py +29 -16
  18. octavia/amphorae/backends/utils/ip_advertisement.py +1 -1
  19. octavia/amphorae/backends/utils/keepalivedlvs_query.py +7 -8
  20. octavia/amphorae/backends/utils/network_namespace.py +3 -3
  21. octavia/amphorae/backends/utils/nftable_utils.py +33 -11
  22. octavia/amphorae/drivers/driver_base.py +2 -2
  23. octavia/amphorae/drivers/haproxy/rest_api_driver.py +26 -38
  24. octavia/amphorae/drivers/health/heartbeat_udp.py +1 -1
  25. octavia/amphorae/drivers/keepalived/jinja/jinja_cfg.py +1 -2
  26. octavia/amphorae/drivers/keepalived/jinja/templates/keepalived_base.template +0 -1
  27. octavia/amphorae/drivers/noop_driver/driver.py +1 -1
  28. octavia/api/app.py +1 -2
  29. octavia/api/common/pagination.py +16 -22
  30. octavia/api/common/types.py +1 -1
  31. octavia/api/drivers/amphora_driver/v2/driver.py +6 -6
  32. octavia/api/drivers/driver_agent/driver_listener.py +3 -3
  33. octavia/api/drivers/driver_agent/driver_updater.py +1 -1
  34. octavia/api/drivers/noop_driver/driver.py +1 -1
  35. octavia/api/root_controller.py +2 -2
  36. octavia/api/v2/controllers/base.py +2 -4
  37. octavia/api/v2/controllers/health_monitor.py +5 -3
  38. octavia/api/v2/controllers/listener.py +2 -2
  39. octavia/api/v2/controllers/load_balancer.py +7 -0
  40. octavia/api/v2/controllers/member.py +12 -2
  41. octavia/api/v2/types/amphora.py +1 -1
  42. octavia/api/v2/types/availability_zone_profile.py +1 -2
  43. octavia/api/v2/types/availability_zones.py +1 -2
  44. octavia/api/v2/types/flavor_profile.py +1 -1
  45. octavia/api/v2/types/flavors.py +1 -1
  46. octavia/api/v2/types/health_monitor.py +1 -1
  47. octavia/api/v2/types/l7policy.py +1 -1
  48. octavia/api/v2/types/l7rule.py +1 -1
  49. octavia/api/v2/types/listener.py +3 -3
  50. octavia/api/v2/types/load_balancer.py +3 -3
  51. octavia/api/v2/types/member.py +2 -2
  52. octavia/api/v2/types/pool.py +2 -2
  53. octavia/api/v2/types/quotas.py +2 -2
  54. octavia/certificates/common/barbican.py +1 -1
  55. octavia/certificates/common/cert.py +1 -1
  56. octavia/certificates/generator/cert_gen.py +1 -1
  57. octavia/certificates/generator/local.py +5 -5
  58. octavia/certificates/manager/cert_mgr.py +1 -1
  59. octavia/certificates/manager/local.py +20 -20
  60. octavia/cmd/agent.py +3 -3
  61. octavia/cmd/driver_agent.py +2 -3
  62. octavia/cmd/health_checker.py +4 -4
  63. octavia/cmd/interface.py +4 -4
  64. octavia/cmd/prometheus_proxy.py +11 -13
  65. octavia/common/base_taskflow.py +3 -3
  66. octavia/common/clients.py +4 -4
  67. octavia/common/config.py +18 -24
  68. octavia/common/constants.py +28 -35
  69. octavia/common/data_models.py +2 -2
  70. octavia/common/jinja/haproxy/combined_listeners/jinja_cfg.py +5 -5
  71. octavia/common/jinja/logging/logging_jinja_cfg.py +1 -1
  72. octavia/common/jinja/lvs/jinja_cfg.py +1 -1
  73. octavia/common/jinja/user_data_jinja_cfg.py +1 -1
  74. octavia/common/keystone.py +1 -1
  75. octavia/common/policy.py +2 -3
  76. octavia/common/stats.py +1 -1
  77. octavia/common/tls_utils/cert_parser.py +2 -1
  78. octavia/common/utils.py +3 -3
  79. octavia/common/validate.py +9 -13
  80. octavia/compute/compute_base.py +1 -1
  81. octavia/compute/drivers/noop_driver/driver.py +1 -1
  82. octavia/compute/drivers/nova_driver.py +1 -1
  83. octavia/controller/healthmanager/health_manager.py +1 -1
  84. octavia/controller/housekeeping/house_keeping.py +2 -2
  85. octavia/controller/queue/v2/consumer.py +1 -2
  86. octavia/controller/queue/v2/endpoints.py +1 -1
  87. octavia/controller/worker/amphora_rate_limit.py +6 -6
  88. octavia/controller/worker/task_utils.py +1 -1
  89. octavia/controller/worker/v2/controller_worker.py +3 -3
  90. octavia/controller/worker/v2/flows/amphora_flows.py +15 -4
  91. octavia/controller/worker/v2/flows/flow_utils.py +6 -5
  92. octavia/controller/worker/v2/flows/health_monitor_flows.py +1 -1
  93. octavia/controller/worker/v2/flows/l7policy_flows.py +1 -1
  94. octavia/controller/worker/v2/flows/l7rule_flows.py +1 -1
  95. octavia/controller/worker/v2/flows/listener_flows.py +18 -6
  96. octavia/controller/worker/v2/flows/load_balancer_flows.py +1 -1
  97. octavia/controller/worker/v2/flows/member_flows.py +12 -19
  98. octavia/controller/worker/v2/flows/pool_flows.py +1 -1
  99. octavia/controller/worker/v2/taskflow_jobboard_driver.py +17 -3
  100. octavia/controller/worker/v2/tasks/compute_tasks.py +1 -3
  101. octavia/controller/worker/v2/tasks/network_tasks.py +3 -4
  102. octavia/db/base_models.py +21 -9
  103. octavia/db/migration/alembic_migrations/versions/034756a182a2_amphora_add_image_id.py +2 -2
  104. octavia/db/migration/alembic_migrations/versions/034b2dc2f3e0_modernize_l7policy_fields.py +31 -31
  105. octavia/db/migration/alembic_migrations/versions/0f242cf02c74_add_provider_column.py +2 -2
  106. octavia/db/migration/alembic_migrations/versions/10d38216ad34_add_timestamps_to_amphora.py +4 -4
  107. octavia/db/migration/alembic_migrations/versions/11e4bb2bb8ef_fix_ipv6_vip.py +1 -1
  108. octavia/db/migration/alembic_migrations/versions/13500e2e978d_update_url_and_name_size.py +6 -6
  109. octavia/db/migration/alembic_migrations/versions/14892634e228_update_vip.py +5 -5
  110. octavia/db/migration/alembic_migrations/versions/186509101b9b_add_server_group_id_to_loadbalancer.py +2 -2
  111. octavia/db/migration/alembic_migrations/versions/1afc932f1ca2_l7rule_support_client_cert.py +3 -3
  112. octavia/db/migration/alembic_migrations/versions/1e4c1d83044c_keepalived_configuration_datamodel.py +26 -26
  113. octavia/db/migration/alembic_migrations/versions/2351ea316465_adding_terminate_https_tls_ref_support.py +4 -4
  114. octavia/db/migration/alembic_migrations/versions/256852d5ff7c_add_lb_network_ip_to_amphora.py +2 -2
  115. octavia/db/migration/alembic_migrations/versions/27e54d00c3cd_add_monitor_address_and_port_to_member.py +4 -4
  116. octavia/db/migration/alembic_migrations/versions/298eac0640a7_add_amphora_vrrp_port_id_and_ha_port_id.py +4 -4
  117. octavia/db/migration/alembic_migrations/versions/29ff921a6eb_shared_pools.py +3 -3
  118. octavia/db/migration/alembic_migrations/versions/2ad093f6353f_add_listener_client_ca_tls_certificate_.py +2 -2
  119. octavia/db/migration/alembic_migrations/versions/31f7653ded67_allow_multiple_vips_per_loadbalancer.py +10 -10
  120. octavia/db/migration/alembic_migrations/versions/32e5c35b26a8_add_l7policy_and_l7rule_quota.py +4 -4
  121. octavia/db/migration/alembic_migrations/versions/357d17a6d5ac_update_lb_and_amphora_data_model_for_.py +20 -20
  122. octavia/db/migration/alembic_migrations/versions/35dee79d5865_initial_create.py +185 -185
  123. octavia/db/migration/alembic_migrations/versions/36b94648fef8_add_timestamp.py +2 -2
  124. octavia/db/migration/alembic_migrations/versions/392fb85b4419_add_primary_key_to_spares_pool.py +1 -1
  125. octavia/db/migration/alembic_migrations/versions/3a1e1cdb7b27_rename_amphora_host_id.py +1 -1
  126. octavia/db/migration/alembic_migrations/versions/3b199c848b96_create_no_monitor_operational_status.py +1 -1
  127. octavia/db/migration/alembic_migrations/versions/3e5b37a0bdb9_add_vrrp_ip_and_ha_ip_to_amphora.py +4 -4
  128. octavia/db/migration/alembic_migrations/versions/3f8ff3be828e_create_quotas_table.py +12 -12
  129. octavia/db/migration/alembic_migrations/versions/43287cd10fef_make_pool_lb_algorithm_larger.py +6 -6
  130. octavia/db/migration/alembic_migrations/versions/443fe6676637_add_network_id_to_vip.py +2 -2
  131. octavia/db/migration/alembic_migrations/versions/44a2414dd683_adding_name_column_to_member_and_health_.py +1 -1
  132. octavia/db/migration/alembic_migrations/versions/458c9ee2a011_l7_policies_and_rules.py +57 -57
  133. octavia/db/migration/alembic_migrations/versions/46d914b2a5e5_seed_the_spares_pool_table.py +2 -2
  134. octavia/db/migration/alembic_migrations/versions/48660b6643f0_add_new_states_for_amphora.py +3 -3
  135. octavia/db/migration/alembic_migrations/versions/4aeb9e23ad43_add_draining_operating_status.py +1 -1
  136. octavia/db/migration/alembic_migrations/versions/4c094013699a_update_load_balancer_amphora.py +9 -9
  137. octavia/db/migration/alembic_migrations/versions/4f65b4f91c39_amphora_add_flavor_id.py +2 -2
  138. octavia/db/migration/alembic_migrations/versions/4faaa983e7a9_update_member_address_column.py +1 -1
  139. octavia/db/migration/alembic_migrations/versions/4fe8240425b4_update_vip_add_subnet_id.py +2 -2
  140. octavia/db/migration/alembic_migrations/versions/52377704420e_add_timestamps_to_healthmonitor.py +9 -9
  141. octavia/db/migration/alembic_migrations/versions/5309960964f8_add_proxy_protocol_for_pool.py +3 -3
  142. octavia/db/migration/alembic_migrations/versions/543f5d8e4e56_add_a_column_busy_in_table_amphora_health.py +2 -2
  143. octavia/db/migration/alembic_migrations/versions/55874a4ceed6_add_l7policy_action_redirect_prefix.py +5 -5
  144. octavia/db/migration/alembic_migrations/versions/5a3ee5472c31_add_cert_expiration__infor_in_amphora_table.py +4 -4
  145. octavia/db/migration/alembic_migrations/versions/62816c232310_fix_migration_for_mysql_5_7.py +1 -1
  146. octavia/db/migration/alembic_migrations/versions/6742ca1b27c2_add_l7policy_redirect_http_code.py +2 -2
  147. octavia/db/migration/alembic_migrations/versions/6ac558d7fc21_add_prometheus_listener_protocol.py +3 -3
  148. octavia/db/migration/alembic_migrations/versions/6ffc710674ef_spares_pool_table.py +2 -2
  149. octavia/db/migration/alembic_migrations/versions/7432f1d4ea83_add_http_host_head_inject_for_http_health_check.py +4 -4
  150. octavia/db/migration/alembic_migrations/versions/74aae261694c_extend_pool_for_backend_ca_and_crl.py +4 -4
  151. octavia/db/migration/alembic_migrations/versions/76aacf2e176c_extend_support_udp_protocol.py +3 -3
  152. octavia/db/migration/alembic_migrations/versions/80dba23a159f_tags_support.py +3 -3
  153. octavia/db/migration/alembic_migrations/versions/82b9402e71fd_update_vip_address_size.py +1 -1
  154. octavia/db/migration/alembic_migrations/versions/8ac4ed24df3a_add_availability_zone_to_lb.py +4 -4
  155. octavia/db/migration/alembic_migrations/versions/8b47b2546312_sctp_support.py +2 -2
  156. octavia/db/migration/alembic_migrations/versions/8c0851bdf6c3_change_tls_container_id_length_in_sni_.py +1 -1
  157. octavia/db/migration/alembic_migrations/versions/92fe9857279_create_healthmanager_table.py +3 -3
  158. octavia/db/migration/alembic_migrations/versions/9b5473976d6d_add_provisioning_status_to_objects.py +10 -10
  159. octavia/db/migration/alembic_migrations/versions/a1f689aecc1d_extend_pool_for_support_backend_reencryption.py +2 -2
  160. octavia/db/migration/alembic_migrations/versions/a7f187cd221f_add_tls_boolean_type_for_reencryption.py +2 -2
  161. octavia/db/migration/alembic_migrations/versions/b9c703669314_add_flavor_and_flavor_profile_table.py +18 -18
  162. octavia/db/migration/alembic_migrations/versions/ba35e0fb88e1_add_backup_field_to_member.py +2 -2
  163. octavia/db/migration/alembic_migrations/versions/bf171d0d91c3_amphora_add_cached_zone.py +2 -2
  164. octavia/db/migration/alembic_migrations/versions/c761c8a71579_add_availability_zone_table.py +15 -15
  165. octavia/db/migration/alembic_migrations/versions/d85ca7258d21_modernize_l7rule.py +13 -13
  166. octavia/db/migration/alembic_migrations/versions/da371b422669_allowed_cidr_for_listeners.py +7 -7
  167. octavia/db/migration/alembic_migrations/versions/dcf88e59aae4_add_lb_algorithm_source_ip_port.py +3 -3
  168. octavia/db/migration/alembic_migrations/versions/e37941b010db_add_lb_flavor_constraint.py +11 -11
  169. octavia/db/migration/alembic_migrations/versions/e6672bda93bf_add_ping_and_tlshello_monitor_types.py +3 -3
  170. octavia/db/migration/alembic_migrations/versions/e6ee84f0abf3_add_proxy_v2_pool_protocol.py +3 -3
  171. octavia/db/migration/alembic_migrations/versions/ebbcc72b4e5e_add_octavia_owned_vip_column_to_vip_.py +2 -2
  172. octavia/db/migration/alembic_migrations/versions/f21ae3f21adc_add_client_auth_option.py +6 -6
  173. octavia/db/migration/alembic_migrations/versions/fc5582da7d8a_create_amphora_build_rate_limit_tables.py +11 -11
  174. octavia/db/migration/alembic_migrations/versions/ffad172e98c1_add_certificate_revoke_list_option.py +2 -2
  175. octavia/db/models.py +1 -1
  176. octavia/db/repositories.py +3 -3
  177. octavia/distributor/drivers/driver_base.py +1 -1
  178. octavia/distributor/drivers/noop_driver/driver.py +1 -1
  179. octavia/hacking/checks.py +4 -4
  180. octavia/image/drivers/noop_driver/driver.py +1 -1
  181. octavia/image/image_base.py +1 -1
  182. octavia/network/base.py +1 -1
  183. octavia/network/drivers/neutron/allowed_address_pairs.py +11 -9
  184. octavia/network/drivers/neutron/base.py +3 -3
  185. octavia/network/drivers/noop_driver/driver.py +1 -1
  186. octavia/policies/amphora.py +6 -12
  187. octavia/policies/availability_zone.py +5 -10
  188. octavia/policies/availability_zone_profile.py +5 -15
  189. octavia/policies/base.py +1 -20
  190. octavia/policies/flavor.py +5 -10
  191. octavia/policies/flavor_profile.py +5 -10
  192. octavia/policies/healthmonitor.py +6 -12
  193. octavia/policies/l7policy.py +6 -12
  194. octavia/policies/l7rule.py +5 -10
  195. octavia/policies/listener.py +7 -14
  196. octavia/policies/loadbalancer.py +9 -18
  197. octavia/policies/member.py +5 -10
  198. octavia/policies/pool.py +6 -12
  199. octavia/policies/provider.py +1 -2
  200. octavia/policies/provider_availability_zone.py +1 -3
  201. octavia/policies/provider_flavor.py +1 -2
  202. octavia/policies/quota.py +6 -12
  203. octavia/statistics/stats_base.py +1 -1
  204. octavia/tests/common/constants.py +1 -1
  205. octavia/tests/common/data_model_helpers.py +10 -10
  206. octavia/tests/common/sample_data_models.py +1 -1
  207. octavia/tests/common/sample_haproxy_prometheus +17 -17
  208. octavia/tests/common/sample_octavia_prometheus +6 -6
  209. octavia/tests/common/utils.py +2 -2
  210. octavia/tests/functional/amphorae/backend/agent/api_server/test_keepalivedlvs.py +36 -62
  211. octavia/tests/functional/amphorae/backend/agent/api_server/test_server.py +135 -296
  212. octavia/tests/functional/api/drivers/driver_agent/test_driver_agent.py +10 -11
  213. octavia/tests/functional/api/v2/base.py +2 -3
  214. octavia/tests/functional/api/v2/test_amphora.py +6 -6
  215. octavia/tests/functional/api/v2/test_availability_zone_profiles.py +13 -14
  216. octavia/tests/functional/api/v2/test_availability_zones.py +19 -19
  217. octavia/tests/functional/api/v2/test_flavor_profiles.py +19 -20
  218. octavia/tests/functional/api/v2/test_flavors.py +25 -25
  219. octavia/tests/functional/api/v2/test_health_monitor.py +35 -18
  220. octavia/tests/functional/api/v2/test_l7policy.py +11 -11
  221. octavia/tests/functional/api/v2/test_l7rule.py +19 -20
  222. octavia/tests/functional/api/v2/test_listener.py +26 -28
  223. octavia/tests/functional/api/v2/test_load_balancer.py +17 -17
  224. octavia/tests/functional/api/v2/test_member.py +53 -21
  225. octavia/tests/functional/api/v2/test_pool.py +11 -11
  226. octavia/tests/functional/api/v2/test_provider.py +7 -7
  227. octavia/tests/functional/api/v2/test_quotas.py +9 -9
  228. octavia/tests/functional/db/test_models.py +1 -1
  229. octavia/tests/functional/db/test_repositories.py +2 -2
  230. octavia/tests/unit/amphorae/backends/agent/api_server/test_amphora_info.py +60 -61
  231. octavia/tests/unit/amphorae/backends/agent/api_server/test_keepalived.py +3 -3
  232. octavia/tests/unit/amphorae/backends/agent/api_server/test_keepalivedlvs.py +1 -19
  233. octavia/tests/unit/amphorae/backends/agent/api_server/test_loadbalancer.py +94 -34
  234. octavia/tests/unit/amphorae/backends/agent/api_server/test_osutils.py +19 -21
  235. octavia/tests/unit/amphorae/backends/agent/api_server/test_plug.py +9 -11
  236. octavia/tests/unit/amphorae/backends/agent/api_server/test_util.py +11 -25
  237. octavia/tests/unit/amphorae/backends/agent/test_agent_jinja_cfg.py +0 -13
  238. octavia/tests/unit/amphorae/backends/health_daemon/test_health_daemon.py +10 -10
  239. octavia/tests/unit/amphorae/backends/utils/test_haproxy_query.py +1 -1
  240. octavia/tests/unit/amphorae/backends/utils/test_interface.py +33 -94
  241. octavia/tests/unit/amphorae/backends/utils/test_interface_file.py +32 -32
  242. octavia/tests/unit/amphorae/backends/utils/test_network_namespace.py +4 -6
  243. octavia/tests/unit/amphorae/backends/utils/test_nftable_utils.py +28 -22
  244. octavia/tests/unit/amphorae/drivers/haproxy/test_rest_api_driver_1_0.py +77 -118
  245. octavia/tests/unit/amphorae/drivers/health/test_heartbeat_udp.py +8 -8
  246. octavia/tests/unit/amphorae/drivers/keepalived/jinja/test_jinja_cfg.py +0 -4
  247. octavia/tests/unit/api/common/test_pagination.py +84 -14
  248. octavia/tests/unit/api/v2/types/test_availability_zone_profile.py +1 -1
  249. octavia/tests/unit/api/v2/types/test_availability_zones.py +1 -1
  250. octavia/tests/unit/api/v2/types/test_flavor_profile.py +1 -1
  251. octavia/tests/unit/api/v2/types/test_flavors.py +1 -1
  252. octavia/tests/unit/api/v2/types/test_health_monitor.py +1 -1
  253. octavia/tests/unit/api/v2/types/test_listener.py +1 -1
  254. octavia/tests/unit/api/v2/types/test_load_balancer.py +1 -1
  255. octavia/tests/unit/api/v2/types/test_pool.py +1 -1
  256. octavia/tests/unit/base.py +1 -0
  257. octavia/tests/unit/certificates/generator/local_csr.py +1 -1
  258. octavia/tests/unit/certificates/generator/test_local.py +5 -5
  259. octavia/tests/unit/certificates/manager/test_barbican.py +2 -3
  260. octavia/tests/unit/certificates/manager/test_barbican_legacy.py +1 -1
  261. octavia/tests/unit/certificates/manager/test_local.py +13 -14
  262. octavia/tests/unit/cmd/test_health_checker.py +1 -1
  263. octavia/tests/unit/cmd/test_prometheus_proxy.py +8 -1
  264. octavia/tests/unit/common/jinja/haproxy/combined_listeners/test_jinja_cfg.py +171 -216
  265. octavia/tests/unit/common/jinja/logging/test_logging_jinja_cfg.py +1 -1
  266. octavia/tests/unit/common/sample_configs/sample_configs_combined.py +1 -2
  267. octavia/tests/unit/common/test_base_taskflow.py +1 -1
  268. octavia/tests/unit/common/test_decorators.py +2 -2
  269. octavia/tests/unit/common/test_policy.py +3 -6
  270. octavia/tests/unit/common/tls_utils/test_cert_parser.py +4 -1
  271. octavia/tests/unit/controller/worker/v2/flows/test_listener_flows.py +10 -15
  272. octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py +4 -6
  273. octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py +6 -2
  274. octavia/tests/unit/controller/worker/v2/tasks/test_retry_tasks.py +1 -1
  275. octavia/tests/unit/controller/worker/v2/test_controller_worker.py +56 -1
  276. octavia/tests/unit/controller/worker/v2/test_taskflow_jobboard_driver.py +348 -0
  277. octavia/tests/unit/hacking/test_checks.py +3 -3
  278. octavia/tests/unit/image/drivers/noop_driver/test_driver.py +1 -1
  279. octavia/tests/unit/image/drivers/test_glance_driver.py +1 -1
  280. octavia/tests/unit/network/drivers/neutron/test_base.py +1 -1
  281. octavia/tests/unit/statistics/drivers/test_update_db.py +1 -1
  282. octavia/tests/unit/statistics/test_stats_base.py +1 -1
  283. octavia/volume/drivers/noop_driver/driver.py +1 -1
  284. octavia/volume/volume_base.py +1 -1
  285. {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/AUTHORS +6 -0
  286. {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/METADATA +3 -5
  287. {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/RECORD +302 -305
  288. octavia-15.0.0.dist-info/pbr.json +1 -0
  289. octavia/amphorae/backends/agent/api_server/templates/keepalived.sysvinit.j2 +0 -87
  290. octavia/amphorae/backends/agent/api_server/templates/keepalived.upstart.j2 +0 -29
  291. octavia/amphorae/backends/agent/api_server/templates/sysvinit.conf.j2 +0 -232
  292. octavia/amphorae/backends/agent/api_server/templates/upstart.conf.j2 +0 -71
  293. octavia-14.0.0.0rc1.dist-info/pbr.json +0 -1
  294. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/LICENSE +0 -0
  295. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/README.rst +0 -0
  296. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/README.rst +0 -0
  297. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/diskimage-create.sh +0 -0
  298. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/image-tests.sh +0 -0
  299. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/requirements.txt +0 -0
  300. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/test-requirements.txt +0 -0
  301. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/tox.ini +0 -0
  302. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/data/share/octavia/diskimage-create/version.txt +0 -0
  303. {octavia-14.0.0.0rc1.data → octavia-15.0.0.data}/scripts/octavia-wsgi +0 -0
  304. {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/LICENSE +0 -0
  305. {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/WHEEL +0 -0
  306. {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/entry_points.txt +0 -0
  307. {octavia-14.0.0.0rc1.dist-info → octavia-15.0.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,3 @@
1
-
2
1
  # Licensed under the Apache License, Version 2.0 (the "License"); you may
3
2
  # not use this file except in compliance with the License. You may obtain
4
3
  # a copy of the License at
@@ -41,29 +40,31 @@ def get_delete_load_balancer_flow(lb):
41
40
  return LB_FLOWS.get_delete_load_balancer_flow(lb)
42
41
 
43
42
 
44
- def get_listeners_on_lb(db_lb):
43
+ def get_listeners_on_lb(db_lb, for_delete=False):
45
44
  """Get a list of the listeners on a load balancer.
46
45
 
47
46
  :param db_lb: A load balancer database model object.
47
+ :param for_delete: Skip errors on tls certs loading.
48
48
  :returns: A list of provider dict format listeners.
49
49
  """
50
50
  listener_dicts = []
51
51
  for listener in db_lb.listeners:
52
52
  prov_listener = provider_utils.db_listener_to_provider_listener(
53
- listener)
53
+ listener, for_delete)
54
54
  listener_dicts.append(prov_listener.to_dict())
55
55
  return listener_dicts
56
56
 
57
57
 
58
- def get_pools_on_lb(db_lb):
58
+ def get_pools_on_lb(db_lb, for_delete=False):
59
59
  """Get a list of the pools on a load balancer.
60
60
 
61
61
  :param db_lb: A load balancer database model object.
62
+ :param for_delete: Skip errors on tls certs loading.
62
63
  :returns: A list of provider dict format pools.
63
64
  """
64
65
  pool_dicts = []
65
66
  for pool in db_lb.pools:
66
- prov_pool = provider_utils.db_pool_to_provider_pool(pool)
67
+ prov_pool = provider_utils.db_pool_to_provider_pool(pool, for_delete)
67
68
  pool_dicts.append(prov_pool.to_dict())
68
69
  return pool_dicts
69
70
 
@@ -21,7 +21,7 @@ from octavia.controller.worker.v2.tasks import database_tasks
21
21
  from octavia.controller.worker.v2.tasks import lifecycle_tasks
22
22
 
23
23
 
24
- class HealthMonitorFlows(object):
24
+ class HealthMonitorFlows:
25
25
 
26
26
  def get_create_health_monitor_flow(self):
27
27
  """Create a flow to create a health monitor
@@ -21,7 +21,7 @@ from octavia.controller.worker.v2.tasks import database_tasks
21
21
  from octavia.controller.worker.v2.tasks import lifecycle_tasks
22
22
 
23
23
 
24
- class L7PolicyFlows(object):
24
+ class L7PolicyFlows:
25
25
 
26
26
  def get_create_l7policy_flow(self):
27
27
  """Create a flow to create an L7 policy
@@ -21,7 +21,7 @@ from octavia.controller.worker.v2.tasks import database_tasks
21
21
  from octavia.controller.worker.v2.tasks import lifecycle_tasks
22
22
 
23
23
 
24
- class L7RuleFlows(object):
24
+ class L7RuleFlows:
25
25
 
26
26
  def get_create_l7rule_flow(self):
27
27
  """Create a flow to create an L7 rule
@@ -23,7 +23,7 @@ from octavia.controller.worker.v2.tasks import lifecycle_tasks
23
23
  from octavia.controller.worker.v2.tasks import network_tasks
24
24
 
25
25
 
26
- class ListenerFlows(object):
26
+ class ListenerFlows:
27
27
 
28
28
  def get_create_listener_flow(self, flavor_dict=None):
29
29
  """Create a flow to create a listener
@@ -161,7 +161,7 @@ class ListenerFlows(object):
161
161
 
162
162
  return update_listener_flow
163
163
 
164
- def _get_firewall_rules_subflow(self, flavor_dict):
164
+ def _get_firewall_rules_subflow(self, flavor_dict, timeout_dict=None):
165
165
  """Creates a subflow that updates the firewall rules in the amphorae.
166
166
 
167
167
  :returns: The subflow for updating firewall rules in the amphorae.
@@ -174,6 +174,14 @@ class ListenerFlows(object):
174
174
  requires=constants.LOADBALANCER_ID,
175
175
  provides=constants.AMPHORAE))
176
176
 
177
+ fw_rules_subflow.add(
178
+ amphora_driver_tasks.AmphoraeGetConnectivityStatus(
179
+ name=constants.AMPHORAE_GET_CONNECTIVITY_STATUS,
180
+ requires=constants.AMPHORAE,
181
+ inject={constants.TIMEOUT_DICT: timeout_dict,
182
+ constants.NEW_AMPHORA_ID: constants.NIL_UUID},
183
+ provides=constants.AMPHORAE_STATUS))
184
+
177
185
  fw_rules_subflow.add(network_tasks.GetAmphoraeNetworkConfigs(
178
186
  name=sf_name + '-' + constants.GET_AMP_NETWORK_CONFIG,
179
187
  requires=constants.LOADBALANCER_ID,
@@ -192,8 +200,10 @@ class ListenerFlows(object):
192
200
 
193
201
  amp_0_subflow.add(amphora_driver_tasks.SetAmphoraFirewallRules(
194
202
  name=sf_name + '-0-' + constants.SET_AMPHORA_FIREWALL_RULES,
195
- requires=(constants.AMPHORAE, constants.AMPHORA_FIREWALL_RULES),
196
- inject={constants.AMPHORA_INDEX: 0}))
203
+ requires=(constants.AMPHORAE, constants.AMPHORA_FIREWALL_RULES,
204
+ constants.AMPHORAE_STATUS),
205
+ inject={constants.AMPHORA_INDEX: 0,
206
+ constants.TIMEOUT_DICT: timeout_dict}))
197
207
 
198
208
  update_amps_subflow.add(amp_0_subflow)
199
209
 
@@ -212,8 +222,10 @@ class ListenerFlows(object):
212
222
  amp_1_subflow.add(amphora_driver_tasks.SetAmphoraFirewallRules(
213
223
  name=sf_name + '-1-' + constants.SET_AMPHORA_FIREWALL_RULES,
214
224
  requires=(constants.AMPHORAE,
215
- constants.AMPHORA_FIREWALL_RULES),
216
- inject={constants.AMPHORA_INDEX: 1}))
225
+ constants.AMPHORA_FIREWALL_RULES,
226
+ constants.AMPHORAE_STATUS),
227
+ inject={constants.AMPHORA_INDEX: 1,
228
+ constants.TIMEOUT_DICT: timeout_dict}))
217
229
 
218
230
  update_amps_subflow.add(amp_1_subflow)
219
231
 
@@ -37,7 +37,7 @@ CONF = cfg.CONF
37
37
  LOG = logging.getLogger(__name__)
38
38
 
39
39
 
40
- class LoadBalancerFlows(object):
40
+ class LoadBalancerFlows:
41
41
 
42
42
  def __init__(self):
43
43
  self.amp_flows = amphora_flows.AmphoraFlows()
@@ -23,7 +23,7 @@ from octavia.controller.worker.v2.tasks import lifecycle_tasks
23
23
  from octavia.controller.worker.v2.tasks import network_tasks
24
24
 
25
25
 
26
- class MemberFlows(object):
26
+ class MemberFlows:
27
27
 
28
28
  def get_create_member_flow(self):
29
29
  """Create a flow to create a member
@@ -148,49 +148,42 @@ class MemberFlows(object):
148
148
  unordered_members_flow.add(
149
149
  lifecycle_tasks.MembersToErrorOnRevertTask(
150
150
  inject={constants.MEMBERS: old_members},
151
- name='{flow}-deleted'.format(
152
- flow=constants.MEMBER_TO_ERROR_ON_REVERT_FLOW)))
151
+ name=f'{constants.MEMBER_TO_ERROR_ON_REVERT_FLOW}-deleted'))
153
152
  for m in old_members:
154
153
  unordered_members_flow.add(database_tasks.DeleteMemberInDB(
155
154
  inject={constants.MEMBER: m},
156
- name='{flow}-{id}'.format(
157
- id=m[constants.MEMBER_ID],
158
- flow=constants.DELETE_MEMBER_INDB)))
155
+ name=f'{constants.DELETE_MEMBER_INDB}-'
156
+ f'{m[constants.MEMBER_ID]}'))
159
157
  unordered_members_flow.add(database_tasks.DecrementMemberQuota(
160
158
  requires=constants.PROJECT_ID,
161
- name='{flow}-{id}'.format(
162
- id=m[constants.MEMBER_ID],
163
- flow=constants.DECREMENT_MEMBER_QUOTA_FLOW)))
159
+ name=f'{constants.DECREMENT_MEMBER_QUOTA_FLOW}-'
160
+ f'{m[constants.MEMBER_ID]}'))
164
161
 
165
162
  # Create new members
166
163
  unordered_members_flow.add(
167
164
  lifecycle_tasks.MembersToErrorOnRevertTask(
168
165
  inject={constants.MEMBERS: new_members},
169
- name='{flow}-created'.format(
170
- flow=constants.MEMBER_TO_ERROR_ON_REVERT_FLOW)))
166
+ name=f'{constants.MEMBER_TO_ERROR_ON_REVERT_FLOW}-created'))
171
167
  for m in new_members:
172
168
  unordered_members_active_flow.add(
173
169
  database_tasks.MarkMemberActiveInDB(
174
170
  inject={constants.MEMBER: m},
175
- name='{flow}-{id}'.format(
176
- id=m[constants.MEMBER_ID],
177
- flow=constants.MARK_MEMBER_ACTIVE_INDB)))
171
+ name=f'{constants.MARK_MEMBER_ACTIVE_INDB}-'
172
+ f'{m[constants.MEMBER_ID]}'))
178
173
 
179
174
  # Update existing members
180
175
  unordered_members_flow.add(
181
176
  lifecycle_tasks.MembersToErrorOnRevertTask(
182
177
  # updated_members is a list of (obj, dict), only pass `obj`
183
178
  inject={constants.MEMBERS: [m[0] for m in updated_members]},
184
- name='{flow}-updated'.format(
185
- flow=constants.MEMBER_TO_ERROR_ON_REVERT_FLOW)))
179
+ name=f'{constants.MEMBER_TO_ERROR_ON_REVERT_FLOW}-updated'))
186
180
  for m, um in updated_members:
187
181
  um.pop(constants.ID, None)
188
182
  unordered_members_active_flow.add(
189
183
  database_tasks.MarkMemberActiveInDB(
190
184
  inject={constants.MEMBER: m},
191
- name='{flow}-{id}'.format(
192
- id=m[constants.MEMBER_ID],
193
- flow=constants.MARK_MEMBER_ACTIVE_INDB)))
185
+ name=f'{constants.MARK_MEMBER_ACTIVE_INDB}-'
186
+ f'{m[constants.MEMBER_ID]}'))
194
187
 
195
188
  batch_update_members_flow.add(unordered_members_flow)
196
189
 
@@ -21,7 +21,7 @@ from octavia.controller.worker.v2.tasks import database_tasks
21
21
  from octavia.controller.worker.v2.tasks import lifecycle_tasks
22
22
 
23
23
 
24
- class PoolFlows(object):
24
+ class PoolFlows:
25
25
 
26
26
  def get_create_pool_flow(self):
27
27
  """Create a flow to create a pool
@@ -15,6 +15,7 @@ import contextlib
15
15
 
16
16
  from oslo_config import cfg
17
17
  from oslo_log import log
18
+ from oslo_utils import strutils
18
19
  from taskflow.jobs import backends as job_backends
19
20
  from taskflow.persistence import backends as persistence_backends
20
21
 
@@ -22,7 +23,7 @@ LOG = log.getLogger(__name__)
22
23
  CONF = cfg.CONF
23
24
 
24
25
 
25
- class JobboardTaskFlowDriver(object, metaclass=abc.ABCMeta):
26
+ class JobboardTaskFlowDriver(metaclass=abc.ABCMeta):
26
27
 
27
28
  @abc.abstractmethod
28
29
  def job_board(self, persistence):
@@ -33,7 +34,7 @@ class JobboardTaskFlowDriver(object, metaclass=abc.ABCMeta):
33
34
  """
34
35
 
35
36
 
36
- class MysqlPersistenceDriver(object):
37
+ class MysqlPersistenceDriver:
37
38
 
38
39
  def __init__(self):
39
40
  self.persistence_conf = {
@@ -68,7 +69,7 @@ class ZookeeperTaskFlowDriver(JobboardTaskFlowDriver):
68
69
 
69
70
  def job_board(self, persistence):
70
71
  job_backends_hosts = ','.join(
71
- ['%s:%s' % (host, CONF.task_flow.jobboard_backend_port)
72
+ [f'{host}:{CONF.task_flow.jobboard_backend_port}'
72
73
  for host in CONF.task_flow.jobboard_backend_hosts])
73
74
  jobboard_backend_conf = {
74
75
  'board': 'zookeeper',
@@ -113,6 +114,19 @@ class RedisTaskFlowDriver(JobboardTaskFlowDriver):
113
114
  CONF.task_flow.jobboard_backend_password)
114
115
  jobboard_backend_conf.update(
115
116
  CONF.task_flow.jobboard_redis_backend_ssl_options)
117
+
118
+ sentinel_kwargs = CONF.task_flow.jobboard_redis_sentinel_ssl_options
119
+ if 'ssl' in sentinel_kwargs:
120
+ sentinel_kwargs['ssl'] = strutils.bool_from_string(
121
+ sentinel_kwargs['ssl'])
122
+ if CONF.task_flow.jobboard_redis_sentinel_username is not None:
123
+ sentinel_kwargs['username'] = (
124
+ CONF.task_flow.jobboard_redis_sentinel_username)
125
+ if CONF.task_flow.jobboard_redis_sentinel_password is not None:
126
+ sentinel_kwargs['password'] = (
127
+ CONF.task_flow.jobboard_redis_sentinel_password)
128
+ jobboard_backend_conf['sentinel_kwargs'] = sentinel_kwargs
129
+
116
130
  return job_backends.backend(
117
131
  CONF.task_flow.jobboard_backend_namespace,
118
132
  jobboard_backend_conf,
@@ -187,7 +187,7 @@ class CertComputeCreate(ComputeCreate):
187
187
 
188
188
  # load client certificate
189
189
  with open(CONF.controller_worker.client_ca,
190
- 'r', encoding='utf-8') as client_ca:
190
+ encoding='utf-8') as client_ca:
191
191
  ca = client_ca.read()
192
192
 
193
193
  key = utils.get_compatible_server_certs_key_passphrase()
@@ -342,8 +342,6 @@ class NovaServerGroupDelete(BaseComputeTask):
342
342
  def execute(self, server_group_id):
343
343
  if server_group_id is not None:
344
344
  self.compute.delete_server_group(server_group_id)
345
- else:
346
- return
347
345
 
348
346
 
349
347
  class AttachPort(BaseComputeTask):
@@ -984,10 +984,9 @@ class CreateVIPBasePort(BaseNetworkTask):
984
984
  return
985
985
  try:
986
986
  port_name = constants.AMP_BASE_PORT_PREFIX + amphora_id
987
- for port in result:
988
- self.network_driver.delete_port(port.id)
989
- LOG.info('Deleted port %s with ID %s for amphora %s due to a '
990
- 'revert.', port_name, port.id, amphora_id)
987
+ self.network_driver.delete_port(result[constants.ID])
988
+ LOG.info('Deleted port %s with ID %s for amphora %s due to a '
989
+ 'revert.', port_name, result[constants.ID], amphora_id)
991
990
  except Exception as e:
992
991
  LOG.error('Failed to delete port %s. Resources may still be in '
993
992
  'use for a port intended for amphora %s due to error '
octavia/db/base_models.py CHANGED
@@ -12,6 +12,8 @@
12
12
  # License for the specific language governing permissions and limitations
13
13
  # under the License.
14
14
 
15
+ from wsme import types as wtypes
16
+
15
17
  from oslo_db.sqlalchemy import models
16
18
  from oslo_utils import strutils
17
19
  from oslo_utils import uuidutils
@@ -19,6 +21,8 @@ import sqlalchemy as sa
19
21
  from sqlalchemy.orm import collections
20
22
  from sqlalchemy.orm import declarative_base
21
23
 
24
+ from octavia.common import constants
25
+
22
26
 
23
27
  class OctaviaBase(models.ModelBase):
24
28
 
@@ -112,12 +116,20 @@ class OctaviaBase(models.ModelBase):
112
116
 
113
117
  @staticmethod
114
118
  def apply_filter(query, model, filters):
119
+ # Convert boolean filters to proper type
120
+ for key in filters:
121
+ attr = getattr(model.__v2_wsme__, key, None)
122
+ if isinstance(attr, wtypes.wsattr) and attr.datatype == bool:
123
+ filters[key] = strutils.bool_from_string(filters[key])
124
+ # Special case for 'enabled', it's 'admin_state_up' in the WSME class
125
+ # definition and the attribute has already been renamed to 'enabled' by
126
+ # a previous pagination filter
127
+ if constants.ENABLED in filters:
128
+ filters[constants.ENABLED] = strutils.bool_from_string(
129
+ filters[constants.ENABLED])
130
+
115
131
  translated_filters = {}
116
132
  child_map = {}
117
- # Convert enabled to proper type
118
- if 'enabled' in filters:
119
- filters['enabled'] = strutils.bool_from_string(
120
- filters['enabled'])
121
133
  for attr, name_map in model.__v2_wsme__._child_map.items():
122
134
  for k, v in name_map.items():
123
135
  if attr in filters and k in filters[attr]:
@@ -143,29 +155,29 @@ class OctaviaBase(models.ModelBase):
143
155
  return f"{self.__class__.__name__}({params})"
144
156
 
145
157
 
146
- class LookupTableMixin(object):
158
+ class LookupTableMixin:
147
159
  """Mixin to add to classes that are lookup tables."""
148
160
  name = sa.Column(sa.String(255), primary_key=True, nullable=False)
149
161
  description = sa.Column(sa.String(255), nullable=True)
150
162
 
151
163
 
152
- class IdMixin(object):
164
+ class IdMixin:
153
165
  """Id mixin, add to subclasses that have an id."""
154
166
  id = sa.Column(sa.String(36), primary_key=True,
155
167
  default=uuidutils.generate_uuid)
156
168
 
157
169
 
158
- class ProjectMixin(object):
170
+ class ProjectMixin:
159
171
  """Tenant mixin, add to subclasses that have a project."""
160
172
  project_id = sa.Column(sa.String(36))
161
173
 
162
174
 
163
- class NameMixin(object):
175
+ class NameMixin:
164
176
  """Name mixin to add to classes which need a name."""
165
177
  name = sa.Column(sa.String(255), nullable=True)
166
178
 
167
179
 
168
- class TagMixin(object):
180
+ class TagMixin:
169
181
  """Tags mixin to add to classes which need tags.
170
182
 
171
183
  The class must realize the specified db relationship as well.
@@ -30,6 +30,6 @@ down_revision = '10d38216ad34'
30
30
 
31
31
  def upgrade():
32
32
  op.add_column(
33
- u'amphora',
34
- sa.Column(u'image_id', sa.String(36), nullable=True)
33
+ 'amphora',
34
+ sa.Column('image_id', sa.String(36), nullable=True)
35
35
  )
@@ -33,33 +33,33 @@ down_revision = 'fac584114642'
33
33
  def upgrade():
34
34
  # Add timing data
35
35
  op.add_column(
36
- u'l7policy',
37
- sa.Column(u'created_at', sa.DateTime(), nullable=True)
36
+ 'l7policy',
37
+ sa.Column('created_at', sa.DateTime(), nullable=True)
38
38
  )
39
39
  op.add_column(
40
- u'l7policy',
41
- sa.Column(u'updated_at', sa.DateTime(), nullable=True)
40
+ 'l7policy',
41
+ sa.Column('updated_at', sa.DateTime(), nullable=True)
42
42
  )
43
43
 
44
44
  # Add project_id
45
45
  op.add_column(
46
- u'l7policy',
47
- sa.Column(u'project_id', sa.String(36), nullable=True)
46
+ 'l7policy',
47
+ sa.Column('project_id', sa.String(36), nullable=True)
48
48
  )
49
49
 
50
50
  # Add new operating_status column, setting existing rows to ONLINE
51
51
  op.add_column(
52
- u'l7policy',
53
- sa.Column(u'operating_status', sa.String(16),
52
+ 'l7policy',
53
+ sa.Column('operating_status', sa.String(16),
54
54
  nullable=False, server_default=constants.ONLINE)
55
55
  )
56
56
  # Remove the default, as we don't actually want one
57
- op.alter_column(u'l7policy', u'operating_status',
57
+ op.alter_column('l7policy', 'operating_status',
58
58
  existing_type=sa.String(16), server_default=None)
59
59
  # Add the foreign key for operating_status_name
60
60
  op.create_foreign_key(
61
- u'fk_l7policy_operating_status_name', u'l7policy',
62
- u'operating_status', [u'operating_status'], [u'name']
61
+ 'fk_l7policy_operating_status_name', 'l7policy',
62
+ 'operating_status', ['operating_status'], ['name']
63
63
  )
64
64
 
65
65
  op.drop_constraint('fk_health_monitor_provisioning_status_name',
@@ -83,59 +83,59 @@ def upgrade():
83
83
  type_='foreignkey')
84
84
 
85
85
  # provisioning_status was mistakenly added as nullable, the fix is similar
86
- op.alter_column(u'l7policy', u'provisioning_status', nullable=False,
86
+ op.alter_column('l7policy', 'provisioning_status', nullable=False,
87
87
  existing_type=sa.String(16),
88
88
  server_default=constants.ACTIVE)
89
- op.alter_column(u'l7policy', u'provisioning_status',
89
+ op.alter_column('l7policy', 'provisioning_status',
90
90
  existing_type=sa.String(16), server_default=None)
91
91
 
92
92
  # Fix the rest of these that were also mistakenly set as nullable in:
93
93
  # 9b5473976d6d_add_provisioning_status_to_objects.py
94
- op.alter_column(u'health_monitor', u'provisioning_status', nullable=False,
94
+ op.alter_column('health_monitor', 'provisioning_status', nullable=False,
95
95
  existing_type=sa.String(16),
96
96
  server_default=constants.ACTIVE)
97
- op.alter_column(u'health_monitor', u'provisioning_status',
97
+ op.alter_column('health_monitor', 'provisioning_status',
98
98
  existing_type=sa.String(16), server_default=None)
99
99
 
100
- op.alter_column(u'member', u'provisioning_status', nullable=False,
100
+ op.alter_column('member', 'provisioning_status', nullable=False,
101
101
  existing_type=sa.String(16),
102
102
  server_default=constants.ACTIVE)
103
- op.alter_column(u'member', u'provisioning_status',
103
+ op.alter_column('member', 'provisioning_status',
104
104
  existing_type=sa.String(16), server_default=None)
105
105
 
106
- op.alter_column(u'pool', u'provisioning_status', nullable=False,
106
+ op.alter_column('pool', 'provisioning_status', nullable=False,
107
107
  existing_type=sa.String(16),
108
108
  server_default=constants.ACTIVE)
109
- op.alter_column(u'pool', u'provisioning_status',
109
+ op.alter_column('pool', 'provisioning_status',
110
110
  existing_type=sa.String(16), server_default=None)
111
111
 
112
- op.alter_column(u'l7rule', u'provisioning_status', nullable=False,
112
+ op.alter_column('l7rule', 'provisioning_status', nullable=False,
113
113
  existing_type=sa.String(16),
114
114
  server_default=constants.ACTIVE)
115
- op.alter_column(u'l7rule', u'provisioning_status',
115
+ op.alter_column('l7rule', 'provisioning_status',
116
116
  existing_type=sa.String(16), server_default=None)
117
117
 
118
118
  op.create_foreign_key(
119
- u'fk_health_monitor_provisioning_status_name', u'health_monitor',
120
- u'provisioning_status', [u'provisioning_status'], [u'name']
119
+ 'fk_health_monitor_provisioning_status_name', 'health_monitor',
120
+ 'provisioning_status', ['provisioning_status'], ['name']
121
121
  )
122
122
 
123
123
  op.create_foreign_key(
124
- u'fk_l7policy_provisioning_status_name', u'l7policy',
125
- u'provisioning_status', [u'provisioning_status'], [u'name']
124
+ 'fk_l7policy_provisioning_status_name', 'l7policy',
125
+ 'provisioning_status', ['provisioning_status'], ['name']
126
126
  )
127
127
 
128
128
  op.create_foreign_key(
129
- u'fk_l7rule_provisioning_status_name', u'l7rule',
130
- u'provisioning_status', [u'provisioning_status'], [u'name']
129
+ 'fk_l7rule_provisioning_status_name', 'l7rule',
130
+ 'provisioning_status', ['provisioning_status'], ['name']
131
131
  )
132
132
 
133
133
  op.create_foreign_key(
134
- u'fk_member_provisioning_status_name', u'member',
135
- u'provisioning_status', [u'provisioning_status'], [u'name']
134
+ 'fk_member_provisioning_status_name', 'member',
135
+ 'provisioning_status', ['provisioning_status'], ['name']
136
136
  )
137
137
 
138
138
  op.create_foreign_key(
139
- u'fk_pool_provisioning_status_name', u'pool',
140
- u'provisioning_status', [u'provisioning_status'], [u'name']
139
+ 'fk_pool_provisioning_status_name', 'pool',
140
+ 'provisioning_status', ['provisioning_status'], ['name']
141
141
  )
@@ -30,8 +30,8 @@ down_revision = '0fd2c131923f'
30
30
 
31
31
  def upgrade():
32
32
  op.add_column(
33
- u'load_balancer',
34
- sa.Column(u'provider', sa.String(64), nullable=True)
33
+ 'load_balancer',
34
+ sa.Column('provider', sa.String(64), nullable=True)
35
35
  )
36
36
  op.execute("UPDATE load_balancer set provider='amphora' where provider "
37
37
  "is null")
@@ -30,10 +30,10 @@ down_revision = '0aee2b450512'
30
30
 
31
31
  def upgrade():
32
32
  op.add_column(
33
- u'amphora',
34
- sa.Column(u'created_at', sa.DateTime(), nullable=True)
33
+ 'amphora',
34
+ sa.Column('created_at', sa.DateTime(), nullable=True)
35
35
  )
36
36
  op.add_column(
37
- u'amphora',
38
- sa.Column(u'updated_at', sa.DateTime(), nullable=True)
37
+ 'amphora',
38
+ sa.Column('updated_at', sa.DateTime(), nullable=True)
39
39
  )
@@ -27,4 +27,4 @@ down_revision = '211982b05afc'
27
27
 
28
28
 
29
29
  def upgrade():
30
- op.alter_column(u'vip', u'ip_address', type_=sa.String(64))
30
+ op.alter_column('vip', 'ip_address', type_=sa.String(64))
@@ -29,15 +29,15 @@ down_revision = '4c094013699a'
29
29
 
30
30
 
31
31
  def upgrade():
32
- op.alter_column(u'provisioning_status', u'name',
32
+ op.alter_column('provisioning_status', 'name',
33
33
  existing_type=sa.String(255))
34
- op.alter_column(u'operating_status', u'name',
34
+ op.alter_column('operating_status', 'name',
35
35
  existing_type=sa.String(255))
36
- op.alter_column(u'health_monitor_type', u'name',
36
+ op.alter_column('health_monitor_type', 'name',
37
37
  existing_type=sa.String(255))
38
- op.alter_column(u'protocol', u'name',
38
+ op.alter_column('protocol', 'name',
39
39
  existing_type=sa.String(255))
40
- op.alter_column(u'algorithm', u'name',
40
+ op.alter_column('algorithm', 'name',
41
41
  existing_type=sa.String(255))
42
- op.alter_column(u'session_persistence_type', u'name',
42
+ op.alter_column('session_persistence_type', 'name',
43
43
  existing_type=sa.String(255))
@@ -29,10 +29,10 @@ down_revision = '3a1e1cdb7b27'
29
29
 
30
30
 
31
31
  def upgrade():
32
- with op.batch_alter_table(u'vip') as batch_op:
33
- batch_op.alter_column(u'subnet_id', new_column_name=u'network_id',
32
+ with op.batch_alter_table('vip') as batch_op:
33
+ batch_op.alter_column('subnet_id', new_column_name='network_id',
34
34
  existing_type=sa.String(36))
35
- batch_op.alter_column(u'net_port_id', new_column_name=u'port_id',
35
+ batch_op.alter_column('net_port_id', new_column_name='port_id',
36
36
  existing_type=sa.String(36))
37
- batch_op.drop_column(u'floating_ip_id')
38
- batch_op.drop_column(u'floating_ip_network_id')
37
+ batch_op.drop_column('floating_ip_id')
38
+ batch_op.drop_column('floating_ip_network_id')
@@ -30,5 +30,5 @@ down_revision = '458c9ee2a011'
30
30
 
31
31
 
32
32
  def upgrade():
33
- op.add_column(u'load_balancer', sa.Column(u'server_group_id',
34
- sa.String(36), nullable=True))
33
+ op.add_column('load_balancer', sa.Column('server_group_id',
34
+ sa.String(36), nullable=True))
@@ -36,9 +36,9 @@ new_fields = ['SSL_CONN_HAS_CERT', 'SSL_VERIFY_RESULT', 'SSL_DN_FIELD']
36
36
  def upgrade():
37
37
 
38
38
  insert_table = sql.table(
39
- u'l7rule_type',
40
- sql.column(u'name', sa.String),
41
- sql.column(u'description', sa.String)
39
+ 'l7rule_type',
40
+ sql.column('name', sa.String),
41
+ sql.column('description', sa.String)
42
42
  )
43
43
  cows = [{'name': field} for field in new_fields]
44
44
  op.bulk_insert(insert_table, cows)