Class: Morpheus::DeploymentsInterface
Constant Summary
Constants inherited
from APIClient
APIClient::CLIENT_ID
Instance Method Summary
collapse
-
#base_path ⇒ Object
-
#create_version(deployment_id, payload, params = {}) ⇒ Object
-
#destroy_file(deployment_id, id, destination, params = {}) ⇒ Object
upload a file without multipart local_file is the full absolute local filename destination should be the full remote file path, including the file name.
-
#destroy_version(deployment_id, id, params = {}) ⇒ Object
-
#get_version(deployment_id, id, params = {}) ⇒ Object
-
#list_files(deployment_id, id, params = {}) ⇒ Object
-
#list_versions(deployment_id, params = {}) ⇒ Object
-
#update_version(deployment_id, id, payload, params = {}) ⇒ Object
-
#upload_file(deployment_id, id, local_file, destination, params = {}) ⇒ Object
upload a file without multipart local_file is the full absolute local filename destination should be the full remote file path, including the file name.
#create, #destroy, #get, #list, #update
Methods inherited from APIClient
#account_groups, #account_users, #accounts, #activity, #appliance_settings, #approvals, #apps, #archive_buckets, #archive_files, #audit, #auth, #authorization_required?, #backup_jobs, #backup_restores, #backup_results, #backup_service_types, #backup_services, #backup_settings, #backup_types, #backups, #billing, #blueprints, #budgets, #catalog, #catalog_item_types, #certificate_types, #certificates, #client_id, #client_id=, #clients, #cloud_datastores, #cloud_folders, #cloud_policies, #cloud_resource_pools, #clouds, #clusters, #common_interface_options, #containers, #credential_types, #credentials, #cypher, #dashboard, #datastores, #default_content_type, #default_timeout, #deploy, #deployments, #dry, #dry_run, #email_templates, #environments, #execute, #execute_schedules, #execution_request, #file_copy_request, #forgot, #group_policies, #groups, #guidance, #guidance_settings, #health, #hub, #image_builder, #initialize, #inspect, #instance_types, #instances, #integration_types, #integrations, #interface, #invoice_line_items, #invoices, #jobs, #key_pairs, #library_cluster_layouts, #library_cluster_packages, #library_container_scripts, #library_container_templates, #library_container_types, #library_container_upgrades, #library_instance_types, #library_layouts, #library_operating_systems, #library_spec_template_types, #library_spec_templates, #license, #load_balancer_monitors, #load_balancer_pool_nodes, #load_balancer_pools, #load_balancer_pools_secondary, #load_balancer_profiles, #load_balancer_types, #load_balancer_virtual_servers, #load_balancers, #log_settings, #logged_in?, #login, #logout, #logs, #monitoring, #monitoring_settings, #network_dhcp_relays, #network_dhcp_servers, #network_domain_records, #network_domains, #network_edge_clusters, #network_floating_ips, #network_groups, #network_pool_ips, #network_pool_server_types, #network_pool_servers, #network_pools, #network_proxies, #network_resource_types, #network_routers, #network_security_server_types, #network_security_servers, #network_server_groups, #network_server_services, #network_server_types, #network_servers, #network_services, #network_static_routes, #network_types, #networks, #old_cypher, #option_type_forms, #option_type_lists, #option_types, #options, #packages, #ping, #plugins, #policies, #power_schedules, #price_sets, #prices, #processes, #projects, #provision_types, #provisioning_license_types, #provisioning_licenses, #provisioning_settings, #reports, #resource_pool_groups, #rest, #roles, #scale_thresholds, #search, #security_group_rules, #security_groups, #security_package_types, #security_packages, #security_scans, #server_types, #servers, #service_plans, #set_ssl_verification_enabled, #setopts, #setup, #snapshots, #ssl_verification_enabled?, #storage_providers, #storage_server_types, #storage_servers, #storage_volume_types, #storage_volumes, #subnet_types, #subnets, #task_sets, #tasks, #to_s, #url, #usage, #use_refresh_token, #user_groups, #user_settings, #user_sources, #users, #vdi, #vdi_allocations, #vdi_apps, #vdi_gateways, #vdi_pools, #virtual_images, #whitelabel_settings, #whoami, #wiki, #withopts
Instance Method Details
#base_path ⇒ Object
5
6
7
|
# File 'lib/morpheus/api/deployments_interface.rb', line 5
def base_path
"/api/deployments"
end
|
#create_version(deployment_id, payload, params = {}) ⇒ Object
18
19
20
|
# File 'lib/morpheus/api/deployments_interface.rb', line 18
def create_version(deployment_id, payload, params={})
execute(method: :post, url: "#{base_path}/#{deployment_id}/versions", params: params, payload: payload.to_json)
end
|
#destroy_file(deployment_id, id, destination, params = {}) ⇒ Object
upload a file without multipart local_file is the full absolute local filename destination should be the full remote file path, including the file name.
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/morpheus/api/deployments_interface.rb', line 64
def destroy_file(deployment_id, id, destination, params={})
if destination.empty? || destination == "/" || destination == "." || destination.include?("../")
raise "#{self.class}.upload_file() passed a bad destination: '#{destination}'"
end
url = "#{base_path}/#{deployment_id}/versions/#{id}/files"
if !destination.to_s.empty?
url += "/#{destination}"
end
uri = URI.parse(url)
url = uri.path
execute(method: :delete, url: url, params: params)
end
|
#destroy_version(deployment_id, id, params = {}) ⇒ Object
27
28
29
30
|
# File 'lib/morpheus/api/deployments_interface.rb', line 27
def destroy_version(deployment_id, id, params = {})
validate_id!(id)
execute(method: :delete, url: "#{base_path}/#{deployment_id}/versions/#{id}", params: params)
end
|
#get_version(deployment_id, id, params = {}) ⇒ Object
13
14
15
16
|
# File 'lib/morpheus/api/deployments_interface.rb', line 13
def get_version(deployment_id, id, params={})
validate_id!(id)
execute(method: :get, url: "#{base_path}/#{deployment_id}/versions/#{id}", params: params)
end
|
#list_files(deployment_id, id, params = {}) ⇒ Object
32
33
34
|
# File 'lib/morpheus/api/deployments_interface.rb', line 32
def list_files(deployment_id, id, params={})
execute(method: :get, url: "#{base_path}/#{deployment_id}/versions/#{id}/files", params: params)
end
|
#list_versions(deployment_id, params = {}) ⇒ Object
9
10
11
|
# File 'lib/morpheus/api/deployments_interface.rb', line 9
def list_versions(deployment_id, params={})
execute(method: :get, url: "#{base_path}/#{deployment_id}/versions", params: params)
end
|
#update_version(deployment_id, id, payload, params = {}) ⇒ Object
22
23
24
25
|
# File 'lib/morpheus/api/deployments_interface.rb', line 22
def update_version(deployment_id, id, payload, params={})
validate_id!(id)
execute(method: :put, url: "#{base_path}/#{deployment_id}/versions/#{id}", params: params, payload: payload.to_json)
end
|
#upload_file(deployment_id, id, local_file, destination, params = {}) ⇒ Object
upload a file without multipart local_file is the full absolute local filename destination should be the full remote file path, including the file name.
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/morpheus/api/deployments_interface.rb', line 39
def upload_file(deployment_id, id, local_file, destination, params={})
if destination.empty? || destination == "/" || destination == "." || destination.include?("../")
raise "#{self.class}.upload_file() passed a bad destination: '#{destination}'"
end
url = "#{base_path}/#{deployment_id}/versions/#{id}/files"
if !destination.to_s.empty?
url += "/#{destination}"
end
uri = URI.parse(url)
url = uri.path
if !local_file.kind_of?(File)
local_file = File.new(local_file, 'rb')
end
payload = local_file
= {'Content-Type' => 'application/octet-stream'}
['Content-Length'] = local_file.size execute(method: :post, url: url, headers: , payload: payload, params: params, timeout: 172800)
end
|