Class representing a collection in Splunk.
A Collection is a group of items, usually of class Entity or one of its subclasses, but occasionally another Collection. Usually you obtain a Collection by calling one of the convenience methods on Service.
A Collection is enumerable, and implements many of the methods found on Hash, so methods like each, select, and delete_if all work, as does fetching a member of the Collection with [].
Creates an item in this collection.
The name argument is required. All other arguments are passed as a hash, though they vary from collection to collection.
Returns: the created entity.
Example:
service = Splunk::connect(:username => 'admin', :password => 'foo') service.users.create('jack', :password => 'mypassword', :realname => 'Jack_be_nimble', :roles => ['user'])
# File lib/splunk-sdk-ruby/collection.rb, line 342 def create(name, args={}) body_args = args.clone() body_args["name"] = name request_args = { :method => :POST, :resource => @resource, :body => body_args } if args.has_key?(:namespace) request_args[:namespace] = body_args.delete(:namespace) end response = @service.request(request_args) if @always_fetch fetch_args = {:method => :GET, :resource => @resource + [name]} if args.has_key?(:namespace) fetch_args[:namespace] = args[:namespace] end response = @service.request(fetch_args) end feed = AtomFeed.new(response.body) raise StandardError.new("No entities returned") if feed.entries.empty? entity = atom_entry_to_entity(feed.entries[0]) raise StandardError.new("Found nil entity.") if entity.nil? return entity end
Deletes an item from the collection.
Entities from different namespaces may have the same name, so if you are connected to Splunk using a namespace with wildcards in it, there may be multiple entities in the collection with the same name. In this case you must specify a namespace as well, or the delete method will raise an AmbiguousEntityReference error.
Example:
service = Splunk::connect(:username => 'admin', :password => 'foo') props = service.confs['props'] props.delete('sdk-tests')
# File lib/splunk-sdk-ruby/collection.rb, line 386 def delete(name, namespace=nil) if namespace.nil? namespace = @service.namespace end # We don't want to handle any cases about deleting ambiguously named # entities. if !namespace.is_exact? raise StandardError.new("Must provide an exact namespace to delete an entity.") end @service.request(:method => :DELETE, :namespace => namespace, :resource => @resource + [name]) return self end
Deletes all entities on this collection for which the block returns true.
If block is omitted, returns an enumerator over all members of the collection.
# File lib/splunk-sdk-ruby/collection.rb, line 409 def delete_if(&block) # Without a block, just return an enumerator return each() if !block_given? values.each() do |entity| if block.call(entity) delete(entity.name, entity.namespace) end end end
Generated with the Darkfish Rdoc Generator 2.