Skip to content

Commit 815608a

Browse files
committed
UPM: Add api methods
1 parent 889aec9 commit 815608a

File tree

4 files changed

+231
-14
lines changed

4 files changed

+231
-14
lines changed

atlassian/bamboo.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,3 +1172,71 @@ def delete_elastic_configuration(self, configuration_id):
11721172

11731173
resource = "elasticConfiguration/{configuration_id}".format(configuration_id=configuration_id)
11741174
return self.delete(self.resource_url(resource))
1175+
1176+
def get_plugins_info(self):
1177+
"""
1178+
Provide plugins info
1179+
:return a json of installed plugins
1180+
"""
1181+
url = "rest/plugins/1.0/"
1182+
return self.get(url, headers=self.no_check_headers, trailing=True)
1183+
1184+
def get_plugin_info(self, plugin_key):
1185+
"""
1186+
Provide plugin info
1187+
:return a json of installed plugins
1188+
"""
1189+
url = "rest/plugins/1.0/{plugin_key}-key".format(plugin_key=plugin_key)
1190+
return self.get(url, headers=self.no_check_headers, trailing=True)
1191+
1192+
def get_plugin_license_info(self, plugin_key):
1193+
"""
1194+
Provide plugin license info
1195+
:return a json specific License query
1196+
"""
1197+
url = "rest/plugins/1.0/{plugin_key}-key/license".format(plugin_key=plugin_key)
1198+
return self.get(url, headers=self.no_check_headers, trailing=True)
1199+
1200+
def upload_plugin(self, plugin_path):
1201+
"""
1202+
Provide plugin path for upload into Jira e.g. useful for auto deploy
1203+
:param plugin_path:
1204+
:return:
1205+
"""
1206+
files = {"plugin": open(plugin_path, "rb")}
1207+
upm_token = self.request(
1208+
method="GET",
1209+
path="rest/plugins/1.0/",
1210+
headers=self.no_check_headers,
1211+
trailing=True,
1212+
).headers["upm-token"]
1213+
url = "rest/plugins/1.0/?token={upm_token}".format(upm_token=upm_token)
1214+
return self.post(url, files=files, headers=self.no_check_headers)
1215+
1216+
def delete_plugin(self, plugin_key):
1217+
"""
1218+
Delete plugin
1219+
:param plugin_key:
1220+
:return:
1221+
"""
1222+
url = "rest/plugins/1.0/{}-key".format(plugin_key)
1223+
return self.delete(url)
1224+
1225+
def check_plugin_manager_status(self):
1226+
url = "rest/plugins/latest/safe-mode"
1227+
return self.request(method="GET", path=url, headers=self.safe_mode_headers)
1228+
1229+
def update_plugin_license(self, plugin_key, raw_license):
1230+
"""
1231+
Update license for plugin
1232+
:param plugin_key:
1233+
:param raw_license:
1234+
:return:
1235+
"""
1236+
app_headers = {
1237+
"X-Atlassian-Token": "nocheck",
1238+
"Content-Type": "application/vnd.atl.plugins+json",
1239+
}
1240+
url = "/plugins/1.0/{plugin_key}/license".format(plugin_key=plugin_key)
1241+
data = {"rawLicense": raw_license}
1242+
return self.put(url, data=data, headers=app_headers)

atlassian/confluence.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2411,6 +2411,30 @@ def anonymous(self):
24112411

24122412
return response
24132413

