octavia 14.0.0__py3-none-any.whl → 15.0.0.0rc1__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.dist-info → octavia-15.0.0.0rc1.dist-info}/AUTHORS +6 -0
  286. {octavia-14.0.0.dist-info → octavia-15.0.0.0rc1.dist-info}/METADATA +3 -5
  287. {octavia-14.0.0.dist-info → octavia-15.0.0.0rc1.dist-info}/RECORD +302 -305
  288. octavia-15.0.0.0rc1.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.dist-info/pbr.json +0 -1
  294. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/data/share/octavia/LICENSE +0 -0
  295. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/data/share/octavia/README.rst +0 -0
  296. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/README.rst +0 -0
  297. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/diskimage-create.sh +0 -0
  298. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/image-tests.sh +0 -0
  299. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/requirements.txt +0 -0
  300. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/test-requirements.txt +0 -0
  301. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/tox.ini +0 -0
  302. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/data/share/octavia/diskimage-create/version.txt +0 -0
  303. {octavia-14.0.0.data → octavia-15.0.0.0rc1.data}/scripts/octavia-wsgi +0 -0
  304. {octavia-14.0.0.dist-info → octavia-15.0.0.0rc1.dist-info}/LICENSE +0 -0
  305. {octavia-14.0.0.dist-info → octavia-15.0.0.0rc1.dist-info}/WHEEL +0 -0
  306. {octavia-14.0.0.dist-info → octavia-15.0.0.0rc1.dist-info}/entry_points.txt +0 -0
  307. {octavia-14.0.0.dist-info → octavia-15.0.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -18,25 +18,19 @@ from octavia.common import constants
18
18
 
19
19
  rules = [
20
20
  policy.DocumentedRuleDefault(
21
- '{rbac_obj}{action}'.format(
22
- rbac_obj=constants.RBAC_AVAILABILITY_ZONE_PROFILE,
23
- action=constants.RBAC_GET_ALL),
21
+ f'{constants.RBAC_AVAILABILITY_ZONE_PROFILE}{constants.RBAC_GET_ALL}',
24
22
  constants.RULE_API_ADMIN,
25
23
  "List Availability Zones",
26
24
  [{'method': 'GET', 'path': '/v2.0/lbaas/availabilityzoneprofiles'}]
27
25
  ),
28
26
  policy.DocumentedRuleDefault(
29
- '{rbac_obj}{action}'.format(
30
- rbac_obj=constants.RBAC_AVAILABILITY_ZONE_PROFILE,
31
- action=constants.RBAC_POST),
27
+ f'{constants.RBAC_AVAILABILITY_ZONE_PROFILE}{constants.RBAC_POST}',
32
28
  constants.RULE_API_ADMIN,
33
29
  "Create an Availability Zone",
34
30
  [{'method': 'POST', 'path': '/v2.0/lbaas/availabilityzoneprofiles'}]
35
31
  ),
36
32
  policy.DocumentedRuleDefault(
37
- '{rbac_obj}{action}'.format(
38
- rbac_obj=constants.RBAC_AVAILABILITY_ZONE_PROFILE,
39
- action=constants.RBAC_PUT),
33
+ f'{constants.RBAC_AVAILABILITY_ZONE_PROFILE}{constants.RBAC_PUT}',
40
34
  constants.RULE_API_ADMIN,
41
35
  "Update an Availability Zone",
42
36
  [{'method': 'PUT',
@@ -44,9 +38,7 @@ rules = [
44
38
  '{availability_zone_profile_id}'}]
45
39
  ),
46
40
  policy.DocumentedRuleDefault(
47
- '{rbac_obj}{action}'.format(
48
- rbac_obj=constants.RBAC_AVAILABILITY_ZONE_PROFILE,
49
- action=constants.RBAC_GET_ONE),
41
+ f'{constants.RBAC_AVAILABILITY_ZONE_PROFILE}{constants.RBAC_GET_ONE}',
50
42
  constants.RULE_API_ADMIN,
51
43
  "Show Availability Zone details",
52
44
  [{'method': 'GET',
@@ -54,9 +46,7 @@ rules = [
54
46
  '{availability_zone_profile_id}'}]
55
47
  ),
56
48
  policy.DocumentedRuleDefault(
57
- '{rbac_obj}{action}'.format(
58
- rbac_obj=constants.RBAC_AVAILABILITY_ZONE_PROFILE,
59
- action=constants.RBAC_DELETE),
49
+ f'{constants.RBAC_AVAILABILITY_ZONE_PROFILE}{constants.RBAC_DELETE}',
60
50
  constants.RULE_API_ADMIN,
61
51
  "Remove an Availability Zone",
62
52
  [{'method': 'DELETE',
octavia/policies/base.py CHANGED
@@ -41,20 +41,6 @@ rules = [
41
41
 
42
42
  # OpenStack wide scoped rules
43
43
 
44
- # System scoped Administrator
45
- policy.RuleDefault(
46
- name='system-admin',
47
- check_str='role:admin and '
48
- 'system_scope:all',
49
- scope_types=[constants.RBAC_SCOPE_PROJECT]),
50
-
51
- # System scoped Reader
52
- policy.RuleDefault(
53
- name='system-reader',
54
- check_str='role:reader and '
55
- 'system_scope:all',
56
- scope_types=[constants.RBAC_SCOPE_PROJECT]),
57
-
58
44
  # Project scoped Member
59
45
  policy.RuleDefault(
60
46
  name='project-member',
@@ -85,13 +71,10 @@ rules = [
85
71
  # role:load-balancer_admin
86
72
  # User is considered an admin for all load-balancer APIs including
87
73
  # resources owned by others.
88
- # role:admin and system_scope:all
89
- # User is admin to all service APIs, including Octavia.
90
74
 
91
75
  policy.RuleDefault(
92
76
  name='context_is_admin',
93
77
  check_str='role:load-balancer_admin or '
94
- 'rule:system-admin or '
95
78
  'role:admin',
96
79
  deprecated_rule=deprecated_context_is_admin,
97
80
  scope_types=[constants.RBAC_SCOPE_PROJECT]),
@@ -115,8 +98,7 @@ rules = [
115
98
 
116
99
  policy.RuleDefault(
117
100
  name='load-balancer:global_observer',
118
- check_str='role:load-balancer_global_observer or '
119
- 'rule:system-reader',
101
+ check_str='role:load-balancer_global_observer',
120
102
  scope_types=[constants.RBAC_SCOPE_PROJECT]),
121
103
 
122
104
  policy.RuleDefault(
@@ -132,7 +114,6 @@ rules = [
132
114
  name='load-balancer:admin',
133
115
  check_str='is_admin:True or '
134
116
  'role:load-balancer_admin or '
135
- 'rule:system-admin or '
136
117
  'role:admin',
137
118
  scope_types=[constants.RBAC_SCOPE_PROJECT]),
138
119
 
@@ -18,37 +18,32 @@ from octavia.common import constants
18
18
 
19
19
  rules = [
20
20
  policy.DocumentedRuleDefault(
21
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR,
22
- action=constants.RBAC_GET_ALL),
21
+ f'{constants.RBAC_FLAVOR}{constants.RBAC_GET_ALL}',
23
22
  constants.RULE_API_READ,
24
23
  "List Flavors",
25
24
  [{'method': 'GET', 'path': '/v2.0/lbaas/flavors'}]
26
25
  ),
27
26
  policy.DocumentedRuleDefault(
28
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR,
29
- action=constants.RBAC_POST),
27
+ f'{constants.RBAC_FLAVOR}{constants.RBAC_POST}',
30
28
  constants.RULE_API_ADMIN,
31
29
  "Create a Flavor",
32
30
  [{'method': 'POST', 'path': '/v2.0/lbaas/flavors'}]
33
31
  ),
34
32
  policy.DocumentedRuleDefault(
35
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR,
36
- action=constants.RBAC_PUT),
33
+ f'{constants.RBAC_FLAVOR}{constants.RBAC_PUT}',
37
34
  constants.RULE_API_ADMIN,
38
35
  "Update a Flavor",
39
36
  [{'method': 'PUT', 'path': '/v2.0/lbaas/flavors/{flavor_id}'}]
40
37
  ),
41
38
  policy.DocumentedRuleDefault(
42
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR,
43
- action=constants.RBAC_GET_ONE),
39
+ f'{constants.RBAC_FLAVOR}{constants.RBAC_GET_ONE}',
44
40
  constants.RULE_API_READ,
45
41
  "Show Flavor details",
46
42
  [{'method': 'GET',
47
43
  'path': '/v2.0/lbaas/flavors/{flavor_id}'}]
48
44
  ),
49
45
  policy.DocumentedRuleDefault(
50
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR,
51
- action=constants.RBAC_DELETE),
46
+ f'{constants.RBAC_FLAVOR}{constants.RBAC_DELETE}',
52
47
  constants.RULE_API_ADMIN,
53
48
  "Remove a Flavor",
54
49
  [{'method': 'DELETE',
@@ -18,38 +18,33 @@ from octavia.common import constants
18
18
 
19
19
  rules = [
20
20
  policy.DocumentedRuleDefault(
21
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR_PROFILE,
22
- action=constants.RBAC_GET_ALL),
21
+ f'{constants.RBAC_FLAVOR_PROFILE}{constants.RBAC_GET_ALL}',
23
22
  constants.RULE_API_ADMIN,
24
23
  "List Flavor Profiles",
25
24
  [{'method': 'GET', 'path': '/v2.0/lbaas/flavorprofiles'}]
26
25
  ),
27
26
  policy.DocumentedRuleDefault(
28
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR_PROFILE,
29
- action=constants.RBAC_POST),
27
+ f'{constants.RBAC_FLAVOR_PROFILE}{constants.RBAC_POST}',
30
28
  constants.RULE_API_ADMIN,
31
29
  "Create a Flavor Profile",
32
30
  [{'method': 'POST', 'path': '/v2.0/lbaas/flavorprofiles'}]
33
31
  ),
34
32
  policy.DocumentedRuleDefault(
35
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR_PROFILE,
36
- action=constants.RBAC_PUT),
33
+ f'{constants.RBAC_FLAVOR_PROFILE}{constants.RBAC_PUT}',
37
34
  constants.RULE_API_ADMIN,
38
35
  "Update a Flavor Profile",
39
36
  [{'method': 'PUT',
40
37
  'path': '/v2.0/lbaas/flavorprofiles/{flavor_profile_id}'}]
41
38
  ),
42
39
  policy.DocumentedRuleDefault(
43
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR_PROFILE,
44
- action=constants.RBAC_GET_ONE),
40
+ f'{constants.RBAC_FLAVOR_PROFILE}{constants.RBAC_GET_ONE}',
45
41
  constants.RULE_API_ADMIN,
46
42
  "Show Flavor Profile details",
47
43
  [{'method': 'GET',
48
44
  'path': '/v2.0/lbaas/flavorprofiles/{flavor_profile_id}'}]
49
45
  ),
50
46
  policy.DocumentedRuleDefault(
51
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_FLAVOR_PROFILE,
52
- action=constants.RBAC_DELETE),
47
+ f'{constants.RBAC_FLAVOR_PROFILE}{constants.RBAC_DELETE}',
53
48
  constants.RULE_API_ADMIN,
54
49
  "Remove a Flavor Profile",
55
50
  [{'method': 'DELETE',
@@ -17,45 +17,39 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_HEALTHMONITOR,
21
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_HEALTHMONITOR}{constants.RBAC_GET_ALL}',
22
21
  constants.RULE_API_READ,
23
22
  "List Health Monitors of a Pool",
24
23
  [{'method': 'GET', 'path': '/v2/lbaas/healthmonitors'}]
25
24
  ),
26
25
  policy.DocumentedRuleDefault(
27
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_HEALTHMONITOR,
28
- action=constants.RBAC_GET_ALL_GLOBAL),
26
+ f'{constants.RBAC_HEALTHMONITOR}{constants.RBAC_GET_ALL_GLOBAL}',
29
27
  constants.RULE_API_READ_GLOBAL,
30
28
  "List Health Monitors including resources owned by others",
31
29
  [{'method': 'GET', 'path': '/v2/lbaas/healthmonitors'}]
32
30
  ),
33
31
  policy.DocumentedRuleDefault(
34
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_HEALTHMONITOR,
35
- action=constants.RBAC_POST),
32
+ f'{constants.RBAC_HEALTHMONITOR}{constants.RBAC_POST}',
36
33
  constants.RULE_API_WRITE,
37
34
  "Create a Health Monitor",
38
35
  [{'method': 'POST', 'path': '/v2/lbaas/healthmonitors'}]
39
36
  ),
40
37
  policy.DocumentedRuleDefault(
41
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_HEALTHMONITOR,
42
- action=constants.RBAC_GET_ONE),
38
+ f'{constants.RBAC_HEALTHMONITOR}{constants.RBAC_GET_ONE}',
43
39
  constants.RULE_API_READ,
44
40
  "Show Health Monitor details",
45
41
  [{'method': 'GET',
46
42
  'path': '/v2/lbaas/healthmonitors/{healthmonitor_id}'}]
47
43
  ),
48
44
  policy.DocumentedRuleDefault(
49
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_HEALTHMONITOR,
50
- action=constants.RBAC_PUT),
45
+ f'{constants.RBAC_HEALTHMONITOR}{constants.RBAC_PUT}',
51
46
  constants.RULE_API_WRITE,
52
47
  "Update a Health Monitor",
53
48
  [{'method': 'PUT',
54
49
  'path': '/v2/lbaas/healthmonitors/{healthmonitor_id}'}]
55
50
  ),
56
51
  policy.DocumentedRuleDefault(
57
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_HEALTHMONITOR,
58
- action=constants.RBAC_DELETE),
52
+ f'{constants.RBAC_HEALTHMONITOR}{constants.RBAC_DELETE}',
59
53
  constants.RULE_API_WRITE,
60
54
  "Remove a Health Monitor",
61
55
  [{'method': 'DELETE',
@@ -17,45 +17,39 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7POLICY,
21
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_L7POLICY}{constants.RBAC_GET_ALL}',
22
21
  constants.RULE_API_READ,
23
22
  "List L7 Policys",
24
23
  [{'method': 'GET', 'path': '/v2/lbaas/l7policies'}]
25
24
  ),
26
25
  policy.DocumentedRuleDefault(
27
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7POLICY,
28
- action=constants.RBAC_GET_ALL_GLOBAL),
26
+ f'{constants.RBAC_L7POLICY}{constants.RBAC_GET_ALL_GLOBAL}',
29
27
  constants.RULE_API_READ_GLOBAL,
30
28
  "List L7 Policys including resources owned by others",
31
29
  [{'method': 'GET', 'path': '/v2/lbaas/l7policies'}]
32
30
  ),
33
31
  policy.DocumentedRuleDefault(
34
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7POLICY,
35
- action=constants.RBAC_POST),
32
+ f'{constants.RBAC_L7POLICY}{constants.RBAC_POST}',
36
33
  constants.RULE_API_WRITE,
37
34
  "Create a L7 Policy",
38
35
  [{'method': 'POST', 'path': '/v2/lbaas/l7policies'}]
39
36
  ),
40
37
  policy.DocumentedRuleDefault(
41
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7POLICY,
42
- action=constants.RBAC_GET_ONE),
38
+ f'{constants.RBAC_L7POLICY}{constants.RBAC_GET_ONE}',
43
39
  constants.RULE_API_READ,
44
40
  "Show L7 Policy details",
45
41
  [{'method': 'GET',
46
42
  'path': '/v2/lbaas/l7policies/{l7policy_id}'}]
47
43
  ),
48
44
  policy.DocumentedRuleDefault(
49
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7POLICY,
50
- action=constants.RBAC_PUT),
45
+ f'{constants.RBAC_L7POLICY}{constants.RBAC_PUT}',
51
46
  constants.RULE_API_WRITE,
52
47
  "Update a L7 Policy",
53
48
  [{'method': 'PUT',
54
49
  'path': '/v2/lbaas/l7policies/{l7policy_id}'}]
55
50
  ),
