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
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, 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!, #delete, #each, #eql?, #exists?, find_by, 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.
69 70 71 72 73 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 69 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, 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.
82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 82 def self.create_backup_from_file!(client, deployment_group, file_path, artifact_name, timeout = OneviewSDK::Rest::READ_TIMEOUT) ensure_resource!(deployment_group) 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 params = { 'name' => file_name, 'deploymentGrpUri' => deployment_group['uri'] } client.upload_file(file_path, BACKUPS_ARCHIVE_URI, 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 56 |
# 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 params = { 'name' => file_name } body = client.upload_file(file_path, BASE_URI, params, timeout) ArtifactBundle.new(client, body) end |
.download_backup(client, local_drive_path, bundle_backup) ⇒ Boolean
Download the backup bundle
102 103 104 105 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 102 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
198 199 200 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 198 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
193 194 195 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 193 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.
113 114 115 116 117 118 119 120 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 113 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
61 62 63 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 61 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
164 165 166 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 164 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
180 181 182 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 180 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
188 189 190 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 188 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
172 173 174 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 172 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.
155 156 157 158 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 155 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
144 145 146 147 148 149 150 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 144 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
124 125 126 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 124 def update(*) unavailable_method end |
#update_name(new_name) ⇒ Boolean
Update the name of Artifact Bundle
132 133 134 135 136 137 138 |
# File 'lib/oneview-sdk/image-streamer/resource/api300/artifact_bundle.rb', line 132 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 |