hobelar 0.0.1 → 0.0.2

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/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ Gemfile.lock
2
+ *.gem
data/README.rdoc CHANGED
@@ -1,6 +1,7 @@
1
1
  = hobelar
2
2
 
3
3
  Hobelar talks to {Reconnoiter's}[http://labs.omniti.com/labs/reconnoiter] REST interface.
4
+ The name comes from a variety of light cavalry, originally from Ireland, used for skirmishing and reconnaissance.
4
5
 
5
6
  == Getting Started
6
7
 
@@ -30,7 +31,7 @@ If you don't have a valid CA, you'll need to disable peer validation when instan
30
31
 
31
32
  (The MIT License)
32
33
 
33
- Copyright (c) 2010 {Thom May}[http://github.com/thommay]
34
+ Copyright (c) 2011 {Thom May}[http://github.com/thommay]
34
35
 
35
36
  Permission is hereby granted, free of charge, to any person obtaining
36
37
  a copy of this software and associated documentation files (the
data/hobelar.gemspec CHANGED
@@ -4,7 +4,7 @@ Gem::Specification.new do |s|
4
4
  s.rubygems_version = '1.3.5'
5
5
 
6
6
  s.name = "hobelar"
7
- s.version = "0.0.1"
7
+ s.version = "0.0.2"
8
8
 
9
9
  s.summary = "reconnoiter rest interface wrapper"
10
10
  s.description = "Hobelar talks to reconnoiter's noit rest interface"
data/lib/hobelar.rb CHANGED
@@ -60,15 +60,26 @@ class Hobelar
60
60
  end
61
61
 
62
62
  def get_filter(set, path=nil)
63
-
63
+ p = path ? "/filters/show/#{path}/#{set}" : "/filters/show/#{set}"
64
+ request({:method=>"GET", :path=>p, :parser => Hobelar::Parsers::GetFilter.new})
64
65
  end
65
66
 
66
67
  def set_filter(set, rules, path=nil)
67
-
68
+ p = path ? "/filters/set/#{path}/#{set}" : "/filters/set/#{set}"
69
+ r = ""
70
+ rules.each do |rule|
71
+ r += "<rule type=\"#{rule[:type]}\" module=\"#{rule[:module]}\" metric=\"#{rule[:metric]}\" />"
72
+ end
73
+
74
+ body = "<?xml version=\"1.0\" encoding=\"utf8\"?><filterset>#{r}</filterset>"
75
+ request({:method=>"PUT", :path=>p, :body => body, :parser => Hobelar::Parsers::GetFilter.new})
68
76
  end
69
77
 
78
+ # deleting filters doesn't actually appear to work; the API gives the correct response
79
+ # but nothing happens
70
80
  def del_filter(set, path=nil)
71
-
81
+ p = path ? "/filters/delete/#{path}/#{set}" : "/filters/delete/#{set}"
82
+ request({:method=>"DELETE", :path=>p})
72
83
  end
73
84
 
74
85
  def request(params, &block)
@@ -1,2 +1,27 @@
1
1
  require 'nokogiri/xml/sax/document'
2
+
3
+ class Hobelar
4
+ class Parsers < Nokogiri::XML::SAX::Document
5
+
6
+ def initialize
7
+ @response = {}
8
+ end
9
+
10
+ def characters(string)
11
+ @value ||= ''
12
+ @value << string.strip
13
+ end
14
+
15
+ def attr_value(name, attrs)
16
+ (entry = attrs.detect {|a,v| a == name }) && entry.last
17
+ end
18
+
19
+ def start_element(name, attrs = [])
20
+ @value = nil
21
+ end
22
+
23
+ end
24
+ end
25
+
2
26
  require 'hobelar/parsers/getcheck.rb'
27
+ require 'hobelar/parsers/getfilter.rb'
@@ -1,28 +1,19 @@
1
1
  class Hobelar
2
2
  class Parsers
3
- class GetCheck < Nokogiri::XML::SAX::Document
3
+ class GetCheck < Hobelar::Parsers
4
4
 
5
5
  attr_reader :response
6
6
 
7
7
  def initialize
8
- @response = {}
8
+ super
9
9
  @response[:attributes] = {}
10
10
  @response[:config] = {}
11
11
  @response[:state] = {}
12
12
  @response[:state][:metrics] = {}
13
13
  end
14
14
 
15
- def characters(string)
16
- @value ||= ''
17
- @value << string.strip
18
- end
19
-
20
- def attr_value(name, attrs)
21
- (entry = attrs.detect {|a,v| a == name }) && entry.last
22
- end
23
-
24
15
  def start_element(name, attrs = [])
25
- @value = nil
16
+ super
26
17
 
27
18
  case name
28
19
  when "attributes"
@@ -0,0 +1,35 @@
1
+ class Hobelar
2
+ class Parsers
3
+ class GetFilter < Hobelar::Parsers
4
+
5
+ attr_reader :response
6
+
7
+ def initialize
8
+ super
9
+ @response[:rules] = []
10
+ end
11
+
12
+ def start_element(name, attrs = [])
13
+ super
14
+
15
+ case name
16
+ when "filterset"
17
+ @in_fset = true
18
+ when "rule"
19
+ @type = attr_value("type", attrs)
20
+ @module = attr_value("module", attrs)
21
+ @metric = attr_value("metric", attrs)
22
+ end
23
+ end
24
+
25
+ def end_element(name)
26
+ case name
27
+ when "filterset"
28
+ @in_fset = false
29
+ when "rule"
30
+ @response[:rules] << {:type => @type, :module => @module, :metric => @metric}
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: hobelar
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.1
5
+ version: 0.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Thom May
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-28 00:00:00 +01:00
13
+ date: 2011-03-29 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -77,14 +77,15 @@ extensions: []
77
77
  extra_rdoc_files:
78
78
  - README.rdoc
79
79
  files:
80
+ - .gitignore
80
81
  - Gemfile
81
82
  - README.rdoc
82
83
  - hobelar.gemspec
83
84
  - lib/hobelar.rb
84
- - lib/hobelar/core.rb
85
85
  - lib/hobelar/exceptions.rb
86
86
  - lib/hobelar/parsers.rb
87
87
  - lib/hobelar/parsers/getcheck.rb
88
+ - lib/hobelar/parsers/getfilter.rb
88
89
  has_rdoc: true
89
90
  homepage: https://github.com/thommay/hobelar
90
91
  licenses: []
data/lib/hobelar/core.rb DELETED
File without changes