56
51
  policy.DocumentedRuleDefault(
57
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7POLICY,
58
- action=constants.RBAC_DELETE),
52
+ f'{constants.RBAC_L7POLICY}{constants.RBAC_DELETE}',
59
53
  constants.RULE_API_WRITE,
60
54
  "Remove a L7 Policy",
61
55
  [{'method': 'DELETE',
@@ -17,40 +17,35 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7RULE,
21
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_L7RULE}{constants.RBAC_GET_ALL}',
22
21
  constants.RULE_API_READ,
23
22
  "List L7 Rules",
24
23
  [{'method': 'GET',
25
24
  'path': '/v2/lbaas/l7policies/{l7policy_id}/rules'}]
26
25
  ),
27
26
  policy.DocumentedRuleDefault(
28
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7RULE,
29
- action=constants.RBAC_POST),
27
+ f'{constants.RBAC_L7RULE}{constants.RBAC_POST}',
30
28
  constants.RULE_API_WRITE,
31
29
  "Create a L7 Rule",
32
30
  [{'method': 'POST',
33
31
  'path': '/v2/lbaas/l7policies/{l7policy_id}/rules'}]
34
32
  ),
35
33
  policy.DocumentedRuleDefault(
36
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7RULE,
37
- action=constants.RBAC_GET_ONE),
34
+ f'{constants.RBAC_L7RULE}{constants.RBAC_GET_ONE}',
38
35
  constants.RULE_API_READ,
