Skip to content

Commit 4c1e816

Browse files
author
wangjiaju.716
committed
Add ve_cr
1 parent 5a53788 commit 4c1e816

File tree

3 files changed

+83
-0
lines changed

3 files changed

+83
-0
lines changed

veadk/consts.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,7 @@
4343

4444
DEFAULT_TLS_OTEL_EXPORTER_ENDPOINT = "https://tls-cn-beijing.volces.com:4318/v1/traces"
4545
DEFAULT_TLS_OTEL_EXPORTER_REGION = "cn-beijing"
46+
47+
DEFAULT_CR_INSTANCE_NAME = "veadk-user-instance"
48+
DEFAULT_CR_NAMESPACE_NAME = "veadk-user-namespace"
49+
DEFAULT_CR_REPO_NAME = "veadk-user-repo"

veadk/integrations/ve_cr/__init__.py

Whitespace-only changes.

veadk/integrations/ve_cr/ve_cr.py

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
from veadk.utils.volcengine_sign import ve_request
2+
from veadk.utils.logger import get_logger
3+
from veadk.consts import (
4+
DEFAULT_CR_INSTANCE_NAME,
5+
DEFAULT_CR_NAMESPACE_NAME,
6+
DEFAULT_CR_REPO_NAME,
7+
)
8+
import time
9+
10+
logger = get_logger(__name__)
11+
12+
13+
class VeCR:
14+
def __init__(self, access_key: str, secret_key: str, region: str = "cn-beijing"):
15+
self.ak = access_key
16+
self.sk = secret_key
17+
self.region = region
18+
assert region in ["cn-beijing", "cn-guangzhou", "cn-shanghai"]
19+
self.version = "2022-05-12"
20+
21+
def _create_instance(self, instance_name: str = DEFAULT_CR_INSTANCE_NAME):
22+
response = ve_request(
23+
request_body={
24+
"Name": instance_name,
25+
"ResourceTags": [
26+
{"Key": "provider", "Value": "veadk"},
27+
],
28+
},
29+
action="CreateRegistry",
30+
ak=self.ak,
31+
sk=self.sk,
32+
service="cr",
33+
version=self.version,
34+
region=self.region,
35+
host=f"cr.{self.region}.volcengineapi.com",
36+
)
37+
logger.info(f"create cr instance {instance_name}: {response}")
38+
return response
39+
40+
def _check_instance(self, instance_name: str = DEFAULT_CR_INSTANCE_NAME):
41+
response = ve_request(
42+
request_body={
43+
"Filter": {
44+
"Names": [instance_name],
45+
}
46+
},
47+
action="ListRegistries",
48+
ak=self.ak,
49+
sk=self.sk,
50+
service="vecr",
51+
version=self.version,
52+
region=self.region,
53+
host=f"cr.{self.region}.volcengineapi.com",
54+
)
55+
56+
try:
57+
return response["Result"]["Items"][0]["Status"]
58+
except Exception as e:
59+
raise ValueError(f"cr instance {instance_name} not found: {e}")
60+
61+
def _create_namespace(self, namespace_name: str = DEFAULT_CR_NAMESPACE_NAME):
62+
pass
63+
64+
def _create_repo(self, repo_name: str = DEFAULT_CR_REPO_NAME):
65+
pass
66+
67+
68+
if __name__ == "__main__":
69+
cr = VeCR("", "")
70+
cr._create_instance()
71+
72+
while True:
73+
status = cr._check_instance()
74+
if status["Phase"] == "Running":
75+
print("cr instance running")
76+
break
77+
else:
78+
print("cr instance not running")
79+
time.sleep(30)

0 commit comments

Comments
 (0)