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
@@ -155,7 +155,7 @@ class TestListL3ConntrackHelper(TestConntrackHelper):
155
155
  def setUp(self):
156
156
  super().setUp()
157
157
  attrs = {'router_id': self.router.id}
158
- ct_helpers = (
158
+ self.conntrack_helpers = (
159
159
  network_fakes.FakeL3ConntrackHelper.create_l3_conntrack_helpers(
160
160
  attrs, count=3
161
161
  )
@@ -168,7 +168,7 @@ class TestListL3ConntrackHelper(TestConntrackHelper):
168
168
  'Port',
169
169
  )
170
170
  self.data = []
171
- for ct_helper in ct_helpers:
171
+ for ct_helper in self.conntrack_helpers:
172
172
  self.data.append(
173
173
  (
174
174
  ct_helper.id,
@@ -178,7 +178,9 @@ class TestListL3ConntrackHelper(TestConntrackHelper):
178
178
  ct_helper.port,
179
179
  )
180
180
  )
181
- self.network_client.conntrack_helpers.return_value = ct_helpers
181
+ self.network_client.conntrack_helpers.return_value = (
182
+ self.conntrack_helpers
183
+ )
182
184
 
183
185
  # Get the command object to test
184
186
  self.cmd = l3_conntrack_helper.ListConntrackHelper(self.app, None)
@@ -201,6 +203,30 @@ class TestListL3ConntrackHelper(TestConntrackHelper):
201
203
  for index in range(len(list_data)):
202
204
  self.assertEqual(self.data[index], list_data[index])
203
205
 
206
+ def test_conntrack_helpers_list_pagination(self):
207
+ arglist = [
208
+ '--marker',
209
+ self.conntrack_helpers[0].id,
210
+ '--limit',
211
+ '1',
212
+ self.router.id,
213
+ ]
214
+ verifylist = [
215
+ ('marker', self.conntrack_helpers[0].id),
216
+ ('limit', 1),
217
+ ('router', self.router.id),
218
+ ]
219
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
220
+
221
+ columns, data = self.cmd.take_action(parsed_args)
222
+
223
+ self.network_client.conntrack_helpers.assert_called_once_with(
224
+ self.router.id,
225
+ **{'marker': self.conntrack_helpers[0].id, 'limit': 1},
226
+ )
227
+ self.assertEqual(self.columns, columns)
228
+ self.assertEqual(self.data, list(data))
229
+
204
230
 
205
231
  class TestSetL3ConntrackHelper(TestConntrackHelper):
206
232
  def setUp(self):
@@ -70,6 +70,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
70
70
  'provider:network_type',
71
71
  'provider:physical_network',
72
72
  'provider:segmentation_id',
73
+ 'pvlan',
73
74
  'qos_policy_id',
74
75
  'router:external',
75
76
  'shared',
@@ -99,6 +100,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
99
100
  _network.provider_network_type,
100
101
  _network.provider_physical_network,
101
102
  _network.provider_segmentation_id,
103
+ _network.pvlan,
102
104
  _network.qos_policy_id,
103
105
  network.RouterExternalColumn(_network.is_router_external),
104
106
  _network.is_shared,
@@ -189,6 +191,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
189
191
  self.qos_policy.id,
190
192
  "--transparent-vlan",
191
193
  "--no-qinq-vlan",
194
+ "--no-pvlan",
192
195
  "--enable-port-security",
193
196
  "--dns-domain",
194
197
  "example.org.",
@@ -210,6 +213,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
210
213
  ('qos_policy', self.qos_policy.id),
211
214
  ('transparent_vlan', True),
212
215
  ('qinq_vlan', False),
216
+ ('pvlan', False),
213
217
  ('enable_port_security', True),
214
218
  ('name', self._network.name),
215
219
  ('dns_domain', 'example.org.'),
@@ -235,6 +239,7 @@ class TestCreateNetworkIdentityV3(TestNetwork):
235
239
  'qos_policy_id': self.qos_policy.id,
236
240
  'vlan_transparent': True,
237
241
  'vlan_qinq': False,
242
+ 'pvlan': False,
238
243
  'port_security_enabled': True,
239
244
  'dns_domain': 'example.org.',
240
245
  }
@@ -326,6 +331,19 @@ class TestCreateNetworkIdentityV3(TestNetwork):
326
331
  exceptions.CommandError, self.cmd.take_action, parsed_args
327
332
  )
328
333
 
