Class: OneviewSDK::ImageStreamer::API300::ArtifactBundle
- Defined in:
- lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb
Overview
Artifacts Bundle resource implementation for Image Streamer
Constant Summary collapse
- ACCEPTED_FORMATS =
Supported upload extensions
%w[.zip .ZIP].freeze
- BASE_URI =
'/rest/artifact-bundles'.freeze
- BACKUPS_URI =
"#{BASE_URI}/backups".freeze
- BACKUPS_ARCHIVE_URI =
"#{BACKUPS_URI}/archive".freeze
Constants inherited from Resource
Resource::DEFAULT_REQUEST_HEADER, Resource::UNIQUE_IDENTIFIERS
Instance Attribute Summary
Attributes inherited from Resource
#api_version, #client, #data, #logger
Class Method Summary collapse
-
.create_backup(client, deployment_group) ⇒ Hash
Creates a backup bundle with all the artifacts present on the appliance.
-
.create_backup_from_file!(client, deployment_group, file_path, artifact_name = nil, timeout = OneviewSDK::Rest::READ_TIMEOUT) ⇒ Hash
Creates a backup bundle from the zip file and extract all the artifacts present in the uploaded file If there are any artifacts existing, they will be removed before the extract operation.
-
.create_from_file(client, file_path, artifact_name, timeout = OneviewSDK::Rest::READ_TIMEOUT) ⇒ OneviewSDK::ImageStreamer::API300::ArtifactBundle
Creates an artifact bundle resource from the file that is uploaded from admin’s local drive.
-
.download_backup(client, local_drive_path, bundle_backup) ⇒ Boolean
Download the backup bundle.
-
.ensure_file_path_extension!(file_path) ⇒ Object
Fail unless file extension of file_path is in ACCEPTED_FORMATS array.
-
.ensure_resource!(resource) ⇒ Object
Fail unless resource can be retrieved.
-
.extract_backup(client, deployment_group, bundle_backup) ⇒ Boolean
Extracts the existing backup bundle on the appliance and creates all the artifacts.
-
.get_backups(client) ⇒ Array<ArtifactBundle>
Gets the backup bundles created.
Instance Method Summary collapse
-
#add_build_plan(resource, read_only = true) ⇒ Object
Add a Build Plan to this ArtifactBundle.
-
#add_deployment_plan(resource, read_only = true) ⇒ Object
Add a Deployment Plan to this ArtifactBundle.
-
#add_golden_image(resource, read_only = true) ⇒ Object
Add a Golden Image to this ArtifactBundle.
-
#add_plan_script(resource, read_only = true) ⇒ Object
Add a Plan Script to this ArtifactBundle.
-
#download(local_drive_path) ⇒ Boolean
Downloads the content of the selected artifact bundle to the admin’s local drive.
-
#extract(force = true) ⇒ Boolean
Extracts the artifact bundle and creates the artifacts on the appliance.
-
#initialize(client, params = {}, api_ver = nil) ⇒ ArtifactBundle
constructor
Create a resource object, associate it with a client, and set its properties.
-
#update ⇒ Object
Method is not available.
-
#update_name(new_name) ⇒ Boolean
Update the name of Artifact Bundle.
Methods inherited from Resource
#==, #[], #[]=, build_query, #create, #create!, #deep_merge!, #delete, #each, #eql?, #exists?, find_by, find_with_pagination, from_file, get_all, #like?, #refresh, #retrieve!, #schema, schema, #set, #set_all, #to_file
Constructor Details
#initialize(client, params = {}, api_ver = nil) ⇒ ArtifactBundle
Create a resource object, associate it with a client, and set its properties.
29 30 31 32 33 34 35 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 29 def initialize(client, params = {}, api_ver = nil) super @data['buildPlans'] ||= [] @data['planScripts'] ||= [] @data['deploymentPlans'] ||= [] @data['goldenImages'] ||= [] end |
Class Method Details
.create_backup(client, deployment_group) ⇒ Hash
Creates a backup bundle with all the artifacts present on the appliance.
68 69 70 71 72 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 68 def self.create_backup(client, deployment_group) ensure_resource!(deployment_group) response = client.rest_post(BACKUPS_URI, 'body' => { 'deploymentGroupURI' => deployment_group['uri'] }) client.response_handler(response) end |
.create_backup_from_file!(client, deployment_group, file_path, artifact_name = nil, timeout = OneviewSDK::Rest::READ_TIMEOUT) ⇒ Hash
Creates a backup bundle from the zip file and extract all the artifacts present in the uploaded file
If there are any artifacts existing, they will be removed before the extract operation.
81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 81 def self.create_backup_from_file!(client, deployment_group, file_path, artifact_name = nil, timeout = OneviewSDK::Rest::READ_TIMEOUT) ensure_resource!(deployment_group) ensure_file_path_extension!(file_path) file_name = if artifact_name && !artifact_name.empty? artifact_name + File.extname(file_path) else File.basename(file_path) end params = { 'deploymentGrpUri' => deployment_group['uri'] } client.upload_file(file_path, BACKUPS_ARCHIVE_URI, { 'file_name' => file_name, 'body' => params }, timeout) end |
.create_from_file(client, file_path, artifact_name, timeout = OneviewSDK::Rest::READ_TIMEOUT) ⇒ OneviewSDK::ImageStreamer::API300::ArtifactBundle
Creates an artifact bundle resource from the file that is uploaded from admin’s local drive
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 43 def self.create_from_file(client, file_path, artifact_name, timeout = OneviewSDK::Rest::READ_TIMEOUT) ensure_file_path_extension!(file_path) file_name = artifact_name.dup if file_name && !file_name.empty? file_name += File.extname(file_path) else file_name = File.basename(file_path) end body = client.upload_file(file_path, BASE_URI, { 'file_name' => file_name }, timeout) ArtifactBundle.new(client, body) end |
.download_backup(client, local_drive_path, bundle_backup) ⇒ Boolean
Download the backup bundle
100 101 102 103 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 100 def self.download_backup(client, local_drive_path, bundle_backup) raise IncompleteResource, "Missing required attribute 'downloadURI'" unless bundle_backup['downloadURI'] client.download_file(bundle_backup['downloadURI'], local_drive_path) end |
.ensure_file_path_extension!(file_path) ⇒ Object
Fail unless file extension of file_path is in ACCEPTED_FORMATS array
196 197 198 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 196 def self.ensure_file_path_extension!(file_path) raise InvalidFormat, "File extension should be #{ACCEPTED_FORMATS}" unless ACCEPTED_FORMATS.include?(File.extname(file_path)) end |
.ensure_resource!(resource) ⇒ Object
Fail unless resource can be retrieved
191 192 193 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 191 def self.ensure_resource!(resource) raise IncompleteResource, "The resource #{resource.class} can not be retrieved. Ensure it can be retrieved." unless resource.retrieve! end |
.extract_backup(client, deployment_group, bundle_backup) ⇒ Boolean
Extracts the existing backup bundle on the appliance and creates all the artifacts.
If there are any artifacts existing, they will be removed before the extract operation.
111 112 113 114 115 116 117 118 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 111 def self.extract_backup(client, deployment_group, bundle_backup) ensure_resource!(deployment_group) raise IncompleteResource, "Missing required attribute 'uri' of backup bundle" unless bundle_backup['uri'] id = bundle_backup['uri'].split('/').last response = client.rest_put("#{BACKUPS_URI}/#{id}", 'body' => { 'deploymentGroupURI' => deployment_group['uri'] }) client.response_handler(response) true end |
.get_backups(client) ⇒ Array<ArtifactBundle>
Gets the backup bundles created
60 61 62 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 60 def self.get_backups(client) find_by(client, {}, BACKUPS_URI) end |
Instance Method Details
#add_build_plan(resource, read_only = true) ⇒ Object
Add a Build Plan to this ArtifactBundle
162 163 164 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 162 def add_build_plan(resource, read_only = true) add_resource(resource, 'buildPlans', read_only) end |
#add_deployment_plan(resource, read_only = true) ⇒ Object
Add a Deployment Plan to this ArtifactBundle
178 179 180 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 178 def add_deployment_plan(resource, read_only = true) add_resource(resource, 'deploymentPlans', read_only) end |
#add_golden_image(resource, read_only = true) ⇒ Object
Add a Golden Image to this ArtifactBundle
186 187 188 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 186 def add_golden_image(resource, read_only = true) add_resource(resource, 'goldenImages', read_only) end |
#add_plan_script(resource, read_only = true) ⇒ Object
Add a Plan Script to this ArtifactBundle
170 171 172 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 170 def add_plan_script(resource, read_only = true) add_resource(resource, 'planScripts', read_only) end |
#download(local_drive_path) ⇒ Boolean
Downloads the content of the selected artifact bundle to the admin’s local drive.
153 154 155 156 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 153 def download(local_drive_path) raise IncompleteResource, "Missing required attribute 'downloadURI'" unless @data['downloadURI'] client.download_file(@data['downloadURI'], local_drive_path) end |
#extract(force = true) ⇒ Boolean
Extracts the artifact bundle and creates the artifacts on the appliance
142 143 144 145 146 147 148 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 142 def extract(force = true) ensure_uri = { 'Content-Type' => 'text/plain' } response = @client.rest_put(@data['uri'] + "?extract=true&forceImport=#{force}", ) @client.response_handler(response) true end |
#update ⇒ Object
Method is not available
122 123 124 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 122 def update(*) unavailable_method end |
#update_name(new_name) ⇒ Boolean
Update the name of Artifact Bundle
130 131 132 133 134 135 136 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 130 def update_name(new_name) ensure_uri response = @client.rest_put(@data['uri'], 'body' => { 'name' => new_name, 'type' => 'ArtifactsBundle' }) @client.response_handler(response) @data['name'] = new_name true end |