getting the most out of the universal plugin manager
DESCRIPTION
TRANSCRIPT
John KodumalTechnical Lead, Atlassian
Getting the most out of the Universal Plugin Manager
2
You give 100 percent in the first half of the game,
and if that isn't enough in the second half you give
what's left.
Yogi Berra
”“
3
Now 100% more universal
4
JIRA 4.1
Confluence 3.1
FE/Cru 2.5
Bamboo 3.1
Reloadable plugins
5
New in JIRA 4.4!
• Improved support for proxies• Offline mode
• Better support for walled-off servers
• Over 40 issues since January
Squashing bugs
6
They misunderestimated me.
George W. Bush
”“
7
• Fetch the audit log as an RSS feed
Read the feed
8
• UPM has a complete REST API• And UPM itself is a client!
• Many potential applications• UPM gadget• Notification e-mails
Use the REST API
9
10
Using the api$ curl -u admin:admin -basic http://localhost:2990/jira/rest/plugins/1.0/
{ "plugins":[ { "enabled":true, "name":"Admin Menu Sections", "userInstalled":false, "description":"This library includes the web fragments for the administration menu", "links":{ "modify":"/jira/rest/plugins/1.0/jira.webfragments.admin-key", "delete":"/jira/rest/plugins/1.0/jira.webfragments.admin-key" }, }, ... ], "links":{ "available":"/jira/rest/plugins/1.0/available", "upgrades":"/jira/rest/plugins/1.0/available/upgrades", "enter-safe-mode":"/jira/rest/plugins/1.0/safe-mode", "install":"/jira/rest/plugins/1.0/" ... },}
Scripting the UPM
11
#!/usr/bin/env pythonfrom subprocess import Popen, PIPE, STDOUTimport json,os
nul_f = open(os.devnull, 'w')cmd = 'curl -basic -u admin:admin http://localhost:2990/jira/rest/plugins/1.0/upgrades'p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=nul_f, close_fds=True)print len(json.loads(p.stdout.read())['plugins'])
Crouching tiger, hidden tab
12
http://{baseurl}
/plugins/servlet
/upm#osgi
The future will be better tomorrow.
Dan Quayle
”“
13