39
36
  "Show L7 Rule details",
40
37
  [{'method': 'GET',
41
38
  'path': '/v2/lbaas/l7policies/{l7policy_id}/rules/{l7rule_id}'}]
42
39
  ),
43
40
  policy.DocumentedRuleDefault(
44
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7RULE,
45
- action=constants.RBAC_PUT),
41
+ f'{constants.RBAC_L7RULE}{constants.RBAC_PUT}',
46
42
  constants.RULE_API_WRITE,
47
43
  "Update a L7 Rule",
48
44
  [{'method': 'PUT',
49
45
  'path': '/v2/lbaas/l7policies/{l7policy_id}/rules/{l7rule_id}'}]
50
46
  ),
51
47
  policy.DocumentedRuleDefault(
52
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_L7RULE,
53
- action=constants.RBAC_DELETE),
48
+ f'{constants.RBAC_L7RULE}{constants.RBAC_DELETE}',
54
49
  constants.RULE_API_WRITE,
55
50
  "Remove a L7 Rule",
56
51
  [{'method': 'DELETE',
@@ -17,53 +17,46 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LISTENER,
21
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_LISTENER}{constants.RBAC_GET_ALL}',
22
21
  constants.RULE_API_READ,
23
22
  "List Listeners",
24
23
  [{'method': 'GET', 'path': '/v2/lbaas/listeners'}]
25
24
  ),
26
25
  policy.DocumentedRuleDefault(
27
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LISTENER,
28
- action=constants.RBAC_GET_ALL_GLOBAL),
26
+ f'{constants.RBAC_LISTENER}{constants.RBAC_GET_ALL_GLOBAL}',
29
27
  constants.RULE_API_READ_GLOBAL,
30
28
  "List Listeners including resources owned by others",
31
29
  [{'method': 'GET', 'path': '/v2/lbaas/listeners'}]
32
30
  ),
33
31
  policy.DocumentedRuleDefault(
34
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LISTENER,
35
- action=constants.RBAC_POST),
32
+ f'{constants.RBAC_LISTENER}{constants.RBAC_POST}',
36
33
  constants.RULE_API_WRITE,
37
34
  "Create a Listener",
38
35
  [{'method': 'POST', 'path': '/v2/lbaas/listeners'}]
39
36
  ),
40
37
  policy.DocumentedRuleDefault(
41
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LISTENER,
42
- action=constants.RBAC_GET_ONE),
38
+ f'{constants.RBAC_LISTENER}{constants.RBAC_GET_ONE}',
43
39
  constants.RULE_API_READ,
44
40
  "Show Listener details",
45
41
  [{'method': 'GET',
46
42
  'path': '/v2/lbaas/listeners/{listener_id}'}]
47
43
  ),
48
44
  policy.DocumentedRuleDefault(
49
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LISTENER,
50
- action=constants.RBAC_PUT),
45
+ f'{constants.RBAC_LISTENER}{constants.RBAC_PUT}',
51
46
  constants.RULE_API_WRITE,
52
47
  "Update a Listener",
53
48
  [{'method': 'PUT',
54
49
  'path': '/v2/lbaas/listeners/{listener_id}'}]
55
50
  ),
56
51
  policy.DocumentedRuleDefault(
57
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LISTENER,
58
- action=constants.RBAC_DELETE),
52
+ f'{constants.RBAC_LISTENER}{constants.RBAC_DELETE}',
59
53
  constants.RULE_API_WRITE,
60
54
  "Remove a Listener",
61
55
  [{'method': 'DELETE',
62
56
  'path': '/v2/lbaas/listeners/{listener_id}'}]
63
57
  ),
64
58
  policy.DocumentedRuleDefault(
65
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LISTENER,
66
- action=constants.RBAC_GET_STATS),
59
+ f'{constants.RBAC_LISTENER}{constants.RBAC_GET_STATS}',
67
60
  constants.RULE_API_READ,
68
61
  "Show Listener statistics",
69
62
  [{'method': 'GET',
@@ -17,69 +17,60 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LOADBALANCER,
21
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_LOADBALANCER}{constants.RBAC_GET_ALL}',
22
21
  constants.RULE_API_READ,
23
22
  "List Load Balancers",
24
23
  [{'method': 'GET', 'path': '/v2/lbaas/loadbalancers'}]
25
24
  ),