334
+ def test_create_with_pvlan_and_port_security_disabled(self):
335
+ arglist = [
336
+ "--disable-port-security",
337
+ "--pvlan",
338
+ self._network.name,
339
+ ]
340
+ verifylist = [('disable_port_security', True), ('pvlan', True)]
341
+
342
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
343
+ self.assertRaises(
344
+ exceptions.CommandError, self.cmd.take_action, parsed_args
345
+ )
346
+
329
347
  def test_create_with_provider_segment_without_provider_type(self):
330
348
  arglist = [
331
349
  "--provider-segment",
@@ -371,6 +389,7 @@ class TestCreateNetworkIdentityV2(
371
389
  'name',
372
390
  'port_security_enabled',
373
391
  'project_id',
392
+ 'pvlan',
374
393
  'provider:network_type',
375
394
  'provider:physical_network',
376
395
  'provider:segmentation_id',
@@ -400,6 +419,7 @@ class TestCreateNetworkIdentityV2(
400
419
  _network.name,
401
420
  _network.is_port_security_enabled,
402
421
  _network.project_id,
422
+ _network.pvlan,
403
423
  _network.provider_network_type,
404
424
  _network.provider_physical_network,
405
425
  _network.provider_segmentation_id,
@@ -576,7 +596,7 @@ class TestDeleteNetwork(TestNetwork):
576
596
 
577
597
  class TestListNetwork(TestNetwork):
578
598
  # The networks going to be listed up.
579
- _network = network_fakes.create_networks(count=3)
599
+ _networks = network_fakes.create_networks(count=3)
580
600
 
581
601
  columns = (
582
602
  'ID',
@@ -598,7 +618,7 @@ class TestListNetwork(TestNetwork):
598
618
  )
599
619
 
600
620
  data = []
601
- for net in _network:
621
+ for net in _networks:
602
622
  data.append(
603
623
  (
604
624
  net.id,
@@ -608,7 +628,7 @@ class TestListNetwork(TestNetwork):
608
628
  )
609
629
 
610
630
  data_long = []
611
- for net in _network:
631
+ for net in _networks:
612
632
  data_long.append(
613
633
  (
614
634
  net.id,
@@ -631,13 +651,13 @@ class TestListNetwork(TestNetwork):
631
651
  # Get the command object to test
632
652
  self.cmd = network.ListNetwork(self.app, None)
633
653
 
634
- self.network_client.networks.return_value = self._network
654
+ self.network_client.networks.return_value = self._networks
635
655
 
636
656
  self._agent = network_fakes.create_one_network_agent()
637
657
  self.network_client.get_agent.return_value = self._agent
638
658
 
639
659
  self.network_client.dhcp_agent_hosting_networks.return_value = (
640
- self._network
660
+ self._networks
641
661
  )
642
662
 
643
663
  # TestListTagMixin
@@ -660,7 +680,31 @@ class TestListNetwork(TestNetwork):
660
680
  self.assertEqual(self.columns, columns)
661
681
  self.assertCountEqual(self.data, list(data))
662
682
 
663
- def test_list_external(self):
683
+ def test_network_list_pagination(self):
684
+ arglist = [
685
+ '--marker',
686
+ self._networks[0].id,
687
+ '--limit',
688
+ '1',
689
+ ]
690
+ verifylist = [
691
+ ('marker', self._networks[0].id),
692
+ ('limit', 1),
693
+ ]
694
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
695
+
696
+ columns, data = self.cmd.take_action(parsed_args)
697
+
698
+ self.network_client.networks.assert_called_once_with(
699
+ **{
700
+ 'marker': self._networks[0].id,
701
+ 'limit': 1,
702
+ }
703
+ )
704
+ self.assertEqual(self.columns, columns)
705
+ self.assertEqual(self.data, list(data))
706
+
707
+ def test_network_list_external(self):
664
708
  arglist = [
665
709
  '--external',
666
710
  ]
@@ -681,7 +725,7 @@ class TestListNetwork(TestNetwork):
681
725
  self.assertEqual(self.columns, columns)
682
726
  self.assertCountEqual(self.data, list(data))
683
727
 
684
- def test_list_internal(self):
728
+ def test_network_list_internal(self):
685
729
  arglist = [
686
730
  '--internal',
687
731
  ]
@@ -717,7 +761,7 @@ class TestListNetwork(TestNetwork):
717
761
  self.assertEqual(self.columns_long, columns)
718
762
  self.assertCountEqual(self.data_long, list(data))
719
763
 
720
- def test_list_name(self):
764
+ def test_network_list_name(self):
721
765
  test_name = "fakename"
722
766
  arglist = [
723
767
  '--name',
@@ -865,7 +909,7 @@ class TestListNetwork(TestNetwork):
865
909
  self.assertCountEqual(self.data, list(data))
866
910
 
867
911
  def test_network_list_provider_network_type(self):
868
- network_type = self._network[0].provider_network_type
912
+ network_type = self._networks[0].provider_network_type
869
913
  arglist = [
870
914
  '--provider-network-type',
871
915
  network_type,
@@ -886,7 +930,7 @@ class TestListNetwork(TestNetwork):
886
930
  self.assertCountEqual(self.data, list(data))
887
931
 
888
932
  def test_network_list_provider_physical_network(self):
889
- physical_network = self._network[0].provider_physical_network
933
+ physical_network = self._networks[0].provider_physical_network
890
934
  arglist = [
891
935
  '--provider-physical-network',
892
936
  physical_network,
@@ -907,7 +951,7 @@ class TestListNetwork(TestNetwork):
907
951
  self.assertCountEqual(self.data, list(data))
908
952
 
909
953
  def test_network_list_provider_segment(self):
910
- segmentation_id = self._network[0].provider_segmentation_id
954
+ segmentation_id = self._networks[0].provider_segmentation_id
911
955
  arglist = [
912
956
  '--provider-segment',
913
957
  segmentation_id,
@@ -996,6 +1040,23 @@ class TestSetNetwork(TestNetwork):
996
1040
  # Get the command object to test
997
1041
  self.cmd = network.SetNetwork(self.app, None)
998
1042
 
1043
+ def test_set_with_pvlan_and_port_security_disabled(self):
1044
+ arglist = [
1045
+ self._network.name,
1046
+ '--disable-port-security',
1047
+ '--pvlan',
1048
+ ]
1049
+ verifylist = [
1050
+ ('network', self._network.name),
1051
+ ('disable_port_security', True),
1052
+ ('pvlan', True),
1053
+ ]
1054
+
1055
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
1056
+ self.assertRaises(
1057
+ exceptions.CommandError, self.cmd.take_action, parsed_args
1058
+ )
1059
+
999
1060
  def test_set_this(self):
1000
1061
  arglist = [
1001
1062
  self._network.name,
@@ -1189,6 +1250,7 @@ class TestShowNetwork(TestNetwork):
1189
1250
  'provider:network_type',
1190
1251
  'provider:physical_network',
1191
1252
  'provider:segmentation_id',
1253
+ 'pvlan',
1192
1254
  'qos_policy_id',
1193
1255
  'router:external',
1194
1256
  'shared',
@@ -1218,6 +1280,7 @@ class TestShowNetwork(TestNetwork):
1218
1280
  _network.provider_network_type,
1219
1281
  _network.provider_physical_network,
1220
1282
  _network.provider_segmentation_id,
1283
+ _network.pvlan,
1221
1284
  _network.qos_policy_id,
1222
1285
  network.RouterExternalColumn(_network.is_router_external),
1223
1286
  _network.is_shared,
@@ -1265,7 +1328,6 @@ class TestShowNetwork(TestNetwork):
1265
1328
  self.network_client.find_network.assert_called_once_with(
1266
1329
  self._network.name, ignore_missing=False
1267
1330
  )
1268
-
1269
1331
  self.assertEqual(set(self.columns), set(columns))
1270
1332
  self.assertCountEqual(self.data, data)
1271
1333
 
@@ -109,7 +109,32 @@ class TestAddRouterAgent(TestNetworkAgent):
109
109
  result = self.cmd.take_action(parsed_args)
110
110
 
111
111
  self.network_client.add_router_to_agent.assert_called_with(
112
- self._agent, self._router
112
+ self._agent, self._router, ha_chassis_priority=None
113
+ )
114
+ self.assertIsNone(result)
115
+
116
+ def test_add_router_with_ha_chassis_priority(self):
117
+ arglist = [
118
+ self._agent.id,
119
+ self._router.id,
120
+ '--l3',
121
+ '--ha-chassis-priority',
122
+ '100',
123
+ ]
124
+ verifylist = [
125
+ ('l3', True),
126
+ ('agent_id', self._agent.id),
127
+ ('router', self._router.id),
128
+ ('ha_chassis_priority', 100),
129
+ ]
130
+
131
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
132
+ result = self.cmd.take_action(parsed_args)
133
+
134
+ self.network_client.add_router_to_agent.assert_called_with(
135
+ self._agent,
136
+ self._router,
137
+ ha_chassis_priority=100,
113
138
  )
114
139
  self.assertIsNone(result)
115
140
 
@@ -249,6 +274,30 @@ class TestListNetworkAgent(TestNetworkAgent):
249
274
  self.assertEqual(self.columns, columns)
250
275
  self.assertCountEqual(self.data, list(data))
251
276
 
277
+ def test_network_agents_list_pagination(self):
278
+ arglist = [
279
+ '--marker',
280
+ self.network_agents[0].id,
281
+ '--limit',
282
+ '1',
283
+ ]
284
+ verifylist = [
285
+ ('marker', self.network_agents[0].id),
286
+ ('limit', 1),
287
+ ]
288
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
289
+
290
+ columns, data = self.cmd.take_action(parsed_args)
291
+
292
+ self.network_client.agents.assert_called_once_with(
293
+ **{
294
+ 'marker': self.network_agents[0].id,
295
+ 'limit': 1,
296
+ }
297
+ )
298
+ self.assertEqual(self.columns, columns)
299
+ self.assertEqual(self.data, list(data))
300
+
252
301
  def test_network_agents_list_agent_type(self):
253
302
  arglist = [
254
303
  '--agent-type',
@@ -340,8 +389,8 @@ class TestListNetworkAgent(TestNetworkAgent):
340
389
  )
341
390
 
342
391
  # Add a column 'HA State' and corresponding data.
343
- router_agent_columns = self.columns + ('HA State',)
344
- router_agent_data = [d + ('',) for d in self.data]
392
+ router_agent_columns = (*self.columns, 'HA State')
393
+ router_agent_data = [(*d, '') for d in self.data]
345
394
 
346
395
  self.assertEqual(router_agent_columns, columns)
347
396
  self.assertEqual(len(router_agent_data), len(list(data)))
@@ -541,8 +590,9 @@ class TestShowNetworkAgent(TestNetworkAgent):
541
590
  'configuration',
542
591
  'created_at',
543
592
  'description',
544
- 'host',
593
+ 'ha_chassis_priority',
545
594
  'ha_state',
595
+ 'host',
546
596
  'id',
547
597
  'last_heartbeat_at',
548
598
  'resources_synced',
@@ -558,6 +608,9 @@ class TestShowNetworkAgent(TestNetworkAgent):
558
608
  format_columns.DictColumn(_network_agent.configuration),
559
609
  _network_agent.created_at,
560
610
  _network_agent.description,
611
+ # NOTE(ralonsoh): `ha_chassis_priority` column is still not supported
612
+ # by the API. See LP#2103521.
613
+ None,
561
614
  _network_agent.ha_state,
562
615
  _network_agent.host,
563
616
  _network_agent.id,
@@ -601,5 +654,5 @@ class TestShowNetworkAgent(TestNetworkAgent):
601
654
  self.network_client.get_agent.assert_called_once_with(
602
655
  self._network_agent.id
603
656
  )
604
- self.assertEqual(set(self.columns), set(columns))
657
+ self.assertCountEqual(self.columns, columns)
605
658
  self.assertEqual(len(list(self.data)), len(list(data)))
@@ -167,7 +167,7 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology):
167
167
  ]
168
168
 
169
169
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
170
- columns, data = self.cmd.take_action(parsed_args)
170
+ _columns, _data = self.cmd.take_action(parsed_args)
171
171
 
172
172
  self.network_client.validate_auto_allocated_topology.assert_called_with(
173
173
  None
@@ -185,7 +185,7 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology):
185
185
  ]
186
186
 
187
187
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
188
- columns, data = self.cmd.take_action(parsed_args)
188
+ _columns, _data = self.cmd.take_action(parsed_args)
189
189
 
190
190
  self.network_client.validate_auto_allocated_topology.assert_called_with(
191
191
  self.project.id
@@ -206,7 +206,7 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology):
206
206
  ]
207
207
 
208
208
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
209
- columns, data = self.cmd.take_action(parsed_args)
209
+ _columns, _data = self.cmd.take_action(parsed_args)
210
210
 
211
211
  self.network_client.validate_auto_allocated_topology.assert_called_with(
212
212
  self.project.id
@@ -71,7 +71,7 @@ class TestAddNetworkFlavorToProfile(TestNetworkFlavor):
71
71
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
72
72
  self.cmd.take_action(parsed_args)
73
73
 
74
- self.network_client.associate_flavor_with_service_profile.assert_called_once_with( # noqa: E501
74
+ self.network_client.associate_flavor_with_service_profile.assert_called_once_with(
75
75
  self.network_flavor, self.service_profile
76
76
  )
77
77
 
@@ -335,6 +335,30 @@ class TestListNetworkFlavor(TestNetworkFlavor):
335
335
  self.assertEqual(set(self.columns), set(columns))
336
336
  self.assertEqual(self.data, list(data))
337
337
 
338
+ def test_network_flavor_list_pagination(self):
339
+ arglist = [
340
+ '--marker',
341
+ self._network_flavors[0].id,
342
+ '--limit',
343
+ '1',
344
+ ]
345
+ verifylist = [
346
+ ('marker', self._network_flavors[0].id),
347
+ ('limit', 1),
348
+ ]
349
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
350
+
351
+ columns, data = self.cmd.take_action(parsed_args)
352
+
353
+ self.network_client.flavors.assert_called_once_with(
354
+ **{
355
+ 'marker': self._network_flavors[0].id,
356
+ 'limit': 1,
357
+ }
358
+ )
359
+ self.assertEqual(self.columns, columns)
360
+ self.assertEqual(self.data, list(data))
361
+
338
362
 
339
363
  class TestRemoveNetworkFlavorFromProfile(TestNetworkFlavor):
340
364
  network_flavor = network_fakes.create_one_network_flavor()
@@ -377,7 +401,7 @@ class TestRemoveNetworkFlavorFromProfile(TestNetworkFlavor):
377
401
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
378
402
  self.cmd.take_action(parsed_args)
379
403
 
380
- self.network_client.disassociate_flavor_from_service_profile.assert_called_once_with( # noqa: E501
404
+ self.network_client.disassociate_flavor_from_service_profile.assert_called_once_with(
381
405
  self.network_flavor, self.service_profile
382
406
  )
383
407
 
@@ -332,6 +332,30 @@ class TestListFlavorProfile(TestFlavorProfile):
332
332
  self.assertEqual(self.columns, columns)
333
333
  self.assertEqual(self.data, list(data))
334
334
 
335
+ def test_network_flavor_profile_list_pagination(self):
336
+ arglist = [
337
+ '--marker',
338
+ self._network_flavor_profiles[0].id,
339
+ '--limit',
340
+ '1',
341
+ ]
342
+ verifylist = [
343
+ ('marker', self._network_flavor_profiles[0].id),
344
+ ('limit', 1),
345
+ ]
346
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
347
+
348
+ columns, data = self.cmd.take_action(parsed_args)
349
+
350
+ self.network_client.service_profiles.assert_called_once_with(
351
+ **{
352
+ 'marker': self._network_flavor_profiles[0].id,
353
+ 'limit': 1,
354
+ }
355
+ )
356
+ self.assertEqual(self.columns, columns)
357
+ self.assertEqual(self.data, list(data))
358
+
335
359
 
336
360
  class TestShowFlavorProfile(TestFlavorProfile):
337
361
  # The network flavor profile to show.
@@ -250,6 +250,30 @@ class TestListMeter(TestMeter):
250
250
  self.assertEqual(self.columns, columns)
251
251
  self.assertEqual(self.data, list(data))
252
252
 
253
+ def test_meter_list_pagination(self):
254
+ arglist = [
255
+ '--marker',
256
+ self.meter_list[0].id,
257
+ '--limit',
258
+ '1',
259
+ ]
260
+ verifylist = [
261
+ ('marker', self.meter_list[0].id),
262
+ ('limit', 1),
263
+ ]
264
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
265
+
266
+ columns, data = self.cmd.take_action(parsed_args)
267
+
268
+ self.network_client.metering_labels.assert_called_once_with(
269
+ **{
270
+ 'marker': self.meter_list[0].id,
271
+ 'limit': 1,
272
+ }
273
+ )
274
+ self.assertEqual(self.columns, columns)
275
+ self.assertEqual(self.data, list(data))
276
+
253
277
 
254
278
  class TestShowMeter(TestMeter):
255
279
  new_meter = network_fakes.FakeNetworkMeter.create_one_meter()
@@ -28,7 +28,7 @@ class TestQosPolicy(network_fakes.TestNetworkV2):
28
28
  def setUp(self):
29
29
  super().setUp()
30
30
  # Get a shortcut to the ProjectManager Mock
31
- self.projects_mock = self.app.client_manager.identity.projects
31
+ self.projects_mock = self.identity_client.projects
32
32
 
33
33
 
34
34
  class TestCreateNetworkQosPolicy(TestQosPolicy):
@@ -280,6 +280,30 @@ class TestListNetworkQosPolicy(TestQosPolicy):
280
280
  self.assertEqual(self.columns, columns)
281
281
  self.assertEqual(self.data, list(data))
282
282
 
283
+ def test_qos_policy_list_pagination(self):
284
+ arglist = [
285
+ '--marker',
286
+ self.qos_policies[0].id,
287
+ '--limit',
288
+ '1',
289
+ ]
290
+ verifylist = [
291
+ ('marker', self.qos_policies[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.qos_policies.assert_called_once_with(
299
+ **{
300
+ 'marker': self.qos_policies[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_qos_policy_list_share(self):
284
308
  arglist = [
285
309
  '--share',
@@ -226,7 +226,7 @@ class TestCreateNetworkQosRuleMinimumPacketRate(TestNetworkQosRule):
226
226
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
227
227
  columns, data = self.cmd.take_action(parsed_args)
228
228
 
229
- self.network_client.create_qos_minimum_packet_rate_rule.assert_called_once_with( # noqa: E501
229
+ self.network_client.create_qos_minimum_packet_rate_rule.assert_called_once_with(
230
230
  self.qos_policy.id,
231
231
  **{
232
232
  'min_kpps': self.new_rule.min_kpps,
@@ -613,7 +613,7 @@ class TestDeleteNetworkQosRuleMinimumPacketRate(TestNetworkQosRule):
613
613
  self.network_client.find_qos_policy.assert_called_once_with(
614
614
  self.qos_policy.id, ignore_missing=False
615
615
  )
616
- self.network_client.delete_qos_minimum_packet_rate_rule.assert_called_once_with( # noqa: E501
616
+ self.network_client.delete_qos_minimum_packet_rate_rule.assert_called_once_with(
617
617
  self.new_rule.id, self.qos_policy.id
618
618
  )
619
619
  self.assertIsNone(result)
@@ -126,3 +126,27 @@ class TestListNetworkQosRuleType(TestNetworkQosRuleType):
126
126
  )
127
127
  self.assertEqual(self.columns, columns)
128
128
  self.assertEqual(self.data, list(data))
129
+
130
+ def test_qos_rule_type_list_pagination(self):
131
+ arglist = [
132
+ '--marker',
133
+ self.qos_rule_types[0].type,
134
+ '--limit',
135
+ '1',
136
+ ]
137
+ verifylist = [
138
+ ('marker', self.qos_rule_types[0].type),
139
+ ('limit', 1),
140
+ ]
141
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
142
+
143
+ columns, data = self.cmd.take_action(parsed_args)
144
+
145
+ self.network_client.qos_rule_types.assert_called_once_with(
146
+ **{
147
+ 'marker': self.qos_rule_types[0].type,
148
+ 'limit': 1,
149
+ }
150
+ )
151
+ self.assertEqual(self.columns, columns)
152
+ self.assertEqual(self.data, list(data))
@@ -224,7 +224,7 @@ class TestCreateNetworkRBAC(TestNetworkRBAC):
224
224
  ]
225
225
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
226
226
 
227
- columns, data = self.cmd.take_action(parsed_args)
227
+ _columns, _data = self.cmd.take_action(parsed_args)
228
228
 
229
229
  self.network_client.create_rbac_policy.assert_called_with(
230
230
  **{
@@ -469,6 +469,30 @@ class TestListNetworkRABC(TestNetworkRBAC):
469
469
  self.assertEqual(self.columns, columns)
470
470
  self.assertEqual(self.data, list(data))
471
471
 
472
+ def test_network_rbac_list_pagination(self):
473
+ arglist = [
474
+ '--marker',
475
+ self.rbac_policies[0].id,
476
+ '--limit',
477
+ '1',
478
+ ]
479
+ verifylist = [
480
+ ('marker', self.rbac_policies[0].id),
481
+ ('limit', 1),
482
+ ]
483
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
484
+
485
+ columns, data = self.cmd.take_action(parsed_args)
486
+
487
+ self.network_client.rbac_policies.assert_called_once_with(
488
+ **{
489
+ 'marker': self.rbac_policies[0].id,
490
+ 'limit': 1,
491
+ }
492
+ )
493
+ self.assertEqual(self.columns, columns)
494
+ self.assertEqual(self.data, list(data))
495
+
472
496
  def test_network_rbac_list_type_opt(self):
473
497
  arglist = [
474
498
  '--type',