python-openstackclient 9.0.0__py3-none-any.whl → 10.1.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 (352) hide show
  1. openstackclient/__init__.py +2 -6
  2. openstackclient/api/api.py +41 -23
  3. openstackclient/api/compute_v2.py +44 -25
  4. openstackclient/api/object_store_v1.py +75 -97
  5. openstackclient/api/volume_v2.py +2 -1
  6. openstackclient/api/volume_v3.py +2 -1
  7. openstackclient/common/availability_zone.py +59 -43
  8. openstackclient/common/clientmanager.py +56 -29
  9. openstackclient/common/configuration.py +10 -3
  10. openstackclient/common/envvars.py +2 -2
  11. openstackclient/common/extension.py +14 -5
  12. openstackclient/common/limits.py +10 -5
  13. openstackclient/common/module.py +36 -34
  14. openstackclient/common/pagination.py +50 -6
  15. openstackclient/common/progressbar.py +7 -6
  16. openstackclient/common/project_cleanup.py +11 -6
  17. openstackclient/common/quota.py +105 -103
  18. openstackclient/common/versions.py +8 -2
  19. openstackclient/compute/client.py +7 -3
  20. openstackclient/compute/v2/agent.py +17 -10
  21. openstackclient/compute/v2/aggregate.py +36 -22
  22. openstackclient/compute/v2/console.py +14 -8
  23. openstackclient/compute/v2/console_connection.py +11 -3
  24. openstackclient/compute/v2/flavor.py +42 -22
  25. openstackclient/compute/v2/host.py +14 -6
  26. openstackclient/compute/v2/hypervisor.py +16 -5
  27. openstackclient/compute/v2/hypervisor_stats.py +10 -2
  28. openstackclient/compute/v2/keypair.py +35 -16
  29. openstackclient/compute/v2/server.py +268 -179
  30. openstackclient/compute/v2/server_backup.py +10 -4
  31. openstackclient/compute/v2/server_event.py +28 -12
  32. openstackclient/compute/v2/server_group.py +23 -11
  33. openstackclient/compute/v2/server_image.py +19 -10
  34. openstackclient/compute/v2/server_migration.py +27 -10
  35. openstackclient/compute/v2/server_share.py +274 -0
  36. openstackclient/compute/v2/server_volume.py +13 -5
  37. openstackclient/compute/v2/service.py +17 -8
  38. openstackclient/compute/v2/usage.py +28 -23
  39. openstackclient/identity/client.py +8 -3
  40. openstackclient/identity/common.py +82 -47
  41. openstackclient/identity/v2_0/catalog.py +14 -7
  42. openstackclient/identity/v2_0/ec2creds.py +21 -10
  43. openstackclient/identity/v2_0/endpoint.py +23 -11
  44. openstackclient/identity/v2_0/project.py +25 -14
  45. openstackclient/identity/v2_0/role.py +28 -14
  46. openstackclient/identity/v2_0/role_assignment.py +9 -3
  47. openstackclient/identity/v2_0/service.py +23 -11
  48. openstackclient/identity/v2_0/token.py +12 -5
  49. openstackclient/identity/v2_0/user.py +26 -15
  50. openstackclient/identity/v3/access_rule.py +32 -12
  51. openstackclient/identity/v3/application_credential.py +66 -24
  52. openstackclient/identity/v3/catalog.py +14 -7
  53. openstackclient/identity/v3/consumer.py +22 -11
  54. openstackclient/identity/v3/credential.py +39 -17
  55. openstackclient/identity/v3/domain.py +40 -19
  56. openstackclient/identity/v3/ec2creds.py +25 -12
  57. openstackclient/identity/v3/endpoint.py +98 -64
  58. openstackclient/identity/v3/endpoint_group.py +28 -17
  59. openstackclient/identity/v3/federation_protocol.py +44 -20
  60. openstackclient/identity/v3/group.py +64 -40
  61. openstackclient/identity/v3/identity_provider.py +95 -57
  62. openstackclient/identity/v3/implied_role.py +21 -9
  63. openstackclient/identity/v3/limit.py +42 -17
  64. openstackclient/identity/v3/mapping.py +58 -28
  65. openstackclient/identity/v3/policy.py +23 -12
  66. openstackclient/identity/v3/project.py +59 -26
  67. openstackclient/identity/v3/region.py +39 -17
  68. openstackclient/identity/v3/registered_limit.py +41 -16
  69. openstackclient/identity/v3/role.py +62 -31
  70. openstackclient/identity/v3/role_assignment.py +25 -7
  71. openstackclient/identity/v3/service.py +39 -17
  72. openstackclient/identity/v3/service_provider.py +40 -16
  73. openstackclient/identity/v3/tag.py +23 -6
  74. openstackclient/identity/v3/token.py +30 -14
  75. openstackclient/identity/v3/trust.py +39 -18
  76. openstackclient/identity/v3/unscoped_saml.py +10 -2
  77. openstackclient/identity/v3/user.py +86 -36
  78. openstackclient/image/client.py +7 -3
  79. openstackclient/image/v1/image.py +33 -26
  80. openstackclient/image/v2/cache.py +16 -11
  81. openstackclient/image/v2/image.py +88 -56
  82. openstackclient/image/v2/info.py +7 -1
  83. openstackclient/image/v2/metadef_namespaces.py +117 -20
  84. openstackclient/image/v2/metadef_objects.py +32 -19
  85. openstackclient/image/v2/metadef_properties.py +30 -16
  86. openstackclient/image/v2/metadef_resource_type_association.py +14 -7
  87. openstackclient/image/v2/metadef_resource_types.py +7 -1
  88. openstackclient/image/v2/task.py +25 -27
  89. openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +7 -192
  90. openstackclient/network/client.py +7 -2
  91. openstackclient/network/common.py +16 -241
  92. openstackclient/network/utils.py +27 -54
  93. openstackclient/network/v2/address_group.py +39 -16
  94. openstackclient/network/v2/address_scope.py +36 -20
  95. openstackclient/network/v2/bgpvpn/bgpvpn.py +477 -0
  96. openstackclient/network/v2/bgpvpn/constants.py +30 -0
  97. openstackclient/network/v2/bgpvpn/network_association.py +226 -0
  98. openstackclient/network/v2/bgpvpn/port_association.py +504 -0
  99. openstackclient/network/v2/bgpvpn/router_association.py +301 -0
  100. openstackclient/network/v2/default_security_group_rule.py +31 -14
  101. openstackclient/network/v2/floating_ip.py +121 -162
  102. openstackclient/network/v2/floating_ip_port_forwarding.py +41 -19
  103. openstackclient/network/v2/fwaas/__init__.py +0 -0
  104. openstackclient/network/v2/fwaas/group.py +499 -0
  105. openstackclient/network/v2/fwaas/policy.py +518 -0
  106. openstackclient/network/v2/fwaas/rule.py +610 -0
  107. openstackclient/network/v2/ip_availability.py +25 -8
  108. openstackclient/network/v2/l3_conntrack_helper.py +35 -13
  109. openstackclient/network/v2/local_ip.py +27 -13
  110. openstackclient/network/v2/local_ip_association.py +17 -7
  111. openstackclient/network/v2/ndp_proxy.py +23 -11
  112. openstackclient/network/v2/network.py +213 -213
  113. openstackclient/network/v2/network_agent.py +77 -34
  114. openstackclient/network/v2/network_auto_allocated_topology.py +27 -15
  115. openstackclient/network/v2/network_flavor.py +45 -21
  116. openstackclient/network/v2/network_flavor_profile.py +42 -17
  117. openstackclient/network/v2/network_meter.py +39 -15
  118. openstackclient/network/v2/network_meter_rule.py +40 -12
  119. openstackclient/network/v2/network_qos_policy.py +39 -21
  120. openstackclient/network/v2/network_qos_rule.py +48 -18
  121. openstackclient/network/v2/network_qos_rule_type.py +28 -9
  122. openstackclient/network/v2/network_rbac.py +34 -16
  123. openstackclient/network/v2/network_segment.py +32 -11
  124. openstackclient/network/v2/network_segment_range.py +70 -31
  125. openstackclient/network/v2/network_service_provider.py +7 -1
  126. openstackclient/network/v2/network_trunk.py +41 -22
  127. openstackclient/network/v2/port.py +141 -40
  128. openstackclient/network/v2/router.py +101 -67
  129. openstackclient/network/v2/security_group.py +97 -198
  130. openstackclient/network/v2/security_group_rule.py +115 -282
  131. openstackclient/network/v2/subnet.py +63 -34
  132. openstackclient/network/v2/subnet_pool.py +42 -24
  133. openstackclient/network/v2/taas/tap_flow.py +35 -14
  134. openstackclient/network/v2/taas/tap_mirror.py +28 -14
  135. openstackclient/network/v2/taas/tap_service.py +26 -12
  136. openstackclient/object/client.py +7 -2
  137. openstackclient/object/v1/account.py +13 -6
  138. openstackclient/object/v1/container.py +28 -16
  139. openstackclient/object/v1/object.py +28 -16
  140. openstackclient/py.typed +0 -0
  141. openstackclient/shell.py +46 -10
  142. openstackclient/tests/functional/base.py +55 -20
  143. openstackclient/tests/functional/common/test_extension.py +4 -0
  144. openstackclient/tests/functional/common/test_quota.py +3 -1
  145. openstackclient/tests/functional/compute/v2/common.py +14 -13
  146. openstackclient/tests/functional/compute/v2/test_flavor.py +3 -1
  147. openstackclient/tests/functional/compute/v2/test_server.py +3 -0
  148. openstackclient/tests/functional/identity/v2/common.py +10 -6
  149. openstackclient/tests/functional/identity/v2/test_role.py +4 -4
  150. openstackclient/tests/functional/identity/v3/common.py +59 -19
  151. openstackclient/tests/functional/identity/v3/test_application_credential.py +1 -1
  152. openstackclient/tests/functional/identity/v3/test_group.py +20 -20
  153. openstackclient/tests/functional/identity/v3/test_idp.py +3 -1
  154. openstackclient/tests/functional/identity/v3/test_mapping.py +81 -0
  155. openstackclient/tests/functional/identity/v3/test_project.py +10 -10
  156. openstackclient/tests/functional/identity/v3/test_role.py +18 -18
  157. openstackclient/tests/functional/identity/v3/test_role_assignment.py +12 -12
  158. openstackclient/tests/functional/identity/v3/test_user.py +8 -8
  159. openstackclient/tests/functional/image/base.py +1 -6
  160. openstackclient/tests/functional/network/v2/common.py +5 -2
  161. openstackclient/tests/functional/network/v2/test_floating_ip.py +10 -4
  162. openstackclient/tests/functional/network/v2/test_ip_availability.py +4 -0
  163. openstackclient/tests/functional/network/v2/test_network_meter_rule.py +3 -2
  164. openstackclient/tests/functional/network/v2/test_network_segment.py +5 -0
  165. openstackclient/tests/functional/network/v2/test_subnet.py +13 -9
  166. openstackclient/tests/functional/object/v1/common.py +4 -0
  167. openstackclient/tests/functional/volume/v2/common.py +4 -0
  168. openstackclient/tests/functional/volume/v2/test_volume_snapshot.py +27 -11
  169. openstackclient/tests/functional/volume/v2/test_volume_type.py +2 -2
  170. openstackclient/tests/functional/volume/v3/common.py +4 -0
  171. openstackclient/tests/functional/volume/v3/test_volume_group.py +163 -0
  172. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +11 -7
  173. openstackclient/tests/functional/volume/v3/test_volume_type.py +2 -2
  174. openstackclient/tests/unit/common/test_availability_zone.py +35 -49
  175. openstackclient/tests/unit/common/test_extension.py +2 -2
  176. openstackclient/tests/unit/common/test_limits.py +1 -1
  177. openstackclient/tests/unit/common/test_module.py +82 -44
  178. openstackclient/tests/unit/common/test_project_cleanup.py +3 -1
  179. openstackclient/tests/unit/common/test_quota.py +15 -26
  180. openstackclient/tests/unit/compute/v2/fakes.py +26 -57
  181. openstackclient/tests/unit/compute/v2/test_agent.py +4 -4
  182. openstackclient/tests/unit/compute/v2/test_aggregate.py +1 -1
  183. openstackclient/tests/unit/compute/v2/test_console.py +2 -2
  184. openstackclient/tests/unit/compute/v2/test_console_connection.py +1 -1
  185. openstackclient/tests/unit/compute/v2/test_flavor.py +29 -3
  186. openstackclient/tests/unit/compute/v2/test_host.py +3 -3
  187. openstackclient/tests/unit/compute/v2/test_hypervisor.py +2 -2
  188. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -1
  189. openstackclient/tests/unit/compute/v2/test_keypair.py +7 -7
  190. openstackclient/tests/unit/compute/v2/test_server.py +26 -111
  191. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
  192. openstackclient/tests/unit/compute/v2/test_server_event.py +2 -2
  193. openstackclient/tests/unit/compute/v2/test_server_group.py +1 -1
  194. openstackclient/tests/unit/compute/v2/test_server_image.py +1 -1
  195. openstackclient/tests/unit/compute/v2/test_server_migration.py +4 -4
  196. openstackclient/tests/unit/compute/v2/test_server_share.py +287 -0
  197. openstackclient/tests/unit/compute/v2/test_server_volume.py +2 -2
  198. openstackclient/tests/unit/compute/v2/test_service.py +3 -3
  199. openstackclient/tests/unit/compute/v2/test_usage.py +1 -1
  200. openstackclient/tests/unit/identity/v2_0/fakes.py +3 -7
  201. openstackclient/tests/unit/identity/v2_0/test_endpoint.py +1 -1
  202. openstackclient/tests/unit/identity/v2_0/test_project.py +1 -1
  203. openstackclient/tests/unit/identity/v2_0/test_role.py +1 -1
  204. openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +1 -1
  205. openstackclient/tests/unit/identity/v2_0/test_service.py +1 -1
  206. openstackclient/tests/unit/identity/v2_0/test_token.py +2 -2
  207. openstackclient/tests/unit/identity/v2_0/test_user.py +1 -1
  208. openstackclient/tests/unit/identity/v3/fakes.py +8 -38
  209. openstackclient/tests/unit/identity/v3/test_access_rule.py +3 -3
  210. openstackclient/tests/unit/identity/v3/test_application_credential.py +4 -4
  211. openstackclient/tests/unit/identity/v3/test_credential.py +5 -5
  212. openstackclient/tests/unit/identity/v3/test_domain.py +5 -5
  213. openstackclient/tests/unit/identity/v3/test_endpoint.py +6 -6
  214. openstackclient/tests/unit/identity/v3/test_endpoint_group.py +1 -1
  215. openstackclient/tests/unit/identity/v3/test_group.py +12 -22
  216. openstackclient/tests/unit/identity/v3/test_identity_provider.py +303 -299
  217. openstackclient/tests/unit/identity/v3/test_implied_role.py +1 -1
  218. openstackclient/tests/unit/identity/v3/test_limit.py +5 -5
  219. openstackclient/tests/unit/identity/v3/test_mappings.py +163 -79
  220. openstackclient/tests/unit/identity/v3/test_project.py +28 -5
  221. openstackclient/tests/unit/identity/v3/test_protocol.py +3 -3
  222. openstackclient/tests/unit/identity/v3/test_region.py +5 -5
  223. openstackclient/tests/unit/identity/v3/test_registered_limit.py +5 -5
  224. openstackclient/tests/unit/identity/v3/test_role.py +8 -8
  225. openstackclient/tests/unit/identity/v3/test_role_assignment.py +1 -1
  226. openstackclient/tests/unit/identity/v3/test_service.py +5 -5
  227. openstackclient/tests/unit/identity/v3/test_token.py +2 -2
  228. openstackclient/tests/unit/identity/v3/test_trust.py +4 -4
  229. openstackclient/tests/unit/identity/v3/test_user.py +77 -10
  230. openstackclient/tests/unit/image/v2/test_image.py +11 -11
  231. openstackclient/tests/unit/image/v2/test_metadef_namespaces.py +105 -6
  232. openstackclient/tests/unit/network/test_common.py +0 -155
  233. openstackclient/tests/unit/network/v2/bgpvpn/__init__.py +0 -0
  234. openstackclient/tests/unit/network/v2/bgpvpn/fakes.py +179 -0
  235. openstackclient/tests/unit/network/v2/bgpvpn/test_bgpvpn.py +584 -0
  236. openstackclient/tests/unit/network/v2/bgpvpn/test_network_association.py +285 -0
  237. openstackclient/tests/unit/network/v2/bgpvpn/test_port_association.py +384 -0
  238. openstackclient/tests/unit/network/v2/bgpvpn/test_router_association.py +297 -0
  239. openstackclient/tests/unit/network/v2/fakes.py +5 -77
  240. openstackclient/tests/unit/network/v2/fwaas/__init__.py +0 -0
  241. openstackclient/tests/unit/network/v2/fwaas/test_group.py +923 -0
  242. openstackclient/tests/unit/network/v2/fwaas/test_policy.py +869 -0
  243. openstackclient/tests/unit/network/v2/fwaas/test_rule.py +1005 -0
  244. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_flow.py → test_tap_flow.py} +18 -25
  245. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_mirror.py → test_tap_mirror.py} +19 -29
  246. openstackclient/tests/unit/network/v2/taas/{test_osc_tap_service.py → test_tap_service.py} +19 -29
  247. openstackclient/tests/unit/network/v2/test_address_group.py +26 -2
  248. openstackclient/tests/unit/network/v2/test_address_scope.py +24 -0
  249. openstackclient/tests/unit/network/v2/{test_floating_ip_network.py → test_floating_ip.py} +27 -2
  250. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +37 -13
  251. openstackclient/tests/unit/network/v2/test_ip_availability.py +25 -0
  252. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +29 -3
  253. openstackclient/tests/unit/network/v2/test_network.py +74 -12
  254. openstackclient/tests/unit/network/v2/test_network_agent.py +58 -5
  255. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +3 -3
  256. openstackclient/tests/unit/network/v2/test_network_flavor.py +26 -2
  257. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +24 -0
  258. openstackclient/tests/unit/network/v2/test_network_meter.py +24 -0
  259. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +25 -1
  260. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +2 -2
  261. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +24 -0
  262. openstackclient/tests/unit/network/v2/test_network_rbac.py +25 -1
  263. openstackclient/tests/unit/network/v2/test_network_segment.py +25 -1
  264. openstackclient/tests/unit/network/v2/test_network_segment_range.py +31 -10
  265. openstackclient/tests/unit/network/v2/test_network_trunk.py +1 -1
  266. openstackclient/tests/unit/network/v2/test_port.py +166 -0
  267. openstackclient/tests/unit/network/v2/test_router.py +36 -16
  268. openstackclient/tests/unit/network/v2/{test_security_group_network.py → test_security_group.py} +11 -8
  269. openstackclient/tests/unit/network/v2/{test_security_group_rule_network.py → test_security_group_rule.py} +28 -37
  270. openstackclient/tests/unit/network/v2/test_subnet.py +30 -5
  271. openstackclient/tests/unit/network/v2/test_subnet_pool.py +26 -1
  272. openstackclient/tests/unit/object/v1/fakes.py +8 -7
  273. openstackclient/tests/unit/object/v1/test_container.py +65 -101
  274. openstackclient/tests/unit/object/v1/test_container_all.py +8 -1
  275. openstackclient/tests/unit/object/v1/test_object.py +44 -84
  276. openstackclient/tests/unit/object/v1/test_object_all.py +8 -1
  277. openstackclient/tests/unit/test_hacking.py +108 -0
  278. openstackclient/tests/unit/volume/v2/fakes.py +21 -140
  279. openstackclient/tests/unit/volume/v2/test_volume_backup.py +6 -14
  280. openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +8 -1
  281. openstackclient/tests/unit/volume/v2/test_volume_type.py +2 -4
  282. openstackclient/tests/unit/volume/v3/fakes.py +205 -100
  283. openstackclient/tests/unit/volume/v3/test_backup_record.py +114 -0
  284. openstackclient/tests/unit/volume/v3/test_consistency_group.py +720 -0
  285. openstackclient/tests/unit/volume/v3/test_consistency_group_snapshot.py +354 -0
  286. openstackclient/tests/unit/volume/v3/test_qos_specs.py +455 -0
  287. openstackclient/tests/unit/volume/v3/test_volume.py +60 -3
  288. openstackclient/tests/unit/volume/v3/test_volume_attachment.py +3 -1
  289. openstackclient/tests/unit/volume/v3/test_volume_backend.py +158 -0
  290. openstackclient/tests/unit/volume/v3/test_volume_backup.py +6 -14
  291. openstackclient/tests/unit/volume/v3/test_volume_group_type.py +65 -0
  292. openstackclient/tests/unit/volume/v3/test_volume_host.py +115 -0
  293. openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +61 -1
  294. openstackclient/tests/unit/volume/v3/test_volume_type.py +2 -4
  295. openstackclient/volume/client.py +7 -3
  296. openstackclient/volume/v2/backup_record.py +15 -6
  297. openstackclient/volume/v2/consistency_group.py +29 -17
  298. openstackclient/volume/v2/consistency_group_snapshot.py +25 -10
  299. openstackclient/volume/v2/qos_specs.py +28 -17
  300. openstackclient/volume/v2/service.py +17 -6
  301. openstackclient/volume/v2/volume.py +60 -30
  302. openstackclient/volume/v2/volume_backend.py +19 -6
  303. openstackclient/volume/v2/volume_backup.py +48 -23
  304. openstackclient/volume/v2/volume_host.py +6 -4
  305. openstackclient/volume/v2/volume_snapshot.py +49 -24
  306. openstackclient/volume/v2/volume_transfer_request.py +31 -13
  307. openstackclient/volume/v2/volume_type.py +43 -24
  308. openstackclient/volume/v3/backup_record.py +94 -0
  309. openstackclient/volume/v3/block_storage_cleanup.py +11 -3
  310. openstackclient/volume/v3/block_storage_cluster.py +19 -7
  311. openstackclient/volume/v3/block_storage_log_level.py +15 -6
  312. openstackclient/volume/v3/block_storage_manage.py +10 -4
  313. openstackclient/volume/v3/block_storage_resource_filter.py +17 -5
  314. openstackclient/volume/v3/consistency_group.py +400 -0
  315. openstackclient/volume/v3/consistency_group_snapshot.py +225 -0
  316. openstackclient/volume/v3/qos_specs.py +389 -0
  317. openstackclient/volume/v3/service.py +16 -6
  318. openstackclient/volume/v3/volume.py +92 -40
  319. openstackclient/volume/v3/volume_attachment.py +47 -21
  320. openstackclient/volume/v3/volume_backend.py +130 -0
  321. openstackclient/volume/v3/volume_backup.py +55 -27
  322. openstackclient/volume/v3/volume_group.py +23 -13
  323. openstackclient/volume/v3/volume_group_snapshot.py +34 -17
  324. openstackclient/volume/v3/volume_group_type.py +27 -14
  325. openstackclient/volume/v3/volume_host.py +74 -0
  326. openstackclient/volume/v3/volume_message.py +18 -8
  327. openstackclient/volume/v3/volume_snapshot.py +70 -32
  328. openstackclient/volume/v3/volume_transfer_request.py +31 -13
  329. openstackclient/volume/v3/volume_type.py +42 -24
  330. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/METADATA +7 -8
  331. python_openstackclient-10.1.0.dist-info/RECORD +524 -0
  332. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/WHEEL +1 -1
  333. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/entry_points.txt +77 -25
  334. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/AUTHORS +9 -0
  335. python_openstackclient-10.1.0.dist-info/pbr.json +1 -0
  336. openstackclient/api/image_v1.py +0 -69
  337. openstackclient/api/image_v2.py +0 -79
  338. openstackclient/network/v2/floating_ip_pool.py +0 -38
  339. openstackclient/tests/functional/image/v1/test_image.py +0 -97
  340. openstackclient/tests/unit/api/test_image_v1.py +0 -96
  341. openstackclient/tests/unit/api/test_image_v2.py +0 -96
  342. openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +0 -248
  343. openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +0 -49
  344. openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +0 -39
  345. openstackclient/tests/unit/network/v2/test_network_compute.py +0 -404
  346. openstackclient/tests/unit/network/v2/test_security_group_compute.py +0 -392
  347. openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +0 -555
  348. python_openstackclient-9.0.0.dist-info/RECORD +0 -499
  349. python_openstackclient-9.0.0.dist-info/pbr.json +0 -1
  350. /openstackclient/{tests/functional/image/v1 → network/v2/bgpvpn}/__init__.py +0 -0
  351. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/LICENSE +0 -0
  352. {python_openstackclient-9.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,297 @@
1
+ # Copyright (c) 2018 Orange SA.
2
+ # All Rights Reserved.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may
5
+ # not use this file except in compliance with the License. You may obtain
6
+ # a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations
14
+ # under the License.
15
+ #
16
+
17
+ import operator
18
+ from unittest import mock
19
+
20
+ from osc_lib import utils as osc_utils
21
+ from osc_lib.utils import columns as column_util
22
+
23
+ from openstackclient.network.v2.bgpvpn import router_association
24
+ from openstackclient.tests.unit.network.v2.bgpvpn import fakes
25
+ from openstackclient.tests.unit import utils
26
+
27
+
28
+ columns_short = tuple(
29
+ col
30
+ for col, _, listing_mode in router_association._attr_map
31
+ if listing_mode in (column_util.LIST_BOTH, column_util.LIST_SHORT_ONLY)
32
+ )
33
+ columns_long = tuple(
34
+ col
35
+ for col, _, listing_mode in router_association._attr_map
36
+ if listing_mode in (column_util.LIST_BOTH, column_util.LIST_LONG_ONLY)
37
+ )
38
+ headers_short = tuple(
39
+ head
40
+ for _, head, listing_mode in router_association._attr_map
41
+ if listing_mode in (column_util.LIST_BOTH, column_util.LIST_SHORT_ONLY)
42
+ )
43
+ headers_long = tuple(
44
+ head
45
+ for _, head, listing_mode in router_association._attr_map
46
+ if listing_mode in (column_util.LIST_BOTH, column_util.LIST_LONG_ONLY)
47
+ )
48
+ sorted_attr_map = sorted(
49
+ router_association._attr_map, key=operator.itemgetter(1)
50
+ )
51
+ sorted_columns = tuple(col for col, _, _ in sorted_attr_map)
52
+ sorted_headers = tuple(head for _, head, _ in sorted_attr_map)
53
+
54
+
55
+ def _get_data(attrs, columns=sorted_columns):
56
+ return osc_utils.get_dict_properties(
57
+ attrs, columns, formatters=router_association._formatters
58
+ )
59
+
60
+
61
+ class TestCreateRouterAssoc(fakes.TestNeutronClientBgpvpn):
62
+ def setUp(self):
63
+ super().setUp()
64
+ self.cmd = router_association.CreateBgpvpnRouterAssoc(self.app, None)
65
+ self.fake_bgpvpn = fakes.create_one_bgpvpn()
66
+ self.fake_router = fakes.create_one_resource()
67
+ self.network_client.find_bgpvpn.side_effect = (
68
+ lambda name_or_id, **kwargs: {'id': name_or_id}
69
+ )
70
+ self.network_client.find_router.side_effect = (
71
+ lambda name_or_id, **kwargs: {'id': name_or_id}
72
+ )
73
+ self.fake_project = mock.Mock(id='fake_project_id')
74
+ self.identity_sdk_client.find_project = mock.Mock(
75
+ return_value=self.fake_project
76
+ )
77
+
78
+ def _build_args(self, param=None):
79
+ arglist_base = [
80
+ self.fake_bgpvpn['id'],
81
+ self.fake_router['id'],
82
+ '--project',
83
+ self.fake_bgpvpn['project_id'],
84
+ ]
85
+ if param is not None:
86
+ if isinstance(param, list):
87
+ arglist_base.extend(param)
88
+ else:
89
+ arglist_base.append(param)
90
+ return arglist_base
91
+
92
+ def _build_verify_list(self, param=None):
93
+ verifylist = [
94
+ ('bgpvpn', self.fake_bgpvpn['id']),
95
+ ('resource', self.fake_router['id']),
96
+ ('project', self.fake_bgpvpn['project_id']),
97
+ ]
98
+ if param is not None:
99
+ verifylist.append(param)
100
+ return verifylist
101
+
102
+ def _exec_create_router_association(
103
+ self,
104
+ fake_assoc,
105
+ arglist,
106
+ verifylist,
107
+ ):
108
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
109
+
110
+ cols, data = self.cmd.take_action(parsed_args)
111
+
112
+ fake_assoc_call = {
113
+ 'router_id': self.fake_router['id'],
114
+ 'project_id': 'fake_project_id',
115
+ }
116
+ if verifylist:
117
+ for key, value in verifylist:
118
+ if (
119
+ key
120
+ not in (
121
+ 'bgpvpn',
122
+ 'resource',
123
+ 'project',
124
+ )
125
+ and value not in fake_assoc_call.values()
126
+ ):
127
+ fake_assoc_call[key] = value
128
+ self.network_client.create_bgpvpn_router_association.assert_called_once_with(
129
+ self.fake_bgpvpn['id'], **fake_assoc_call
130
+ )
131
+ return cols, data
132
+
133
+ def test_create_router_association(self):
134
+ fake_assoc = fakes.create_one_router_association()
135
+
136
+ self.network_client.create_bgpvpn_router_association.return_value = (
137
+ fake_assoc
138
+ )
139
+
140
+ arglist = self._build_args()
141
+ # advertise_extra_routes will be False since none
142
+ # of the mutually exclusive args present
143
+ verifylist = self._build_verify_list(('advertise_extra_routes', False))
144
+
145
+ self._exec_create_router_association(fake_assoc, arglist, verifylist)
146
+
147
+ def test_create_router_association_advertise(self):
148
+ fake_assoc = fakes.create_one_router_association(
149
+ {'advertise_extra_routes': True}
150
+ )
151
+
152
+ self.network_client.create_bgpvpn_router_association.return_value = (
153
+ fake_assoc
154
+ )
155
+
156
+ arglist = self._build_args('--advertise_extra_routes')
157
+ verifylist = self._build_verify_list(('advertise_extra_routes', True))
158
+
159
+ cols, data = self._exec_create_router_association(
160
+ fake_assoc, arglist, verifylist
161
+ )
162
+ self.assertEqual(sorted(sorted_columns), sorted(cols))
163
+ self.assertEqual(_get_data(fake_assoc, cols), data)
164
+
165
+ def test_create_router_association_no_advertise(self):
166
+ fake_assoc = fakes.create_one_router_association(
167
+ {'advertise_extra_routes': False}
168
+ )
169
+
170
+ self.network_client.create_bgpvpn_router_association.return_value = (
171
+ fake_assoc
172
+ )
173
+
174
+ arglist = self._build_args('--no-advertise_extra_routes')
175
+ verifylist = self._build_verify_list(('advertise_extra_routes', False))
176
+
177
+ cols, data = self._exec_create_router_association(
178
+ fake_assoc, arglist, verifylist
179
+ )
180
+ self.assertEqual(sorted(sorted_columns), sorted(cols))
181
+ self.assertEqual(_get_data(fake_assoc, cols), data)
182
+
183
+ def test_create_router_association_advertise_fault(self):
184
+ arglist = self._build_args(
185
+ ['--advertise_extra_routes', '--no-advertise_extra_routes']
186
+ )
187
+
188
+ try:
189
+ self._exec_create_router_association(None, arglist, None)
190
+ except utils.ParserException as e:
191
+ self.assertIn('Argument parse failed', format(e))
192
+
193
+ def test_router_association_unknown_arg(self):
194
+ arglist = self._build_args('--unknown arg')
195
+
196
+ try:
197
+ self._exec_create_router_association(None, arglist, None)
198
+ except utils.ParserException as e:
199
+ self.assertIn('Argument parse failed', format(e))
200
+
201
+
202
+ class TestSetRouterAssoc(fakes.TestNeutronClientBgpvpn):
203
+ def setUp(self):
204
+ super().setUp()
205
+ self.cmd = router_association.SetBgpvpnRouterAssoc(self.app, None)
206
+ self.fake_bgpvpn = fakes.create_one_bgpvpn()
207
+ self.fake_router = fakes.create_one_resource()
208
+ self.network_client.find_bgpvpn.side_effect = (
209
+ lambda name_or_id, **kwargs: {'id': name_or_id}
210
+ )
211
+
212
+ def _build_args(self, fake_assoc, param=None):
213
+ arglist_base = [fake_assoc['id'], self.fake_bgpvpn['id']]
214
+ if param is not None:
215
+ if isinstance(param, list):
216
+ arglist_base.extend(param)
217
+ else:
218
+ arglist_base.append(param)
219
+ return arglist_base
220
+
221
+ def test_set_router_association_no_advertise(self):
222
+ fake_assoc = fakes.create_one_router_association(
223
+ {'advertise_extra_routes': True}
224
+ )
225
+
226
+ arglist = self._build_args(fake_assoc, '--no-advertise_extra_routes')
227
+ verifylist = [
228
+ ('resource_association_id', fake_assoc['id']),
229
+ ('bgpvpn', self.fake_bgpvpn['id']),
230
+ ]
231
+
232
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
233
+ result = self.cmd.take_action(parsed_args)
234
+
235
+ self.network_client.update_bgpvpn_router_association.assert_called_once_with(
236
+ self.fake_bgpvpn['id'],
237
+ fake_assoc['id'],
238
+ **{'advertise_extra_routes': False},
239
+ )
240
+ self.assertIsNone(result)
241
+
242
+ def test_set_router_association_advertise(self):
243
+ fake_assoc = fakes.create_one_router_association(
244
+ {'advertise_extra_routes': False}
245
+ )
246
+
247
+ arglist = self._build_args(fake_assoc, '--advertise_extra_routes')
248
+ verifylist = [
249
+ ('resource_association_id', fake_assoc['id']),
250
+ ('bgpvpn', self.fake_bgpvpn['id']),
251
+ ]
252
+
253
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
254
+ result = self.cmd.take_action(parsed_args)
255
+
256
+ self.network_client.update_bgpvpn_router_association.assert_called_once_with(
257
+ self.fake_bgpvpn['id'],
258
+ fake_assoc['id'],
259
+ **{'advertise_extra_routes': True},
260
+ )
261
+ self.assertIsNone(result)
262
+
263
+
264
+ class TestShowRouterAssoc(fakes.TestNeutronClientBgpvpn):
265
+ def setUp(self):
266
+ super().setUp()
267
+ self.cmd = router_association.ShowBgpvpnRouterAssoc(self.app, None)
268
+ self.network_client.find_bgpvpn.side_effect = (
269
+ lambda name_or_id, **kwargs: {'id': name_or_id}
270
+ )
271
+
272
+ def test_show_router_association(self):
273
+ fake_bgpvpn = fakes.create_one_bgpvpn()
274
+ fake_assoc = fakes.create_one_router_association(
275
+ {'advertise_extra_routes': True}
276
+ )
277
+ self.network_client.get_bgpvpn_router_association.return_value = (
278
+ fake_assoc
279
+ )
280
+ arglist = [
281
+ fake_assoc['id'],
282
+ fake_bgpvpn['id'],
283
+ ]
284
+ verifylist = [
285
+ ('resource_association_id', fake_assoc['id']),
286
+ ('bgpvpn', fake_bgpvpn['id']),
287
+ ]
288
+
289
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
290
+
291
+ cols, data = self.cmd.take_action(parsed_args)
292
+
293
+ self.network_client.get_bgpvpn_router_association.assert_called_once_with(
294
+ fake_bgpvpn['id'], fake_assoc['id']
295
+ )
296
+ self.assertEqual(sorted(sorted_columns), sorted(cols))
297
+ self.assertEqual(data, _get_data(fake_assoc, cols))
@@ -58,6 +58,8 @@ from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
58
58
  from openstackclient.tests.unit import utils
59
59
 
60
60
 
61
+ PVLAN_TYPE_COMMUNITY = 'community'
62
+ PVLAN_COMMUNITY_NAME = 'community_1'
61
63
  RULE_TYPE_BANDWIDTH_LIMIT = 'bandwidth-limit'
62
64
  RULE_TYPE_DSCP_MARKING = 'dscp-marking'
63
65
  RULE_TYPE_MINIMUM_BANDWIDTH = 'minimum-bandwidth'
@@ -951,6 +953,7 @@ def create_one_network(attrs=None):
951
953
  'provider:network_type': 'vlan',
952
954
  'provider:physical_network': 'physnet1',
953
955
  'provider:segmentation_id': "400",
956
+ 'pvlan': "False",
954
957
  'router:external': True,
955
958
  'availability_zones': [],
956
959
  'availability_zone_hints': [],
@@ -1211,6 +1214,8 @@ def create_one_port(attrs=None):
1211
1214
  'security_group_ids': [],
1212
1215
  'status': 'ACTIVE',
1213
1216
  'project_id': 'project-id-' + uuid.uuid4().hex,
1217
+ 'pvlan_type': PVLAN_TYPE_COMMUNITY,
1218
+ 'pvlan_community': PVLAN_COMMUNITY_NAME,
1214
1219
  'qos_network_policy_id': 'qos-policy-id-' + uuid.uuid4().hex,
1215
1220
  'qos_policy_id': 'qos-policy-id-' + uuid.uuid4().hex,
1216
1221
  'tags': [],
@@ -1309,25 +1314,6 @@ def create_network_agents(attrs=None, count=2):
1309
1314
  return agents
1310
1315
 
1311
1316
 
1312
- def get_network_agents(agents=None, count=2):
1313
- """Get an iterable Mock object with a list of faked network agents.
1314
-
1315
- If network agents list is provided, then initialize the Mock object
1316
- with the list. Otherwise create one.
1317
-
1318
- :param List agents:
1319
- A list of Agent objects faking network agents
1320
- :param int count:
1321
- The number of network agents to fake
1322
- :return:
1323
- An iterable Mock object with side_effect set to a list of faked
1324
- network agents
1325
- """
1326
- if agents is None:
1327
- agents = create_network_agents(count)
1328
- return mock.Mock(side_effect=agents)
1329
-
1330
-
1331
1317
  def create_one_network_rbac(attrs=None):
1332
1318
  """Create a fake network rbac
1333
1319
 
@@ -1962,26 +1948,6 @@ def create_local_ip_associations(attrs=None, count=2):
1962
1948
  return local_ip_associations
1963
1949
 
1964
1950
 
1965
- def get_local_ip_associations(local_ip_associations=None, count=2):
1966
- """Get a list of faked local ip associations
1967
-
1968
- If local ip association list is provided, then initialize
1969
- the Mock object with the list. Otherwise create one.
1970
-
1971
- :param List local_ip_associations:
1972
- A list of FakeResource objects faking local ip associations
1973
- :param int count:
1974
- The number of local ip associations to fake
1975
- :return:
1976
- An iterable Mock object with side_effect set to a list of faked
1977
- local ip associations
1978
- """
1979
- if local_ip_associations is None:
1980
- local_ip_associations = create_local_ip_associations(count)
1981
-
1982
- return mock.Mock(side_effect=local_ip_associations)
1983
-
1984
-
1985
1951
  def create_one_ndp_proxy(attrs=None):
1986
1952
  """Create a fake NDP proxy.
1987
1953
 
@@ -2027,25 +1993,6 @@ def create_ndp_proxies(attrs=None, count=2):
2027
1993
  return ndp_proxies
2028
1994
 
2029
1995
 
2030
- def get_ndp_proxies(ndp_proxies=None, count=2):
2031
- """Get a list of faked NDP proxies.
2032
-
2033
- If ndp_proxy list is provided, then initialize the Mock object
2034
- with the list. Otherwise create one.
2035
-
2036
- :param List ndp_proxies:
2037
- A list of FakeResource objects faking ndp proxy
2038
- :param int count:
2039
- The number of ndp proxy to fake
2040
- :return:
2041
- An iterable Mock object with side_effect set to a list of faked
2042
- ndp proxy
2043
- """
2044
- if ndp_proxies is None:
2045
- ndp_proxies = create_ndp_proxies(count)
2046
- return mock.Mock(side_effect=ndp_proxies)
2047
-
2048
-
2049
1996
  def create_one_trunk(attrs=None):
2050
1997
  """Create a fake trunk.
2051
1998
 
@@ -2096,22 +2043,3 @@ def create_trunks(attrs=None, count=2):
2096
2043
  trunks.append(create_one_trunk(attrs))
2097
2044
 
2098
2045
  return trunks
2099
-
2100
-
2101
- def get_trunks(trunks=None, count=2):
2102
- """Get an iterable Mock object with a list of faked trunks.
2103
-
2104
- If trunk list is provided, then initialize the Mock object
2105
- with the list. Otherwise create one.
2106
-
2107
- :param List trunks:
2108
- A list of FakeResource objects faking trunks
2109
- :param int count:
2110
- The number of trunks to fake
2111
- :return:
2112
- An iterable Mock object with side_effect set to a list of faked
2113
- trunks
2114
- """
2115
- if trunks is None:
2116
- trunks = create_trunks(count)
2117
- return mock.Mock(side_effect=trunks)