python-openstackclient 8.2.0__py3-none-any.whl → 9.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. openstackclient/api/object_store_v1.py +4 -1
  2. openstackclient/command.py +27 -0
  3. openstackclient/common/availability_zone.py +1 -1
  4. openstackclient/common/clientmanager.py +59 -21
  5. openstackclient/common/configuration.py +1 -1
  6. openstackclient/common/extension.py +1 -1
  7. openstackclient/common/limits.py +1 -1
  8. openstackclient/common/module.py +5 -3
  9. openstackclient/common/project_cleanup.py +10 -8
  10. openstackclient/common/quota.py +54 -23
  11. openstackclient/common/versions.py +1 -2
  12. openstackclient/compute/v2/agent.py +1 -1
  13. openstackclient/compute/v2/aggregate.py +6 -5
  14. openstackclient/compute/v2/console.py +5 -3
  15. openstackclient/compute/v2/console_connection.py +1 -1
  16. openstackclient/compute/v2/flavor.py +1 -1
  17. openstackclient/compute/v2/host.py +1 -1
  18. openstackclient/compute/v2/hypervisor.py +1 -1
  19. openstackclient/compute/v2/hypervisor_stats.py +1 -1
  20. openstackclient/compute/v2/keypair.py +1 -1
  21. openstackclient/compute/v2/server.py +78 -29
  22. openstackclient/compute/v2/server_backup.py +1 -1
  23. openstackclient/compute/v2/server_event.py +1 -1
  24. openstackclient/compute/v2/server_group.py +4 -2
  25. openstackclient/compute/v2/server_image.py +1 -1
  26. openstackclient/compute/v2/server_migration.py +1 -1
  27. openstackclient/compute/v2/server_volume.py +1 -1
  28. openstackclient/compute/v2/service.py +1 -1
  29. openstackclient/compute/v2/usage.py +6 -4
  30. openstackclient/identity/common.py +33 -1
  31. openstackclient/identity/v2_0/catalog.py +3 -2
  32. openstackclient/identity/v2_0/ec2creds.py +1 -1
  33. openstackclient/identity/v2_0/endpoint.py +1 -1
  34. openstackclient/identity/v2_0/project.py +17 -7
  35. openstackclient/identity/v2_0/role.py +1 -1
  36. openstackclient/identity/v2_0/role_assignment.py +3 -3
  37. openstackclient/identity/v2_0/service.py +4 -2
  38. openstackclient/identity/v2_0/token.py +1 -1
  39. openstackclient/identity/v2_0/user.py +2 -2
  40. openstackclient/identity/v3/access_rule.py +16 -4
  41. openstackclient/identity/v3/application_credential.py +30 -10
  42. openstackclient/identity/v3/catalog.py +3 -3
  43. openstackclient/identity/v3/consumer.py +1 -1
  44. openstackclient/identity/v3/credential.py +1 -1
  45. openstackclient/identity/v3/domain.py +10 -4
  46. openstackclient/identity/v3/ec2creds.py +1 -1
  47. openstackclient/identity/v3/endpoint.py +33 -12
  48. openstackclient/identity/v3/endpoint_group.py +1 -1
  49. openstackclient/identity/v3/federation_protocol.py +40 -41
  50. openstackclient/identity/v3/group.py +11 -5
  51. openstackclient/identity/v3/identity_provider.py +12 -10
  52. openstackclient/identity/v3/implied_role.py +1 -1
  53. openstackclient/identity/v3/limit.py +86 -85
  54. openstackclient/identity/v3/mapping.py +1 -1
  55. openstackclient/identity/v3/policy.py +1 -1
  56. openstackclient/identity/v3/project.py +191 -115
  57. openstackclient/identity/v3/region.py +1 -1
  58. openstackclient/identity/v3/registered_limit.py +97 -109
  59. openstackclient/identity/v3/role.py +20 -39
  60. openstackclient/identity/v3/role_assignment.py +12 -23
  61. openstackclient/identity/v3/service.py +1 -1
  62. openstackclient/identity/v3/service_provider.py +1 -1
  63. openstackclient/identity/v3/tag.py +1 -11
  64. openstackclient/identity/v3/token.py +3 -2
  65. openstackclient/identity/v3/trust.py +4 -2
  66. openstackclient/identity/v3/unscoped_saml.py +1 -1
  67. openstackclient/identity/v3/user.py +22 -13
  68. openstackclient/image/v1/image.py +19 -16
  69. openstackclient/image/v2/cache.py +1 -1
  70. openstackclient/image/v2/image.py +16 -12
  71. openstackclient/image/v2/info.py +1 -1
  72. openstackclient/image/v2/metadef_namespaces.py +1 -1
  73. openstackclient/image/v2/metadef_objects.py +1 -1
  74. openstackclient/image/v2/metadef_properties.py +3 -2
  75. openstackclient/image/v2/metadef_resource_type_association.py +1 -1
  76. openstackclient/image/v2/metadef_resource_types.py +1 -1
  77. openstackclient/image/v2/task.py +1 -1
  78. openstackclient/network/common.py +10 -9
  79. openstackclient/network/v2/address_group.py +4 -3
  80. openstackclient/network/v2/address_scope.py +8 -6
  81. openstackclient/network/v2/default_security_group_rule.py +9 -8
  82. openstackclient/network/v2/floating_ip.py +16 -9
  83. openstackclient/network/v2/floating_ip_port_forwarding.py +9 -6
  84. openstackclient/network/v2/ip_availability.py +7 -4
  85. openstackclient/network/v2/l3_conntrack_helper.py +11 -4
  86. openstackclient/network/v2/local_ip.py +13 -7
  87. openstackclient/network/v2/local_ip_association.py +7 -4
  88. openstackclient/network/v2/ndp_proxy.py +13 -6
  89. openstackclient/network/v2/network.py +33 -16
  90. openstackclient/network/v2/network_agent.py +5 -5
  91. openstackclient/network/v2/network_auto_allocated_topology.py +1 -1
  92. openstackclient/network/v2/network_flavor.py +1 -1
  93. openstackclient/network/v2/network_flavor_profile.py +1 -1
  94. openstackclient/network/v2/network_meter.py +1 -1
  95. openstackclient/network/v2/network_meter_rule.py +1 -1
  96. openstackclient/network/v2/network_qos_policy.py +7 -5
  97. openstackclient/network/v2/network_qos_rule.py +1 -1
  98. openstackclient/network/v2/network_qos_rule_type.py +1 -1
  99. openstackclient/network/v2/network_rbac.py +8 -5
  100. openstackclient/network/v2/network_segment.py +2 -2
  101. openstackclient/network/v2/network_segment_range.py +13 -6
  102. openstackclient/network/v2/network_service_provider.py +1 -1
  103. openstackclient/network/v2/network_trunk.py +65 -42
  104. openstackclient/network/v2/port.py +22 -20
  105. openstackclient/network/v2/router.py +19 -8
  106. openstackclient/network/v2/security_group.py +10 -6
  107. openstackclient/network/v2/security_group_rule.py +11 -5
  108. openstackclient/network/v2/subnet.py +17 -18
  109. openstackclient/network/v2/subnet_pool.py +11 -9
  110. openstackclient/network/v2/taas/__init__.py +0 -0
  111. openstackclient/network/v2/taas/tap_flow.py +245 -0
  112. openstackclient/network/v2/taas/tap_mirror.py +237 -0
  113. openstackclient/network/v2/taas/tap_service.py +211 -0
  114. openstackclient/object/v1/account.py +1 -1
  115. openstackclient/object/v1/container.py +1 -1
  116. openstackclient/object/v1/object.py +1 -1
  117. openstackclient/shell.py +18 -8
  118. openstackclient/tests/functional/identity/v3/test_catalog.py +42 -23
  119. openstackclient/tests/functional/identity/v3/test_limit.py +47 -0
  120. openstackclient/tests/functional/identity/v3/test_role_assignment.py +174 -0
  121. openstackclient/tests/functional/image/v2/test_cache.py +54 -0
  122. openstackclient/tests/functional/image/v2/test_metadef_objects.py +69 -0
  123. openstackclient/tests/functional/image/v2/test_metadef_resource_type.py +55 -0
  124. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +46 -132
  125. openstackclient/tests/unit/common/test_command.py +1 -1
  126. openstackclient/tests/unit/common/test_extension.py +2 -3
  127. openstackclient/tests/unit/common/test_module.py +14 -7
  128. openstackclient/tests/unit/common/test_quota.py +79 -0
  129. openstackclient/tests/unit/compute/v2/test_aggregate.py +5 -3
  130. openstackclient/tests/unit/compute/v2/test_console.py +1 -4
  131. openstackclient/tests/unit/compute/v2/test_flavor.py +1 -3
  132. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -9
  133. openstackclient/tests/unit/compute/v2/test_server.py +370 -38
  134. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -3
  135. openstackclient/tests/unit/compute/v2/test_service.py +1 -3
  136. openstackclient/tests/unit/fakes.py +35 -134
  137. openstackclient/tests/unit/identity/test_common.py +100 -0
  138. openstackclient/tests/unit/identity/v2_0/test_project.py +4 -4
  139. openstackclient/tests/unit/identity/v3/fakes.py +10 -2
  140. openstackclient/tests/unit/identity/v3/test_application_credential.py +3 -3
  141. openstackclient/tests/unit/identity/v3/test_domain.py +1 -1
  142. openstackclient/tests/unit/identity/v3/test_endpoint.py +1 -1
  143. openstackclient/tests/unit/identity/v3/test_group.py +4 -2
  144. openstackclient/tests/unit/identity/v3/test_identity_provider.py +10 -10
  145. openstackclient/tests/unit/identity/v3/test_limit.py +197 -145
  146. openstackclient/tests/unit/identity/v3/test_oauth.py +1 -1
  147. openstackclient/tests/unit/identity/v3/test_project.py +832 -513
  148. openstackclient/tests/unit/identity/v3/test_protocol.py +97 -88
  149. openstackclient/tests/unit/identity/v3/test_registered_limit.py +356 -221
  150. openstackclient/tests/unit/identity/v3/test_role.py +1 -82
  151. openstackclient/tests/unit/identity/v3/test_user.py +7 -51
  152. openstackclient/tests/unit/image/v2/test_image.py +116 -5
  153. openstackclient/tests/unit/network/test_common.py +9 -13
  154. openstackclient/tests/unit/network/v2/taas/__init__.py +0 -0
  155. openstackclient/tests/unit/network/v2/taas/test_osc_tap_flow.py +276 -0
  156. openstackclient/tests/unit/network/v2/taas/test_osc_tap_mirror.py +288 -0
  157. openstackclient/tests/unit/network/v2/taas/test_osc_tap_service.py +271 -0
  158. openstackclient/tests/unit/network/v2/test_address_group.py +19 -22
  159. openstackclient/tests/unit/network/v2/test_address_scope.py +10 -15
  160. openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +38 -49
  161. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +21 -27
  162. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +21 -18
  163. openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -8
  164. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +6 -15
  165. openstackclient/tests/unit/network/v2/test_local_ip.py +12 -23
  166. openstackclient/tests/unit/network/v2/test_local_ip_association.py +13 -18
  167. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +11 -21
  168. openstackclient/tests/unit/network/v2/test_network.py +41 -37
  169. openstackclient/tests/unit/network/v2/test_network_agent.py +13 -20
  170. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +5 -8
  171. openstackclient/tests/unit/network/v2/test_network_flavor.py +14 -26
  172. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +14 -17
  173. openstackclient/tests/unit/network/v2/test_network_meter.py +7 -17
  174. openstackclient/tests/unit/network/v2/test_network_meter_rule.py +10 -20
  175. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +7 -13
  176. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +44 -54
  177. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +2 -7
  178. openstackclient/tests/unit/network/v2/test_network_rbac.py +21 -36
  179. openstackclient/tests/unit/network/v2/test_network_segment.py +13 -29
  180. openstackclient/tests/unit/network/v2/test_network_segment_range.py +20 -19
  181. openstackclient/tests/unit/network/v2/test_network_service_provider.py +1 -4
  182. openstackclient/tests/unit/network/v2/test_network_trunk.py +52 -47
  183. openstackclient/tests/unit/network/v2/test_port.py +75 -86
  184. openstackclient/tests/unit/network/v2/test_router.py +104 -126
  185. openstackclient/tests/unit/network/v2/test_security_group_network.py +19 -26
  186. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +17 -18
  187. openstackclient/tests/unit/network/v2/test_subnet.py +35 -46
  188. openstackclient/tests/unit/network/v2/test_subnet_pool.py +21 -33
  189. openstackclient/tests/unit/volume/test_find_resource.py +4 -13
  190. openstackclient/tests/unit/volume/v2/test_consistency_group.py +8 -2
  191. openstackclient/tests/unit/volume/v2/test_volume.py +7 -6
  192. openstackclient/tests/unit/volume/v2/test_volume_backup.py +3 -1
  193. openstackclient/tests/unit/volume/v3/test_volume.py +38 -12
  194. openstackclient/tests/unit/volume/v3/test_volume_backup.py +9 -0
  195. openstackclient/volume/client.py +7 -17
  196. openstackclient/volume/v2/backup_record.py +1 -1
  197. openstackclient/volume/v2/consistency_group.py +9 -9
  198. openstackclient/volume/v2/consistency_group_snapshot.py +3 -3
  199. openstackclient/volume/v2/qos_specs.py +3 -3
  200. openstackclient/volume/v2/service.py +1 -1
  201. openstackclient/volume/v2/volume.py +14 -7
  202. openstackclient/volume/v2/volume_backend.py +1 -1
  203. openstackclient/volume/v2/volume_backup.py +7 -5
  204. openstackclient/volume/v2/volume_host.py +1 -2
  205. openstackclient/volume/v2/volume_snapshot.py +4 -4
  206. openstackclient/volume/v2/volume_transfer_request.py +3 -3
  207. openstackclient/volume/v2/volume_type.py +16 -11
  208. openstackclient/volume/v3/block_storage_cleanup.py +1 -1
  209. openstackclient/volume/v3/block_storage_cluster.py +1 -1
  210. openstackclient/volume/v3/block_storage_log_level.py +1 -1
  211. openstackclient/volume/v3/block_storage_manage.py +1 -1
  212. openstackclient/volume/v3/block_storage_resource_filter.py +1 -1
  213. openstackclient/volume/v3/service.py +1 -1
  214. openstackclient/volume/v3/volume.py +16 -9
  215. openstackclient/volume/v3/volume_attachment.py +6 -5
  216. openstackclient/volume/v3/volume_backup.py +20 -5
  217. openstackclient/volume/v3/volume_group.py +1 -1
  218. openstackclient/volume/v3/volume_group_snapshot.py +1 -1
  219. openstackclient/volume/v3/volume_group_type.py +1 -1
  220. openstackclient/volume/v3/volume_message.py +1 -1
  221. openstackclient/volume/v3/volume_snapshot.py +4 -4
  222. openstackclient/volume/v3/volume_transfer_request.py +3 -3
  223. openstackclient/volume/v3/volume_type.py +20 -14
  224. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/METADATA +15 -13
  225. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/RECORD +231 -219
  226. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/WHEEL +1 -1
  227. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/entry_points.txt +15 -0
  228. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info/licenses}/AUTHORS +15 -0
  229. python_openstackclient-9.0.0.dist-info/pbr.json +1 -0
  230. openstackclient/tests/unit/common/test_logs.py +0 -221
  231. python_openstackclient-8.2.0.dist-info/pbr.json +0 -1
  232. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info/licenses}/LICENSE +0 -0
  233. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.3.2)
