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
@@ -77,13 +77,9 @@ class TestCreateTapFlow(network_fakes.TestNetworkV2):
77
77
  'direction': 'BOTH',
78
78
  },
79
79
  )
80
- self.app.client_manager.network.create_tap_flow.return_value = (
81
- fake_tap_flow
82
- )
83
- self.app.client_manager.network.find_port.return_value = fake_port
84
- self.app.client_manager.network.find_tap_service.return_value = (
85
- fake_tap_service
86
- )
80
+ self.network_client.create_tap_flow.return_value = fake_tap_flow
81
+ self.network_client.find_port.return_value = fake_port
82
+ self.network_client.find_tap_service.return_value = fake_tap_service
87
83
  arg_list = [
88
84
  '--name',
89
85
  fake_tap_flow['name'],
@@ -103,8 +99,7 @@ class TestCreateTapFlow(network_fakes.TestNetworkV2):
103
99
 
104
100
  parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
105
101
  columns, data = self.cmd.take_action(parsed_args)
106
- mock_create_t_f = self.app.client_manager.network.create_tap_flow
107
- mock_create_t_f.assert_called_once_with(
102
+ self.network_client.create_tap_flow.assert_called_once_with(
108
103
  **{
109
104
  'name': fake_tap_flow['name'],
110
105
  'source_port': fake_tap_flow['source_port'],
@@ -129,7 +124,7 @@ class TestListTapFlow(network_fakes.TestNetworkV2):
129
124
  fake_tap_flows = list(
130
125
  sdk_fakes.generate_fake_resources(_tap_flow.TapFlow, count=2)
131
126
  )
132
- self.app.client_manager.network.tap_flows.return_value = fake_tap_flows
127
+ self.network_client.tap_flows.return_value = fake_tap_flows
133
128
  arg_list = []
134
129
  verify_list = []
135
130
 
@@ -137,7 +132,7 @@ class TestListTapFlow(network_fakes.TestNetworkV2):
137
132
 
138
133
  headers, data = self.cmd.take_action(parsed_args)
139
134
 
140
- self.app.client_manager.network.tap_flows.assert_called_once()
135
+ self.network_client.tap_flows.assert_called_once()
141
136
  self.assertEqual(headers, list(headers_long))
142
137
  self.assertCountEqual(
143
138
  list(data),
@@ -151,7 +146,7 @@ class TestListTapFlow(network_fakes.TestNetworkV2):
151
146
  class TestDeleteTapFlow(network_fakes.TestNetworkV2):
152
147
  def setUp(self):
153
148
  super().setUp()
154
- self.app.client_manager.network.find_tap_flow.side_effect = (
149
+ self.network_client.find_tap_flow.side_effect = (
155
150
  lambda name_or_id, ignore_missing: _tap_flow.TapFlow(id=name_or_id)
156
151
  )
157
152
  self.cmd = osc_tap_flow.DeleteTapFlow(self.app, None)
@@ -171,8 +166,9 @@ class TestDeleteTapFlow(network_fakes.TestNetworkV2):
171
166
 
172
167
  result = self.cmd.take_action(parsed_args)
173
168
 
174
- mock_delete_tap_flow = self.app.client_manager.network.delete_tap_flow
175
- mock_delete_tap_flow.assert_called_once_with(fake_tap_flow['id'])
169
+ self.network_client.delete_tap_flow.assert_called_once_with(
170
+ fake_tap_flow['id']
171
+ )
176
172
  self.assertIsNone(result)
177
173
 
178
174
 
@@ -190,7 +186,7 @@ class TestShowTapFlow(network_fakes.TestNetworkV2):
190
186
 
191
187
  def setUp(self):
192
188
  super().setUp()
193
- self.app.client_manager.network.find_tap_flow.side_effect = (
189
+ self.network_client.find_tap_flow.side_effect = (
194
190
  lambda name_or_id, ignore_missing: _tap_flow.TapFlow(id=name_or_id)
195
191
  )
196
192
  self.cmd = osc_tap_flow.ShowTapFlow(self.app, None)
@@ -198,9 +194,7 @@ class TestShowTapFlow(network_fakes.TestNetworkV2):
198
194
  def test_show_tap_flow(self):
199
195
  """Test Show tap flow."""
200
196
  fake_tap_flow = sdk_fakes.generate_fake_resource(_tap_flow.TapFlow)
201
- self.app.client_manager.network.get_tap_flow.return_value = (
202
- fake_tap_flow
203
- )
197
+ self.network_client.get_tap_flow.return_value = fake_tap_flow
204
198
  arg_list = [
205
199
  fake_tap_flow['id'],
206
200
  ]
@@ -212,7 +206,7 @@ class TestShowTapFlow(network_fakes.TestNetworkV2):
212
206
 
213
207
  headers, data = self.cmd.take_action(parsed_args)
214
208
 
215
- self.app.client_manager.network.get_tap_flow.assert_called_once_with(
209
+ self.network_client.get_tap_flow.assert_called_once_with(
216
210
  fake_tap_flow['id']
217
211
  )
218
212
  self.assertEqual(self.columns, headers)
@@ -245,7 +239,7 @@ class TestUpdateTapFlow(network_fakes.TestNetworkV2):
245
239
  def setUp(self):
246
240
  super().setUp()
247
241
  self.cmd = osc_tap_flow.UpdateTapFlow(self.app, None)
248
- self.app.client_manager.network.find_tap_flow.side_effect = (
242
+ self.network_client.find_tap_flow.side_effect = (
249
243
  lambda name_or_id, ignore_missing: _tap_flow.TapFlow(id=name_or_id)
250
244
  )
251
245
 
@@ -255,9 +249,7 @@ class TestUpdateTapFlow(network_fakes.TestNetworkV2):
255
249
  new_tap_flow = copy.deepcopy(fake_tap_flow)
256
250
  new_tap_flow['name'] = self._new_name
257
251
 
258
- self.app.client_manager.network.update_tap_flow.return_value = (
259
- new_tap_flow
260
- )
252
+ self.network_client.update_tap_flow.return_value = new_tap_flow
261
253
 
262
254
  arg_list = [
263
255
  fake_tap_flow['id'],
@@ -270,7 +262,8 @@ class TestUpdateTapFlow(network_fakes.TestNetworkV2):
270
262
  columns, data = self.cmd.take_action(parsed_args)
271
263
  attrs = {'name': self._new_name}
272
264
 
273
- mock_update_t_f = self.app.client_manager.network.update_tap_flow
274
- mock_update_t_f.assert_called_once_with(new_tap_flow['id'], **attrs)
265
+ self.network_client.update_tap_flow.assert_called_once_with(
266
+ new_tap_flow['id'], **attrs
267
+ )
275
268
  self.assertEqual(self.columns, columns)
276
269
  self.assertEqual(_get_data(new_tap_flow, self.columns), data)
@@ -64,11 +64,9 @@ class TestCreateTapMirror(network_fakes.TestNetworkV2):
64
64
  fake_tap_mirror = sdk_fakes.generate_fake_resource(
65
65
  tap_mirror.TapMirror, **{'port_id': port_id, 'directions': 'IN=99'}
66
66
  )
67
- self.app.client_manager.network.create_tap_mirror.return_value = (
68
- fake_tap_mirror
69
- )
70
- self.app.client_manager.network.find_port.return_value = fake_port
71
- self.app.client_manager.network.find_tap_mirror.side_effect = (
67
+ self.network_client.create_tap_mirror.return_value = fake_tap_mirror
68
+ self.network_client.find_port.return_value = fake_port
69
+ self.network_client.find_tap_mirror.side_effect = (
72
70
  lambda _, name_or_id: {'id': name_or_id}
73
71
  )
74
72
  arg_list = [
@@ -96,13 +94,10 @@ class TestCreateTapMirror(network_fakes.TestNetworkV2):
96
94
  ]
97
95
 
98
96
  parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
99
- self.app.client_manager.network.find_tap_mirror.return_value = (
100
- fake_tap_mirror
101
- )
97
+ self.network_client.find_tap_mirror.return_value = fake_tap_mirror
102
98
 
103
99
  columns, data = self.cmd.take_action(parsed_args)
104
- create_tap_m_mock = self.app.client_manager.network.create_tap_mirror
105
- create_tap_m_mock.assert_called_once_with(
100
+ self.network_client.create_tap_mirror.assert_called_once_with(
106
101
  **{
107
102
  'name': fake_tap_mirror['name'],
108
103
  'port_id': fake_tap_mirror['port_id'],
@@ -128,9 +123,7 @@ class TestListTapMirror(network_fakes.TestNetworkV2):
128
123
  fake_tap_mirrors = list(
129
124
  sdk_fakes.generate_fake_resources(tap_mirror.TapMirror, count=4)
130
125
  )
131
- self.app.client_manager.network.tap_mirrors.return_value = (
132
- fake_tap_mirrors
133
- )
126
+ self.network_client.tap_mirrors.return_value = fake_tap_mirrors
134
127
 
135
128
  arg_list = []
136
129
  verify_list = []
@@ -139,7 +132,7 @@ class TestListTapMirror(network_fakes.TestNetworkV2):
139
132
 
140
133
  headers, data = self.cmd.take_action(parsed_args)
141
134
 
142
- self.app.client_manager.network.tap_mirrors.assert_called_once()
135
+ self.network_client.tap_mirrors.assert_called_once()
143
136
  self.assertEqual(headers, list(headers_long))
144
137
  self.assertCountEqual(
145
138
  list(data),
@@ -153,7 +146,7 @@ class TestListTapMirror(network_fakes.TestNetworkV2):
153
146
  class TestDeleteTapMirror(network_fakes.TestNetworkV2):
154
147
  def setUp(self):
155
148
  super().setUp()
156
- self.app.client_manager.network.find_tap_mirror.side_effect = (
149
+ self.network_client.find_tap_mirror.side_effect = (
157
150
  lambda name_or_id, ignore_missing: tap_mirror.TapMirror(
158
151
  id=name_or_id
159
152
  )
@@ -177,8 +170,9 @@ class TestDeleteTapMirror(network_fakes.TestNetworkV2):
177
170
  parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
178
171
  result = self.cmd.take_action(parsed_args)
179
172
 
180
- mock_delete_tap_m = self.app.client_manager.network.delete_tap_mirror
181
- mock_delete_tap_m.assert_called_once_with(fake_tap_mirror['id'])
173
+ self.network_client.delete_tap_mirror.assert_called_once_with(
174
+ fake_tap_mirror['id']
175
+ )
182
176
  self.assertIsNone(result)
183
177
 
184
178
 
@@ -196,7 +190,7 @@ class TestShowTapMirror(network_fakes.TestNetworkV2):
196
190
 
197
191
  def setUp(self):
198
192
  super().setUp()
199
- self.app.client_manager.network.find_tap_mirror.side_effect = (
193
+ self.network_client.find_tap_mirror.side_effect = (
200
194
  lambda name_or_id, ignore_missing: tap_mirror.TapMirror(
201
195
  id=name_or_id
202
196
  )
@@ -209,9 +203,7 @@ class TestShowTapMirror(network_fakes.TestNetworkV2):
209
203
  fake_tap_mirror = sdk_fakes.generate_fake_resource(
210
204
  tap_mirror.TapMirror
211
205
  )
212
- self.app.client_manager.network.get_tap_mirror.return_value = (
213
- fake_tap_mirror
214
- )
206
+ self.network_client.get_tap_mirror.return_value = fake_tap_mirror
215
207
  arg_list = [
216
208
  fake_tap_mirror['id'],
217
209
  ]
@@ -223,8 +215,9 @@ class TestShowTapMirror(network_fakes.TestNetworkV2):
223
215
 
224
216
  headers, data = self.cmd.take_action(parsed_args)
225
217
 
226
- mock_get_tap_m = self.app.client_manager.network.get_tap_mirror
227
- mock_get_tap_m.assert_called_once_with(fake_tap_mirror['id'])
218
+ self.network_client.get_tap_mirror.assert_called_once_with(
219
+ fake_tap_mirror['id']
220
+ )
228
221
  self.assertEqual(self.columns, headers)
229
222
  fake_data = _get_data(
230
223
  fake_tap_mirror, osc_tap_mirror._get_columns(fake_tap_mirror)[1]
@@ -248,7 +241,7 @@ class TestUpdateTapMirror(network_fakes.TestNetworkV2):
248
241
  def setUp(self):
249
242
  super().setUp()
250
243
  self.cmd = osc_tap_mirror.UpdateTapMirror(self.app, None)
251
- self.app.client_manager.network.find_tap_mirror.side_effect = (
244
+ self.network_client.find_tap_mirror.side_effect = (
252
245
  lambda name_or_id, ignore_missing: tap_mirror.TapMirror(
253
246
  id=name_or_id
254
247
  )
@@ -262,9 +255,7 @@ class TestUpdateTapMirror(network_fakes.TestNetworkV2):
262
255
  new_tap_mirror = copy.deepcopy(fake_tap_mirror)
263
256
  new_tap_mirror['name'] = self._new_name
264
257
 
265
- self.app.client_manager.network.update_tap_mirror.return_value = (
266
- new_tap_mirror
267
- )
258
+ self.network_client.update_tap_mirror.return_value = new_tap_mirror
268
259
 
269
260
  arg_list = [
270
261
  fake_tap_mirror['id'],
@@ -277,8 +268,7 @@ class TestUpdateTapMirror(network_fakes.TestNetworkV2):
277
268
  columns, data = self.cmd.take_action(parsed_args)
278
269
  attrs = {'name': self._new_name}
279
270
 
280
- mock_update_tap_m = self.app.client_manager.network.update_tap_mirror
281
- mock_update_tap_m.assert_called_once_with(
271
+ self.network_client.update_tap_mirror.assert_called_once_with(
282
272
  fake_tap_mirror['id'], **attrs
283
273
  )
284
274
  self.assertEqual(self.columns, columns)
@@ -65,11 +65,9 @@ class TestCreateTapService(network_fakes.TestNetworkV2):
65
65
  fake_tap_service = sdk_fakes.generate_fake_resource(
66
66
  tap_service.TapService, **{'port_id': port_id}
67
67
  )
68
- self.app.client_manager.network.create_tap_service.return_value = (
69
- fake_tap_service
70
- )
71
- self.app.client_manager.network.find_port.return_value = fake_port
72
- self.app.client_manager.network.find_tap_service.side_effect = (
68
+ self.network_client.create_tap_service.return_value = fake_tap_service
69
+ self.network_client.find_port.return_value = fake_port
70
+ self.network_client.find_tap_service.side_effect = (
73
71
  lambda _, name_or_id: {'id': name_or_id}
74
72
  )
75
73
  arg_list = [
@@ -85,13 +83,10 @@ class TestCreateTapService(network_fakes.TestNetworkV2):
85
83
  ]
86
84
 
87
85
  parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
88
- self.app.client_manager.network.find_tap_service.return_value = (
89
- fake_tap_service
90
- )
86
+ self.network_client.find_tap_service.return_value = fake_tap_service
91
87
 
92
88
  columns, data = self.cmd.take_action(parsed_args)
93
- create_tap_s_mock = self.app.client_manager.network.create_tap_service
94
- create_tap_s_mock.assert_called_once_with(
89
+ self.network_client.create_tap_service.assert_called_once_with(
95
90
  **{
96
91
  'name': fake_tap_service['name'],
97
92
  'port_id': fake_tap_service['port_id'],
@@ -114,9 +109,7 @@ class TestListTapService(network_fakes.TestNetworkV2):
114
109
  fake_tap_services = list(
115
110
  sdk_fakes.generate_fake_resources(tap_service.TapService, count=4)
116
111
  )
117
- self.app.client_manager.network.tap_services.return_value = (
118
- fake_tap_services
119
- )
112
+ self.network_client.tap_services.return_value = fake_tap_services
120
113
 
121
114
  arg_list = []
122
115
  verify_list = []
@@ -125,7 +118,7 @@ class TestListTapService(network_fakes.TestNetworkV2):
125
118
 
126
119
  headers, data = self.cmd.take_action(parsed_args)
127
120
 
128
- self.app.client_manager.network.tap_services.assert_called_once()
121
+ self.network_client.tap_services.assert_called_once()
129
122
  self.assertEqual(headers, list(headers_long))
130
123
  self.assertCountEqual(
131
124
  list(data),
@@ -139,7 +132,7 @@ class TestListTapService(network_fakes.TestNetworkV2):
139
132
  class TestDeleteTapService(network_fakes.TestNetworkV2):
140
133
  def setUp(self):
141
134
  super().setUp()
142
- self.app.client_manager.network.find_tap_service.side_effect = (
135
+ self.network_client.find_tap_service.side_effect = (
143
136
  lambda name_or_id, ignore_missing: tap_service.TapService(
144
137
  id=name_or_id
145
138
  )
@@ -163,8 +156,9 @@ class TestDeleteTapService(network_fakes.TestNetworkV2):
163
156
  parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
164
157
  result = self.cmd.take_action(parsed_args)
165
158
 
166
- mock_delete_tap_s = self.app.client_manager.network.delete_tap_service
167
- mock_delete_tap_s.assert_called_once_with(fake_tap_service['id'])
159
+ self.network_client.delete_tap_service.assert_called_once_with(
160
+ fake_tap_service['id']
161
+ )
168
162
  self.assertIsNone(result)
169
163
 
170
164
 
@@ -180,7 +174,7 @@ class TestShowTapService(network_fakes.TestNetworkV2):
180
174
 
181
175
  def setUp(self):
182
176
  super().setUp()
183
- self.app.client_manager.network.find_tap_service.side_effect = (
177
+ self.network_client.find_tap_service.side_effect = (
184
178
  lambda name_or_id, ignore_missing: tap_service.TapService(
185
179
  id=name_or_id
186
180
  )
@@ -193,9 +187,7 @@ class TestShowTapService(network_fakes.TestNetworkV2):
193
187
  fake_tap_service = sdk_fakes.generate_fake_resource(
194
188
  tap_service.TapService
195
189
  )
196
- self.app.client_manager.network.get_tap_service.return_value = (
197
- fake_tap_service
198
- )
190
+ self.network_client.get_tap_service.return_value = fake_tap_service
199
191
  arg_list = [
200
192
  fake_tap_service['id'],
201
193
  ]
@@ -207,8 +199,9 @@ class TestShowTapService(network_fakes.TestNetworkV2):
207
199
 
208
200
  headers, data = self.cmd.take_action(parsed_args)
209
201
 
210
- mock_get_tap_s = self.app.client_manager.network.get_tap_service
211
- mock_get_tap_s.assert_called_once_with(fake_tap_service['id'])
202
+ self.network_client.get_tap_service.assert_called_once_with(
203
+ fake_tap_service['id']
204
+ )
212
205
  self.assertEqual(self.columns, headers)
213
206
  fake_data = _get_data(
214
207
  fake_tap_service, osc_tap_service._get_columns(fake_tap_service)[1]
@@ -231,7 +224,7 @@ class TestUpdateTapService(network_fakes.TestNetworkV2):
231
224
  def setUp(self):
232
225
  super().setUp()
233
226
  self.cmd = osc_tap_service.UpdateTapService(self.app, None)
234
- self.app.client_manager.network.find_tap_service.side_effect = (
227
+ self.network_client.find_tap_service.side_effect = (
235
228
  lambda name_or_id, ignore_missing: tap_service.TapService(
236
229
  id=name_or_id
237
230
  )
@@ -245,9 +238,7 @@ class TestUpdateTapService(network_fakes.TestNetworkV2):
245
238
  new_tap_service = copy.deepcopy(fake_tap_service)
246
239
  new_tap_service['name'] = self._new_name
247
240
 
248
- self.app.client_manager.network.update_tap_service.return_value = (
249
- new_tap_service
250
- )
241
+ self.network_client.update_tap_service.return_value = new_tap_service
251
242
 
252
243
  arg_list = [
253
244
  fake_tap_service['id'],
@@ -260,8 +251,7 @@ class TestUpdateTapService(network_fakes.TestNetworkV2):
260
251
  columns, data = self.cmd.take_action(parsed_args)
261
252
  attrs = {'name': self._new_name}
262
253
 
263
- mock_update_tap_s = self.app.client_manager.network.update_tap_service
264
- mock_update_tap_s.assert_called_once_with(
254
+ self.network_client.update_tap_service.assert_called_once_with(
265
255
  fake_tap_service['id'], **attrs
266
256
  )
267
257
  self.assertEqual(self.columns, columns)
@@ -264,6 +264,30 @@ class TestListAddressGroup(TestAddressGroup):
264
264
  self.assertEqual(self.columns, columns)
265
265
  self.assertCountEqual(self.data, list(data))
266
266
 
267
+ def test_address_group_list_pagination(self):
268
+ arglist = [
269
+ '--marker',
270
+ self.address_groups[0].id,
271
+ '--limit',
272
+ '1',
273
+ ]
274
+ verifylist = [
275
+ ('marker', self.address_groups[0].id),
276
+ ('limit', 1),
277
+ ]
278
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
279
+
280
+ columns, data = self.cmd.take_action(parsed_args)
281
+
282
+ self.network_client.address_groups.assert_called_once_with(
283
+ **{
284
+ 'marker': self.address_groups[0].id,
285
+ 'limit': 1,
286
+ }
287
+ )
288
+ self.assertEqual(self.columns, columns)
289
+ self.assertEqual(self.data, list(data))
290
+
267
291
  def test_address_group_list_name(self):
268
292
  arglist = [
269
293
  '--name',
@@ -519,7 +543,7 @@ class TestUnsetAddressGroup(TestAddressGroup):
519
543
 
520
544
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
521
545
  result = self.cmd.take_action(parsed_args)
522
- self.network_client.remove_addresses_from_address_group.assert_called_once_with( # noqa: E501
546
+ self.network_client.remove_addresses_from_address_group.assert_called_once_with(
523
547
  self._address_group, ['10.0.0.2/32']
524
548
  )
525
549
  self.assertIsNone(result)
@@ -539,7 +563,7 @@ class TestUnsetAddressGroup(TestAddressGroup):
539
563
 
540
564
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
541
565
  result = self.cmd.take_action(parsed_args)
542
- self.network_client.remove_addresses_from_address_group.assert_called_once_with( # noqa: E501
566
+ self.network_client.remove_addresses_from_address_group.assert_called_once_with(
543
567
  self._address_group, ['10.0.0.2/32', '2001::/16']
544
568
  )
545
569
  self.assertIsNone(result)
@@ -280,6 +280,30 @@ class TestListAddressScope(TestAddressScope):
280
280
  self.assertEqual(self.columns, columns)
281
281
  self.assertEqual(self.data, list(data))
282
282
 
283
+ def test_address_scope_list_pagination(self):
284
+ arglist = [
285
+ '--marker',
286
+ self.address_scopes[0].id,
287
+ '--limit',
288
+ '1',
289
+ ]
290
+ verifylist = [
291
+ ('marker', self.address_scopes[0].id),
292
+ ('limit', 1),
293
+ ]
294
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
295
+
296
+ columns, data = self.cmd.take_action(parsed_args)
297
+
298
+ self.network_client.address_scopes.assert_called_once_with(
299
+ **{
300
+ 'marker': self.address_scopes[0].id,
301
+ 'limit': 1,
302
+ }
303
+ )
304
+ self.assertEqual(self.columns, columns)
305
+ self.assertEqual(self.data, list(data))
306
+
283
307
  def test_address_scope_list_name(self):
284
308
  arglist = [
285
309
  '--name',
@@ -383,7 +383,7 @@ class TestDeleteFloatingIPNetwork(TestFloatingIPNetwork):
383
383
  self.cmd.take_action(parsed_args)
384
384
  self.fail('CommandError should be raised.')
385
385
  except exceptions.CommandError as e:
386
- self.assertEqual('1 of 2 floating_ips failed to delete.', str(e))
386
+ self.assertEqual('1 of 2 floating IPs failed to delete.', str(e))
387
387
 
388
388
  self.network_client.find_ip.assert_any_call(
389
389
  self.floating_ips[0].id,
@@ -425,7 +425,8 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork):
425
425
  'Floating Network',
426
426
  'Project',
427
427
  )
428
- columns_long = columns + (
428
+ columns_long = (
429
+ *columns,
429
430
  'Router',
430
431
  'Status',
431
432
  'Description',
@@ -699,6 +700,30 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork):
699
700
  self.assertEqual(self.columns, columns)
700
701
  self.assertEqual(self.data, list(data))
701
702
 
703
+ def test_floating_ip_list_pagination(self):
704
+ arglist = [
705
+ '--marker',
706
+ self.floating_ips[0].id,
707
+ '--limit',
708
+ '1',
709
+ ]
710
+ verifylist = [
711
+ ('marker', self.floating_ips[0].id),
712
+ ('limit', 1),
713
+ ]
714
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
715
+
716
+ columns, data = self.cmd.take_action(parsed_args)
717
+
718
+ self.network_client.ips.assert_called_once_with(
719
+ **{
720
+ 'marker': self.floating_ips[0].id,
721
+ 'limit': 1,
722
+ }
723
+ )
724
+ self.assertEqual(self.columns, columns)
725
+ self.assertEqual(self.data, list(data))
726
+
702
727
 
703
728
  class TestShowFloatingIPNetwork(TestFloatingIPNetwork):
704
729
  def setUp(self):
@@ -39,14 +39,14 @@ class TestFloatingIPPortForwarding(network_fakes.TestNetworkV2):
39
39
  class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding):
40
40
  def setUp(self):
41
41
  super().setUp()
42
- self.new_port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding( # noqa: E501
42
+ self.new_port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
43
43
  attrs={
44
44
  'internal_port_id': self.port.id,
45
45
  'floatingip_id': self.floating_ip.id,
46
46
  }
47
47
  )
48
48
 
49
- self.new_port_forwarding_with_ranges = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding( # noqa: E501
49
+ self.new_port_forwarding_with_ranges = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
50
50
  use_range=True,
51
51
  attrs={
52
52
  'internal_port_id': self.port.id,
@@ -144,15 +144,15 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding):
144
144
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
145
145
  columns, data = self.cmd.take_action(parsed_args)
146
146
 
147
- self.network_client.create_floating_ip_port_forwarding.assert_called_once_with( # noqa: E501
147
+ self.network_client.create_floating_ip_port_forwarding.assert_called_once_with(
148
148
  self.new_port_forwarding.floatingip_id,
149
149
  **{
150
- 'external_port_range': self.new_port_forwarding_with_ranges.external_port_range, # noqa: E501
151
- 'internal_ip_address': self.new_port_forwarding_with_ranges.internal_ip_address, # noqa: E501
152
- 'internal_port_range': self.new_port_forwarding_with_ranges.internal_port_range, # noqa: E501
153
- 'internal_port_id': self.new_port_forwarding_with_ranges.internal_port_id, # noqa: E501
150
+ 'external_port_range': self.new_port_forwarding_with_ranges.external_port_range,
151
+ 'internal_ip_address': self.new_port_forwarding_with_ranges.internal_ip_address,
152
+ 'internal_port_range': self.new_port_forwarding_with_ranges.internal_port_range,
153
+ 'internal_port_id': self.new_port_forwarding_with_ranges.internal_port_id,
154
154
  'protocol': self.new_port_forwarding_with_ranges.protocol,
155
- 'description': self.new_port_forwarding_with_ranges.description, # noqa: E501
155
+ 'description': self.new_port_forwarding_with_ranges.description,
156
156
  },
157
157
  )
158
158
  self.assertEqual(self.columns, columns)
@@ -325,11 +325,11 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding):
325
325
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
326
326
  columns, data = self.cmd.take_action(parsed_args)
327
327
 
328
- self.network_client.create_floating_ip_port_forwarding.assert_called_once_with( # noqa: E501
328
+ self.network_client.create_floating_ip_port_forwarding.assert_called_once_with(
329
329
  self.new_port_forwarding.floatingip_id,
330
330
  **{
331
331
  'external_port': self.new_port_forwarding.external_port,
332
- 'internal_ip_address': self.new_port_forwarding.internal_ip_address, # noqa: E501
332
+ 'internal_ip_address': self.new_port_forwarding.internal_ip_address,
333
333
  'internal_port': self.new_port_forwarding.internal_port,
334
334
  'internal_port_id': self.new_port_forwarding.internal_port_id,
335
335
  'protocol': self.new_port_forwarding.protocol,
@@ -375,7 +375,7 @@ class TestDeleteFloatingIPPortForwarding(TestFloatingIPPortForwarding):
375
375
 
376
376
  result = self.cmd.take_action(parsed_args)
377
377
 
378
- self.network_client.delete_floating_ip_port_forwarding.assert_called_once_with( # noqa: E501
378
+ self.network_client.delete_floating_ip_port_forwarding.assert_called_once_with(
379
379
  self.floating_ip.id,
380
380
  self._port_forwarding[0].id,
381
381
  ignore_missing=False,
@@ -513,6 +513,30 @@ class TestListFloatingIPPortForwarding(TestFloatingIPPortForwarding):
513
513
  self.assertEqual(self.columns, columns)
514
514
  self.assertEqual(self.data, list(data))
515
515
 
516
+ def test_port_forwarding_list_pagination(self):
517
+ arglist = [
518
+ '--marker',
519
+ self.port_forwardings[0].id,
520
+ '--limit',
521
+ '1',
522
+ self.floating_ip.id,
523
+ ]
524
+ verifylist = [
525
+ ('marker', self.port_forwardings[0].id),
526
+ ('limit', 1),
527
+ ('floating_ip', self.floating_ip.id),
528
+ ]
529
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
530
+
531
+ columns, data = self.cmd.take_action(parsed_args)
532
+
533
+ self.network_client.floating_ip_port_forwardings.assert_called_once_with(
534
+ self.floating_ip,
535
+ **{'marker': self.port_forwardings[0].id, 'limit': 1},
536
+ )
537
+ self.assertEqual(self.columns, columns)
538
+ self.assertEqual(self.data, list(data))
539
+
516
540
  def test_port_forwarding_list_all_options(self):
517
541
  arglist = [
518
542
  '--port',
@@ -553,7 +577,7 @@ class TestSetFloatingIPPortForwarding(TestFloatingIPPortForwarding):
553
577
  # The Port Forwarding to set.
554
578
  def setUp(self):
555
579
  super().setUp()
556
- self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding( # noqa: E501
580
+ self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
557
581
  attrs={
558
582
  'floatingip_id': self.floating_ip.id,
559
583
  }
@@ -675,7 +699,7 @@ class TestShowFloatingIPPortForwarding(TestFloatingIPPortForwarding):
675
699
 
676
700
  def setUp(self):
677
701
  super().setUp()
678
- self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding( # noqa: E501
702
+ self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
679
703
  attrs={
680
704
  'floatingip_id': self.floating_ip.id,
681
705
  }
@@ -73,6 +73,31 @@ class TestListIPAvailability(TestIPAvailability):
73
73
  self.assertEqual(self.columns, columns)
74
74
  self.assertCountEqual(self.data, list(data))
75
75
 
76
+ def test_list_pagination(self):
77
+ arglist = [
78
+ '--marker',
79
+ self._ip_availability[0].network_id,
80
+ '--limit',
81
+ '1',
82
+ ]
83
+ verifylist = [
84
+ ('marker', self._ip_availability[0].network_id),
85
+ ('limit', 1),
86
+ ]
87
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
88
+
89
+ columns, data = self.cmd.take_action(parsed_args)
90
+
91
+ self.network_client.network_ip_availabilities.assert_called_once_with(
92
+ **{
93
+ 'ip_version': 4,
94
+ 'marker': self._ip_availability[0].network_id,
95
+ 'limit': 1,
96
+ }
97
+ )
98
+ self.assertEqual(self.columns, columns)
99
+ self.assertEqual(self.data, list(data))
100
+
76
101
  def test_list_ip_version(self):
77
102
  arglist = [
78
103
  '--ip-version',