python-openstackclient 8.1.0__py3-none-any.whl → 8.3.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 (241) hide show
  1. openstackclient/api/compute_v2.py +2 -2
  2. openstackclient/api/object_store_v1.py +4 -1
  3. openstackclient/api/volume_v2.py +60 -0
  4. openstackclient/api/volume_v3.py +60 -0
  5. openstackclient/command.py +27 -0
  6. openstackclient/common/availability_zone.py +1 -1
  7. openstackclient/common/clientmanager.py +59 -21
  8. openstackclient/common/configuration.py +1 -1
  9. openstackclient/common/extension.py +1 -1
  10. openstackclient/common/limits.py +1 -1
  11. openstackclient/common/module.py +4 -2
  12. openstackclient/common/project_cleanup.py +10 -8
  13. openstackclient/common/quota.py +23 -6
  14. openstackclient/common/versions.py +1 -2
  15. openstackclient/compute/v2/agent.py +1 -1
  16. openstackclient/compute/v2/aggregate.py +6 -5
  17. openstackclient/compute/v2/console.py +5 -3
  18. openstackclient/compute/v2/console_connection.py +1 -1
  19. openstackclient/compute/v2/flavor.py +15 -2
  20. openstackclient/compute/v2/host.py +1 -1
  21. openstackclient/compute/v2/hypervisor.py +1 -1
  22. openstackclient/compute/v2/hypervisor_stats.py +1 -1
  23. openstackclient/compute/v2/keypair.py +1 -1
  24. openstackclient/compute/v2/server.py +77 -30
  25. openstackclient/compute/v2/server_backup.py +1 -1
  26. openstackclient/compute/v2/server_event.py +1 -1
  27. openstackclient/compute/v2/server_group.py +4 -2
  28. openstackclient/compute/v2/server_image.py +1 -1
  29. openstackclient/compute/v2/server_migration.py +1 -1
  30. openstackclient/compute/v2/server_volume.py +1 -1
  31. openstackclient/compute/v2/service.py +1 -1
  32. openstackclient/compute/v2/usage.py +6 -4
  33. openstackclient/identity/common.py +10 -14
  34. openstackclient/identity/v2_0/catalog.py +3 -2
  35. openstackclient/identity/v2_0/ec2creds.py +1 -1
  36. openstackclient/identity/v2_0/endpoint.py +1 -1
  37. openstackclient/identity/v2_0/project.py +17 -7
  38. openstackclient/identity/v2_0/role.py +1 -1
  39. openstackclient/identity/v2_0/role_assignment.py +3 -3
  40. openstackclient/identity/v2_0/service.py +1 -1
  41. openstackclient/identity/v2_0/token.py +1 -1
  42. openstackclient/identity/v2_0/user.py +2 -2
  43. openstackclient/identity/v3/access_rule.py +16 -4
  44. openstackclient/identity/v3/application_credential.py +116 -95
  45. openstackclient/identity/v3/catalog.py +3 -3
  46. openstackclient/identity/v3/consumer.py +1 -1
  47. openstackclient/identity/v3/credential.py +1 -1
  48. openstackclient/identity/v3/domain.py +15 -10
  49. openstackclient/identity/v3/ec2creds.py +1 -1
  50. openstackclient/identity/v3/endpoint.py +33 -12
  51. openstackclient/identity/v3/endpoint_group.py +1 -1
  52. openstackclient/identity/v3/federation_protocol.py +1 -1
  53. openstackclient/identity/v3/group.py +11 -5
  54. openstackclient/identity/v3/identity_provider.py +12 -10
  55. openstackclient/identity/v3/implied_role.py +1 -1
  56. openstackclient/identity/v3/limit.py +1 -1
  57. openstackclient/identity/v3/mapping.py +1 -1
  58. openstackclient/identity/v3/policy.py +1 -1
  59. openstackclient/identity/v3/project.py +34 -22
  60. openstackclient/identity/v3/region.py +1 -1
  61. openstackclient/identity/v3/registered_limit.py +16 -11
  62. openstackclient/identity/v3/role.py +27 -41
  63. openstackclient/identity/v3/role_assignment.py +12 -23
  64. openstackclient/identity/v3/service.py +1 -1
  65. openstackclient/identity/v3/service_provider.py +1 -1
  66. openstackclient/identity/v3/tag.py +3 -2
  67. openstackclient/identity/v3/token.py +3 -2
  68. openstackclient/identity/v3/trust.py +4 -2
  69. openstackclient/identity/v3/unscoped_saml.py +1 -1
  70. openstackclient/identity/v3/user.py +22 -13
  71. openstackclient/image/v1/image.py +35 -17
  72. openstackclient/image/v2/cache.py +11 -7
  73. openstackclient/image/v2/image.py +62 -12
  74. openstackclient/image/v2/info.py +1 -1
  75. openstackclient/image/v2/metadef_namespaces.py +1 -1
  76. openstackclient/image/v2/metadef_objects.py +9 -3
  77. openstackclient/image/v2/metadef_properties.py +11 -3
  78. openstackclient/image/v2/metadef_resource_type_association.py +1 -1
  79. openstackclient/image/v2/metadef_resource_types.py +1 -1
  80. openstackclient/image/v2/task.py +1 -1
  81. openstackclient/network/common.py +10 -9
  82. openstackclient/network/v2/address_group.py +4 -3
  83. openstackclient/network/v2/address_scope.py +8 -6
  84. openstackclient/network/v2/default_security_group_rule.py +9 -8
  85. openstackclient/network/v2/floating_ip.py +16 -9
  86. openstackclient/network/v2/floating_ip_port_forwarding.py +9 -6
  87. openstackclient/network/v2/ip_availability.py +7 -4
  88. openstackclient/network/v2/l3_conntrack_helper.py +11 -4
  89. openstackclient/network/v2/local_ip.py +13 -7
  90. openstackclient/network/v2/local_ip_association.py +7 -4
  91. openstackclient/network/v2/ndp_proxy.py +13 -6
  92. openstackclient/network/v2/network.py +33 -16
  93. openstackclient/network/v2/network_agent.py +5 -5
  94. openstackclient/network/v2/network_auto_allocated_topology.py +1 -1
  95. openstackclient/network/v2/network_flavor.py +1 -1
  96. openstackclient/network/v2/network_flavor_profile.py +1 -1
  97. openstackclient/network/v2/network_meter.py +1 -1
  98. openstackclient/network/v2/network_meter_rule.py +1 -1
  99. openstackclient/network/v2/network_qos_policy.py +7 -5
  100. openstackclient/network/v2/network_qos_rule.py +1 -1
  101. openstackclient/network/v2/network_qos_rule_type.py +1 -1
  102. openstackclient/network/v2/network_rbac.py +8 -5
  103. openstackclient/network/v2/network_segment.py +2 -2
  104. openstackclient/network/v2/network_segment_range.py +13 -6
  105. openstackclient/network/v2/network_service_provider.py +1 -1
  106. openstackclient/network/v2/network_trunk.py +65 -42
  107. openstackclient/network/v2/port.py +38 -20
  108. openstackclient/network/v2/router.py +19 -8
  109. openstackclient/network/v2/security_group.py +52 -7
  110. openstackclient/network/v2/security_group_rule.py +27 -4
  111. openstackclient/network/v2/subnet.py +17 -18
  112. openstackclient/network/v2/subnet_pool.py +11 -9
  113. openstackclient/network/v2/taas/__init__.py +0 -0
  114. openstackclient/network/v2/taas/tap_flow.py +245 -0
  115. openstackclient/network/v2/taas/tap_mirror.py +237 -0
  116. openstackclient/network/v2/taas/tap_service.py +211 -0
  117. openstackclient/object/v1/account.py +1 -1
  118. openstackclient/object/v1/container.py +1 -1
  119. openstackclient/object/v1/object.py +1 -1
  120. openstackclient/shell.py +18 -8
  121. openstackclient/tests/functional/identity/v3/test_access_rule.py +1 -1
  122. openstackclient/tests/functional/identity/v3/test_application_credential.py +7 -7
  123. openstackclient/tests/functional/identity/v3/test_catalog.py +42 -23
  124. openstackclient/tests/functional/identity/v3/test_role_assignment.py +174 -0
  125. openstackclient/tests/functional/image/v2/test_cache.py +54 -0
  126. openstackclient/tests/functional/image/v2/test_image.py +36 -14
  127. openstackclient/tests/functional/image/v2/test_metadef_resource_type.py +55 -0
  128. openstackclient/tests/functional/volume/v2/test_volume.py +1 -1
  129. openstackclient/tests/functional/volume/v3/test_volume.py +2 -2
  130. openstackclient/tests/unit/api/test_volume_v2.py +124 -0
  131. openstackclient/tests/unit/api/test_volume_v3.py +124 -0
  132. openstackclient/tests/unit/common/test_command.py +1 -1
  133. openstackclient/tests/unit/common/test_extension.py +2 -3
  134. openstackclient/tests/unit/common/test_module.py +14 -7
  135. openstackclient/tests/unit/common/test_quota.py +20 -0
  136. openstackclient/tests/unit/compute/v2/test_aggregate.py +5 -3
  137. openstackclient/tests/unit/compute/v2/test_console.py +1 -4
  138. openstackclient/tests/unit/compute/v2/test_flavor.py +160 -177
  139. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -9
  140. openstackclient/tests/unit/compute/v2/test_server.py +406 -81
  141. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -3
  142. openstackclient/tests/unit/compute/v2/test_service.py +1 -3
  143. openstackclient/tests/unit/fakes.py +35 -134
  144. openstackclient/tests/unit/identity/test_common.py +100 -0
  145. openstackclient/tests/unit/identity/v2_0/test_project.py +4 -4
  146. openstackclient/tests/unit/identity/v3/fakes.py +10 -2
  147. openstackclient/tests/unit/identity/v3/test_application_credential.py +50 -44
  148. openstackclient/tests/unit/identity/v3/test_domain.py +3 -3
  149. openstackclient/tests/unit/identity/v3/test_endpoint.py +1 -1
  150. openstackclient/tests/unit/identity/v3/test_group.py +4 -2
  151. openstackclient/tests/unit/identity/v3/test_identity_provider.py +10 -10
  152. openstackclient/tests/unit/identity/v3/test_oauth.py +1 -1
  153. openstackclient/tests/unit/identity/v3/test_project.py +31 -54
  154. openstackclient/tests/unit/identity/v3/test_registered_limit.py +2 -2
  155. openstackclient/tests/unit/identity/v3/test_role.py +3 -90
  156. openstackclient/tests/unit/identity/v3/test_user.py +7 -51
  157. openstackclient/tests/unit/image/v1/test_image.py +47 -0
  158. openstackclient/tests/unit/image/v2/test_image.py +190 -9
  159. openstackclient/tests/unit/image/v2/test_metadef_objects.py +22 -0
  160. openstackclient/tests/unit/image/v2/test_metadef_properties.py +24 -10
  161. openstackclient/tests/unit/network/test_common.py +9 -13
  162. openstackclient/tests/unit/network/v2/fakes.py +1 -0
  163. openstackclient/tests/unit/network/v2/taas/__init__.py +0 -0
  164. openstackclient/tests/unit/network/v2/taas/test_osc_tap_flow.py +276 -0
  165. openstackclient/tests/unit/network/v2/taas/test_osc_tap_mirror.py +288 -0
  166. openstackclient/tests/unit/network/v2/taas/test_osc_tap_service.py +271 -0
  167. openstackclient/tests/unit/network/v2/test_address_group.py +19 -22
  168. openstackclient/tests/unit/network/v2/test_address_scope.py +10 -15
  169. openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +38 -49
  170. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +21 -27
  171. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +21 -18
  172. openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -8
  173. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +6 -15
  174. openstackclient/tests/unit/network/v2/test_local_ip.py +12 -23
  175. openstackclient/tests/unit/network/v2/test_local_ip_association.py +13 -18
  176. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +13 -23
  177. openstackclient/tests/unit/network/v2/test_network.py +41 -37
  178. openstackclient/tests/unit/network/v2/test_network_agent.py +13 -20
  179. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +5 -8
  180. openstackclient/tests/unit/network/v2/test_network_flavor.py +14 -26
  181. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +14 -17
  182. openstackclient/tests/unit/network/v2/test_network_meter.py +7 -17
  183. openstackclient/tests/unit/network/v2/test_network_meter_rule.py +10 -20
  184. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +7 -13
  185. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +44 -54
  186. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +2 -7
  187. openstackclient/tests/unit/network/v2/test_network_rbac.py +21 -36
  188. openstackclient/tests/unit/network/v2/test_network_segment.py +13 -29
  189. openstackclient/tests/unit/network/v2/test_network_segment_range.py +20 -19
  190. openstackclient/tests/unit/network/v2/test_network_service_provider.py +1 -4
  191. openstackclient/tests/unit/network/v2/test_network_trunk.py +52 -47
  192. openstackclient/tests/unit/network/v2/test_port.py +113 -84
  193. openstackclient/tests/unit/network/v2/test_router.py +104 -126
  194. openstackclient/tests/unit/network/v2/test_security_group_network.py +25 -26
  195. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +66 -18
  196. openstackclient/tests/unit/network/v2/test_subnet.py +35 -46
  197. openstackclient/tests/unit/network/v2/test_subnet_pool.py +21 -33
  198. openstackclient/tests/unit/volume/test_find_resource.py +4 -13
  199. openstackclient/tests/unit/volume/v2/test_volume.py +358 -305
  200. openstackclient/tests/unit/volume/v2/test_volume_backup.py +3 -1
  201. openstackclient/tests/unit/volume/v3/test_volume.py +443 -415
  202. openstackclient/tests/unit/volume/v3/test_volume_backup.py +9 -0
  203. openstackclient/volume/client.py +7 -17
  204. openstackclient/volume/v2/backup_record.py +1 -1
  205. openstackclient/volume/v2/consistency_group.py +1 -1
  206. openstackclient/volume/v2/consistency_group_snapshot.py +1 -1
  207. openstackclient/volume/v2/qos_specs.py +1 -1
  208. openstackclient/volume/v2/service.py +2 -2
  209. openstackclient/volume/v2/volume.py +80 -54
  210. openstackclient/volume/v2/volume_backend.py +1 -1
  211. openstackclient/volume/v2/volume_backup.py +5 -3
  212. openstackclient/volume/v2/volume_host.py +1 -2
  213. openstackclient/volume/v2/volume_snapshot.py +2 -2
  214. openstackclient/volume/v2/volume_transfer_request.py +1 -1
  215. openstackclient/volume/v2/volume_type.py +11 -6
  216. openstackclient/volume/v3/block_storage_cleanup.py +1 -1
  217. openstackclient/volume/v3/block_storage_cluster.py +1 -1
  218. openstackclient/volume/v3/block_storage_log_level.py +1 -1
  219. openstackclient/volume/v3/block_storage_manage.py +1 -1
  220. openstackclient/volume/v3/block_storage_resource_filter.py +1 -1
  221. openstackclient/volume/v3/service.py +2 -2
  222. openstackclient/volume/v3/volume.py +104 -77
  223. openstackclient/volume/v3/volume_attachment.py +6 -5
  224. openstackclient/volume/v3/volume_backup.py +18 -3
  225. openstackclient/volume/v3/volume_group.py +2 -2
  226. openstackclient/volume/v3/volume_group_snapshot.py +1 -1
  227. openstackclient/volume/v3/volume_group_type.py +1 -1
  228. openstackclient/volume/v3/volume_message.py +1 -1
  229. openstackclient/volume/v3/volume_snapshot.py +2 -2
  230. openstackclient/volume/v3/volume_transfer_request.py +1 -1
  231. openstackclient/volume/v3/volume_type.py +15 -9
  232. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/METADATA +19 -17
  233. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/RECORD +239 -224
  234. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/WHEEL +1 -1
  235. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/entry_points.txt +15 -0
  236. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info/licenses}/AUTHORS +15 -0
  237. python_openstackclient-8.3.0.dist-info/pbr.json +1 -0
  238. openstackclient/tests/unit/common/test_logs.py +0 -221
  239. python_openstackclient-8.1.0.dist-info/pbr.json +0 -1
  240. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info/licenses}/LICENSE +0 -0
  241. {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.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 (80.9.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>
@@ -17,6 +18,7 @@ Alex Katz <akatz@akatz.tlv.csb>
17
18
  Alex Schultz <aschultz@mirantis.com>
18
19
  Alexander Gräb <alexander.graeb@secustack.com>
19
20
  Alexander Ignatov <aignatov@mirantis.com>
21
+ Alexey Stupnikov <aleksey.stupnikov@gmail.com>
20
22
  Alfredo Moralejo <amoralej@redhat.com>
21
23
  Allain Legacy <Allain.legacy@windriver.com>
22
24
  Alvaro Lopez Garcia <aloga@ifca.unican.es>
@@ -243,6 +245,7 @@ Kendall Nelson <kennelson11@gmail.com>
243
245
  Kenneth Chu <chukenne@ca.ibm.com>
244
246
  Kevin_Zheng <zhengzhenyu@huawei.com>
245
247
  Khomesh Thakre <khomeshthakre24@gmail.com>
248
+ Koya Watanabe <koywatan@lycorp.co.jp>
246
249
  Kristi Nikolla <knikolla@bu.edu>
247
250
  Kyrylo Romanenko <kromanenko@mirantis.com>
248
251
  LEE JAE YONG <jaeljy135@gmail.com>
@@ -256,6 +259,7 @@ Lingxian Kong <anlin.kong@gmail.com>
256
259
  LiuNanke <nanke.liu@easystack.cn>
257
260
  Lorin Hochstein <lorin@nimbisservices.com>
258
261
  Lu lei <lei.lu@easystack.cn>
262
+ Luan Utimura <luan.utimura@luizalabs.com>
259
263
  Léo GEORGEL <leo.georgel@osones.com>
260
264
  M V P Nitesh <m.nitesh@nectechnologies.in>
261
265
  Maari Tamm <tamm.maari@gmail.com>
@@ -274,6 +278,7 @@ Martin Chlumsky <martin.chlumsky@gmail.com>
274
278
  Martin Schuppert <mschuppert@redhat.com>
275
279
  Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
276
280
  Masayuki Igawa <masayuki@igawa.io>
281
+ Matt Anson <matta@stackhpc.com>
277
282
  Matt Fischer <matt@mattfischer.com>
278
283
  Matt Joyce <matt.joyce@cloudscaling.com>
279
284
  Matt Riedemann <mriedem.os@gmail.com>
@@ -289,6 +294,7 @@ Miguel Lavalle <mlavalle@redhat.com>
289
294
  Mike Fedosin <mfedosin@redhat.com>
290
295
  Mikhail Feoktistov <mfeoktistov@virtuozzo.com>
291
296
  Min Min Ren <rminmin@cn.ibm.com>
297
+ Miro Tomaska <mtomaska@redhat.com>
292
298
  Mohammed Al-Dokimi <maldokim@redhat.com>
293
299
  Mohammed Naser <mnaser@vexxhost.com>
294
300
  Mohan Muppidi <mkumar2301@gmail.com>
@@ -471,6 +477,9 @@ cw0306-lee <us0310306@gmail.com>
471
477
  daizhiyong <zhiyong.dai@easystack.cn>
472
478
  devMuscle <hongsbien@naver.com>
473
479
  djp <dimsss0607@gmail.com>
480
+ dlawton <dlawton@redhat.com>
481
+ dna <la18byeol@gmail.com>
482
+ doburn <kwon2852@gmail.com>
474
483
  dongwenshuai <dong.wenshuai@zte.com.cn>
475
484
  elajkat <lajos.katona@est.tech>
476
485
  gecong1973 <ge.cong@zte.com.cn>
@@ -484,6 +493,7 @@ hackertron <jayadityagupta11@gmail.com>
484
493
  heesom <heesom.hs@gmail.com>
485
494
  heha <zhanghanqun@unitedstack.com>
486
495
  henriquetruta <henrique@lsd.ufcg.edu.br>
496
+ hongp <inyong.hong@samsung.com>
487
497
  hoosa <janghoosa@gmail.com>
488
498
  huangshan <huangshan@fiberhome.com>
489
499
  huangtianhua <huangtianhua@huawei.com>
@@ -494,6 +504,7 @@ jiahui.qiang <jiahui.qiang@easystack.cn>
494
504
  jiangpch <jiangpengcheng@navercorp.com>
495
505
  jiaxi <jiaxi@unitedstack.com>
496
506
  jichenjc <jichenjc@cn.ibm.com>
507
+ jiwonjang <kooriangman@gmail.com>
497
508
  jqjiang.1@gmail.com <jqjiang.1@gmail.com>
498
509
  judy-yu <yujie@cmss.chinamobile.com>
499
510
  kafka <guowang@unitedstack.com>
@@ -516,15 +527,18 @@ matbu <mat.bultel@gmail.com>
516
527
  mb711d <mb711d@att.com>
517
528
  melanie witt <melwittt@gmail.com>
518
529
  melissaml <ma.lei@99cloud.net>
530
+ minkyukim <mj110602@gmail.com>
519
531
  mpicea <jjh77745997@gmail.com>
520
532
  nidhimittalhada <nidhimittal19@gmail.com>
521
533
  niuke <niuke19970315@163.com>
522
534
  npraveen35 <npraveen35@gmail.com>
535
+ ohjiwoo <jiwooo.oh@samsung.com>
523
536
  okozachenko <okozachenko@vexxhost.com>
524
537
  pedh <hcn518@gmail.com>
525
538
  pedro <phpm13@gmail.com>
526
539
  pengyuesheng <pengyuesheng@gohighsec.com>
527
540
  phil-hopkins-a <phil.hopkins@rackspace.com>
541
+ psnew14 <psnew14@gmail.com>
528
542
  qinchunhua <qin.chunhua@zte.com.cn>
529
543
  qingszhao <zhao.daqing@99cloud.net>
530
544
  qtang <qtang@vmware.com>
@@ -556,6 +570,7 @@ wangxiyuan <wangxiyuan@huawei.com>
556
570
  wangzihao <wangzihao@yovole.com>
557
571
  whoami-rajat <rajatdhasmana@gmail.com>
558
572
  wingwj <wingwj@gmail.com>
573
+ wonjun0120 <wonjundero@gmail.com>
559
574
  wu.chunyang <wu.chunyang@99cloud.net>
560
575
  wu.chunyang <wuchunyang@yovole.com>
561
576
  wu.shiming <wushiming@yovole.com>
@@ -0,0 +1 @@
1
+ {"git_version": "d1a0ede7", "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": "88b59d89", "is_release": true}