class Hpe3parSdk::VolumeSetManager

Public Class Methods

new(http, host_and_vv_set_filter_supported = false) click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 18
def initialize(http, host_and_vv_set_filter_supported = false)
  @http = http
  @vv_set_filter_supported = host_and_vv_set_filter_supported
end

Public Instance Methods

add_volumes_to_volume_set(set_name, setmembers) click to toggle source

QoS Priority Optimization methods

# File lib/Hpe3parSdk/volume_set_manager.rb, line 99
def add_volumes_to_volume_set(set_name, setmembers)
  modify_volume_set(set_name, SetCustomAction::MEM_ADD, nil, nil, nil, setmembers)
end
create_snapshot_of_volume_set(name, copy_of_name, optional = nil) click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 107
def create_snapshot_of_volume_set(name, copy_of_name, optional = nil)
  parameters = { 'name' => name }
  parameters = Util.merge_hash(parameters, optional) if optional

  info = { 'action' => 'createSnapshot', 'parameters' => parameters }

  response = @http.post("/volumesets/#{copy_of_name}", body: info)
  response[1]
end
create_volume_set(name, domain = nil, comment = nil, setmembers = nil) click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 61
def create_volume_set(name, domain = nil, comment = nil, setmembers = nil)
  info = { 'name' => name }

  info['domain'] = domain if domain

  info['comment'] = comment if comment

  if setmembers
    members = { 'setmembers' => setmembers }
    info = Util.merge_hash(info, members)
  end
  @http.post('/volumesets', body: info)
end
delete_volume_set(name) click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 75
def delete_volume_set(name)
  @http.delete("/volumesets/#{name}")[1]
end
find_all_volume_sets(name) click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 23
def find_all_volume_sets(name)
  vv_sets = []
  if @vv_set_filter_supported
    query = %("setmembers EQ #{name}")
    response = @http.get("/volumesets?query=#{query}")
    volume_sets = response[1]['members']
    volume_sets.each do |volume_set|
      vv_sets.push(VolumeSet.new(volume_set))
    end
  else
    volume_sets = get_volume_sets
    volume_sets.each do |volume_set|
      if !volume_set.setmembers.nil? && !volume_set.setmembers.empty? && volume_set.setmembers.include?(name)
        vv_sets.push(volume_set)
      end
    end
  end
  vv_sets
end
get_volume_set(name) click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 52
def get_volume_set(name)
  if name.nil? || name.strip.empty?
    raise 'Volume set name cannot be nil or empty'
  else
    response = @http.get('/volumesets/' + name)
    VolumeSet.new(response[1])
  end
end
get_volume_sets() click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 43
def get_volume_sets
  response = @http.get('/volumesets')
  volume_set_members = []
  response[1]['members'].each do |volume_set_member|
    volume_set_members.push(VolumeSet.new(volume_set_member))
  end
  volume_set_members
end
modify_volume_set(name, action = nil, newName = nil, comment = nil, flash_cache_policy = nil, setmembers = nil) click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 79
def modify_volume_set(name, action = nil, newName = nil, comment = nil, flash_cache_policy = nil, setmembers = nil)
  info = {}

  info['action'] = action if action

  info['newName'] = newName if newName

  info['comment'] = comment if comment

  info['flashCachePolicy'] = flash_cache_policy if flash_cache_policy

  if setmembers
    members = { 'setmembers' => setmembers }
    info = Util.merge_hash(info, members)
  end

  @http.put("/volumesets/#{name}", body: info)[1]
end
remove_volumes_from_volume_set(set_name, setmembers) click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 103
def remove_volumes_from_volume_set(set_name, setmembers)
  modify_volume_set(set_name, SetCustomAction::MEM_REMOVE, nil, nil, nil, setmembers)
end
volume_set_exists?(name) click to toggle source
# File lib/Hpe3parSdk/volume_set_manager.rb, line 117
def volume_set_exists?(name)
  begin
    get_volume_set(name)
    return true
  rescue Hpe3parSdk::HTTPNotFound => ex
    return false
  end
end