26
25
  policy.DocumentedRuleDefault(
27
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LOADBALANCER,
28
- action=constants.RBAC_GET_ALL_GLOBAL),
26
+ f'{constants.RBAC_LOADBALANCER}{constants.RBAC_GET_ALL_GLOBAL}',
29
27
  constants.RULE_API_READ_GLOBAL,
30
28
  "List Load Balancers including resources owned by others",
31
29
  [{'method': 'GET', 'path': '/v2/lbaas/loadbalancers'}]
32
30
  ),
33
31
  policy.DocumentedRuleDefault(
34
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LOADBALANCER,
35
- action=constants.RBAC_POST),
32
+ f'{constants.RBAC_LOADBALANCER}{constants.RBAC_POST}',
36
33
  constants.RULE_API_WRITE,
37
34
  "Create a Load Balancer",
38
35
  [{'method': 'POST', 'path': '/v2/lbaas/loadbalancers'}]
39
36
  ),
40
37
  policy.DocumentedRuleDefault(
41
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LOADBALANCER,
42
- action=constants.RBAC_GET_ONE),
38
+ f'{constants.RBAC_LOADBALANCER}{constants.RBAC_GET_ONE}',
43
39
  constants.RULE_API_READ,
44
40
  "Show Load Balancer details",
45
41
  [{'method': 'GET',
46
42
  'path': '/v2/lbaas/loadbalancers/{loadbalancer_id}'}]
47
43
  ),
48
44
  policy.DocumentedRuleDefault(
49
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LOADBALANCER,
50
- action=constants.RBAC_PUT),
45
+ f'{constants.RBAC_LOADBALANCER}{constants.RBAC_PUT}',
51
46
  constants.RULE_API_WRITE,
52
47
  "Update a Load Balancer",
53
48
  [{'method': 'PUT',
54
49
  'path': '/v2/lbaas/loadbalancers/{loadbalancer_id}'}]
55
50
  ),
56
51
  policy.DocumentedRuleDefault(
57
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LOADBALANCER,
58
- action=constants.RBAC_DELETE),
52
+ f'{constants.RBAC_LOADBALANCER}{constants.RBAC_DELETE}',
59
53
  constants.RULE_API_WRITE,
60
54
  "Remove a Load Balancer",
61
55
  [{'method': 'DELETE',
62
56
  'path': '/v2/lbaas/loadbalancers/{loadbalancer_id}'}]
63
57
  ),
64
58
  policy.DocumentedRuleDefault(
65
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LOADBALANCER,
66
- action=constants.RBAC_GET_STATS),
59
+ f'{constants.RBAC_LOADBALANCER}{constants.RBAC_GET_STATS}',
67
60
  constants.RULE_API_READ,
68
61
  "Show Load Balancer statistics",
69
62
  [{'method': 'GET',
70
63
  'path': '/v2/lbaas/loadbalancers/{loadbalancer_id}/stats'}]
71
64
  ),
72
65
  policy.DocumentedRuleDefault(
73
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LOADBALANCER,
74
- action=constants.RBAC_GET_STATUS),
66
+ f'{constants.RBAC_LOADBALANCER}{constants.RBAC_GET_STATUS}',
75
67
  constants.RULE_API_READ,
76
68
  "Show Load Balancer status",
77
69
  [{'method': 'GET',
78
70
  'path': '/v2/lbaas/loadbalancers/{loadbalancer_id}/status'}]
79
71
  ),
80
72
  policy.DocumentedRuleDefault(
81
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_LOADBALANCER,
82
- action=constants.RBAC_PUT_FAILOVER),
73
+ f'{constants.RBAC_LOADBALANCER}{constants.RBAC_PUT_FAILOVER}',
83
74
  constants.RULE_API_ADMIN,
84
75
  "Failover a Load Balancer",
85
76
  [{'method': 'PUT',
@@ -17,38 +17,33 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_MEMBER,
21
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_MEMBER}{constants.RBAC_GET_ALL}',
22
21
  constants.RULE_API_READ,
23
22
  "List Members of a Pool",
24
23
  [{'method': 'GET', 'path': '/v2/lbaas/pools/{pool_id}/members'}]
25
24
  ),
26
25
  policy.DocumentedRuleDefault(
27
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_MEMBER,
28
- action=constants.RBAC_POST),
26
+ f'{constants.RBAC_MEMBER}{constants.RBAC_POST}',
29
27
  constants.RULE_API_WRITE,
30
28
  "Create a Member",
31
29
  [{'method': 'POST', 'path': '/v2/lbaas/pools/{pool_id}/members'}]
32
30
  ),
33
31
  policy.DocumentedRuleDefault(
34
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_MEMBER,
35
- action=constants.RBAC_GET_ONE),
32
+ f'{constants.RBAC_MEMBER}{constants.RBAC_GET_ONE}',
36
33
  constants.RULE_API_READ,
37
34
  "Show Member details",
38
35
  [{'method': 'GET',
39
36
  'path': '/v2/lbaas/pools/{pool_id}/members/{member_id}'}]
40
37
  ),
41
38
  policy.DocumentedRuleDefault(
42
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_MEMBER,
43
- action=constants.RBAC_PUT),
39
+ f'{constants.RBAC_MEMBER}{constants.RBAC_PUT}',
44
40
  constants.RULE_API_WRITE,
45
41
  "Update a Member",
46
42
  [{'method': 'PUT',
47
43
  'path': '/v2/lbaas/pools/{pool_id}/members/{member_id}'}]
48
44
  ),
