syneto_api 0.2.34__tar.gz → 0.2.35__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: syneto-api
3
- Version: 0.2.34
3
+ Version: 0.2.35
4
4
  Summary: Syneto Client API library
5
5
  Home-page: https://github.com/SynetoNet/syneto-api
6
6
  License: Proprietary
@@ -12,7 +12,6 @@ Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.6
13
13
  Classifier: Programming Language :: Python :: 3.7
14
14
  Classifier: Programming Language :: Python :: 3.8
15
- Classifier: Programming Language :: Python :: 3.9
16
15
  Requires-Dist: aiodns (>=3,<4)
17
16
  Requires-Dist: aiohttp (>=3.7,<4.0)
18
17
  Requires-Dist: cchardet (>=2.1,<3.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "syneto_api"
3
- version = "0.2.34"
3
+ version = "0.2.35"
4
4
  description = "Syneto Client API library"
5
5
  authors = ["Your Name <you@example.com>"]
6
6
  license = "Proprietary"
@@ -20,7 +20,7 @@ install_requires = \
20
20
 
21
21
  setup_kwargs = {
22
22
  'name': 'syneto-api',
23
- 'version': '0.2.34',
23
+ 'version': '0.2.35',
24
24
  'description': 'Syneto Client API library',
25
25
  'long_description': '# Syneto API\n\nSyneto Client API library: authentication, storage, virtualization and protection\n\n# Installation\n\n```\n$ pip install syneto-api\n```\n\n# Basic Usage\n\n```\nfrom syneto_api import Authentication, Virtualization, Storage, Protection\n\nauth_api = Authentication(url_base="https://syneto-instance-ip-address/api/auth", insecure_ssl=True)\nresponse = auth_api.login(username="admin", password="admin")\njwt = response[\'jwt\']\n\nvirt_api = Virtualization(url_base="https://syneto-instance-ip-address/api/virtualization", insecure_ssl=True)\nvirt_api.set_auth_jwt(jwt)\nprint(virt_api.get_vms())\n\nstorage_api = Storage(url_base="https://syneto-instance-ip-address/api/storage", insecure_ssl=True)\nstorage_api.set_auth_jwt(jwt)\nprint(storage_api.get_pools())\n```\n\n# Environment Variables\n\nFor conveninence, the base urls for the api endpoints are also accepted as environment variables, please see below.\n\n```\nAUTH_SERVICE=https://syneto-instance-ip-address/api/auth\nVIRTUALIZATION_SERVICE=https://syneto-instance-ip-address/api/virtualization\nSTORAGE_SERVICE=https://syneto-instance-ip-address/api/storage\nPROTECTION_SERVICE=https://syneto-instance-ip-address/api/protection\n```\n\nIf you are using self-signed SSL certificates, set the following env. so that the http request library does not perform ssl verification. \n\n```\nALLOW_INSECURE_SSL=True\n```\n',
26
26
  'author': 'Your Name',
@@ -25,21 +25,15 @@ class Storage(APIClientBase):
25
25
  return self.put_request("/pools/{pool_name}/export", pool_name=pool_name)
26
26
 
27
27
  def get_pool_periodic_scrub(self, pool_name: str):
28
- return self.get_request(
29
- "/pools/{pool_name}/scrub/interval", pool_name=pool_name
30
- )
28
+ return self.get_request("/pools/{pool_name}/scrub/interval", pool_name=pool_name)
31
29
 
32
30
  def set_pool_periodic_scrub(self, pool_name: str, interval: str):
33
31
  return self.post_request(
34
- "/pools/{pool_name}/scrub/interval",
35
- pool_name=pool_name,
36
- query_args={"interval": interval},
32
+ "/pools/{pool_name}/scrub/interval", pool_name=pool_name, query_args={"interval": interval},
37
33
  )
38
34
 
39
35
  def delete_pool_periodic_scrub(self, pool_name: str):
40
- return self.delete_request(
41
- "/pools/{pool_name}/scrub/interval", pool_name=pool_name
42
- )
36
+ return self.delete_request("/pools/{pool_name}/scrub/interval", pool_name=pool_name)
43
37
 
44
38
  def start_pool_scrub(self, pool_name: str):
45
39
  return self.put_request("/pools/{pool_name}/scrub/start", pool_name=pool_name)
@@ -48,22 +42,14 @@ class Storage(APIClientBase):
48
42
  return self.put_request("/pools/{pool_name}/scrub/stop", pool_name=pool_name)
49
43
 
50
44
  def get_volumes(
51
- self,
52
- volume_type: str = "NFS",
53
- only_clones: bool = False,
54
- label_key: str = "",
45
+ self, volume_type: str = "NFS", only_clones: bool = False, label_key: str = "",
55
46
  ):
56
47
  return self.get_request(
57
- "/volumes",
58
- query_args={
59
- "volume_type": volume_type,
60
- "only_clones": only_clones,
61
- "label_key": label_key,
62
- },
48
+ "/volumes", query_args={"volume_type": volume_type, "only_clones": only_clones, "label_key": label_key,},
63
49
  )
64
50
 
65
51
  def create_volume(
66
- self, pool_name: str, ips: list, volume_type: str = "NFS", quota: str = "none"
52
+ self, pool_name: str, ips: list, volume_type: str = "NFS", quota: str = "none",
67
53
  ):
68
54
  hosts = [{"ipNetwork": ip, "accessType": "rw"} for ip in ips]
69
55
  body = {
@@ -72,57 +58,35 @@ class Storage(APIClientBase):
72
58
  "nfsShareConfig": {"rootAccess": "true", "hosts": hosts},
73
59
  "quota": quota,
74
60
  }
75
- return self.post_request(
76
- "/volumes",
77
- body=body,
78
- )
61
+ return self.post_request("/volumes", body=body,)
79
62
 
80
63
  def get_volume(self, volume_id: str):
81
- return self.get_request(
82
- "/volumes/{volume_id}",
83
- volume_id=volume_id,
84
- )
64
+ return self.get_request("/volumes/{volume_id}", volume_id=volume_id,)
85
65
 
86
66
  def delete_volume(self, volume_id: str):
87
- return self.delete_request(
88
- "/volumes",
89
- query_args={"volume_id": volume_id},
90
- )
67
+ return self.delete_request("/volumes", query_args={"volume_id": volume_id},)
91
68
 
92
69
  def promote_volume(self, volume_id: str):
93
70
  return self.put_request("/volumes/{volume_id}/promote", volume_id=volume_id)
94
71
 
95
72
  def get_volume_meta(self, volume_id: str, key: str):
96
- return self.put_request(
97
- "/volumes/{volume_id}/meta", volume_id=volume_id, query_args={"key": key}
98
- )
73
+ return self.get_request("/volumes/{volume_id}/meta", volume_id=volume_id, query_args={"key": key},)
99
74
 
100
75
  def set_volume_meta(self, volume_id: str, key: str, value: dict):
101
76
  body = {"key": key, "value": value}
102
- return self.put_request(
103
- "/volumes/{volume_id}/meta",
104
- volume_id=volume_id,
105
- body=body,
106
- )
77
+ return self.put_request("/volumes/{volume_id}/meta", volume_id=volume_id, body=body,)
107
78
 
108
79
  def get_volume_snapshots(self, volume_id: str):
109
- return self.get_request(
110
- "/volumes/{volume_id}/snapshots",
111
- volume_id=volume_id,
112
- )
80
+ return self.get_request("/volumes/{volume_id}/snapshots", volume_id=volume_id,)
113
81
 
114
82
  def create_volume_snapshot(self, volume_id: str, snapshot_name: str):
115
83
  return self.post_request(
116
- "/volumes/{volume_id}/snapshots",
117
- volume_id=volume_id,
118
- query_args={"snapshot_name": snapshot_name},
84
+ "/volumes/{volume_id}/snapshots", volume_id=volume_id, query_args={"snapshot_name": snapshot_name},
119
85
  )
120
86
 
121
87
  def get_volume_snapshot(self, volume_id: str, snapshot_name: str):
122
88
  return self.get_request(
123
- "/volumes/{volume_id}/snapshots/{snapshot_name}",
124
- volume_id=volume_id,
125
- snapshot_name=snapshot_name,
89
+ "/volumes/{volume_id}/snapshots/{snapshot_name}", volume_id=volume_id, snapshot_name=snapshot_name,
126
90
  )
127
91
 
128
92
  def remove_volume_snapshot(self, volume_id: str, snapshot_name: str):
@@ -131,63 +95,43 @@ class Storage(APIClientBase):
131
95
 
132
96
  def delete_volume_snapshot(self, volume_id: str, snapshot_name: str):
133
97
  return self.delete_request(
134
- "/volumes/{volume_id}/snapshots",
135
- volume_id=volume_id,
136
- query_args={"snapshot_name": snapshot_name},
98
+ "/volumes/{volume_id}/snapshots", volume_id=volume_id, query_args={"snapshot_name": snapshot_name},
137
99
  )
138
100
 
139
101
  def rollback_volume_snapshot(self, volume_id: str, snapshot_name: str):
140
102
  return self.put_request(
141
- "/volumes/{volume_id}/snapshots/{snapshot_name}/rollback",
142
- volume_id=volume_id,
143
- snapshot_name=snapshot_name,
103
+ "/volumes/{volume_id}/snapshots/{snapshot_name}/rollback", volume_id=volume_id, snapshot_name=snapshot_name,
144
104
  )
145
105
 
146
106
  def get_volume_snapshot_clones(self, volume_id: str, snapshot_name: str):
147
107
  return self.get_request(
148
- "/volumes/{volume_id}/snapshots/{snapshot_name}/clones",
149
- volume_id=volume_id,
150
- snapshot_name=snapshot_name,
108
+ "/volumes/{volume_id}/snapshots/{snapshot_name}/clones", volume_id=volume_id, snapshot_name=snapshot_name,
151
109
  )
152
110
 
153
111
  def create_volume_snapshot_clone(self, volume_id: str, snapshot_name: str):
154
112
  return self.post_request(
155
- "/volumes/{volume_id}/snapshots/{snapshot_name}/clones",
156
- volume_id=volume_id,
157
- snapshot_name=snapshot_name,
113
+ "/volumes/{volume_id}/snapshots/{snapshot_name}/clones", volume_id=volume_id, snapshot_name=snapshot_name,
158
114
  )
159
115
 
160
116
  def get_volume_files(
161
- self,
162
- volume_id: str,
163
- path: str = "",
164
- recursive: bool = False,
165
- match_pattern: str = "",
117
+ self, volume_id: str, path: str = "", recursive: bool = False, match_pattern: str = "",
166
118
  ):
167
119
  return self.get_request(
168
120
  "/volumes/{volume_id}/files",
169
121
  volume_id=volume_id,
170
- query_args={
171
- "path": path,
172
- "recursive": recursive,
173
- "match_pattern": match_pattern,
174
- },
122
+ query_args={"path": path, "recursive": recursive, "match_pattern": match_pattern,},
175
123
  )
176
124
 
177
- def delete_volume_files(
178
- self, volume_id: str, file_path: str = None, pattern: str = None
179
- ):
125
+ def delete_volume_files(self, volume_id: str, file_path: str = None, pattern: str = None):
180
126
  return self.delete_request(
181
127
  "/volumes/{volume_id}/files",
182
128
  volume_id=volume_id,
183
- body={"volume_id": volume_id, "file_path": file_path, "pattern": pattern},
129
+ body={"volume_id": volume_id, "file_path": file_path, "pattern": pattern,},
184
130
  )
185
131
 
186
132
  def get_volume_file_content(self, volume_id: str, file_path: str):
187
133
  return self.get_request(
188
- "/volumes/{volume_id}/files/content",
189
- volume_id=volume_id,
190
- query_args={"file_path": file_path},
134
+ "/volumes/{volume_id}/files/content", volume_id=volume_id, query_args={"file_path": file_path},
191
135
  )
192
136
 
193
137
  def set_volume_file_content(self, volume_id: str, file_path: str, content: str):
@@ -199,27 +143,18 @@ class Storage(APIClientBase):
199
143
  )
200
144
 
201
145
  def create_directory_in_volume(self, volume_id: str, dir_path: str):
202
- return self.post_request(
203
- "/volumes/{volume_id}/folder",
204
- volume_id=volume_id,
205
- query_args={"dir_path": dir_path},
206
- )
146
+ return self.post_request("/volumes/{volume_id}/folder", volume_id=volume_id, query_args={"dir_path": dir_path},)
207
147
 
208
148
  def delete_directory_in_volume(self, volume_id: str, dir_path: str):
209
149
  return self.delete_request(
210
- "/volumes/{volume_id}/folder",
211
- volume_id=volume_id,
212
- query_args={"dir_path": dir_path},
150
+ "/volumes/{volume_id}/folder", volume_id=volume_id, query_args={"dir_path": dir_path},
213
151
  )
214
152
 
215
153
  def get_file_recovery_volume(self):
216
154
  return self.get_request("/file-recovery")
217
155
 
218
156
  def create_file_recovery_volume(self, pool_name: str):
219
- return self.post_request(
220
- "/file-recovery",
221
- body={"pool": pool_name},
222
- )
157
+ return self.post_request("/file-recovery", body={"pool": pool_name},)
223
158
 
224
159
  def get_system_information(self):
225
160
  return self.get_request("/system")
File without changes