2
+ Generator: setuptools (82.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -502,6 +502,21 @@ subnet_pool_unset = openstackclient.network.v2.subnet_pool:UnsetSubnetPool
502
502
  subnet_set = openstackclient.network.v2.subnet:SetSubnet
503
503
  subnet_show = openstackclient.network.v2.subnet:ShowSubnet
504
504
  subnet_unset = openstackclient.network.v2.subnet:UnsetSubnet
505
+ tap_flow_create = openstackclient.network.v2.taas.tap_flow:CreateTapFlow
506
+ tap_flow_delete = openstackclient.network.v2.taas.tap_flow:DeleteTapFlow
507
+ tap_flow_list = openstackclient.network.v2.taas.tap_flow:ListTapFlow
508
+ tap_flow_show = openstackclient.network.v2.taas.tap_flow:ShowTapFlow
509
+ tap_flow_update = openstackclient.network.v2.taas.tap_flow:UpdateTapFlow
510
+ tap_mirror_create = openstackclient.network.v2.taas.tap_mirror:CreateTapMirror
511
+ tap_mirror_delete = openstackclient.network.v2.taas.tap_mirror:DeleteTapMirror
512
+ tap_mirror_list = openstackclient.network.v2.taas.tap_mirror:ListTapMirror
513
+ tap_mirror_show = openstackclient.network.v2.taas.tap_mirror:ShowTapMirror
514
+ tap_mirror_update = openstackclient.network.v2.taas.tap_mirror:UpdateTapMirror
515
+ tap_service_create = openstackclient.network.v2.taas.tap_service:CreateTapService
516
+ tap_service_delete = openstackclient.network.v2.taas.tap_service:DeleteTapService
517
+ tap_service_list = openstackclient.network.v2.taas.tap_service:ListTapService
518
+ tap_service_show = openstackclient.network.v2.taas.tap_service:ShowTapService
519
+ tap_service_update = openstackclient.network.v2.taas.tap_service:UpdateTapService
505
520
 
506
521
  [openstack.object_store.v1]
507
522
  container_create = openstackclient.object.v1.container:CreateContainer
@@ -1,6 +1,7 @@
1
1
  0weng <oweng@osuosl.org>
2
2
  Aaron Rosen <aaronorosen@gmail.com>
3
3
  Abhishek Chanda <abhishek@cloudscaling.com>
4
+ Abhishek Kekane <akekane@redhat.com>
4
5
  Abhishek Raut <rauta@vmware.com>
5
6
  Adam Harwell <flux.adam@gmail.com>
6
7
  Adam Spiers <aspiers@suse.com>
@@ -27,6 +28,7 @@ Andreas Jaeger <aj@suse.com>
27
28
  Andreas Jaeger <aj@suse.de>
28
29
  Andrey Kurilin <akurilin@mirantis.com>
29
30
  Andrey Larionov <anlarionov@gmail.com>
31
+ Andriy Kurilin <andr.kurilin@gmail.com>
30
32
  Anh Tran <anhtt@vn.fujitsu.com>
31
33
  Anindita Das <anindita.das@intel.com>
32
34
  Anita Kuno <anteaya@anteaya.info>
@@ -130,6 +132,7 @@ Elod Illes <elod.illes@est.tech>
130
132
  Emilien Macchi <emilien@redhat.com>
131
133
  Eric Brown <browne@vmware.com>
132
134
  Eric Fried <openstack@fried.cc>
135
+ Eric Harney <eharney@redhat.com>
133
136
  Fan Zhang <zh.f@outlook.com>
134
137
  Fang Zhen <zhen.fang@easystack.cn>
135
138
  Fei Long Wang <flwang@catalyst.net.nz>
@@ -244,6 +247,7 @@ Kendall Nelson <kennelson11@gmail.com>
244
247
  Kenneth Chu <chukenne@ca.ibm.com>
245
248
  Kevin_Zheng <zhengzhenyu@huawei.com>
246
249
  Khomesh Thakre <khomeshthakre24@gmail.com>
250
+ Koya Watanabe <koywatan@lycorp.co.jp>
247
251
  Kristi Nikolla <knikolla@bu.edu>
248
252
  Kyrylo Romanenko <kromanenko@mirantis.com>
249
253
  LEE JAE YONG <jaeljy135@gmail.com>
@@ -257,6 +261,7 @@ Lingxian Kong <anlin.kong@gmail.com>
257
261
  LiuNanke <nanke.liu@easystack.cn>
258
262
  Lorin Hochstein <lorin@nimbisservices.com>
259
263
  Lu lei <lei.lu@easystack.cn>
264
+ Luan Utimura <luan.utimura@luizalabs.com>
260
265
  Léo GEORGEL <leo.georgel@osones.com>
261
266
  M V P Nitesh <m.nitesh@nectechnologies.in>
262
267
  Maari Tamm <tamm.maari@gmail.com>
@@ -275,6 +280,7 @@ Martin Chlumsky <martin.chlumsky@gmail.com>
275
280
  Martin Schuppert <mschuppert@redhat.com>
276
281
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
277
282
  Masayuki Igawa <masayuki@igawa.io>
283
+ Matt Anson <matta@stackhpc.com>
278
284
  Matt Fischer <matt@mattfischer.com>
279
285
  Matt Joyce <matt.joyce@cloudscaling.com>
280
286
  Matt Riedemann <mriedem.os@gmail.com>
@@ -290,6 +296,7 @@ Miguel Lavalle <mlavalle@redhat.com>
290
296
  Mike Fedosin <mfedosin@redhat.com>
291
297
  Mikhail Feoktistov <mfeoktistov@virtuozzo.com>
292
298
  Min Min Ren <rminmin@cn.ibm.com>
299
+ Miro Tomaska <mtomaska@redhat.com>
293
300
  Mohammed Al-Dokimi <maldokim@redhat.com>
294
301
  Mohammed Naser <mnaser@vexxhost.com>
295
302
  Mohan Muppidi <mkumar2301@gmail.com>
@@ -328,6 +335,7 @@ Petr Blaho <pblaho@redhat.com>
328
335
  Pierre Hanselmann <pierre.hanselmann@gmail.com>
329
336
  Pierre Prinetti <pierreprinetti@redhat.com>
330
337
  Pierre Riteau <pierre@stackhpc.com>
338
+ Piotr Sipika <psipika@bloomberg.net>
331
339
  Przemyslaw Szczerbik <przemyslaw.szczerbik@est.tech>
332
340
  Qiu Yu <qiuyu@ebaysf.com>
333
341
  Radoslaw Smigielski <radoslaw.smigielski@nokia.com>
@@ -462,6 +470,7 @@ ZhongShengping <chdzsp@163.com>
462
470
  Zhou Zhihong <zhouzhihong@cmss.chinamobile.com>
463
471
  adrian-turjak <adriant@catalyst.net.nz>
464
472
  asarfaty <asarfaty@vmware.com>
473
+ asdasd7183 <yoonsookim1102@gmail.com>
465
474
  blue55 <yllan@fiberhome.com>
466
475
  caoyuan <cao.yuan@99cloud.net>
467
476
  chengkunye <chengkun@unitedstack.com>
@@ -472,7 +481,9 @@ cw0306-lee <us0310306@gmail.com>
472
481
  daizhiyong <zhiyong.dai@easystack.cn>
473
482
  devMuscle <hongsbien@naver.com>
474
483
  djp <dimsss0607@gmail.com>
484
+ dlawton <dlawton@redhat.com>
475
485
  dna <la18byeol@gmail.com>
486
+ doburn <kwon2852@gmail.com>
476
487
  dongwenshuai <dong.wenshuai@zte.com.cn>
477
488
  elajkat <lajos.katona@est.tech>
478
489
  gecong1973 <ge.cong@zte.com.cn>
@@ -497,6 +508,7 @@ jiahui.qiang <jiahui.qiang@easystack.cn>
497
508
  jiangpch <jiangpengcheng@navercorp.com>
498
509
  jiaxi <jiaxi@unitedstack.com>
499
510
  jichenjc <jichenjc@cn.ibm.com>
511
+ jiwonjang <kooriangman@gmail.com>
500
512
  jqjiang.1@gmail.com <jqjiang.1@gmail.com>
501
513
  judy-yu <yujie@cmss.chinamobile.com>
502
514
  kafka <guowang@unitedstack.com>
@@ -519,6 +531,7 @@ matbu <mat.bultel@gmail.com>
519
531
  mb711d <mb711d@att.com>
520
532
  melanie witt <melwittt@gmail.com>
521
533
  melissaml <ma.lei@99cloud.net>
534
+ minkyukim <mj110602@gmail.com>
522
535
  mpicea <jjh77745997@gmail.com>
523
536
  nidhimittalhada <nidhimittal19@gmail.com>
524
537
  niuke <niuke19970315@163.com>
@@ -538,6 +551,7 @@ reedip <reedip.banerjee@nectechnologies.in>
538
551
  rladntjr4 <rladntjr4@gmail.com>
539
552
  root <ranasheel2000@gmail.com>
540
553
  ryanKor <equus3144@gmail.com>
554
+ seheonnn <ho78901@naver.com>
541
555
  sharat.sharma <sharat.sharma@nectechnologies.in>
542
556
  shizhihui <zhihui.shi@easystack.cn>
543
557
  songminglong <songminglong@cmss.chinamobile.com>
@@ -561,6 +575,7 @@ wangxiyuan <wangxiyuan@huawei.com>
561
575
  wangzihao <wangzihao@yovole.com>
562
576
  whoami-rajat <rajatdhasmana@gmail.com>
563
577
  wingwj <wingwj@gmail.com>
578
+ wonjun0120 <wonjundero@gmail.com>
564
579
  wu.chunyang <wu.chunyang@99cloud.net>
565
580
  wu.chunyang <wuchunyang@yovole.com>
566
581
  wu.shiming <wushiming@yovole.com>
@@ -0,0 +1 @@
1
+ {"git_version": "64cf0c33", "is_release": true}
@@ -1,221 +0,0 @@
1
- # Licensed under the Apache License, Version 2.0 (the "License"); you may
2
- # not use this file except in compliance with the License. You may obtain
3
- # a copy of the License at
4
- #
5
- # http://www.apache.org/licenses/LICENSE-2.0
6
- #
7
- # Unless required by applicable law or agreed to in writing, software
8
- # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10
- # License for the specific language governing permissions and limitations
11
- # under the License.
12
- #
13
-
14
- # NOTE(dtroyer): This file is deprecated in Jun 2016, remove after 4.x release
15
- # or Jun 2017.
16
-
17
- import logging
18
- from unittest import mock
19
-
20
- from osc_lib import logs
21
-
22
- from openstackclient.tests.unit import utils
23
-
24
-
25
- class TestContext(utils.TestCase):
26
- def test_log_level_from_options(self):
27
- opts = mock.Mock()
28
- opts.verbose_level = 0
29
- self.assertEqual(logging.ERROR, logs.log_level_from_options(opts))
30
- opts.verbose_level = 1
31
- self.assertEqual(logging.WARNING, logs.log_level_from_options(opts))
32
- opts.verbose_level = 2
33
- self.assertEqual(logging.INFO, logs.log_level_from_options(opts))
34
- opts.verbose_level = 3
35
- self.assertEqual(logging.DEBUG, logs.log_level_from_options(opts))
36
-
37
- def test_log_level_from_config(self):
38
- cfg = {'verbose_level': 0}
39
- self.assertEqual(logging.ERROR, logs.log_level_from_config(cfg))
40
- cfg = {'verbose_level': 1}
41
- self.assertEqual(logging.WARNING, logs.log_level_from_config(cfg))
42
- cfg = {'verbose_level': 2}
43
- self.assertEqual(logging.INFO, logs.log_level_from_config(cfg))
44
- cfg = {'verbose_level': 3}
45
- self.assertEqual(logging.DEBUG, logs.log_level_from_config(cfg))
46
- cfg = {'verbose_level': 1, 'log_level': 'critical'}
47
- self.assertEqual(logging.CRITICAL, logs.log_level_from_config(cfg))
48
- cfg = {'verbose_level': 1, 'log_level': 'error'}
49
- self.assertEqual(logging.ERROR, logs.log_level_from_config(cfg))
50
- cfg = {'verbose_level': 1, 'log_level': 'warning'}
51
- self.assertEqual(logging.WARNING, logs.log_level_from_config(cfg))
52
- cfg = {'verbose_level': 1, 'log_level': 'info'}
53
- self.assertEqual(logging.INFO, logs.log_level_from_config(cfg))
54
- cfg = {'verbose_level': 1, 'log_level': 'debug'}
55
- self.assertEqual(logging.DEBUG, logs.log_level_from_config(cfg))
56
- cfg = {'verbose_level': 1, 'log_level': 'bogus'}
57
- self.assertEqual(logging.WARNING, logs.log_level_from_config(cfg))
58
- cfg = {'verbose_level': 1, 'log_level': 'info', 'debug': True}
59
- self.assertEqual(logging.DEBUG, logs.log_level_from_config(cfg))
60
-
61
- @mock.patch('warnings.simplefilter')
62
- def test_set_warning_filter(self, simplefilter):
63
- logs.set_warning_filter(logging.ERROR)
64
- simplefilter.assert_called_with("ignore")
65
- logs.set_warning_filter(logging.WARNING)
66
- simplefilter.assert_called_with("ignore")
67
- logs.set_warning_filter(logging.INFO)
68
- simplefilter.assert_called_with("once")
69
-
70
-
71
- class TestFileFormatter(utils.TestCase):
72
- def test_nothing(self):
73
- formatter = logs._FileFormatter()
74
- self.assertEqual(
75
- (
76
- '%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
77
- '%(name)s %(message)s'
78
- ),
79
- formatter.fmt,
80
- )
81
-
82
- def test_options(self):
83
- class Opts:
84
- cloud = 'cloudy'
85
- os_project_name = 'projecty'
86
- username = 'usernamey'
87
-
88
- options = Opts()
89
- formatter = logs._FileFormatter(options=options)
90
- self.assertEqual(
91
- (
92
- '%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
93
- '%(name)s [cloudy usernamey projecty] %(message)s'
94
- ),
95
- formatter.fmt,
96
- )
97
-
98
- def test_config(self):
99
- config = mock.Mock()
100
- config.config = {'cloud': 'cloudy'}
101
- config.auth = {'project_name': 'projecty', 'username': 'usernamey'}
102
- formatter = logs._FileFormatter(config=config)
103
- self.assertEqual(
104
- (
105
- '%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
106
- '%(name)s [cloudy usernamey projecty] %(message)s'
107
- ),
108
- formatter.fmt,
109
- )
110
-
111
-
112
- class TestLogConfigurator(utils.TestCase):
113
- def setUp(self):
114
- super().setUp()
115
- self.options = mock.Mock()
116
- self.options.verbose_level = 1
117
- self.options.log_file = None
118
- self.options.debug = False
119
- self.root_logger = mock.Mock()
120
- self.root_logger.setLevel = mock.Mock()
121
- self.root_logger.addHandler = mock.Mock()
122
- self.requests_log = mock.Mock()
123
- self.requests_log.setLevel = mock.Mock()
124
- self.cliff_log = mock.Mock()
125
- self.cliff_log.setLevel = mock.Mock()
126
- self.stevedore_log = mock.Mock()
127
- self.stevedore_log.setLevel = mock.Mock()
128
- self.iso8601_log = mock.Mock()
129
- self.iso8601_log.setLevel = mock.Mock()
130
- self.loggers = [
131
- self.root_logger,
132
- self.requests_log,
133
- self.cliff_log,
134
- self.stevedore_log,
135
- self.iso8601_log,
136
- ]
137
-
138
- @mock.patch('logging.StreamHandler')
139
- @mock.patch('logging.getLogger')
140
- @mock.patch('osc_lib.logs.set_warning_filter')
141
- def test_init(self, warning_filter, getLogger, handle):
142
- getLogger.side_effect = self.loggers
143
- console_logger = mock.Mock()
144
- console_logger.setFormatter = mock.Mock()
145
- console_logger.setLevel = mock.Mock()
146
- handle.return_value = console_logger
147
-
148
- configurator = logs.LogConfigurator(self.options)
149
-
150
- getLogger.assert_called_with('iso8601') # last call
151
- warning_filter.assert_called_with(logging.WARNING)
152
- self.root_logger.setLevel.assert_called_with(logging.DEBUG)
153
- self.root_logger.addHandler.assert_called_with(console_logger)
154
- self.requests_log.setLevel.assert_called_with(logging.ERROR)
155
- self.cliff_log.setLevel.assert_called_with(logging.ERROR)
156
- self.stevedore_log.setLevel.assert_called_with(logging.ERROR)
157
- self.iso8601_log.setLevel.assert_called_with(logging.ERROR)
158
- self.assertFalse(configurator.dump_trace)
159
-
160
- @mock.patch('logging.getLogger')
161
- @mock.patch('osc_lib.logs.set_warning_filter')
162
- def test_init_no_debug(self, warning_filter, getLogger):
163
- getLogger.side_effect = self.loggers
164
- self.options.debug = True
165
-
166
- configurator = logs.LogConfigurator(self.options)
167
-
168
- warning_filter.assert_called_with(logging.DEBUG)
169
- self.requests_log.setLevel.assert_called_with(logging.DEBUG)
170
- self.assertTrue(configurator.dump_trace)
171
-
172
- @mock.patch('logging.FileHandler')
173
- @mock.patch('logging.getLogger')
174
- @mock.patch('osc_lib.logs.set_warning_filter')
175
- @mock.patch('osc_lib.logs._FileFormatter')
176
- def test_init_log_file(self, formatter, warning_filter, getLogger, handle):
177
- getLogger.side_effect = self.loggers
178
- self.options.log_file = '/tmp/log_file'
179
- file_logger = mock.Mock()
180
- file_logger.setFormatter = mock.Mock()
181
- file_logger.setLevel = mock.Mock()
182
- handle.return_value = file_logger
183
- mock_formatter = mock.Mock()
184
- formatter.return_value = mock_formatter
185
-
186
- logs.LogConfigurator(self.options)
187
-
188
- handle.assert_called_with(filename=self.options.log_file)
189
- self.root_logger.addHandler.assert_called_with(file_logger)
190
- file_logger.setFormatter.assert_called_with(mock_formatter)
191
- file_logger.setLevel.assert_called_with(logging.WARNING)
192
-
193
- @mock.patch('logging.FileHandler')
194
- @mock.patch('logging.getLogger')
195
- @mock.patch('osc_lib.logs.set_warning_filter')
196
- @mock.patch('osc_lib.logs._FileFormatter')
197
- def test_configure(self, formatter, warning_filter, getLogger, handle):
198
- getLogger.side_effect = self.loggers
199
- configurator = logs.LogConfigurator(self.options)
200
- cloud_config = mock.Mock()
201
- config_log = '/tmp/config_log'
202
- cloud_config.config = {
203
- 'log_file': config_log,
204
- 'verbose_level': 1,
205
- 'log_level': 'info',
206
- }
207
- file_logger = mock.Mock()
208
- file_logger.setFormatter = mock.Mock()
209
- file_logger.setLevel = mock.Mock()
210
- handle.return_value = file_logger
211
- mock_formatter = mock.Mock()
212
- formatter.return_value = mock_formatter
213
-
214
- configurator.configure(cloud_config)
215
-
216
- warning_filter.assert_called_with(logging.INFO)
217
- handle.assert_called_with(filename=config_log)
218
- self.root_logger.addHandler.assert_called_with(file_logger)
219
- file_logger.setFormatter.assert_called_with(mock_formatter)
220
- file_logger.setLevel.assert_called_with(logging.INFO)
221
- self.assertFalse(configurator.dump_trace)
@@ -1 +0,0 @@
1
- {"git_version": "34f431ba", "is_release": true}