python-chi 0.17.11.dev2__tar.gz → 1.0.0__tar.gz

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 (85) hide show
  1. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/.github/CODEOWNERS +1 -1
  2. python_chi-1.0.0/.github/workflows/pypi-publish.yml +43 -0
  3. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/.readthedocs.yml +7 -1
  4. python_chi-1.0.0/AUTHORS +1 -0
  5. python_chi-1.0.0/ChangeLog +7 -0
  6. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/PKG-INFO +17 -5
  7. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/chi/__init__.py +0 -2
  8. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/chi/clients.py +29 -21
  9. python_chi-1.0.0/chi/container.py +591 -0
  10. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/chi/context.py +282 -38
  11. python_chi-1.0.0/chi/exception.py +30 -0
  12. python_chi-1.0.0/chi/hardware.py +234 -0
  13. python_chi-1.0.0/chi/image.py +129 -0
  14. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/chi/jupyterhub.py +10 -9
  15. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/chi/keypair.py +1 -0
  16. python_chi-1.0.0/chi/lease.py +1159 -0
  17. python_chi-1.0.0/chi/magic.py +262 -0
  18. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/chi/network.py +193 -179
  19. python_chi-1.0.0/chi/server.py +1073 -0
  20. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/chi/share.py +17 -16
  21. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/chi/ssh.py +8 -0
  22. python_chi-1.0.0/chi/storage.py +198 -0
  23. python_chi-1.0.0/chi/util.py +81 -0
  24. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/conf.py +1 -49
  25. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/index.rst +26 -0
  26. python_chi-1.0.0/docs/modules/clients.rst +11 -0
  27. python_chi-1.0.0/docs/modules/context.rst +11 -0
  28. python_chi-1.0.0/docs/modules/exception.rst +10 -0
  29. python_chi-1.0.0/docs/modules/hardware.rst +10 -0
  30. python_chi-1.0.0/docs/modules/lease.rst +10 -0
  31. python_chi-1.0.0/docs/modules/magic.rst +11 -0
  32. python_chi-1.0.0/docs/modules/server.rst +10 -0
  33. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/modules/share.rst +2 -0
  34. python_chi-1.0.0/docs/modules/storage.rst +11 -0
  35. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/requirements.txt +1 -3
  36. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/python_chi.egg-info/PKG-INFO +17 -5
  37. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/python_chi.egg-info/SOURCES.txt +10 -5
  38. python_chi-1.0.0/python_chi.egg-info/dependency_links.txt +1 -0
  39. python_chi-1.0.0/python_chi.egg-info/pbr.json +1 -0
  40. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/python_chi.egg-info/requires.txt +5 -2
  41. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/requirements.txt +6 -2
  42. python_chi-1.0.0/setup.py +9 -0
  43. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/tox.ini +1 -2
  44. python-chi-0.17.11.dev2/AUTHORS +0 -16
  45. python-chi-0.17.11.dev2/ChangeLog +0 -466
  46. python-chi-0.17.11.dev2/chi/container.py +0 -294
  47. python-chi-0.17.11.dev2/chi/image.py +0 -57
  48. python-chi-0.17.11.dev2/chi/lease.py +0 -842
  49. python-chi-0.17.11.dev2/chi/networking_api_examples.py +0 -9
  50. python-chi-0.17.11.dev2/chi/reservation_api_examples.py +0 -9
  51. python-chi-0.17.11.dev2/chi/server.py +0 -678
  52. python-chi-0.17.11.dev2/chi/server_api_examples.py +0 -9
  53. python-chi-0.17.11.dev2/chi/util.py +0 -33
  54. python-chi-0.17.11.dev2/docs/_extras/notebooks/.gitignore +0 -1
  55. python-chi-0.17.11.dev2/docs/modules/context.rst +0 -11
  56. python-chi-0.17.11.dev2/docs/modules/lease.rst +0 -20
  57. python-chi-0.17.11.dev2/docs/modules/server.rst +0 -31
  58. python-chi-0.17.11.dev2/docs/notebooks/.gitignore +0 -1
  59. python-chi-0.17.11.dev2/python_chi.egg-info/dependency_links.txt +0 -1
  60. python-chi-0.17.11.dev2/python_chi.egg-info/pbr.json +0 -1
  61. python-chi-0.17.11.dev2/setup.py +0 -7
  62. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/.github/workflows/test.yml +0 -0
  63. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/.mailmap +0 -0
  64. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/DEVELOPMENT.rst +0 -0
  65. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/LICENSE +0 -0
  66. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/Makefile +0 -0
  67. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/README.rst +0 -0
  68. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/__init__.py +0 -0
  69. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/generate_notebook.py +0 -0
  70. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/modules/container.rst +0 -0
  71. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/modules/image.rst +0 -0
  72. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/modules/network.rst +0 -0
  73. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/docs/modules/ssh.rst +0 -0
  74. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/python_chi.egg-info/not-zip-safe +0 -0
  75. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/python_chi.egg-info/top_level.txt +0 -0
  76. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/setup.cfg +0 -0
  77. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/test-requirements.txt +0 -0
  78. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/tests/__init__.py +0 -0
  79. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/tests/test_container.py +0 -0
  80. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/tests/test_context.py +0 -0
  81. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/tests/test_lease.py +0 -0
  82. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/tests/test_network.py +0 -0
  83. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/tests/test_server.py +0 -0
  84. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/tests/test_share.py +0 -0
  85. {python-chi-0.17.11.dev2 → python_chi-1.0.0}/tests/test_ssh.py +0 -0
