Class: CloudMonkey::CMHelper

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

Overview

For functions that require execution of many commands, or for unwrapping lists that Cloudmonkey returns.

Instance Method Summary collapse

Constructor Details

#initialize(cm) ⇒ CMHelper

cm is a CMClient



172
173
174
# File 'lib/cm.rb', line 172

def initialize(cm)
  @cm = cm
end

Instance Method Details

#delete_network_service_provider(name, iface_id) ⇒ Object

Delete a network service provider by name and physical network ID.



206
207
208
209
210
211
212
213
214
# File 'lib/cm.rb', line 206

def delete_network_service_provider(name, iface_id)
  nsps = @cm.list_networkserviceproviders(:name => name, :phsyicalnetworkid => iface_id)
  if nsps[:count] > 0
    nsp = nsps[:networkserviceprovider][0]
    @cm.delete_networkserviceprovider(:id => nsp[:id])
  else
    return false
  end
end

#enable_custom_vrouter_provider(provider, iface_id, zone_id) ⇒ Object

Enable a custom virtual router-derived network service provider. The provider will provide everything a VirtualRouter provides, but using itself instead of the regular VirtualRouter.



195
196
197
198
199
200
201
202
203
# File 'lib/cm.rb', line 195

def enable_custom_vrouter_provider(provider, iface_id, zone_id)
  nsp = @cm.add_networkserviceprovider(:name => provider, :physicalnetworkid => iface_id)
  nsp = nsp[:networkserviceprovider]
   
  element = @cm.create_virtualrouterelement(:nspid => nsp[:id])[:virtualrouterelement]
  @cm.configure_virtualrouterelement(:enabled => true, :id => element[:id])
  new_nsp = @cm.update_networkserviceprovider(:state => 'Enabled', :id => nsp[:id])
  return new_nsp[:networkserviceprovider]
end

#list_physical_network(name) ⇒ Object

Return a single network by name.



177
178
179
180
181
182
# File 'lib/cm.rb', line 177

def list_physical_network(name)
  networks = @cm.list_physicalnetworks(:name => name)
  unless networks.nil?
    return networks[:physicalnetwork][0] if networks[:count] > 0
  end
end

#list_zone(name) ⇒ Object

Return a single zone by name.



185
186
187
188
189
190
# File 'lib/cm.rb', line 185

def list_zone(name)
  zones = @cm.list_zones(:name => name)
  unless zones.nil?
    return zones[:zone][0] if zones[:count] > 0
  end
end