Sha256: f01805bb06206eeea180274b60e45b913e049d5106b6b2984ae11f615a24be2f
Contents?: true
Size: 1.99 KB
Versions: 6
Compression:
Stored size: 1.99 KB
Contents
module Fog module Libvirt class Compute class Real def list_networks(filter = { }) data=[] if filter.keys.empty? (client.list_networks + client.list_defined_networks).each do |network_name| data << network_to_attributes(client.lookup_network_by_name(network_name)) end else data = [network_to_attributes(get_network_by_filter(filter))] end data end private # Retrieve the network by uuid or name def get_network_by_filter(filter) case filter.keys.first when :uuid client.lookup_network_by_uuid(filter[:uuid]) when :name client.lookup_network_by_name(filter[:name]) end end # bridge name may not be defined in some networks, we should skip that in such case def network_to_attributes(net) return if net.nil? begin bridge_name = net.bridge_name rescue ::Libvirt::Error bridge_name = '' end { :uuid => net.uuid, :name => net.name, :bridge_name => bridge_name } end end class Mock def list_networks(filter={ }) networks = [ { :uuid => 'a29146ea-39b2-412d-8f53-239eef117a32', :name => 'net1', :bridge_name => 'virbr0' }, { :uuid => 'fbd4ac68-cbea-4f95-86ed-22953fd92384', :name => 'net2', :bridge_name => 'virbr1' } ] return networks if filter.empty? case filter.keys.first when :uuid [networks.find(:uuid => filter[:uuid]).first] when :name [networks.find(:name => filter[:name]).first] else networks end end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems