harbor仓库接口python操作类
- 2022-09-27 13:26:48
- 开发
- 1015
- shevechco
harbor之前的部署配置和介绍可以查看我之前的笔记,这里整理出了一个harbor仓库的操作类,以后可以直接用的上。
01.#!/usr/bin/python302.#coding:utf-803.import requests04.import json05. 06.class Hub(object):07. def __init__(self, host, port, username, passwd):08. self.host = host09. self.port = port10. self.username = username11. self.passwd = passwd12. 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 token23. 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