Class: Morpheus::PackagesInterface
Constant Summary
Constants inherited
from APIClient
APIClient::CLIENT_ID
Instance Attribute Summary
Attributes inherited from APIClient
#client_id
Instance Method Summary
collapse
-
#destroy(id) ⇒ Object
-
#export(params, outfile) ⇒ Object
-
#info(params = {}) ⇒ Object
-
#initialize(access_token, refresh_token, expires_at = nil, base_url = nil) ⇒ PackagesInterface
constructor
A new instance of PackagesInterface.
-
#install(params = {}, payload = {}) ⇒ Object
-
#install_file(local_file, params = {}) ⇒ Object
def install_file(package_file, params={}) url = “#@base_url/api/packages/install-file” headers = { :params => params, :authorization => “Bearer #@access_token”, ‘Content-Type’ => ‘application/octet-stream’} payload = package_file execute(method: :post, url: url, headers: headers, payload: payload, timeout: 36000) end.
-
#list(params = {}) ⇒ Object
def get(id) raise “#selfself.class.get() passed a blank id!” if id.to_s == ” url = “#@base_url/api/packages/#id” headers = { params: {}, authorization: “Bearer #@access_token” } opts = :get, url: url, headers: headers execute(opts) end.
-
#search(params = {}) ⇒ Object
-
#update(id, payload) ⇒ Object
Methods inherited from APIClient
#account_groups, #accounts, #appliance_settings, #approvals, #apps, #archive_buckets, #archive_files, #auth, #backup_settings, #blueprints, #budgets, #cloud_datastores, #cloud_folders, #cloud_policies, #cloud_resource_pools, #clouds, #clusters, #common_iface_opts, #containers, #custom_instance_types, #cypher, #dashboard, #default_content_type, #deploy, #deployments, #dry, #dry_run, #environments, #execute, #execute_schedules, #execution_request, #file_copy_request, #group_policies, #groups, #health, #image_builder, #inspect, #instance_types, #instances, #integrations, #jobs, #key_pairs, #library_cluster_layouts, #library_container_scripts, #library_container_templates, #library_container_types, #library_container_upgrades, #library_instance_types, #library_layouts, #library_resource_specs, #license, #load_balancers, #log_settings, #logged_in?, #login, #logout, #logs, #monitoring, #network_domain_records, #network_domains, #network_groups, #network_pool_ips, #network_pool_servers, #network_pools, #network_proxies, #network_security_servers, #network_services, #network_types, #networks, #old_cypher, #option_type_lists, #option_types, #options, #packages, #policies, #power_schedules, #price_sets, #prices, #processes, #provision_types, #provisioning_settings, #refresh_token, #reports, #roles, #security_group_rules, #security_groups, #server_types, #servers, #service_plans, #set_ssl_verification_enabled, #setopts, #setup, #ssl_verification_enabled?, #storage_providers, #subnet_types, #subnets, #task_sets, #tasks, #to_s, #url, #user_groups, #user_settings, #user_sources, #users, #virtual_images, #whitelabel_settings, #whoami, #wiki, #withopts
Constructor Details
#initialize(access_token, refresh_token, expires_at = nil, base_url = nil) ⇒ 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
76
77
78
79
80
81
|
# File 'lib/morpheus/api/packages_interface.rb', line 76
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/morpheus/api/packages_interface.rb', line 83
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 = Morpheus::RestClient.execute(opts)
}
return http_response, bad_body
end
|
#info(params = {}) ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/morpheus/api/packages_interface.rb', line 35
def info(params={})
url = "#{@base_url}/api/packages/info"
= { params: {}, authorization: "Bearer #{@access_token}" }
[:params].merge!(params)
opts = {method: :get, url: url, headers: }
execute(opts)
end
|
#install(params = {}, payload = {}) ⇒ Object
43
44
45
46
47
48
|
# File 'lib/morpheus/api/packages_interface.rb', line 43
def install(params={}, payload={})
url = "#{@base_url}/api/packages/install"
= { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
opts = {method: :post, url: url, headers: , payload: payload.to_json}
execute(opts)
end
|
#install_file(local_file, params = {}) ⇒ Object
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
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/morpheus/api/packages_interface.rb', line 57
def install_file(local_file, params={})
url = "#{@base_url}/api/packages/install-file"
= { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/octet-stream'}
if !local_file.kind_of?(File)
local_file = File.new(local_file, 'rb')
end
payload = local_file
['Content-Length'] = local_file.size
opts = {method: :post, url: url, headers: , payload: payload}
execute(opts)
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
69
70
71
72
73
74
|
# File 'lib/morpheus/api/packages_interface.rb', line 69
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
|