lockss-pyclient 0.1.0.dev1__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.
- lockss/pyclient/__init__.py +67 -0
- lockss/pyclient/config/__init__.py +42 -0
- lockss/pyclient/config/api/__init__.py +12 -0
- lockss/pyclient/config/api/aus_api.py +2195 -0
- lockss/pyclient/config/api/config_api.py +718 -0
- lockss/pyclient/config/api/plugins_api.py +128 -0
- lockss/pyclient/config/api/status_api.py +120 -0
- lockss/pyclient/config/api/tdb_api.py +318 -0
- lockss/pyclient/config/api/users_api.py +516 -0
- lockss/pyclient/config/api/utils_api.py +128 -0
- lockss/pyclient/config/api_client.py +632 -0
- lockss/pyclient/config/configuration.py +254 -0
- lockss/pyclient/config/models/__init__.py +30 -0
- lockss/pyclient/config/models/api_status.py +344 -0
- lockss/pyclient/config/models/au_configuration.py +142 -0
- lockss/pyclient/config/models/au_status.py +113 -0
- lockss/pyclient/config/models/au_ws_result.py +113 -0
- lockss/pyclient/config/models/auids_body.py +168 -0
- lockss/pyclient/config/models/check_substance_result.py +212 -0
- lockss/pyclient/config/models/content_configuration_result.py +200 -0
- lockss/pyclient/config/models/file_section_name_body.py +113 -0
- lockss/pyclient/config/models/platform_configuration_ws_result.py +113 -0
- lockss/pyclient/config/models/plugin_ws_result.py +345 -0
- lockss/pyclient/config/models/request_au_control_result.py +171 -0
- lockss/pyclient/config/models/tdb_au_ws_result.py +360 -0
- lockss/pyclient/config/models/tdb_publisher_ws_result.py +113 -0
- lockss/pyclient/config/models/tdb_title_ws_result.py +390 -0
- lockss/pyclient/config/rest.py +317 -0
- lockss/pyclient/crawler/__init__.py +45 -0
- lockss/pyclient/crawler/api/__init__.py +10 -0
- lockss/pyclient/crawler/api/crawlers_api.py +215 -0
- lockss/pyclient/crawler/api/crawls_api.py +952 -0
- lockss/pyclient/crawler/api/jobs_api.py +504 -0
- lockss/pyclient/crawler/api/status_api.py +120 -0
- lockss/pyclient/crawler/api/ws_api.py +128 -0
- lockss/pyclient/crawler/api_client.py +632 -0
- lockss/pyclient/crawler/configuration.py +254 -0
- lockss/pyclient/crawler/models/__init__.py +35 -0
- lockss/pyclient/crawler/models/api_status.py +344 -0
- lockss/pyclient/crawler/models/counter.py +142 -0
- lockss/pyclient/crawler/models/crawl_desc.py +344 -0
- lockss/pyclient/crawler/models/crawl_job.py +280 -0
- lockss/pyclient/crawler/models/crawl_pager.py +140 -0
- lockss/pyclient/crawler/models/crawl_status.py +780 -0
- lockss/pyclient/crawler/models/crawl_ws_result.py +814 -0
- lockss/pyclient/crawler/models/crawl_ws_result_pages_with_errors.py +162 -0
- lockss/pyclient/crawler/models/crawler_config.py +142 -0
- lockss/pyclient/crawler/models/crawler_status.py +279 -0
- lockss/pyclient/crawler/models/crawler_statuses.py +112 -0
- lockss/pyclient/crawler/models/error_result.py +164 -0
- lockss/pyclient/crawler/models/job_pager.py +140 -0
- lockss/pyclient/crawler/models/job_status.py +147 -0
- lockss/pyclient/crawler/models/mime_counter.py +169 -0
- lockss/pyclient/crawler/models/page_info.py +228 -0
- lockss/pyclient/crawler/models/url_error.py +148 -0
- lockss/pyclient/crawler/models/url_info.py +167 -0
- lockss/pyclient/crawler/models/url_pager.py +140 -0
- lockss/pyclient/crawler/rest.py +317 -0
- lockss/pyclient/md/__init__.py +36 -0
- lockss/pyclient/md/api/__init__.py +9 -0
- lockss/pyclient/md/api/mdupdates_api.py +508 -0
- lockss/pyclient/md/api/metadata_api.py +136 -0
- lockss/pyclient/md/api/status_api.py +120 -0
- lockss/pyclient/md/api/urls_api.py +224 -0
- lockss/pyclient/md/api_client.py +632 -0
- lockss/pyclient/md/configuration.py +254 -0
- lockss/pyclient/md/models/__init__.py +27 -0
- lockss/pyclient/md/models/api_status.py +344 -0
- lockss/pyclient/md/models/au.py +169 -0
- lockss/pyclient/md/models/au_metadata_page_info.py +140 -0
- lockss/pyclient/md/models/error_result.py +164 -0
- lockss/pyclient/md/models/item_metadata.py +196 -0
- lockss/pyclient/md/models/job.py +280 -0
- lockss/pyclient/md/models/job_page_info.py +140 -0
- lockss/pyclient/md/models/metadata_update_spec.py +142 -0
- lockss/pyclient/md/models/page_info.py +228 -0
- lockss/pyclient/md/models/status.py +142 -0
- lockss/pyclient/md/models/url_info.py +142 -0
- lockss/pyclient/md/rest.py +317 -0
- lockss/pyclient/poller/__init__.py +54 -0
- lockss/pyclient/poller/api/__init__.py +13 -0
- lockss/pyclient/poller/api/export_api.py +156 -0
- lockss/pyclient/poller/api/hash_api.py +413 -0
- lockss/pyclient/poller/api/import_api.py +157 -0
- lockss/pyclient/poller/api/poll_detail_api.py +374 -0
- lockss/pyclient/poller/api/poller_polls_api.py +223 -0
- lockss/pyclient/poller/api/repo_api.py +223 -0
- lockss/pyclient/poller/api/service_api.py +694 -0
- lockss/pyclient/poller/api/voter_polls_api.py +223 -0
- lockss/pyclient/poller/api_client.py +632 -0
- lockss/pyclient/poller/configuration.py +254 -0
- lockss/pyclient/poller/models/__init__.py +41 -0
- lockss/pyclient/poller/models/api_status.py +344 -0
- lockss/pyclient/poller/models/aus_import_body.py +199 -0
- lockss/pyclient/poller/models/cached_uri_set_spec.py +169 -0
- lockss/pyclient/poller/models/error_result.py +164 -0
- lockss/pyclient/poller/models/hasher_ws_params.py +432 -0
- lockss/pyclient/poller/models/link_desc.py +141 -0
- lockss/pyclient/poller/models/page_desc.py +227 -0
- lockss/pyclient/poller/models/peer_data.py +638 -0
- lockss/pyclient/poller/models/peer_ws_result.py +113 -0
- lockss/pyclient/poller/models/poll_desc.py +285 -0
- lockss/pyclient/poller/models/poll_ws_result.py +142 -0
- lockss/pyclient/poller/models/poller_detail.py +613 -0
- lockss/pyclient/poller/models/poller_pager.py +139 -0
- lockss/pyclient/poller/models/poller_summary.py +452 -0
- lockss/pyclient/poller/models/repair_data.py +176 -0
- lockss/pyclient/poller/models/repair_pager.py +139 -0
- lockss/pyclient/poller/models/repair_queue.py +249 -0
- lockss/pyclient/poller/models/repository_space_ws_result.py +113 -0
- lockss/pyclient/poller/models/repository_ws_result.py +113 -0
- lockss/pyclient/poller/models/tally_data.py +471 -0
- lockss/pyclient/poller/models/url_pager.py +139 -0
- lockss/pyclient/poller/models/vote_ws_result.py +142 -0
- lockss/pyclient/poller/models/voter_detail.py +701 -0
- lockss/pyclient/poller/models/voter_pager.py +139 -0
- lockss/pyclient/poller/models/voter_summary.py +284 -0
- lockss/pyclient/poller/rest.py +317 -0
- lockss/pyclient/rs/__init__.py +41 -0
- lockss/pyclient/rs/api/__init__.py +10 -0
- lockss/pyclient/rs/api/artifacts_api.py +988 -0
- lockss/pyclient/rs/api/aus_api.py +334 -0
- lockss/pyclient/rs/api/repo_api.py +379 -0
- lockss/pyclient/rs/api/status_api.py +120 -0
- lockss/pyclient/rs/api/wayback_api.py +386 -0
- lockss/pyclient/rs/api_client.py +632 -0
- lockss/pyclient/rs/configuration.py +247 -0
- lockss/pyclient/rs/models/__init__.py +31 -0
- lockss/pyclient/rs/models/api_status.py +344 -0
- lockss/pyclient/rs/models/archives_body.py +142 -0
- lockss/pyclient/rs/models/artifact.py +344 -0
- lockss/pyclient/rs/models/artifact_page_info.py +140 -0
- lockss/pyclient/rs/models/artifact_properties.py +344 -0
- lockss/pyclient/rs/models/artifacts_body.py +170 -0
- lockss/pyclient/rs/models/au_size.py +162 -0
- lockss/pyclient/rs/models/auid_page_info.py +140 -0
- lockss/pyclient/rs/models/error_result.py +164 -0
- lockss/pyclient/rs/models/import_status.py +298 -0
- lockss/pyclient/rs/models/page_info.py +229 -0
- lockss/pyclient/rs/models/repository_info.py +164 -0
- lockss/pyclient/rs/models/repository_statistics.py +112 -0
- lockss/pyclient/rs/models/storage_info.py +287 -0
- lockss/pyclient/rs/models/streaming_response_body.py +84 -0
- lockss/pyclient/rs/rest.py +317 -0
- lockss_pyclient-0.1.0.dev1.dist-info/LICENSE +27 -0
- lockss_pyclient-0.1.0.dev1.dist-info/METADATA +29 -0
- lockss_pyclient-0.1.0.dev1.dist-info/RECORD +148 -0
- lockss_pyclient-0.1.0.dev1.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
LOCKSS Crawler Service REST API
|
|
5
|
+
|
|
6
|
+
REST API of the LOCKSS Crawler Service # noqa: E501
|
|
7
|
+
|
|
8
|
+
OpenAPI spec version: 2.0.0
|
|
9
|
+
Contact: lockss-support@lockss.org
|
|
10
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import absolute_import
|
|
14
|
+
|
|
15
|
+
import io
|
|
16
|
+
import json
|
|
17
|
+
import logging
|
|
18
|
+
import re
|
|
19
|
+
import ssl
|
|
20
|
+
|
|
21
|
+
import certifi
|
|
22
|
+
# python 2 and python 3 compatibility library
|
|
23
|
+
import six
|
|
24
|
+
from six.moves.urllib.parse import urlencode
|
|
25
|
+
|
|
26
|
+
try:
|
|
27
|
+
import urllib3
|
|
28
|
+
except ImportError:
|
|
29
|
+
raise ImportError('Swagger python client requires urllib3.')
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
logger = logging.getLogger(__name__)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class RESTResponse(io.IOBase):
|
|
36
|
+
|
|
37
|
+
def __init__(self, resp):
|
|
38
|
+
self.urllib3_response = resp
|
|
39
|
+
self.status = resp.status
|
|
40
|
+
self.reason = resp.reason
|
|
41
|
+
self.data = resp.data
|
|
42
|
+
|
|
43
|
+
def getheaders(self):
|
|
44
|
+
"""Returns a dictionary of the response headers."""
|
|
45
|
+
return self.urllib3_response.headers
|
|
46
|
+
|
|
47
|
+
def getheader(self, name, default=None):
|
|
48
|
+
"""Returns a given response header."""
|
|
49
|
+
return self.urllib3_response.headers.get(name, default)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class RESTClientObject(object):
|
|
53
|
+
|
|
54
|
+
def __init__(self, configuration, pools_size=4, maxsize=None):
|
|
55
|
+
# urllib3.PoolManager will pass all kw parameters to connectionpool
|
|
56
|
+
# https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
|
|
57
|
+
# https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
|
|
58
|
+
# maxsize is the number of requests to host that are allowed in parallel # noqa: E501
|
|
59
|
+
# Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
|
|
60
|
+
|
|
61
|
+
# cert_reqs
|
|
62
|
+
if configuration.verify_ssl:
|
|
63
|
+
cert_reqs = ssl.CERT_REQUIRED
|
|
64
|
+
else:
|
|
65
|
+
cert_reqs = ssl.CERT_NONE
|
|
66
|
+
|
|
67
|
+
# ca_certs
|
|
68
|
+
if configuration.ssl_ca_cert:
|
|
69
|
+
ca_certs = configuration.ssl_ca_cert
|
|
70
|
+
else:
|
|
71
|
+
# if not set certificate file, use Mozilla's root certificates.
|
|
72
|
+
ca_certs = certifi.where()
|
|
73
|
+
|
|
74
|
+
addition_pool_args = {}
|
|
75
|
+
if configuration.assert_hostname is not None:
|
|
76
|
+
addition_pool_args['assert_hostname'] = configuration.assert_hostname # noqa: E501
|
|
77
|
+
|
|
78
|
+
if maxsize is None:
|
|
79
|
+
if configuration.connection_pool_maxsize is not None:
|
|
80
|
+
maxsize = configuration.connection_pool_maxsize
|
|
81
|
+
else:
|
|
82
|
+
maxsize = 4
|
|
83
|
+
|
|
84
|
+
# https pool manager
|
|
85
|
+
if configuration.proxy:
|
|
86
|
+
self.pool_manager = urllib3.ProxyManager(
|
|
87
|
+
num_pools=pools_size,
|
|
88
|
+
maxsize=maxsize,
|
|
89
|
+
cert_reqs=cert_reqs,
|
|
90
|
+
ca_certs=ca_certs,
|
|
91
|
+
cert_file=configuration.cert_file,
|
|
92
|
+
key_file=configuration.key_file,
|
|
93
|
+
proxy_url=configuration.proxy,
|
|
94
|
+
**addition_pool_args
|
|
95
|
+
)
|
|
96
|
+
else:
|
|
97
|
+
self.pool_manager = urllib3.PoolManager(
|
|
98
|
+
num_pools=pools_size,
|
|
99
|
+
maxsize=maxsize,
|
|
100
|
+
cert_reqs=cert_reqs,
|
|
101
|
+
ca_certs=ca_certs,
|
|
102
|
+
cert_file=configuration.cert_file,
|
|
103
|
+
key_file=configuration.key_file,
|
|
104
|
+
**addition_pool_args
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
def request(self, method, url, query_params=None, headers=None,
|
|
108
|
+
body=None, post_params=None, _preload_content=True,
|
|
109
|
+
_request_timeout=None):
|
|
110
|
+
"""Perform requests.
|
|
111
|
+
|
|
112
|
+
:param method: http request method
|
|
113
|
+
:param url: http request url
|
|
114
|
+
:param query_params: query parameters in the url
|
|
115
|
+
:param headers: http request headers
|
|
116
|
+
:param body: request json body, for `application/json`
|
|
117
|
+
:param post_params: request post parameters,
|
|
118
|
+
`application/x-www-form-urlencoded`
|
|
119
|
+
and `multipart/form-data`
|
|
120
|
+
:param _preload_content: if False, the urllib3.HTTPResponse object will
|
|
121
|
+
be returned without reading/decoding response
|
|
122
|
+
data. Default is True.
|
|
123
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
124
|
+
number provided, it will be total request
|
|
125
|
+
timeout. It can also be a pair (tuple) of
|
|
126
|
+
(connection, read) timeouts.
|
|
127
|
+
"""
|
|
128
|
+
method = method.upper()
|
|
129
|
+
assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT',
|
|
130
|
+
'PATCH', 'OPTIONS']
|
|
131
|
+
|
|
132
|
+
if post_params and body:
|
|
133
|
+
raise ValueError(
|
|
134
|
+
"body parameter cannot be used with post_params parameter."
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
post_params = post_params or {}
|
|
138
|
+
headers = headers or {}
|
|
139
|
+
|
|
140
|
+
timeout = None
|
|
141
|
+
if _request_timeout:
|
|
142
|
+
if isinstance(_request_timeout, (int, ) if six.PY3 else (int, long)): # noqa: E501,F821
|
|
143
|
+
timeout = urllib3.Timeout(total=_request_timeout)
|
|
144
|
+
elif (isinstance(_request_timeout, tuple) and
|
|
145
|
+
len(_request_timeout) == 2):
|
|
146
|
+
timeout = urllib3.Timeout(
|
|
147
|
+
connect=_request_timeout[0], read=_request_timeout[1])
|
|
148
|
+
|
|
149
|
+
if 'Content-Type' not in headers:
|
|
150
|
+
headers['Content-Type'] = 'application/json'
|
|
151
|
+
|
|
152
|
+
try:
|
|
153
|
+
# For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
|
|
154
|
+
if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
|
|
155
|
+
if query_params:
|
|
156
|
+
url += '?' + urlencode(query_params)
|
|
157
|
+
if re.search('json', headers['Content-Type'], re.IGNORECASE):
|
|
158
|
+
request_body = '{}'
|
|
159
|
+
if body is not None:
|
|
160
|
+
request_body = json.dumps(body)
|
|
161
|
+
r = self.pool_manager.request(
|
|
162
|
+
method, url,
|
|
163
|
+
body=request_body,
|
|
164
|
+
preload_content=_preload_content,
|
|
165
|
+
timeout=timeout,
|
|
166
|
+
headers=headers)
|
|
167
|
+
elif headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
|
|
168
|
+
r = self.pool_manager.request(
|
|
169
|
+
method, url,
|
|
170
|
+
fields=post_params,
|
|
171
|
+
encode_multipart=False,
|
|
172
|
+
preload_content=_preload_content,
|
|
173
|
+
timeout=timeout,
|
|
174
|
+
headers=headers)
|
|
175
|
+
elif headers['Content-Type'] == 'multipart/form-data':
|
|
176
|
+
# must del headers['Content-Type'], or the correct
|
|
177
|
+
# Content-Type which generated by urllib3 will be
|
|
178
|
+
# overwritten.
|
|
179
|
+
del headers['Content-Type']
|
|
180
|
+
r = self.pool_manager.request(
|
|
181
|
+
method, url,
|
|
182
|
+
fields=post_params,
|
|
183
|
+
encode_multipart=True,
|
|
184
|
+
preload_content=_preload_content,
|
|
185
|
+
timeout=timeout,
|
|
186
|
+
headers=headers)
|
|
187
|
+
# Pass a `string` parameter directly in the body to support
|
|
188
|
+
# other content types than Json when `body` argument is
|
|
189
|
+
# provided in serialized form
|
|
190
|
+
elif isinstance(body, str):
|
|
191
|
+
request_body = body
|
|
192
|
+
r = self.pool_manager.request(
|
|
193
|
+
method, url,
|
|
194
|
+
body=request_body,
|
|
195
|
+
preload_content=_preload_content,
|
|
196
|
+
timeout=timeout,
|
|
197
|
+
headers=headers)
|
|
198
|
+
else:
|
|
199
|
+
# Cannot generate the request from given parameters
|
|
200
|
+
msg = """Cannot prepare a request message for provided
|
|
201
|
+
arguments. Please check that your arguments match
|
|
202
|
+
declared content type."""
|
|
203
|
+
raise ApiException(status=0, reason=msg)
|
|
204
|
+
# For `GET`, `HEAD`
|
|
205
|
+
else:
|
|
206
|
+
r = self.pool_manager.request(method, url,
|
|
207
|
+
fields=query_params,
|
|
208
|
+
preload_content=_preload_content,
|
|
209
|
+
timeout=timeout,
|
|
210
|
+
headers=headers)
|
|
211
|
+
except urllib3.exceptions.SSLError as e:
|
|
212
|
+
msg = "{0}\n{1}".format(type(e).__name__, str(e))
|
|
213
|
+
raise ApiException(status=0, reason=msg)
|
|
214
|
+
|
|
215
|
+
if _preload_content:
|
|
216
|
+
r = RESTResponse(r)
|
|
217
|
+
|
|
218
|
+
# log response body
|
|
219
|
+
logger.debug("response body: %s", r.data)
|
|
220
|
+
|
|
221
|
+
if not 200 <= r.status <= 299:
|
|
222
|
+
raise ApiException(http_resp=r)
|
|
223
|
+
|
|
224
|
+
return r
|
|
225
|
+
|
|
226
|
+
def GET(self, url, headers=None, query_params=None, _preload_content=True,
|
|
227
|
+
_request_timeout=None):
|
|
228
|
+
return self.request("GET", url,
|
|
229
|
+
headers=headers,
|
|
230
|
+
_preload_content=_preload_content,
|
|
231
|
+
_request_timeout=_request_timeout,
|
|
232
|
+
query_params=query_params)
|
|
233
|
+
|
|
234
|
+
def HEAD(self, url, headers=None, query_params=None, _preload_content=True,
|
|
235
|
+
_request_timeout=None):
|
|
236
|
+
return self.request("HEAD", url,
|
|
237
|
+
headers=headers,
|
|
238
|
+
_preload_content=_preload_content,
|
|
239
|
+
_request_timeout=_request_timeout,
|
|
240
|
+
query_params=query_params)
|
|
241
|
+
|
|
242
|
+
def OPTIONS(self, url, headers=None, query_params=None, post_params=None,
|
|
243
|
+
body=None, _preload_content=True, _request_timeout=None):
|
|
244
|
+
return self.request("OPTIONS", url,
|
|
245
|
+
headers=headers,
|
|
246
|
+
query_params=query_params,
|
|
247
|
+
post_params=post_params,
|
|
248
|
+
_preload_content=_preload_content,
|
|
249
|
+
_request_timeout=_request_timeout,
|
|
250
|
+
body=body)
|
|
251
|
+
|
|
252
|
+
def DELETE(self, url, headers=None, query_params=None, body=None,
|
|
253
|
+
_preload_content=True, _request_timeout=None):
|
|
254
|
+
return self.request("DELETE", url,
|
|
255
|
+
headers=headers,
|
|
256
|
+
query_params=query_params,
|
|
257
|
+
_preload_content=_preload_content,
|
|
258
|
+
_request_timeout=_request_timeout,
|
|
259
|
+
body=body)
|
|
260
|
+
|
|
261
|
+
def POST(self, url, headers=None, query_params=None, post_params=None,
|
|
262
|
+
body=None, _preload_content=True, _request_timeout=None):
|
|
263
|
+
return self.request("POST", url,
|
|
264
|
+
headers=headers,
|
|
265
|
+
query_params=query_params,
|
|
266
|
+
post_params=post_params,
|
|
267
|
+
_preload_content=_preload_content,
|
|
268
|
+
_request_timeout=_request_timeout,
|
|
269
|
+
body=body)
|
|
270
|
+
|
|
271
|
+
def PUT(self, url, headers=None, query_params=None, post_params=None,
|
|
272
|
+
body=None, _preload_content=True, _request_timeout=None):
|
|
273
|
+
return self.request("PUT", url,
|
|
274
|
+
headers=headers,
|
|
275
|
+
query_params=query_params,
|
|
276
|
+
post_params=post_params,
|
|
277
|
+
_preload_content=_preload_content,
|
|
278
|
+
_request_timeout=_request_timeout,
|
|
279
|
+
body=body)
|
|
280
|
+
|
|
281
|
+
def PATCH(self, url, headers=None, query_params=None, post_params=None,
|
|
282
|
+
body=None, _preload_content=True, _request_timeout=None):
|
|
283
|
+
return self.request("PATCH", url,
|
|
284
|
+
headers=headers,
|
|
285
|
+
query_params=query_params,
|
|
286
|
+
post_params=post_params,
|
|
287
|
+
_preload_content=_preload_content,
|
|
288
|
+
_request_timeout=_request_timeout,
|
|
289
|
+
body=body)
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
class ApiException(Exception):
|
|
293
|
+
|
|
294
|
+
def __init__(self, status=None, reason=None, http_resp=None):
|
|
295
|
+
if http_resp:
|
|
296
|
+
self.status = http_resp.status
|
|
297
|
+
self.reason = http_resp.reason
|
|
298
|
+
self.body = http_resp.data
|
|
299
|
+
self.headers = http_resp.getheaders()
|
|
300
|
+
else:
|
|
301
|
+
self.status = status
|
|
302
|
+
self.reason = reason
|
|
303
|
+
self.body = None
|
|
304
|
+
self.headers = None
|
|
305
|
+
|
|
306
|
+
def __str__(self):
|
|
307
|
+
"""Custom error messages for exception"""
|
|
308
|
+
error_message = "({0})\n"\
|
|
309
|
+
"Reason: {1}\n".format(self.status, self.reason)
|
|
310
|
+
if self.headers:
|
|
311
|
+
error_message += "HTTP response headers: {0}\n".format(
|
|
312
|
+
self.headers)
|
|
313
|
+
|
|
314
|
+
if self.body:
|
|
315
|
+
error_message += "HTTP response body: {0}\n".format(self.body)
|
|
316
|
+
|
|
317
|
+
return error_message
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
# flake8: noqa
|
|
4
|
+
|
|
5
|
+
"""
|
|
6
|
+
LOCKSS Metadata Service REST API
|
|
7
|
+
|
|
8
|
+
REST API of the LOCKSS Metadata Service # noqa: E501
|
|
9
|
+
|
|
10
|
+
OpenAPI spec version: 2.0.0
|
|
11
|
+
Contact: lockss-support@lockss.org
|
|
12
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from __future__ import absolute_import
|
|
16
|
+
|
|
17
|
+
# import apis into sdk package
|
|
18
|
+
from lockss.pyclient.md.api.mdupdates_api import MdupdatesApi
|
|
19
|
+
from lockss.pyclient.md.api.metadata_api import MetadataApi
|
|
20
|
+
from lockss.pyclient.md.api.status_api import StatusApi
|
|
21
|
+
from lockss.pyclient.md.api.urls_api import UrlsApi
|
|
22
|
+
# import ApiClient
|
|
23
|
+
from lockss.pyclient.md.api_client import ApiClient
|
|
24
|
+
from lockss.pyclient.md.configuration import Configuration
|
|
25
|
+
# import models into sdk package
|
|
26
|
+
from lockss.pyclient.md.models.api_status import ApiStatus
|
|
27
|
+
from lockss.pyclient.md.models.au import Au
|
|
28
|
+
from lockss.pyclient.md.models.au_metadata_page_info import AuMetadataPageInfo
|
|
29
|
+
from lockss.pyclient.md.models.error_result import ErrorResult
|
|
30
|
+
from lockss.pyclient.md.models.item_metadata import ItemMetadata
|
|
31
|
+
from lockss.pyclient.md.models.job import Job
|
|
32
|
+
from lockss.pyclient.md.models.job_page_info import JobPageInfo
|
|
33
|
+
from lockss.pyclient.md.models.metadata_update_spec import MetadataUpdateSpec
|
|
34
|
+
from lockss.pyclient.md.models.page_info import PageInfo
|
|
35
|
+
from lockss.pyclient.md.models.status import Status
|
|
36
|
+
from lockss.pyclient.md.models.url_info import UrlInfo
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from __future__ import absolute_import
|
|
2
|
+
|
|
3
|
+
# flake8: noqa
|
|
4
|
+
|
|
5
|
+
# import apis into api package
|
|
6
|
+
from lockss.pyclient.md.api.mdupdates_api import MdupdatesApi
|
|
7
|
+
from lockss.pyclient.md.api.metadata_api import MetadataApi
|
|
8
|
+
from lockss.pyclient.md.api.status_api import StatusApi
|
|
9
|
+
from lockss.pyclient.md.api.urls_api import UrlsApi
|