Skip to content

Commit 98fbf4b

Browse files
committed
Add new endpoints
1 parent f417536 commit 98fbf4b

11 files changed

+563
-11
lines changed

core_client/base/api/v3_fs_delete_file_list.py renamed to core_client/base/api/v3_cluster_fs_delete_file.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@
88
@validate_call()
99
def _build_request(
1010
client: Client,
11+
core_id: str,
1112
storage: str,
12-
glob: str = "",
13-
size_min: str = "",
14-
size_max: str = "",
15-
lastmod_start: str = "",
16-
lastmod_end: str = "",
13+
path: str,
1714
retries: int = None,
1815
timeout: float = None,
1916
):
@@ -23,21 +20,19 @@ def _build_request(
2320
timeout = client.timeout
2421
return {
2522
"method": "delete",
26-
"url": f"{client.base_url}/api/v3/fs/{storage}"
27-
+ f"?glob={glob}&size_min={size_min}&size_max={size_max}"
28-
+ f"&lastmod_start={lastmod_start}&lastmod_end={lastmod_end}",
23+
"url": f"{client.base_url}/api/v3/cluster/fs/{storage}/{path}",
2924
"headers": client.headers,
3025
"timeout": timeout,
3126
"data": None,
3227
"json": None,
28+
"params": {"core_id": core_id},
3329
}, retries
3430

3531

3632
def _build_response(response: httpx.Response):
3733
if response.status_code == 200:
3834
if (
39-
"content-type" in response.headers
40-
and response.headers["content-type"]
35+
response.headers["content-type"]
4136
== "application/json; charset=UTF-8"
4237
):
4338
response_200 = response.json()
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import httpx
2+
from pydantic import TypeAdapter, validate_call
3+
4+
from ...models import Client
5+
from ..models import Error
6+
7+
8+
@validate_call()
9+
def _build_request(
10+
client: Client,
11+
storage: str,
12+
path: str,
13+
core_id: str = None,
14+
retries: int = None,
15+
timeout: float = None,
16+
):
17+
if not retries:
18+
retries = client.retries
19+
if not timeout:
20+
timeout = client.timeout
21+
return {
22+
"method": "get",
23+
"url": f"{client.base_url}/api/v3/cluster/fs/{storage}/{path}",
24+
"headers": client.headers,
25+
"timeout": timeout,
26+
"data": None,
27+
"json": None,
28+
"params": {"core_id": core_id},
29+
}, retries
30+
31+
32+
def _build_response(response: httpx.Response):
33+
if response.status_code == 200:
34+
response_200 = response.content
35+
return response_200
36+
elif response.status_code == 301:
37+
response_301 = response.content
38+
return response_301
39+
else:
40+
response_error = TypeAdapter(Error).validate_python(response.json())
41+
return response_error
42+
43+
44+
def sync(client: Client, **kwargs):
45+
request, retries = _build_request(client, **kwargs)
46+
transport = httpx.HTTPTransport(retries=retries)
47+
httpx_client = httpx.Client(transport=transport, http2=True)
48+
response = httpx_client.request(**request)
49+
return _build_response(response=response)
50+
51+
52+
async def asyncio(client: Client, **kwargs):
53+
request, retries = _build_request(client, **kwargs)
54+
transport = httpx.AsyncHTTPTransport(retries=retries)
55+
async with httpx.AsyncClient(transport=transport) as httpx_client:
56+
response = await httpx_client.request(**request)
57+
return _build_response(response=response)
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import httpx
2+
from pydantic import TypeAdapter, validate_call
3+
4+
from ...models import Client
5+
from ..models import Error
6+
7+
8+
@validate_call()
9+
def _build_request(
10+
client: Client,
11+
storage: str,
12+
path: str,
13+
core_id: str = None,
14+
retries: int = None,
15+
timeout: float = None,
16+
):
17+
if not retries:
18+
retries = client.retries
19+
if not timeout:
20+
timeout = client.timeout
21+
return {
22+
"method": "head",
23+
"url": f"{client.base_url}/api/v3/cluster/fs/{storage}/{path}",
24+
"headers": client.headers,
25+
"timeout": timeout,
26+
"data": None,
27+
"json": None,
28+
"params": {"core_id": core_id},
29+
}, retries
30+
31+
32+
def _build_response(response: httpx.Response):
33+
if response.status_code == 200:
34+
response_200 = response.content
35+
return response_200
36+
elif response.status_code == 301:
37+
response_301 = response.content
38+
return response_301
39+
else:
40+
response_error = TypeAdapter(Error).validate_python(response.json())
41+
return response_error
42+
43+
44+
def sync(client: Client, **kwargs):
45+
request, retries = _build_request(client, **kwargs)
46+
transport = httpx.HTTPTransport(retries=retries)
47+
httpx_client = httpx.Client(transport=transport, http2=True)
48+
response = httpx_client.request(**request)
49+
return _build_response(response=response)
50+
51+
52+
async def asyncio(client: Client, **kwargs):
53+
request, retries = _build_request(client, **kwargs)
54+
transport = httpx.AsyncHTTPTransport(retries=retries)
55+
async with httpx.AsyncClient(transport=transport) as httpx_client:
56+
response = await httpx_client.request(**request)
57+
return _build_response(response=response)
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import httpx
2+
from pydantic import TypeAdapter, validate_call
3+
4+
from ...models import Client
5+
from ..models import Error
6+
from ..models.v3 import FilesystemFile
7+
8+
9+
@validate_call()
10+
def _build_request(
11+
client: Client,
12+
storage: str,
13+
glob: str = "",
14+
size_min: str = "",
15+
size_max: str = "",
16+
lastmod_start: str = "",
17+
lastmod_end: str = "",
18+
sort: str = "",
19+
order: str = "",
20+
core_id: str = None,
21+
retries: int = None,
22+
timeout: float = None,
23+
):
24+
"""_summary_
25+
Args:
26+
glob (str): glob pattern for file names
27+
sort (str): none, name, size or lastmod
28+
order (str): asc or desc
29+
"""
30+
if not retries:
31+
retries = client.retries
32+
if not timeout:
33+
timeout = client.timeout
34+
return {
35+
"method": "get",
36+
"url": f"{client.base_url}/api/v3/cluster/fs/{storage}"
37+
+ f"?glob={glob}&size_min={size_min}&size_max={size_max}"
38+
+ f"&lastmod_start={lastmod_start}&lastmod_end={lastmod_end}"
39+
+ f"&sort={sort}&order={order}",
40+
"headers": client.headers,
41+
"timeout": timeout,
42+
"data": None,
43+
"json": None,
44+
"params": {"core_id": core_id},
45+
}, retries
46+
47+
48+
def _build_response(response: httpx.Response):
49+
if response.status_code == 200:
50+
response_200 = TypeAdapter(list[FilesystemFile]).validate_python(response.json())
51+
return response_200
52+
else:
53+
response_error = TypeAdapter(Error).validate_python(response.json())
54+
return response_error
55+
56+
57+
def sync(client: Client, **kwargs):
58+
request, retries = _build_request(client, **kwargs)
59+
transport = httpx.HTTPTransport(retries=retries)
60+
httpx_client = httpx.Client(transport=transport, http2=True)
61+
response = httpx_client.request(**request)
62+
return _build_response(response=response)
63+
64+
65+
async def asyncio(client: Client, **kwargs):
66+
request, retries = _build_request(client, **kwargs)
67+
transport = httpx.AsyncHTTPTransport(retries=retries)
68+
async with httpx.AsyncClient(transport=transport) as httpx_client:
69+
response = await httpx_client.request(**request)
70+
return _build_response(response=response)
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import httpx
2+
from pydantic import TypeAdapter, validate_call
3+
4+
from ...models import Client
5+
from ..models import Error
6+
from ..models.v3 import Filesystem
7+
8+
9+
@validate_call()
10+
def _build_request(
11+
client: Client,
12+
core_id: str = None,
13+
retries: int = None,
14+
timeout: float = None,
15+
):
16+
if not retries:
17+
retries = client.retries
18+
if not timeout:
19+
timeout = client.timeout
20+
return {
21+
"method": "get",
22+
"url": f"{client.base_url}/api/v3/cluster/fs",
23+
"headers": client.headers,
24+
"timeout": timeout,
25+
"data": None,
26+
"json": None,
27+
"params": {"core_id": core_id},
28+
}, retries
29+
30+
31+
def _build_response(response: httpx.Response):
32+
if response.status_code == 200:
33+
response_200 = TypeAdapter(list[Filesystem]).validate_python(response.json())
34+
return response_200
35+
else:
36+
response_error = TypeAdapter(Error).validate_python(response.json())
37+
return response_error
38+
39+
40+
def sync(client: Client, **kwargs):
41+
request, retries = _build_request(client, **kwargs)
42+
transport = httpx.HTTPTransport(retries=retries)
43+
httpx_client = httpx.Client(transport=transport, http2=True)
44+
response = httpx_client.request(**request)
45+
return _build_response(response=response)
46+
47+
48+
async def asyncio(client: Client, **kwargs):
49+
request, retries = _build_request(client, **kwargs)
50+
transport = httpx.AsyncHTTPTransport(retries=retries)
51+
async with httpx.AsyncClient(transport=transport) as httpx_client:
52+
response = await httpx_client.request(**request)
53+
return _build_response(response=response)
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import httpx
2+
from pydantic import TypeAdapter, validate_call
3+
4+
from ...models import Client
5+
from ..models import Error
6+
7+
8+
@validate_call()
9+
def _build_request(
10+
client: Client,
11+
storage: str,
12+
path: str,
13+
link: str,
14+
core_id: str = None,
15+
retries: int = None,
16+
timeout: float = None,
17+
):
18+
if not retries:
19+
retries = client.retries
20+
if not timeout:
21+
timeout = client.timeout
22+
return {
23+
"method": "patch",
24+
"url": f"{client.base_url}/api/v3/cluster/fs/{storage}/{path}",
25+
"headers": client.headers,
26+
"timeout": timeout,
27+
"content": None,
28+
"json": link,
29+
"params": {"core_id": core_id},
30+
}, retries
31+
32+
33+
def _build_response(response: httpx.Response):
34+
if response.status_code == 201:
35+
if (
36+
response.headers["content-type"]
37+
== "application/json; charset=UTF-8"
38+
):
39+
response_201 = response.json()
40+
else:
41+
response_201 = response.text
42+
return response_201
43+
elif response.status_code == 204:
44+
if (
45+
response.headers["content-type"]
46+
== "application/json; charset=UTF-8"
47+
):
48+
response_204 = response.json()
49+
else:
50+
response_204 = response.text
51+
return response_204
52+
else:
53+
response_error = TypeAdapter(Error).validate_python(response.json())
54+
return response_error
55+
56+
57+
def sync(client: Client, **kwargs):
58+
request, retries = _build_request(client, **kwargs)
59+
transport = httpx.HTTPTransport(retries=retries)
60+
httpx_client = httpx.Client(transport=transport, http2=True)
61+
response = httpx_client.request(**request)
62+
return _build_response(response=response)
63+
64+
65+
async def asyncio(client: Client, **kwargs):
66+
request, retries = _build_request(client, **kwargs)
67+
transport = httpx.AsyncHTTPTransport(retries=retries)
68+
async with httpx.AsyncClient(transport=transport) as httpx_client:
69+
response = await httpx_client.request(**request)
70+
return _build_response(response=response)

0 commit comments

Comments
 (0)