Class: OneviewSDK::API500::C7000::ServerProfile
- Inherits:
-
OneviewSDK::API300::C7000::ServerProfile
- Object
- Resource
- OneviewSDK::API200::Resource
- OneviewSDK::API200::ServerProfile
- OneviewSDK::API300::C7000::ServerProfile
- OneviewSDK::API500::C7000::ServerProfile
- Defined in:
- lib/oneview-sdk/resource/api500/c7000/server_profile.rb
Overview
Server Profile resource implementation on API500 C7000
Direct Known Subclasses
Synergy::ServerProfile, OneviewSDK::API600::C7000::ServerProfile
Constant Summary
Constants inherited from OneviewSDK::API200::ServerProfile
OneviewSDK::API200::ServerProfile::BASE_URI, OneviewSDK::API200::ServerProfile::UNIQUE_IDENTIFIERS
Constants inherited from Resource
Resource::BASE_URI, Resource::DEFAULT_REQUEST_HEADER, Resource::UNIQUE_IDENTIFIERS
Instance Attribute Summary
Attributes inherited from Resource
#api_version, #client, #data, #logger
Instance Method Summary collapse
-
#create_volume_with_attachment(storage_pool, volume_options, attachment_options = {}) ⇒ Object
Adds volume attachment entry and creates a new Volume associated in the Server profile.
-
#get_profile_template ⇒ Object
Retrieves the profile template for a given server profile.
-
#initialize(client, params = {}, api_ver = nil) ⇒ ServerProfile
constructor
Create a resource object, associate it with a client, and set its properties.
Methods inherited from OneviewSDK::API200::ServerProfile
#add_connection, #add_volume_attachment, #get_available_hardware, #get_available_networks, get_available_networks, get_available_servers, get_available_storage_system, get_available_storage_systems, get_available_targets, #get_compliance_preview, #get_messages, get_profile_ports, #get_server_hardware, #get_transformation, #remove_connection, #remove_volume_attachment, #set_enclosure, #set_enclosure_group, #set_firmware_driver, #set_server_hardware, #set_server_hardware_type, #update_from_template
Methods included from ResourceHelper::PatchOperation
Methods inherited from Resource
#==, #[], #[]=, build_query, #create, #create!, #deep_merge!, #delete, #each, #eql?, #exists?, find_by, find_with_pagination, from_file, get_all, get_all_with_query, #like?, #refresh, #retrieve!, #schema, schema, #set, #set_all, #to_file, #update
Constructor Details
#initialize(client, params = {}, api_ver = nil) ⇒ ServerProfile
Create a resource object, associate it with a client, and set its properties.
24 25 26 27 28 29 |
# File 'lib/oneview-sdk/resource/api500/c7000/server_profile.rb', line 24 def initialize(client, params = {}, api_ver = nil) @data ||= {} # Default values @data['type'] ||= 'ServerProfileV7' super end |
Instance Method Details
#create_volume_with_attachment(storage_pool, volume_options, attachment_options = {}) ⇒ Object
Adds volume attachment entry and creates a new Volume associated in the Server profile
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/oneview-sdk/resource/api500/c7000/server_profile.rb', line 43 def (storage_pool, , = {}) raise IncompleteResource, 'Storage Pool not found!' unless storage_pool.retrieve! # Convert symbols keys to string in volume_options and attachment_options = Hash[.map { |k, v| [k.to_s, v] }] = Hash[.map { |k, v| [k.to_s, v] }] self['sanStorage'] ||= {} self['sanStorage']['volumeAttachments'] ||= [] ['id'] ||= 0 ['volumeStoragePoolUri'] = storage_pool['uri'] ['volumeStorageSystemUri'] = storage_pool['storageSystemUri'] ['volumeName'] = ['name'] ['volumeDescription'] = ['description'] ['volumeProvisionType'] = ['provisioningType'] ['volumeProvisionedCapacityBytes'] = ['size'] # Defaults ['permanent'] ||= true ['lunType'] ||= 'Auto' ['lun'] ||= nil ['storagePaths'] ||= [] ['volumeShareable'] = false self['sanStorage']['manageSanStorage'] ||= true self['sanStorage']['volumeAttachments'] << end |
#get_profile_template ⇒ Object
Retrieves the profile template for a given server profile.
73 74 75 76 77 |
# File 'lib/oneview-sdk/resource/api500/c7000/server_profile.rb', line 73 def get_profile_template response = @client.rest_get("#{@data['uri']}/new-profile-template") variant = self.class.name.split('::').at(-2) OneviewSDK.resource_named('ServerProfileTemplate', @client.api_version, variant).new(client, @client.response_handler(response)) end |