harbor仓库接口python操作类

  • 2022-09-27 13:26:48
  • 开发
  • 1015
  • shevechco

harbor之前的部署配置和介绍可以查看我之前的笔记,这里整理出了一个harbor仓库的操作类,以后可以直接用的上。

01.
#!/usr/bin/python3
02.
#coding:utf-8
03.
import requests
04.
import json
05.
06.
class Hub(object):
07.
    def __init__(self, host, port, username, passwd):
08.
        self.host = host
09.
        self.port = port
10.
        self.username = username
11.
        self.passwd = passwd
12.
        self.token = self.get_token()
13.
14.
    def get_token(self):
15.
        url = "http://{}:{}/service/token?account={}&service=harbor-registry&scope=registry:catalog:*".format(self.host, self.port, self.username)
16.
        try:
17.
            r = requests.get(url, auth=(self.username, self.passwd))
18.
            token_dict = json.loads(r.text)
19.
            token = token_dict['token']
20.
        except Exception as e:
21.
            print(e)
22.
        return token
23.
24.
    def systeminfo(self):
25.
        url = "http://{}:{}/api/v2.0/systeminfo".format(self.host, self.port)
26.
        headers = {
27.
            "Content-Type": "application/json",
28.
            "authorization": "bearer "+self.token,
29.
        }
30.
        try:
31.
            r = requests.get(url, headers=headers)
32.
        except Exception as e:
33.
            print(e)
34.
        return r.json()
35.
36.
    def statistics(self):
37.
        url = "http://{}:{}/api/v2.0/statistics".format(self.host, self.port)
38.
        headers = {
39.
            "Content-Type": "application/json",
40.
            "authorization": "bearer "+self.token,
41.
        }
42.
        try:
43.
            r = requests.get(url, headers=headers)
44.
        except Exception as e:
45.
            print(e)
46.
        return r.json()
47.
48.
    def project_list(self, page=1, page_size=15):
49.
        url = "http://{}:{}/api/v2.0/projects?page={}&page_size={}".format(self.host, self.port, page, page_size)
50.
        headers = {
51.
            "Content-Type": "application/json",
52.
            "authorization": "bearer "+self.token,
53.
        }
54.
        try:
55.
            r = requests.get(url, headers=headers)
56.
        except Exception as e:
57.
            print(e)
58.
        return r.json()
59.
60.
    def image_list(self, project_name, page=1, page_size=15):
61.
        url = "http://{}:{}/api/v2.0/projects/{}/repositories?page={}&page_size={}".format(self.host, self.port, project_name, page, page_size)
62.
        headers = {
63.
            "Content-Type": "application/json",
64.
            "authorization": "bearer "+self.token,
65.
        }
66.
        try:
67.
            r = requests.get(url, headers=headers)
68.
        except Exception as e:
69.
            print(e)
70.
        return r.json()
71.
72.
    def tag_list(self, image_name, page=1, page_size=15):
73.
        url = "http://{}:{}/api/v2.0/projects/orionx/repositories/{}/artifacts?with_tag=false&with_scan_overview=true&with_label=true&page={}&page_size={}".format(self.host, self.port, image_name, page, page_size)
74.
        headers = {
75.
            "Content-Type": "application/json",
76.
            "authorization": "bearer "+self.token,
77.
        }
78.
        try:
79.
            r = requests.get(url, headers=headers)
80.
        except Exception as e:
81.
            print(e)
82.
        return r.json()
83.
84.
if __name__ == "__main__":
85.
    vhub = Hub("192.168.1.78", 5000, "admin", "admin123")
86.
    #print(vhub.get_token())
87.
    #print(vhub.project_list())
88.
    print(vhub.systeminfo())

执行测试返回

01.
{'auth_mode': 'db_auth', 'harbor_version': 'v2.5.1-b0506782', 'self_registration': False}


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.sulao.cn/post/883

相关推荐