Class: OneviewSDK::ServerHardware

Inherits:
Resource
  • Object
show all
Defined in:
lib/oneview-sdk/resource/server_hardware.rb

Overview

Server hardware resource implementation

Validates collapse

VALID_LICENSING_INTENTS =
['OneView', 'OneViewNoiLO', 'OneViewStandard', nil].freeze
VALID_CONFIGURATION_STATES =
['Managed', 'Monitored', nil].freeze

Constant Summary collapse

BASE_URI =
'/rest/server-hardware'.freeze

Instance Attribute Summary

Attributes inherited from Resource

#api_version, #client, #data, #logger

Validates collapse

Instance Method Summary collapse

Methods inherited from Resource

#==, #[], #[]=, #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) ⇒ ServerHardware

Returns a new instance of ServerHardware.



6
7
8
9
10
# File 'lib/oneview-sdk/resource/server_hardware.rb', line 6

def initialize(client, params = {}, api_ver = nil)
  super
  # Default values
  @data['type'] ||= 'server-hardware-4'
end

Instance Method Details

#createObject



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/oneview-sdk/resource/server_hardware.rb', line 26

def create
  ensure_client
  required_attributes = %w(hostname username password licensingIntent)
  required_attributes.each { |k| fail "Missing required attribute: '#{k}'" unless @data.key?(k) }

  optional_attrs = %w(configurationState force restore)
  temp_data = @data.select { |k, _v| required_attributes.include?(k) || optional_attrs.include?(k) }
  response = @client.rest_post(self.class::BASE_URI, { 'body' => temp_data }, @api_version)
  body = @client.response_handler(response)
  set_all(body)
  %w(username password hostname).each { |k| @data.delete(k) } # These are no longer needed
  self
end

#power_off(force = false) ⇒ Boolean

Power off the server hardware

Parameters:

  • force (String) (defaults to: false)

    Use ‘PressAndHold’ action

Returns:

  • (Boolean)

    Whether or not server was powered off



54
55
56
# File 'lib/oneview-sdk/resource/server_hardware.rb', line 54

def power_off(force = false)
  set_power_state('off', force)
end

#power_on(force = false) ⇒ Boolean

Power on the server hardware

Parameters:

  • force (String) (defaults to: false)

    Use ‘PressAndHold’ action

Returns:

  • (Boolean)

    Whether or not server was powered on



47
48
49
# File 'lib/oneview-sdk/resource/server_hardware.rb', line 47

def power_on(force = false)
  set_power_state('on', force)
end

#updateObject



40
41
42
# File 'lib/oneview-sdk/resource/server_hardware.rb', line 40

def update(*)
  fail 'Method not available for this resource!'
end

#validate_configurationState(value) ⇒ Object



20
21
22
# File 'lib/oneview-sdk/resource/server_hardware.rb', line 20

def validate_configurationState(value)
  fail 'Invalid configurationState' unless VALID_CONFIGURATION_STATES.include?(value)
end

#validate_licensingIntent(value) ⇒ Object



15
16
17
# File 'lib/oneview-sdk/resource/server_hardware.rb', line 15

def validate_licensingIntent(value)
  fail 'Invalid licensingIntent' unless VALID_LICENSING_INTENTS.include?(value)
end