Class: Morpheus::PackagesInterface
Instance Method Summary
collapse
Methods inherited from APIClient
#account_groups, #accounts, #app_templates, #apps, #archive_buckets, #archive_files, #auth, #cloud_datastores, #cloud_policies, #clouds, #containers, #custom_instance_types, #cypher, #dashboard, #deploy, #deployments, #dry, #dry_run, #execute, #execute_schedules, #group_policies, #groups, #image_builder, #instance_types, #instances, #key_pairs, #library_container_scripts, #library_container_templates, #library_container_types, #library_container_upgrades, #library_instance_types, #library_layouts, #license, #load_balancers, #logs, #monitoring, #network_domains, #network_groups, #network_pool_servers, #network_pools, #network_proxies, #network_services, #networks, #option_type_lists, #option_types, #options, #packages, #policies, #power_schedules, #provision_types, #roles, #security_group_rules, #security_groups, #servers, #set_ssl_verification_enabled, #setup, #ssl_verification_enabled?, #storage_providers, #task_sets, #tasks, #user_groups, #user_sources, #users, #virtual_images, #whoami
Constructor Details
#initialize(access_token, refresh_token, expires_at = nil, base_url = nil) ⇒ PackagesInterface
Returns a new instance of PackagesInterface.
4
5
6
7
8
9
|
# File 'lib/morpheus/api/packages_interface.rb', line 4
def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
@access_token = access_token
@refresh_token = refresh_token
@base_url = base_url
@expires_at = expires_at
end
|
Instance Method Details
#destroy(id) ⇒ Object
56
57
58
59
60
61
|
# File 'lib/morpheus/api/packages_interface.rb', line 56
def destroy(id)
url = "#{@base_url}/api/packages/#{id}"
= { :params => {}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
opts = {method: :delete, url: url, headers: }
execute(opts)
end
|
#export(params, outfile) ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/morpheus/api/packages_interface.rb', line 63
def export(params, outfile)
url = "#{@base_url}/api/packages/export"
= { params: params, authorization: "Bearer #{@access_token}" }
opts = {method: :post, url: url, headers: }
if Dir.exists?(outfile)
raise "outfile is invalid. It is the name of an existing directory: #{outfile}"
end
if @dry_run
return opts
end
http_response = nil
bad_body = nil
File.open(outfile, 'w') {|f|
block = proc { |response|
if response.code.to_i == 200
response.read_body do |chunk|
f.write chunk
end
else
bad_body = response.body.to_s
end
}
opts[:block_response] = block
http_response = RestClient::Request.new(opts).execute
}
return http_response, bad_body
end
|
#install(payload) ⇒ Object
35
36
37
38
39
40
|
# File 'lib/morpheus/api/packages_interface.rb', line 35
def install(payload)
url = "#{@base_url}/api/packages/install"
= { :params => {}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
opts = {method: :post, url: url, headers: , payload: payload.to_json}
execute(opts)
end
|
#install_file(package_file, params = {}) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/morpheus/api/packages_interface.rb', line 42
def install_file(package_file, params={})
url = "#{@base_url}/api/packages/install-file"
= { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/octet-stream'}
payload = package_file
execute(method: :post, url: url, headers: , payload: payload, timeout: 36000)
end
|
#list(params = {}) ⇒ Object
def get(id)
raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
url = "#{@base_url}/api/packages/#{id}"
= { params: {}, authorization: "Bearer #{@access_token}" }
opts = {method: :get, url: url, headers: }
execute(opts)
end
19
20
21
22
23
24
25
|
# File 'lib/morpheus/api/packages_interface.rb', line 19
def list(params={})
url = "#{@base_url}/api/packages"
= { params: {}, authorization: "Bearer #{@access_token}" }
[:params].merge!(params)
opts = {method: :get, url: url, headers: }
execute(opts)
end
|
#search(params = {}) ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/morpheus/api/packages_interface.rb', line 27
def search(params={})
url = "#{@base_url}/api/packages/search"
= { params: {}, authorization: "Bearer #{@access_token}" }
[:params].merge!(params)
opts = {method: :get, url: url, headers: }
execute(opts)
end
|
#update(id, payload) ⇒ Object
49
50
51
52
53
54
|
# File 'lib/morpheus/api/packages_interface.rb', line 49
def update(id, payload)
url = "#{@base_url}/api/packages/update/#{id}"
= { :params => {}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
opts = {method: :put, url: url, headers: , payload: payload.to_json}
execute(opts)
end
|