49
45
  policy.DocumentedRuleDefault(
50
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_MEMBER,
51
- action=constants.RBAC_DELETE),
46
+ f'{constants.RBAC_MEMBER}{constants.RBAC_DELETE}',
52
47
  constants.RULE_API_WRITE,
53
48
  "Remove a Member",
54
49
  [{'method': 'DELETE',
octavia/policies/pool.py CHANGED
@@ -17,45 +17,39 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_POOL,
21
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_POOL}{constants.RBAC_GET_ALL}',
22
21
  constants.RULE_API_READ,
23
22
  "List Pools",
24
23
  [{'method': 'GET', 'path': '/v2/lbaas/pools'}]
25
24
  ),
26
25
  policy.DocumentedRuleDefault(
27
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_POOL,
28
- action=constants.RBAC_GET_ALL_GLOBAL),
26
+ f'{constants.RBAC_POOL}{constants.RBAC_GET_ALL_GLOBAL}',
29
27
  constants.RULE_API_READ_GLOBAL,
30
28
  "List Pools including resources owned by others",
31
29
  [{'method': 'GET', 'path': '/v2/lbaas/pools'}]
32
30
  ),
33
31
  policy.DocumentedRuleDefault(
34
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_POOL,
35
- action=constants.RBAC_POST),
32
+ f'{constants.RBAC_POOL}{constants.RBAC_POST}',
36
33
  constants.RULE_API_WRITE,
37
34
  "Create a Pool",
38
35
  [{'method': 'POST', 'path': '/v2/lbaas/pools'}]
39
36
  ),
40
37
  policy.DocumentedRuleDefault(
41
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_POOL,
42
- action=constants.RBAC_GET_ONE),
38
+ f'{constants.RBAC_POOL}{constants.RBAC_GET_ONE}',
43
39
  constants.RULE_API_READ,
44
40
  "Show Pool details",
45
41
  [{'method': 'GET',
46
42
  'path': '/v2/lbaas/pools/{pool_id}'}]
47
43
  ),
48
44
  policy.DocumentedRuleDefault(
49
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_POOL,
50
- action=constants.RBAC_PUT),
45
+ f'{constants.RBAC_POOL}{constants.RBAC_PUT}',
51
46
  constants.RULE_API_WRITE,
52
47
  "Update a Pool",
53
48
  [{'method': 'PUT',
54
49
  'path': '/v2/lbaas/pools/{pool_id}'}]
55
50
  ),
56
51
  policy.DocumentedRuleDefault(
57
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_POOL,
58
- action=constants.RBAC_DELETE),
52
+ f'{constants.RBAC_POOL}{constants.RBAC_DELETE}',
59
53
  constants.RULE_API_WRITE,
60
54
  "Remove a Pool",
61
55
  [{'method': 'DELETE',
@@ -17,8 +17,7 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_PROVIDER,
21
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_PROVIDER}{constants.RBAC_GET_ALL}',
22
21
  constants.RULE_API_READ,
23
22
  "List enabled providers",
24
23
  [{'method': 'GET', 'path': '/v2/lbaas/providers'}]
@@ -17,9 +17,7 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(
21
- rbac_obj=constants.RBAC_PROVIDER_AVAILABILITY_ZONE,
22
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_PROVIDER_AVAILABILITY_ZONE}{constants.RBAC_GET_ALL}',
23
21
  constants.RULE_API_ADMIN,
24
22
  "List the provider availability zone capabilities.",
25
23
  [{'method': 'GET',
@@ -17,8 +17,7 @@ from octavia.common import constants
17
17
 
18
18
  rules = [
19
19
  policy.DocumentedRuleDefault(
20
- '{rbac_obj}{action}'.format(rbac_obj=constants.RBAC_PROVIDER_FLAVOR,
21
- action=constants.RBAC_GET_ALL),
20
+ f'{constants.RBAC_PROVIDER_FLAVOR}{constants.RBAC_GET_ALL}',
22
21
  constants.RULE_API_ADMIN,
23
22
  "List the provider flavor capabilities.",
24
23
  [{'method': 'GET',