Class: AtlassianPluginInstaller::AtlassianPluginInstaller
- Inherits:
-
Object
- Object
- AtlassianPluginInstaller::AtlassianPluginInstaller
- Defined in:
- lib/atlassian_plugin_installer.rb
Instance Method Summary collapse
- #fetch_application_access_token ⇒ Object
-
#initialize(application_url, admin_username, admin_password) ⇒ AtlassianPluginInstaller
constructor
A new instance of AtlassianPluginInstaller.
- #install_license(plugin_key, license) ⇒ Object
-
#install_plugin(plugin_key, plugin_build_number, token) ⇒ Object
Installs plugin curl -i -H “Accept: application/json” -H “Content-Type: application/vnd.atl.plugins.install.uri+json” -X POST -u admin -d ‘href="https://marketplace.atlassian.com/download/plugins/com.onresolve.jira.groovy.groovyrunner/version/1001120">marketplace.atlassian.com/download/plugins/com.onresolve.jira.groovy.groovyrunner/version/1001120”’ avst-test1129.dyn.adaptavist.com//rest/plugins/1.0/?token=-6906413003836887391.
- #installation_completed(plugin_key, retries = 10, sleep_time = 10) ⇒ Object
Constructor Details
#initialize(application_url, admin_username, admin_password) ⇒ AtlassianPluginInstaller
Returns a new instance of AtlassianPluginInstaller.
9 10 11 12 13 |
# File 'lib/atlassian_plugin_installer.rb', line 9 def initialize(application_url, admin_username, admin_password) @application_url = application_url @admin_username = admin_username @admin_password = admin_password end |
Instance Method Details
#fetch_application_access_token ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/atlassian_plugin_installer.rb', line 15 def fetch_application_access_token url = "#{@application_url}/rest/plugins/1.0/?os_authType=basic" uri = URI(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = url.start_with? "https" request = Net::HTTP::Get.new(uri.request_uri) request.initialize_http_header({"Accept" => "application/vnd.atl.plugins.installed+json"}) request.basic_auth(@admin_username, @admin_password) response = http.request(request) return response.code, response['upm-token'] # parse access token end |
#install_license(plugin_key, license) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/atlassian_plugin_installer.rb', line 77 def install_license(plugin_key, license) puts "Installing license" url = "#{@application_url}/rest/plugins/1.0/#{plugin_key}-key/license" body = { "rawLicense" => license }.to_json uri = URI.parse(url) https = Net::HTTP.new(uri.host,uri.port) https.use_ssl = url.start_with? "https" req = Net::HTTP::Put.new("#{uri.request_uri}") req.basic_auth(@admin_username, @admin_password) req.body = body req['Accept'] = 'application/json' req['Content-Type'] = "application/vnd.atl.plugins+json" res = https.request(req) puts "License response: #{res.inspect} #{res.body}" res end |
#install_plugin(plugin_key, plugin_build_number, token) ⇒ Object
Installs plugin curl -i -H “Accept: application/json” -H “Content-Type: application/vnd.atl.plugins.install.uri+json” -X POST -u admin -d ‘href="https://marketplace.atlassian.com/download/plugins/com.onresolve.jira.groovy.groovyrunner/version/1001120">marketplace.atlassian.com/download/plugins/com.onresolve.jira.groovy.groovyrunner/version/1001120”’ avst-test1129.dyn.adaptavist.com//rest/plugins/1.0/?token=-6906413003836887391
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/atlassian_plugin_installer.rb', line 31 def install_plugin(plugin_key, plugin_build_number, token) puts "Installing plugin #{plugin_key}" plugin_uri = "https://marketplace.atlassian.com/download/plugins/#{plugin_key}/version/#{plugin_build_number}" url = "#{@application_url}/rest/plugins/1.0/?token=#{token}" body = { "pluginUri" => plugin_uri }.to_json uri = URI.parse(url) https = Net::HTTP.new(uri.host,uri.port) https.use_ssl = url.start_with? "https" req = Net::HTTP::Post.new("#{uri.request_uri}") req.basic_auth(@admin_username, @admin_password) req.body = body req['Accept'] = 'application/json' req['Content-Type'] = 'application/vnd.atl.plugins.install.uri+json' res = https.request(req) puts "Install plugin response: #{res.inspect}" res end |
#installation_completed(plugin_key, retries = 10, sleep_time = 10) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/atlassian_plugin_installer.rb', line 51 def installation_completed(plugin_key, retries=10, sleep_time=10) puts "Waiting until the plugin gets installed" completed = false for i in (0..retries) do url = "#{@application_url}/rest/plugins/1.0/#{plugin_key}-key/summary" uri = URI(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = url.start_with? "https" request = Net::HTTP::Get.new(uri.request_uri) request.initialize_http_header({"Accept" => "application/vnd.atl.plugins+json"}) request.basic_auth(@admin_username, @admin_password) response = http.request(request) if response.code == '200' puts "Installation completed..." completed = true break end puts "Fetching #{url}" puts "Response was #{response.inspect}" puts "Installation still not done, sleeping for #{sleep_time}, retry #{i}/#{retries}" sleep(sleep_time) end completed end |