Class: Hpe3parSdk::VolumeSetManager

Inherits:
Object
  • Object
show all
Defined in:
lib/Hpe3parSdk/volume_set_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(http, host_and_vv_set_filter_supported = false) ⇒ VolumeSetManager

Returns a new instance of VolumeSetManager.



18
19
20
21
# 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

Instance Method Details

#add_volumes_to_volume_set(set_name, setmembers) ⇒ Object

QoS Priority Optimization methods



99
100
101
# 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) ⇒ Object



107
108
109
110
111
112
113
114
115
# 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) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
# 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) ⇒ Object



75
76
77
# 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) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 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) ⇒ Object



52
53
54
55
56
57
58
59
# 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_setsObject



43
44
45
46
47
48
49
50
# 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) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# 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) ⇒ Object



103
104
105
# 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) ⇒ Boolean

Returns:

  • (Boolean)


117
118
119
120
121
122
123
124
# 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