Sha256: 7d89a88ed208236e54fc34c5822af8c004714c71d9eac06d36aa29df94efc35e

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

#!/usr/bin/env ruby

#onering
#  list      [options] field [key:value ..]
#  search    [options] [key:value .. ]
#  provision [options] [key:value .. ] [pxe profile | ]


require 'json'
require 'rubygems'
require 'subcommander'
require 'onering'
require 'yaml'

include Subcommander


def print_format(data)
  puts YAML.dump(data)
end

subcommander.version = Gem.loaded_specs['onering-client'].version.to_s
subcommander.desc    = Gem.loaded_specs['onering-client'].description

#subcommander.opt :server, '-s', '--server', 'Specify the Onering server URL'

subcommand :devices, "Operations related to Onering's assets database" do |devices|
  api = Onering::API::Devices
  api.connect

# GET
  devices.subcommand :get, "Get a single node by ID" do |sc|
    sc.usage = "onering devices get ID"

    sc.exec do 
      print_format api.get(sc[:args].first)
    end
  end

# LIST
  devices.subcommand :list, "List field values" do |sc|
    sc.usage = "onering devices list [-f FILTER] FIELD"
    sc.opt :filter, '-f', '--filter FILTER', "A urlquery filter string"

    sc.exec do 
      field = sc[:args].first
      filter = sc[:filter]

      print_format api.list(field, {
        :filter => filter
      })
    end
  end

# FIND
  devices.subcommand :find, "Finds all nodes that match a urlquery filter string" do |sc|
    sc.arity = 1
    sc.usage = "onering devices find FILTER"

    sc.exec do 
      print_format api.find(sc[:args].first)
    end
  end
end


subcommander.go!

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
onering-client-0.0.7 bin/onering