2414+
def get_plugins_info(self):
2415+
"""
2416+
Provide plugins info
2417+
:return a json of installed plugins
2418+
"""
2419+
url = "rest/plugins/1.0/"
2420+
return self.get(url, headers=self.no_check_headers, trailing=True)
2421+
2422+
def get_plugin_info(self, plugin_key):
2423+
"""
2424+
Provide plugin info
2425+
:return a json of installed plugins
2426+
"""
2427+
url = "rest/plugins/1.0/{plugin_key}-key".format(plugin_key=plugin_key)
2428+
return self.get(url, headers=self.no_check_headers, trailing=True)
2429+
2430+
def get_plugin_license_info(self, plugin_key):
2431+
"""
2432+
Provide plugin license info
2433+
:return a json specific License query
2434+
"""
2435+
url = "rest/plugins/1.0/{plugin_key}-key/license".format(plugin_key=plugin_key)
2436+
return self.get(url, headers=self.no_check_headers, trailing=True)
2437+
24142438
def upload_plugin(self, plugin_path):
24152439
"""
24162440
Provide plugin path for upload into Jira e.g. useful for auto deploy
@@ -2436,6 +2460,26 @@ def delete_plugin(self, plugin_key):
24362460
url = "rest/plugins/1.0/{}-key".format(plugin_key)
24372461
return self.delete(url)
24382462

2463+
def check_plugin_manager_status(self):
2464+
url = "rest/plugins/latest/safe-mode"
2465+
return self.request(method="GET", path=url, headers=self.safe_mode_headers)
2466+
2467+
def update_plugin_license(self, plugin_key, raw_license):
2468+
"""
2469+
Update license for plugin
2470+
:param plugin_key:
2471+
:param raw_license:
2472+
:return:
2473+
"""
2474+
app_headers = {
2475+
"X-Atlassian-Token": "nocheck",
2476+
"Content-Type": "application/vnd.atl.plugins+json",
2477+
}
2478+
url = "/plugins/1.0/{plugin_key}/license".format(plugin_key=plugin_key)
2479+
data = {"rawLicense": raw_license}
2480+
return self.put(url, data=data, headers=app_headers)
2481+
2482+
24392483
def check_long_tasks_result(self, start=None, limit=None, expand=None):
24402484
"""
24412485
Get result of long tasks

atlassian/crowd.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,30 @@ def health_check(self):
132132
response = self.get("rest/supportHealthCheck/1.0/check/")
133133
return response
134134

135+
def get_plugins_info(self):
136+
"""
137+
Provide plugins info
138+
:return a json of installed plugins
139+
"""
140+
url = "rest/plugins/1.0/"
141+
return self.get(url, headers=self.no_check_headers, trailing=True)
142+
143+
def get_plugin_info(self, plugin_key):
144+
"""
145+
Provide plugin info
146+
:return a json of installed plugins
147+
"""
148+
url = "rest/plugins/1.0/{plugin_key}-key".format(plugin_key=plugin_key)
149+
return self.get(url, headers=self.no_check_headers, trailing=True)
150+
151+
def get_plugin_license_info(self, plugin_key):
152+
"""
153+
Provide plugin license info
154+
:return a json specific License query
155+
"""
156+
url = "rest/plugins/1.0/{plugin_key}-key/license".format(plugin_key=plugin_key)
157+
return self.get(url, headers=self.no_check_headers, trailing=True)
158+
135159
def upload_plugin(self, plugin_path):
136160
"""
137161
Provide plugin path for upload into Jira e.g. useful for auto deploy
@@ -147,3 +171,32 @@ def upload_plugin(self, plugin_path):
147171
).headers["upm-token"]
148172
url = "rest/plugins/1.0/?token={upm_token}".format(upm_token=upm_token)
149173
return self.post(url, files=files, headers=self.no_check_headers)
174+
175+
def delete_plugin(self, plugin_key):
176+
"""
177+
Delete plugin
178+
:param plugin_key:
179+
:return:
180+
"""
181+
url = "rest/plugins/1.0/{}-key".format(plugin_key)
182+
return self.delete(url)
183+
184+
def check_plugin_manager_status(self):
185+
url = "rest/plugins/latest/safe-mode"
186+
return self.request(method="GET", path=url, headers=self.safe_mode_headers)
187+
188+
def update_plugin_license(self, plugin_key, raw_license):
189+
"""
190+
Update license for plugin
191+
:param plugin_key:
192+
:param raw_license:
193+
:return:
194+
"""
195+
app_headers = {
196+
"X-Atlassian-Token": "nocheck",
197+
"Content-Type": "application/vnd.atl.plugins+json",
198+
}
199+
url = "/plugins/1.0/{plugin_key}/license".format(plugin_key=plugin_key)
200+
data = {"rawLicense": raw_license}
201+
return self.put(url, data=data, headers=app_headers)
202+

atlassian/service_desk.py

Lines changed: 66 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,12 @@ def get_my_customer_requests(self):
7878
return (response or {}).get("values")
7979

8080
def create_customer_request(
81-
self,
82-
service_desk_id,
83-
request_type_id,
84-
values_dict,
85-
raise_on_behalf_of=None,
86-
request_participants=None,
81+
self,
82+
service_desk_id,
83+
request_type_id,
84+
values_dict,
85+
raise_on_behalf_of=None,
86+
request_participants=None,
8787
):
8888
"""
8989
Creating customer request
@@ -494,8 +494,8 @@ def attach_temporary_file(self, service_desk_id, filename):
494494
with open(filename, "rb") as file:
495495
result = (
496496
self.post(path=url, headers=experimental_headers, files={"file": file})
497-
.json()
498-
.get("temporaryAttachments")
497+
.json()
498+
.get("temporaryAttachments")
499499
)
500500
temp_attachment_id = result[0].get("temporaryAttachmentId")
501501

@@ -743,6 +743,30 @@ def get_issues_in_queue(self, service_desk_id, queue_id, start=0, limit=50):
743743

744744
return self.get(url, headers=self.experimental_headers, params=params)
745745

746+
def get_plugins_info(self):
747+
"""
748+
Provide plugins info
749+
:return a json of installed plugins
750+
"""
751+
url = "rest/plugins/1.0/"
752+
return self.get(url, headers=self.no_check_headers, trailing=True)
753+
754+
def get_plugin_info(self, plugin_key):
755+
"""
756+
Provide plugin info
757+
:return a json of installed plugins
758+
"""
759+
url = "rest/plugins/1.0/{plugin_key}-key".format(plugin_key=plugin_key)
760+
return self.get(url, headers=self.no_check_headers, trailing=True)
761+
762+
def get_plugin_license_info(self, plugin_key):
763+
"""
764+
Provide plugin license info
765+
:return a json specific License query
766+
"""
767+
url = "rest/plugins/1.0/{plugin_key}-key/license".format(plugin_key=plugin_key)
768+
return self.get(url, headers=self.no_check_headers, trailing=True)
769+
746770
def upload_plugin(self, plugin_path):
747771
"""
748772
Provide plugin path for upload into Jira e.g. useful for auto deploy
@@ -759,13 +783,41 @@ def upload_plugin(self, plugin_path):
759783
url = "rest/plugins/1.0/?token={upm_token}".format(upm_token=upm_token)
760784
return self.post(url, files=files, headers=self.no_check_headers)
761785

786+
def delete_plugin(self, plugin_key):
787+
"""
788+
Delete plugin
789+
:param plugin_key:
790+
:return:
791+
"""
792+
url = "rest/plugins/1.0/{}-key".format(plugin_key)
793+
return self.delete(url)
794+
795+
def check_plugin_manager_status(self):
796+
url = "rest/plugins/latest/safe-mode"
797+
return self.request(method="GET", path=url, headers=self.safe_mode_headers)
798+
799+
def update_plugin_license(self, plugin_key, raw_license):
800+
"""
801+
Update license for plugin
802+
:param plugin_key:
803+
:param raw_license:
804+
:return:
805+
"""
806+
app_headers = {
807+
"X-Atlassian-Token": "nocheck",
808+
"Content-Type": "application/vnd.atl.plugins+json",
809+
}
810+
url = "/plugins/1.0/{plugin_key}/license".format(plugin_key=plugin_key)
811+
data = {"rawLicense": raw_license}
812+
return self.put(url, data=data, headers=app_headers)
813+
762814
def create_request_type(
763-
self,
764-
service_desk_id,
765-
request_type_id,
766-
request_name,
767-
request_description,
768-
request_help_text,
815+
self,
816+
service_desk_id,
817+
request_type_id,
818+
request_name,
819+
request_description,
820+
request_help_text,
769821
):
770822
"""
771823
Creating a request type

0 commit comments

Comments
 (0)