sloe 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -20,7 +20,7 @@ Or install it yourself as:
20
20
 
21
21
  This gem augments the functionality of Netconf::SSH, Net::SCP and SNMP gems. Please refer to those gem's documentation or detailed instruction on how to use this gem.
22
22
 
23
- All Netconf methods are accessed via the rpc() method. All Net::SCP methods are access via the scp() method. All SNMP methods are accessed via the snmp() method. For example:
23
+ All Netconf methods are accessed via the `rpc()` method. All Net::SCP methods are access via the `scp()` method. All SNMP methods are accessed via the `snmp()` method. For example:
24
24
 
25
25
  require 'sloe'
26
26
 
@@ -54,16 +54,30 @@ An alternate way to use this module is:
54
54
  puts device.snmp.get_value('sysDescr.0')
55
55
 
56
56
 
57
- All options supported by Netconf, Net::SCP and SNMP are supported in this gem too. The :target option is aliased to the SNMP :host option so there is no need to duplicate that option key.
57
+ All options supported by Netconf, Net::SCP and SNMP are supported in this gem too. The `:target` Netconf::SSH option is aliased to the SNMP `:host` option so there is no need to duplicate that option key.
58
58
 
59
59
  ## Vendor specific Netconf extensions
60
60
 
61
- Sloe supports vendor specific Netconf extensions. To add that vendor specific support call new() on one of the supported classes. Sloe supports the following:
61
+ Sloe supports vendor specific Netconf extensions. To add that vendor specific support call `new()` on one of the supported classes. Sloe supports the following:
62
62
 
63
63
  *Sloe::Device - no vendor specific Netconf extensions added
64
64
  *Sloe::Junos - Junos vendor specific Netconf extensions added
65
65
 
66
- Just simply call Sloe::Junos.new() to get the Junos extensions added
66
+ Just simply call `Sloe::Junos.new()` to get the Junos extensions added
67
+
68
+ ### Junos specific extension
69
+
70
+ For Junos specific Netconf extensions please refer to the [Juniper webiste](http://www.juniper.net/techpubs/en_US/junos12.3/information-products/topic-collections/netconf-guide/index.html)
71
+
72
+ As well as supporting Junos specific Netconf RPCs Sloe::Junos also supports the `cli()` method. This method allows you to execute CLI commands on the Juniper device. For example
73
+
74
+ device.cli("show version")
75
+ device.cli("show ospf interfaces")
76
+
77
+ By default this call will respond with an XML result tree fragment, a Nokogiri::XML object. To get what you would see on the CLI modify the `cli()` call with the `:format => 'text'` attribute and chain the Nokogiri `text()` method. Here is an example that will return just the output from "show version"
78
+
79
+ device.cli("show version", :format => 'text').text
80
+
67
81
 
68
82
  ## SUPPORT
69
83
 
data/lib/sloe/junos.rb CHANGED
@@ -4,20 +4,12 @@ require 'sloe/common'
4
4
  module Sloe
5
5
  class Junos < Sloe::Common
6
6
 
7
- # attr_reader :snmp
8
-
9
7
  def initialize(args, &block)
10
- # @snmp_args = {:host => args[:target], :mib_dir => args[:mib_dir], :mib_modules => args[:mib_modules]}
11
- # @snmp = SNMP::Manager.new(@snmp_args)
12
-
13
- # if block_given?
14
8
  super( args, &block )
15
- # return
16
- # else
17
- # super(args)
18
- # self.open
19
- # self
20
- # end
9
+ end
10
+
11
+ def cli(cmd_str, attrs = nil)
12
+ self.rpc.command(cmd_str, attrs)
21
13
  end
22
14
  end
23
15
  end
data/lib/sloe/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sloe
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
data/spec/methods_spec.rb CHANGED
@@ -13,7 +13,7 @@ describe Sloe do
13
13
  :mib_modules => ["SNMPv2-SMI", "SNMPv2-MIB", "IF-MIB", "IP-MIB", "TCP-MIB", "UDP-MIB"].concat(@jnx_mibs)
14
14
  }
15
15
 
16
- @dut = Sloe::Device.new(@args)
16
+ @dut = Sloe::Junos.new(@args)
17
17
  end
18
18
 
19
19
  context "SNMP API" do
@@ -64,4 +64,13 @@ describe Sloe do
64
64
  File.delete('/var/tmp/test')
65
65
  end
66
66
  end
67
+
68
+ context "CLI API" do
69
+ it "cli.('show version') functions without error" do
70
+ lambda { @dut.cli("show version") }.should_not raise_error
71
+ end
72
+ it "cli.('show version') contains OS information" do
73
+ @dut.cli("show version").text.should =~ /JUNOS Base OS/
74
+ end
75
+ end
67
76
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sloe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: