Sha256: 421ecd58f7224591169da37619763e42c38f97b0f5ddc8778e5dc0649bf1b6cf

Contents?: true

Size: 1.99 KB

Versions: 41

Compression:

Stored size: 1.99 KB

Contents

module Fog
  module Compute
    class OpenNebula
      class Real
        def list_groups(filter = {})

          groups=[]
          grouppool = ::OpenNebula::GroupPool.new(client)
          grouppool.info

          # {
          #   "GROUP"=>{
          #     "ID"=>"0", 
          #      "NAME"=>"oneadmin", 
          #      "USERS"=>{"ID"=>["0", "1"]}, 
          #      "DATASTORE_QUOTA"=>{}, 
          #      "NETWORK_QUOTA"=>{}, 
          #      "VM_QUOTA"=>{}, 
          #      "IMAGE_QUOTA"=>{}
          #    }
          #}

          grouppool.each do |group| 
            filter_missmatch = false

            unless (filter.empty?)
              filter.each do |k,v|
                if group["#{k.to_s.upcase}"] && group["#{k.to_s.upcase}"] != v.to_s
                  filter_missmatch = true
                  break
                end
              end 
              next if filter_missmatch
            end 
            groups << {:id => group["ID"], :name => group["NAME"]}
          end
          groups
        end
      end


      class Mock
        def list_groups(filter={})
          groups = []
          net1 = mock_group "1", 'net1'
          net2 = mock_group "2", 'fogtest'

          grouppool = [net1, net2]
          grouppool.each do |group| 
            filter_missmatch = false

            unless (filter.empty?)
              filter.each do |k,v|
                if group["#{k.to_s.upcase}"] && group["#{k.to_s.upcase}"] != v.to_s
                  filter_missmatch = true
                  break
                end
              end 
              next if filter_missmatch
            end 
            groups << {:id => group["ID"], :name => group["NAME"]}
          end
          groups
        end

        def mock_group id, name
          {
            "ID"    	 => id,
            "NAME"  	 => name,
            "UID"   	 => "5",
            "GID"   	 => "5",
            "DESCRIPTION" => "netDescription",
            "VLAN"	 => "5"
          }
        end
      end
    end
  end
end

Version data entries

41 entries across 39 versions & 6 rubygems

Version Path
fog-2.3.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-ifeel-2.2.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-2.2.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-2.1.0 lib/fog/opennebula/requests/compute/list_groups.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-1.42.1/lib/fog/opennebula/requests/compute/list_groups.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-1.42.1/lib/fog/opennebula/requests/compute/list_groups.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-1.42.1/lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.42.1 lib/fog/opennebula/requests/compute/list_groups.rb
fog-2.0.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.42.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.41.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.40.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.39.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.38.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.37.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.36.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.35.0 lib/fog/opennebula/requests/compute/list_groups.rb
fog-2.0.0.pre.0 lib/fog/opennebula/requests/compute/list_groups.rb
vagrant-cloudstack-1.2.0 vendor/bundle/gems/fog-1.32.0/lib/fog/opennebula/requests/compute/list_groups.rb
fog-1.34.0 lib/fog/opennebula/requests/compute/list_groups.rb