class NSXDriver::OpaqueNetwork
Class Opaque Network NSX-T Network
Public Class Methods
new(nsx_client, ls_id = nil, tz_id = nil, ls_data = nil)
click to toggle source
CONSTRUCTOR
Calls superclass method
# File lib/opaque_network.rb, line 25 def initialize(nsx_client, ls_id = nil, tz_id = nil, ls_data = nil) super(nsx_client) if ls_id initialize_with_id(ls_id) else if tz_id && ls_data begin @ls_id = new_logical_switch(ls_data) rescue NSXError::IncorrectResponseCodeError => e raise 'Opaque Network not created in ' \ "NSX Manager: #{e.message}" end unless @ls_id raise 'Opaque Network not created in NSX Manager: '\ 'generic error' end # Construct URL of the created logical switch @url_ls = NSXConstants::NSXT_LS_SECTION + @ls_id @ls_vni = ls_vni @ls_name = ls_name @tz_id = ls_tz @admin_display = 'UP' end end end
new_from_name(nsx_client, ls_name)
click to toggle source
Creates a OpaqueNetwork from its name
# File lib/opaque_network.rb, line 53 def self.new_from_name(nsx_client, ls_name) lswitch = new(nsx_client) ls_id = lswitch.ls_id_from_name(nsx_client, ls_name) unless ls_id error_msg = "Opaque Network with name: #{ls_name} not found" error = NSXError::ObjectNotFound .new(error_msg) raise error end # initialize_with_id(@ls_id) lswitch.initialize_with_id(ls_id) lswitch end
Public Instance Methods
delete_logical_switch()
click to toggle source
Delete a logical switch
# File lib/opaque_network.rb, line 128 def delete_logical_switch @nsx_client.delete(@url_ls) end
initialize_with_id(ls_id)
click to toggle source
Creates a OpaqueNetwork from its id
# File lib/opaque_network.rb, line 69 def initialize_with_id(ls_id) @ls_id = ls_id # Construct URL of the created logical switch @url_ls = NSXConstants::NSXT_LS_SECTION + \ @ls_id if ls? @ls_vni = ls_vni @ls_name = ls_name @tz_id = ls_tz @admin_display = 'UP' else error_msg = "Opaque Network with id: #{ls_id} not found" error = NSXError::ObjectNotFound .new(error_msg) raise error end end
ls?()
click to toggle source
METHODS Check if logical switch exists
# File lib/opaque_network.rb, line 103 def ls? @nsx_client.get(@url_ls) ? true : false end
ls_id_from_name(nsx_client, name)
click to toggle source
Get the logical switch id from its name
# File lib/opaque_network.rb, line 88 def ls_id_from_name(nsx_client, name) url = NSXConstants::NSXT_LS_SECTION lswitches = nsx_client.get(url)['results'] lswitches.each do |lswitch| lsname = lswitch['display_name'] lsid = lswitch['id'] if lsname == name && lsid return lsid end end nil end
ls_name()
click to toggle source
Get logical switch's name
# File lib/opaque_network.rb, line 108 def ls_name @nsx_client.get(@url_ls)['display_name'] end
ls_tz()
click to toggle source
Get the Transport Zone of the logical switch
# File lib/opaque_network.rb, line 118 def ls_tz @nsx_client.get(@url_ls)['transport_zone_id'] end
ls_vni()
click to toggle source
Get logical switch's vni
# File lib/opaque_network.rb, line 113 def ls_vni @nsx_client.get(@url_ls)['vni'] end
new_logical_switch(ls_data)
click to toggle source
Create a new logical switch (NSX-T: opaque network)
# File lib/opaque_network.rb, line 123 def new_logical_switch(ls_data) @nsx_client.post(NSXConstants::NSXT_LS_SECTION, ls_data) end