cs 3.2.0__tar.gz → 3.3.1__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.
- {cs-3.2.0/cs.egg-info → cs-3.3.1}/PKG-INFO +28 -17
- {cs-3.2.0 → cs-3.3.1}/README.rst +20 -14
- {cs-3.2.0 → cs-3.3.1}/cs/__init__.py +22 -15
- {cs-3.2.0 → cs-3.3.1}/cs/client.py +11 -37
- cs-3.3.1/cs/version.py +1 -0
- {cs-3.2.0 → cs-3.3.1/cs.egg-info}/PKG-INFO +28 -17
- {cs-3.2.0 → cs-3.3.1}/cs.egg-info/SOURCES.txt +1 -0
- {cs-3.2.0 → cs-3.3.1}/setup.cfg +4 -3
- {cs-3.2.0 → cs-3.3.1}/LICENSE +0 -0
- {cs-3.2.0 → cs-3.3.1}/MANIFEST.in +0 -0
- {cs-3.2.0 → cs-3.3.1}/cs/__main__.py +0 -0
- {cs-3.2.0 → cs-3.3.1}/cs/_async.py +0 -0
- {cs-3.2.0 → cs-3.3.1}/cs.egg-info/dependency_links.txt +0 -0
- {cs-3.2.0 → cs-3.3.1}/cs.egg-info/entry_points.txt +0 -0
- {cs-3.2.0 → cs-3.3.1}/cs.egg-info/not-zip-safe +0 -0
- {cs-3.2.0 → cs-3.3.1}/cs.egg-info/requires.txt +0 -0
- {cs-3.2.0 → cs-3.3.1}/cs.egg-info/top_level.txt +0 -0
- {cs-3.2.0 → cs-3.3.1}/pyproject.toml +0 -0
- {cs-3.2.0 → cs-3.3.1}/setup.py +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cs
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.3.1
|
|
4
4
|
Summary: A simple yet powerful CloudStack API client for Python and the command-line.
|
|
5
|
-
Home-page: https://github.com/
|
|
5
|
+
Home-page: https://github.com/ngine-io/cs
|
|
6
6
|
Author: Bruno Renié
|
|
7
7
|
License: BSD
|
|
8
8
|
Classifier: Intended Audience :: Developers
|
|
@@ -14,20 +14,32 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.9
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: pytz
|
|
20
|
+
Requires-Dist: requests
|
|
17
21
|
Provides-Extra: async
|
|
22
|
+
Requires-Dist: aiohttp; extra == "async"
|
|
18
23
|
Provides-Extra: highlight
|
|
19
|
-
|
|
24
|
+
Requires-Dist: pygments; extra == "highlight"
|
|
25
|
+
|
|
26
|
+
.. image:: https://github.com/ngine-io/cs/actions/workflows/main.yml/badge.svg
|
|
27
|
+
:alt: CI
|
|
28
|
+
:target: https://github.com/ngine-io/cs/actions/workflows/main.yml
|
|
29
|
+
.. image:: https://img.shields.io/pypi/pyversions/cs.svg
|
|
30
|
+
:alt: Python versions
|
|
31
|
+
:target: https://pypi.org/project/cs/
|
|
20
32
|
|
|
21
|
-
|
|
22
|
-
|
|
33
|
+
.. image:: https://img.shields.io/pypi/dw/cs.svg
|
|
34
|
+
:alt: Downloads / Week
|
|
35
|
+
:target: https://pypi.org/project/cs/
|
|
23
36
|
|
|
24
37
|
.. image:: https://img.shields.io/pypi/l/cs.svg
|
|
25
38
|
:alt: License
|
|
26
39
|
:target: https://pypi.org/project/cs/
|
|
27
40
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
:target: https://pypi.org/project/cs/
|
|
41
|
+
CS - Python CloudStack API client
|
|
42
|
+
=================================
|
|
31
43
|
|
|
32
44
|
A simple, yet powerful CloudStack API client for python and the command-line.
|
|
33
45
|
|
|
@@ -61,7 +73,7 @@ In Python:
|
|
|
61
73
|
|
|
62
74
|
from cs import CloudStack
|
|
63
75
|
|
|
64
|
-
cs = CloudStack(endpoint='https://
|
|
76
|
+
cs = CloudStack(endpoint='https://cloudstack.example.com/client/api',
|
|
65
77
|
key='cloudstack api key',
|
|
66
78
|
secret='cloudstack api secret')
|
|
67
79
|
|
|
@@ -78,13 +90,13 @@ From the command-line, this requires some configuration:
|
|
|
78
90
|
.. code-block:: ini
|
|
79
91
|
|
|
80
92
|
[cloudstack]
|
|
81
|
-
endpoint = https://
|
|
93
|
+
endpoint = https://cloudstack.example.com/client/api
|
|
82
94
|
key = cloudstack api key
|
|
83
95
|
secret = cloudstack api secret
|
|
84
96
|
# Optional ca authority certificate
|
|
85
|
-
verify = /path/to/certs/
|
|
97
|
+
verify = /path/to/certs/ca.crt
|
|
86
98
|
# Optional client PEM certificate
|
|
87
|
-
cert = /path/to/
|
|
99
|
+
cert = /path/to/client.pem
|
|
88
100
|
# If you need to pass the certificate and key as separate files
|
|
89
101
|
cert_key = /path/to/client_key.pem
|
|
90
102
|
|
|
@@ -179,14 +191,14 @@ the credentials or endpoint to use with a command-line flag.
|
|
|
179
191
|
key = api key
|
|
180
192
|
secret = api secret
|
|
181
193
|
|
|
182
|
-
[
|
|
183
|
-
endpoint = https://
|
|
194
|
+
[region-example]
|
|
195
|
+
endpoint = https://cloudstack.example.com/client/api
|
|
184
196
|
key = api key
|
|
185
197
|
secret = api secret
|
|
186
198
|
|
|
187
199
|
Usage::
|
|
188
200
|
|
|
189
|
-
$ cs listVirtualMachines --region=
|
|
201
|
+
$ cs listVirtualMachines --region=region-example
|
|
190
202
|
|
|
191
203
|
Optionally ``CLOUDSTACK_REGION`` can be used to overwrite the default region ``cloudstack``.
|
|
192
204
|
|
|
@@ -270,7 +282,7 @@ Release Procedure
|
|
|
270
282
|
|
|
271
283
|
mktmpenv -p /usr/bin/python3
|
|
272
284
|
pip install -U twine wheel build
|
|
273
|
-
cd
|
|
285
|
+
cd ./cs
|
|
274
286
|
rm -rf build dist
|
|
275
287
|
python -m build
|
|
276
288
|
twine upload dist/*
|
|
@@ -279,4 +291,3 @@ Links
|
|
|
279
291
|
-----
|
|
280
292
|
|
|
281
293
|
* CloudStack API: http://cloudstack.apache.org/api.html
|
|
282
|
-
* Example of use: `Get Started with the exoscale API client <https://www.exoscale.com/syslog/2016/02/23/get-started-with-the-exoscale-api-client/>`_
|
{cs-3.2.0 → cs-3.3.1}/README.rst
RENAMED
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
.. image:: https://github.com/ngine-io/cs/actions/workflows/main.yml/badge.svg
|
|
2
|
+
:alt: CI
|
|
3
|
+
:target: https://github.com/ngine-io/cs/actions/workflows/main.yml
|
|
4
|
+
.. image:: https://img.shields.io/pypi/pyversions/cs.svg
|
|
5
|
+
:alt: Python versions
|
|
6
|
+
:target: https://pypi.org/project/cs/
|
|
7
|
+
|
|
8
|
+
.. image:: https://img.shields.io/pypi/dw/cs.svg
|
|
9
|
+
:alt: Downloads / Week
|
|
10
|
+
:target: https://pypi.org/project/cs/
|
|
3
11
|
|
|
4
12
|
.. image:: https://img.shields.io/pypi/l/cs.svg
|
|
5
13
|
:alt: License
|
|
6
14
|
:target: https://pypi.org/project/cs/
|
|
7
15
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
:target: https://pypi.org/project/cs/
|
|
16
|
+
CS - Python CloudStack API client
|
|
17
|
+
=================================
|
|
11
18
|
|
|
12
19
|
A simple, yet powerful CloudStack API client for python and the command-line.
|
|
13
20
|
|
|
@@ -41,7 +48,7 @@ In Python:
|
|
|
41
48
|
|
|
42
49
|
from cs import CloudStack
|
|
43
50
|
|
|
44
|
-
cs = CloudStack(endpoint='https://
|
|
51
|
+
cs = CloudStack(endpoint='https://cloudstack.example.com/client/api',
|
|
45
52
|
key='cloudstack api key',
|
|
46
53
|
secret='cloudstack api secret')
|
|
47
54
|
|
|
@@ -58,13 +65,13 @@ From the command-line, this requires some configuration:
|
|
|
58
65
|
.. code-block:: ini
|
|
59
66
|
|
|
60
67
|
[cloudstack]
|
|
61
|
-
endpoint = https://
|
|
68
|
+
endpoint = https://cloudstack.example.com/client/api
|
|
62
69
|
key = cloudstack api key
|
|
63
70
|
secret = cloudstack api secret
|
|
64
71
|
# Optional ca authority certificate
|
|
65
|
-
verify = /path/to/certs/
|
|
72
|
+
verify = /path/to/certs/ca.crt
|
|
66
73
|
# Optional client PEM certificate
|
|
67
|
-
cert = /path/to/
|
|
74
|
+
cert = /path/to/client.pem
|
|
68
75
|
# If you need to pass the certificate and key as separate files
|
|
69
76
|
cert_key = /path/to/client_key.pem
|
|
70
77
|
|
|
@@ -159,14 +166,14 @@ the credentials or endpoint to use with a command-line flag.
|
|
|
159
166
|
key = api key
|
|
160
167
|
secret = api secret
|
|
161
168
|
|
|
162
|
-
[
|
|
163
|
-
endpoint = https://
|
|
169
|
+
[region-example]
|
|
170
|
+
endpoint = https://cloudstack.example.com/client/api
|
|
164
171
|
key = api key
|
|
165
172
|
secret = api secret
|
|
166
173
|
|
|
167
174
|
Usage::
|
|
168
175
|
|
|
169
|
-
$ cs listVirtualMachines --region=
|
|
176
|
+
$ cs listVirtualMachines --region=region-example
|
|
170
177
|
|
|
171
178
|
Optionally ``CLOUDSTACK_REGION`` can be used to overwrite the default region ``cloudstack``.
|
|
172
179
|
|
|
@@ -250,7 +257,7 @@ Release Procedure
|
|
|
250
257
|
|
|
251
258
|
mktmpenv -p /usr/bin/python3
|
|
252
259
|
pip install -U twine wheel build
|
|
253
|
-
cd
|
|
260
|
+
cd ./cs
|
|
254
261
|
rm -rf build dist
|
|
255
262
|
python -m build
|
|
256
263
|
twine upload dist/*
|
|
@@ -259,4 +266,3 @@ Links
|
|
|
259
266
|
-----
|
|
260
267
|
|
|
261
268
|
* CloudStack API: http://cloudstack.apache.org/api.html
|
|
262
|
-
* Example of use: `Get Started with the exoscale API client <https://www.exoscale.com/syslog/2016/02/23/get-started-with-the-exoscale-api-client/>`_
|
|
@@ -3,11 +3,7 @@ import json
|
|
|
3
3
|
import os
|
|
4
4
|
import sys
|
|
5
5
|
from collections import defaultdict
|
|
6
|
-
|
|
7
|
-
try:
|
|
8
|
-
from configparser import NoSectionError
|
|
9
|
-
except ImportError: # python 2
|
|
10
|
-
from ConfigParser import NoSectionError
|
|
6
|
+
from configparser import NoSectionError
|
|
11
7
|
|
|
12
8
|
try:
|
|
13
9
|
import pygments
|
|
@@ -23,6 +19,7 @@ from .client import (
|
|
|
23
19
|
CloudStackException,
|
|
24
20
|
read_config,
|
|
25
21
|
)
|
|
22
|
+
from .version import __version__
|
|
26
23
|
|
|
27
24
|
|
|
28
25
|
__all__ = [
|
|
@@ -32,15 +29,14 @@ __all__ = [
|
|
|
32
29
|
"CloudStackApiException",
|
|
33
30
|
]
|
|
34
31
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
from ._async import AIOCloudStack # noqa
|
|
32
|
+
try:
|
|
33
|
+
import aiohttp # noqa
|
|
34
|
+
except ImportError:
|
|
35
|
+
pass
|
|
36
|
+
else:
|
|
37
|
+
from ._async import AIOCloudStack # noqa
|
|
42
38
|
|
|
43
|
-
|
|
39
|
+
__all__.append("AIOCloudStack")
|
|
44
40
|
|
|
45
41
|
|
|
46
42
|
def _format_json(data, theme):
|
|
@@ -56,7 +52,7 @@ def _format_json(data, theme):
|
|
|
56
52
|
|
|
57
53
|
|
|
58
54
|
def main(args=None):
|
|
59
|
-
parser = argparse.ArgumentParser(description="
|
|
55
|
+
parser = argparse.ArgumentParser(description="Cloudstack client.")
|
|
60
56
|
parser.add_argument(
|
|
61
57
|
"--region",
|
|
62
58
|
"-r",
|
|
@@ -97,7 +93,15 @@ def main(args=None):
|
|
|
97
93
|
help="trace the HTTP requests done on stderr",
|
|
98
94
|
)
|
|
99
95
|
parser.add_argument(
|
|
100
|
-
"command",
|
|
96
|
+
"command",
|
|
97
|
+
metavar="COMMAND",
|
|
98
|
+
help="Cloudstack API command to execute",
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
parser.add_argument(
|
|
102
|
+
"--version",
|
|
103
|
+
action="version",
|
|
104
|
+
version=__version__,
|
|
101
105
|
)
|
|
102
106
|
|
|
103
107
|
def parse_option(x):
|
|
@@ -116,6 +120,7 @@ def main(args=None):
|
|
|
116
120
|
)
|
|
117
121
|
|
|
118
122
|
options = parser.parse_args(args=args)
|
|
123
|
+
|
|
119
124
|
command = options.command
|
|
120
125
|
kwargs = defaultdict(set)
|
|
121
126
|
for arg in options.arguments:
|
|
@@ -133,8 +138,10 @@ def main(args=None):
|
|
|
133
138
|
|
|
134
139
|
if options.post:
|
|
135
140
|
config["method"] = "post"
|
|
141
|
+
|
|
136
142
|
if options.trace:
|
|
137
143
|
config["trace"] = True
|
|
144
|
+
|
|
138
145
|
cs = CloudStack(**config)
|
|
139
146
|
ok = True
|
|
140
147
|
response = None
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
#! /usr/bin/env python
|
|
2
|
-
from __future__ import print_function
|
|
3
|
-
|
|
4
1
|
import base64
|
|
5
2
|
import hashlib
|
|
6
3
|
import hmac
|
|
@@ -8,42 +5,21 @@ import os
|
|
|
8
5
|
import re
|
|
9
6
|
import sys
|
|
10
7
|
import time
|
|
8
|
+
from configparser import ConfigParser
|
|
11
9
|
from datetime import datetime, timedelta
|
|
12
10
|
from fnmatch import fnmatch
|
|
13
|
-
|
|
14
|
-
try:
|
|
15
|
-
from configparser import ConfigParser
|
|
16
|
-
except ImportError: # python 2
|
|
17
|
-
from ConfigParser import ConfigParser
|
|
18
|
-
|
|
19
|
-
try:
|
|
20
|
-
from urllib.parse import quote
|
|
21
|
-
except ImportError: # python 2
|
|
22
|
-
from urllib import quote
|
|
11
|
+
from urllib.parse import quote
|
|
23
12
|
|
|
24
13
|
import pytz
|
|
25
14
|
|
|
26
15
|
import requests
|
|
27
16
|
from requests.structures import CaseInsensitiveDict
|
|
28
17
|
|
|
29
|
-
PY2 = sys.version_info < (3, 0)
|
|
30
|
-
|
|
31
|
-
if PY2:
|
|
32
|
-
text_type = unicode # noqa
|
|
33
|
-
string_type = basestring # noqa
|
|
34
|
-
integer_types = int, long # noqa
|
|
35
|
-
binary_type = str
|
|
36
|
-
else:
|
|
37
|
-
text_type = str
|
|
38
|
-
string_type = str
|
|
39
|
-
integer_types = int
|
|
40
|
-
binary_type = bytes
|
|
41
18
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
pass
|
|
19
|
+
try:
|
|
20
|
+
from . import AIOCloudStack # noqa
|
|
21
|
+
except ImportError:
|
|
22
|
+
pass
|
|
47
23
|
|
|
48
24
|
|
|
49
25
|
TIMEOUT = 10
|
|
@@ -124,8 +100,6 @@ def cs_encode(s):
|
|
|
124
100
|
|
|
125
101
|
java.net.URLEncoder.encode(s).replace('+', '%20')
|
|
126
102
|
"""
|
|
127
|
-
if PY2 and isinstance(s, text_type):
|
|
128
|
-
s = s.encode("utf-8")
|
|
129
103
|
return quote(s, safe="*")
|
|
130
104
|
|
|
131
105
|
|
|
@@ -146,11 +120,11 @@ def transform(params):
|
|
|
146
120
|
params.pop(key)
|
|
147
121
|
continue
|
|
148
122
|
|
|
149
|
-
if isinstance(value, (
|
|
123
|
+
if isinstance(value, (str, bytes)):
|
|
150
124
|
continue
|
|
151
125
|
|
|
152
|
-
if isinstance(value,
|
|
153
|
-
params[key] =
|
|
126
|
+
if isinstance(value, int):
|
|
127
|
+
params[key] = str(value)
|
|
154
128
|
elif isinstance(value, (list, tuple, set, dict)):
|
|
155
129
|
if not value:
|
|
156
130
|
params.pop(key)
|
|
@@ -166,7 +140,7 @@ def transform(params):
|
|
|
166
140
|
for index, val in enumerate(value):
|
|
167
141
|
for name, v in val.items():
|
|
168
142
|
k = "%s[%d].%s" % (key, index, name)
|
|
169
|
-
params[k] =
|
|
143
|
+
params[k] = str(v)
|
|
170
144
|
else:
|
|
171
145
|
raise ValueError(type(value))
|
|
172
146
|
|
|
@@ -606,7 +580,7 @@ def read_config(ini_group=None):
|
|
|
606
580
|
# convert booleans values.
|
|
607
581
|
bool_keys = ("dangerous_no_tls_verify",)
|
|
608
582
|
for bool_key in bool_keys:
|
|
609
|
-
if isinstance(config[bool_key],
|
|
583
|
+
if isinstance(config[bool_key], str):
|
|
610
584
|
try:
|
|
611
585
|
config[bool_key] = strtobool(config[bool_key])
|
|
612
586
|
except ValueError:
|
cs-3.3.1/cs/version.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "3.3.1"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cs
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.3.1
|
|
4
4
|
Summary: A simple yet powerful CloudStack API client for Python and the command-line.
|
|
5
|
-
Home-page: https://github.com/
|
|
5
|
+
Home-page: https://github.com/ngine-io/cs
|
|
6
6
|
Author: Bruno Renié
|
|
7
7
|
License: BSD
|
|
8
8
|
Classifier: Intended Audience :: Developers
|
|
@@ -14,20 +14,32 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.9
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: pytz
|
|
20
|
+
Requires-Dist: requests
|
|
17
21
|
Provides-Extra: async
|
|
22
|
+
Requires-Dist: aiohttp; extra == "async"
|
|
18
23
|
Provides-Extra: highlight
|
|
19
|
-
|
|
24
|
+
Requires-Dist: pygments; extra == "highlight"
|
|
25
|
+
|
|
26
|
+
.. image:: https://github.com/ngine-io/cs/actions/workflows/main.yml/badge.svg
|
|
27
|
+
:alt: CI
|
|
28
|
+
:target: https://github.com/ngine-io/cs/actions/workflows/main.yml
|
|
29
|
+
.. image:: https://img.shields.io/pypi/pyversions/cs.svg
|
|
30
|
+
:alt: Python versions
|
|
31
|
+
:target: https://pypi.org/project/cs/
|
|
20
32
|
|
|
21
|
-
|
|
22
|
-
|
|
33
|
+
.. image:: https://img.shields.io/pypi/dw/cs.svg
|
|
34
|
+
:alt: Downloads / Week
|
|
35
|
+
:target: https://pypi.org/project/cs/
|
|
23
36
|
|
|
24
37
|
.. image:: https://img.shields.io/pypi/l/cs.svg
|
|
25
38
|
:alt: License
|
|
26
39
|
:target: https://pypi.org/project/cs/
|
|
27
40
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
:target: https://pypi.org/project/cs/
|
|
41
|
+
CS - Python CloudStack API client
|
|
42
|
+
=================================
|
|
31
43
|
|
|
32
44
|
A simple, yet powerful CloudStack API client for python and the command-line.
|
|
33
45
|
|
|
@@ -61,7 +73,7 @@ In Python:
|
|
|
61
73
|
|
|
62
74
|
from cs import CloudStack
|
|
63
75
|
|
|
64
|
-
cs = CloudStack(endpoint='https://
|
|
76
|
+
cs = CloudStack(endpoint='https://cloudstack.example.com/client/api',
|
|
65
77
|
key='cloudstack api key',
|
|
66
78
|
secret='cloudstack api secret')
|
|
67
79
|
|
|
@@ -78,13 +90,13 @@ From the command-line, this requires some configuration:
|
|
|
78
90
|
.. code-block:: ini
|
|
79
91
|
|
|
80
92
|
[cloudstack]
|
|
81
|
-
endpoint = https://
|
|
93
|
+
endpoint = https://cloudstack.example.com/client/api
|
|
82
94
|
key = cloudstack api key
|
|
83
95
|
secret = cloudstack api secret
|
|
84
96
|
# Optional ca authority certificate
|
|
85
|
-
verify = /path/to/certs/
|
|
97
|
+
verify = /path/to/certs/ca.crt
|
|
86
98
|
# Optional client PEM certificate
|
|
87
|
-
cert = /path/to/
|
|
99
|
+
cert = /path/to/client.pem
|
|
88
100
|
# If you need to pass the certificate and key as separate files
|
|
89
101
|
cert_key = /path/to/client_key.pem
|
|
90
102
|
|
|
@@ -179,14 +191,14 @@ the credentials or endpoint to use with a command-line flag.
|
|
|
179
191
|
key = api key
|
|
180
192
|
secret = api secret
|
|
181
193
|
|
|
182
|
-
[
|
|
183
|
-
endpoint = https://
|
|
194
|
+
[region-example]
|
|
195
|
+
endpoint = https://cloudstack.example.com/client/api
|
|
184
196
|
key = api key
|
|
185
197
|
secret = api secret
|
|
186
198
|
|
|
187
199
|
Usage::
|
|
188
200
|
|
|
189
|
-
$ cs listVirtualMachines --region=
|
|
201
|
+
$ cs listVirtualMachines --region=region-example
|
|
190
202
|
|
|
191
203
|
Optionally ``CLOUDSTACK_REGION`` can be used to overwrite the default region ``cloudstack``.
|
|
192
204
|
|
|
@@ -270,7 +282,7 @@ Release Procedure
|
|
|
270
282
|
|
|
271
283
|
mktmpenv -p /usr/bin/python3
|
|
272
284
|
pip install -U twine wheel build
|
|
273
|
-
cd
|
|
285
|
+
cd ./cs
|
|
274
286
|
rm -rf build dist
|
|
275
287
|
python -m build
|
|
276
288
|
twine upload dist/*
|
|
@@ -279,4 +291,3 @@ Links
|
|
|
279
291
|
-----
|
|
280
292
|
|
|
281
293
|
* CloudStack API: http://cloudstack.apache.org/api.html
|
|
282
|
-
* Example of use: `Get Started with the exoscale API client <https://www.exoscale.com/syslog/2016/02/23/get-started-with-the-exoscale-api-client/>`_
|
{cs-3.2.0 → cs-3.3.1}/setup.cfg
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
[metadata]
|
|
2
2
|
name = cs
|
|
3
|
-
version = 3.
|
|
4
|
-
url = https://github.com/
|
|
3
|
+
version = 3.3.1
|
|
4
|
+
url = https://github.com/ngine-io/cs
|
|
5
5
|
author = Bruno Renié
|
|
6
6
|
description = A simple yet powerful CloudStack API client for Python and the command-line.
|
|
7
7
|
long_description = file: README.rst
|
|
8
8
|
license = BSD
|
|
9
|
-
|
|
9
|
+
license_files = LICENSE
|
|
10
10
|
classifiers =
|
|
11
11
|
Intended Audience :: Developers
|
|
12
12
|
Intended Audience :: System Administrators
|
|
@@ -17,6 +17,7 @@ classifiers =
|
|
|
17
17
|
Programming Language :: Python :: 3.9
|
|
18
18
|
Programming Language :: Python :: 3.10
|
|
19
19
|
Programming Language :: Python :: 3.11
|
|
20
|
+
Programming Language :: Python :: 3.12
|
|
20
21
|
|
|
21
22
|
[options]
|
|
22
23
|
packages = find:
|
{cs-3.2.0 → cs-3.3.1}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cs-3.2.0 → cs-3.3.1}/setup.py
RENAMED
|
File without changes
|