@@ -1,3 +1,3 @@
1
1
  # Syntax: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#example-of-a-codeowners-file
2
2
 
3
- * @Mark-Powers @msherman64 @super-cooper @zhenz
3
+ * @Mark-Powers @msherman64
@@ -0,0 +1,43 @@
1
+ # This workflow will upload a Python Package using Twine when a release is created
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3
+
4
+ # This workflow uses actions that are not certified by GitHub.
5
+ # They are provided by a third-party and are governed by
6
+ # separate terms of service, privacy policy, and support
7
+ # documentation.
8
+
9
+ name: Upload Python Package
10
+
11
+ on:
12
+ release:
13
+ types: [published]
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ deploy:
20
+
21
+ runs-on: ubuntu-latest
22
+
23
+ steps:
24
+ - uses: actions/checkout@v3
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v3
27
+ with:
28
+ python-version: '3.x'
29
+ - name: Install dependencies
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ pip install wheel
33
+ pip install setuptools
34
+ - name: update release version in setup
35
+ run: >-
36
+ sed -i "s/{{VERSION_PLACEHOLDER}}/${{ github.event.release.tag_name }}/g" setup.py
37
+ - name: Build package
38
+ run: python setup.py sdist bdist_wheel
39
+ - name: Publish package
40
+ uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
41
+ with:
42
+ user: __token__
43
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -5,10 +5,16 @@ version: 2
5
5
  sphinx:
6
6
  configuration: docs/conf.py
7
7
 
8
+ build:
9
+ os: ubuntu-20.04
10
+ tools:
11
+ python: "3.9"
12
+
13
+
14
+
8
15
  formats: all
9
16
 
10
17
  python:
11
- version: 3.8
12
18
  install:
13
19
  - requirements: requirements.txt
14
20
  - requirements: test-requirements.txt
@@ -0,0 +1 @@
1
+ Mark Powers <markpowers@uchicago.edu>
@@ -0,0 +1,7 @@
1
+ CHANGES
2
+ =======
3
+
4
+ v1.0.0
5
+ ------
6
+
7
+ * Re-add missing chi imports
@@ -1,12 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-chi
3
- Version: 0.17.11.dev2
3
+ Version: 1.0.0
4
4
  Summary: Helper library for Chameleon Infrastructure (CHI) testbed
5
5
  Home-page: https://www.chameleoncloud.org
6
6
  Author: University of Chicago
7
7
  Author-email: dev@lists.chameleoncloud.org
8
- License: UNKNOWN
9
- Platform: UNKNOWN
10
8
  Classifier: Development Status :: 4 - Beta
11
9
  Classifier: Environment :: Console
