Sha256: f6665d1f08dd59f4c540046b44e7b3c006fcd00a88d5e624722800866ff9bb0d

Contents?: true

Size: 1.74 KB

Versions: 1

Compression:

Stored size: 1.74 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'
require 'pp'

include Subcommander


def print_format(data, format=nil)
  case format
  when :text
    if data.is_a?(Hash)
      pp data
    elsif data.is_a?(Array)
      puts data.join("\n")
    else
      puts data.to_s
    end
    
  else
    puts YAML.dump(data)
  end
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.opt :as_txt, '-t', '--as-text', "Return the results as text"

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

      print_format(api.list(field, {
        :filter => filter
      }), (sc[:as_txt] ? :text : nil))
    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.10 bin/onering