12
10
  Classifier: Environment :: OpenStack
@@ -16,6 +14,22 @@ Classifier: Operating System :: OS Independent
16
14
  Classifier: Programming Language :: Python
17
15
  License-File: LICENSE
18
16
  License-File: AUTHORS
17
+ Requires-Dist: fabric
18
+ Requires-Dist: keystoneauth1
19
+ Requires-Dist: openstacksdk
20
+ Requires-Dist: paramiko
21
+ Requires-Dist: python-cinderclient
22
+ Requires-Dist: python-glanceclient
23
+ Requires-Dist: python-ironicclient
24
+ Requires-Dist: python-manilaclient
25
+ Requires-Dist: python-neutronclient
26
+ Requires-Dist: python-novaclient
27
+ Requires-Dist: python-swiftclient
28
+ Requires-Dist: python-zunclient
29
+ Requires-Dist: ipython
30
+ Requires-Dist: ipywidgets
31
+ Requires-Dist: networkx
32
+ Requires-Dist: matplotlib
19
33
 
20
34
  python-chi
21
35
  ==========
@@ -31,5 +45,3 @@ Jupyter Notebooks.
31
45
  * `Documentation <https://python-chi.readthedocs.io>`_
32
46
  * `Contributing guide <./DEVELOPMENT.rst>`_
33
47
 
34
-
35
-
@@ -3,7 +3,6 @@ from .clients import (
3
3
  blazar,
4
4
  cinder,
5
5
  glance,
6
- gnocchi,
7
6
  ironic,
8
7
  keystone,
9
8
  manila,
@@ -25,7 +24,6 @@ __all__ = [
25
24
  "blazar",
26
25
  "cinder",
27
26
  "glance",
28
- "gnocchi",
29
27
  "ironic",
30
28
  "keystone",
31
29
  "manila",
@@ -10,7 +10,6 @@ if TYPE_CHECKING:
10
10
  from blazarclient.client import Client as BlazarClient
11
11
  from cinderclient.client import Client as CinderClient
12
12
  from glanceclient.client import Client as GlanceClient
13
- from gnocchiclient.v1.client import Client as GnocchiClient
14
13
  from manilaclient.client import Client as ManilaClient
15
14
  from neutronclient.v2_0.client import Client as NeutronClient
16
15
  from novaclient.client import Client as NovaClient
@@ -37,6 +36,8 @@ def connection(session=None) -> "Connection":
37
36
  are useful for operations that span a few services, such as assigning
38
37
  a Floating IP to a server instance.
39
38
 
39
+ See `the documentation <https://docs.openstack.org/openstacksdk/latest/user/connection.html>`__ for usage.
40
+
40
41
  Args:
41
42
  session (Session): An authentication session object. By default a
42
43
  new session is created via :func:`chi.session`.
@@ -61,6 +62,8 @@ def connection(session=None) -> "Connection":
61
62
  def blazar(session=None) -> "BlazarClient":
62
63
  """Get a preconfigured client for Blazar, the reservation service.
63
64
 
65
+ See `the documentation <https://opendev.org/openstack/python-blazarclient/>`__ for usage.
66
+
64
67
  Args:
65
68
  session (Session): An authentication session object. By default a
66
69
  new session is created via :func:`chi.session`.
@@ -78,6 +81,8 @@ def blazar(session=None) -> "BlazarClient":
78
81
  def cinder(session=None) -> "CinderClient":
79
82
  """Get a preconfigured client for Cinder, the persistent volume service.
80
83
 
84
+ See `the documentation <https://docs.openstack.org/python-cinderclient/latest/>`__ for usage.
85
+
81
86
  Args:
82
87
  session (Session): An authentication session object. By default a
83
88
  new session is created via :func:`chi.session`.
@@ -93,6 +98,8 @@ def cinder(session=None) -> "CinderClient":
93
98
  def glance(session=None) -> "GlanceClient":
94
99
  """Get a preconfigured client for Glance, the image service.
95
100
 
101
+ See `the documentation <https://docs.openstack.org/python-glanceclient/latest/>`__ for usage.
102
+
96
103
  Args:
97
104
  session (Session): An authentication session object. By default a
98
105
  new session is created via :func:`chi.session`.
@@ -105,29 +112,11 @@ def glance(session=None) -> "GlanceClient":
105
112
  return GlanceClient("2", session=(session or session_factory()))
106
113
 
107
114
 
108
- def gnocchi(session=None) -> "GnocchiClient":
109
- """Get a preconfigured client for Gnocchi, the metrics service.
110
-
111
- Args:
112
- session (Session): An authentication session object. By default a
113
- new session is created via :func:`chi.session`.
114
-
115
- Returns:
116
- A new Gnocchi client.
117
- """
118
- from gnocchiclient.v1.client import Client as GnocchiClient
119
-
120
- sess = session or session_factory()
121
- session_options = dict(auth=sess.session.auth)
122
- adapter_options = dict(interface=sess.interface, region_name=sess.region_name)
123
- return GnocchiClient(
124
- adapter_options=adapter_options, session_options=session_options
125
- )
126
-
127
-
128
115
  def manila(session=None) -> "ManilaClient":
129
116
  """Get a preconfigured client for Manila, the share service.
130
117
 
118
+ See `the documentation <https://docs.openstack.org/python-manilaclient/latest/user/api.html>`__ for usage.
119
+
131
120
  Args:
132
121
  session (Session): An authentication session object. By default a
133
122
  new session is created via :func:`chi.session`.
@@ -143,6 +132,8 @@ def manila(session=None) -> "ManilaClient":
143
132
  def neutron(session=None) -> "NeutronClient":
144
133
  """Get a preconfigured client for Neutron, the networking service.
145
134
 
135
+ See `the documentation <https://docs.openstack.org/python-neutronclient/latest/reference/index.html>`__ for usage.
136
+
146
137
  Args:
147
138
  session (Session): An authentication session object. By default a
148
139
  new session is created via :func:`chi.session`.
@@ -158,6 +149,8 @@ def neutron(session=None) -> "NeutronClient":
158
149
  def nova(session=None) -> "NovaClient":
159
150
  """Get a preconfigured client for Nova, the compute service.
160
151
 
152
+ See `the documentation <https://docs.openstack.org/python-novaclient/latest/user/python-api.html>`__ for usage.
153
+
161
154
  Args:
162
155
  session (Session): An authentication session object. By default a
163
156
  new session is created via :func:`chi.session`.
@@ -173,6 +166,8 @@ def nova(session=None) -> "NovaClient":
173
166
  def ironic(session=None) -> "IronicClient":
174
167
  """Get a preconfigured client for Ironic, the bare metal service.
175
168
 
169
+ See `the documentation <https://docs.openstack.org/python-ironicclient/latest/api_v1.html>`__ for usage.
170
+
176
171
  Args:
177
172
  session (Session): An authentication session object. By default a
178
173
  new session is created via :func:`chi.session`.
@@ -195,6 +190,8 @@ def ironic(session=None) -> "IronicClient":
195
190
  def keystone(session=None) -> "KeystoneClient":
196
191
  """Get a preconfigured client for Keystone, the authentication service.
197
192
 
193
+ See `the documentation <https://docs.openstack.org/python-keystoneclient/latest/>`__ for usage.
194
+
198
195
  Args:
199
196
  session (Session): An authentication session object. By default a
200
197
  new session is created via :func:`chi.session`.
@@ -215,6 +212,17 @@ def keystone(session=None) -> "KeystoneClient":
215
212
 
216
213
 
217
214
  def zun(session=None) -> "ZunClient":
215
+ """Get a preconfigured client for Zun, the edge container service.
216
+
217
+ See `the documentation <https://docs.openstack.org/python-zunclient/latest/user/python-api.html>`__ for usage.
218
+
219
+ Args:
220
+ session (Session): An authentication session object. By default a
221
+ new session is created via :func:`chi.session`.
222
+
223
+ Returns:
224
+ A new Zun client.
225
+ """
218
226
  from zunclient.client import Client as ZunClient
219
227
 
220
228
  return ZunClient(ZUN_API_VERSION, session=(session or session_factory()))