netdot-restclient 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -2
- data/Makefile +5 -0
- data/README.md +55 -2
- data/Rakefile +55 -4
- data/lib/netdot/host.rb +1 -1
- data/lib/netdot/ipblock.rb +1 -1
- data/lib/netdot/restclient.rb +11 -11
- data/lib/netdot/restclient/version.rb +1 -1
- data/netdot-restclient.gemspec +10 -5
- data/spec/restclient_spec.rb +8 -3
- metadata +76 -20
data/Gemfile
CHANGED
data/Makefile
ADDED
data/README.md
CHANGED
@@ -18,6 +18,10 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
+
See file `sample/sample.rb` for example usage of the `Netdot::Host` and `Netdot::Ipblock` classes.
|
22
|
+
|
23
|
+
The following example shows how you can use the low level `Netdot::RestClient` class.
|
24
|
+
|
21
25
|
require 'netdot/restclient'
|
22
26
|
require 'pp'
|
23
27
|
|
@@ -50,8 +54,6 @@ The Netdot user manual at:
|
|
50
54
|
|
51
55
|
http://netdot.uoregon.edu
|
52
56
|
|
53
|
-
See the sample/sample.rb for sample usage of the Host and Ipblock classes.
|
54
|
-
|
55
57
|
## Contributing
|
56
58
|
|
57
59
|
1. Fork it ( https://github.com/cvicente/netdot-restclient/fork )
|
@@ -59,3 +61,54 @@ See the sample/sample.rb for sample usage of the Host and Ipblock classes.
|
|
59
61
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
60
62
|
4. Push to the branch (`git push origin my-new-feature`)
|
61
63
|
5. Create a new Pull Request
|
64
|
+
|
65
|
+
### Setting up a development environment on Ubuntu 14.04
|
66
|
+
* Resynchronize the package index files from their sources.
|
67
|
+
```
|
68
|
+
sudo apt-get update
|
69
|
+
```
|
70
|
+
* Install rbenv, then reconfigure PATH.
|
71
|
+
```
|
72
|
+
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
|
73
|
+
cat >>~/.bashrc <<EOF
|
74
|
+
export PATH=~/.rbenv/bin:\$PATH
|
75
|
+
eval "\$(rbenv init -)"
|
76
|
+
EOF
|
77
|
+
```
|
78
|
+
* Logout and back in!
|
79
|
+
```
|
80
|
+
logout
|
81
|
+
```
|
82
|
+
* Install and verify the desired Ruby version.
|
83
|
+
```
|
84
|
+
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
|
85
|
+
rbenv install 1.9.3-p547
|
86
|
+
cat >~/.rbenv/version <<EOF
|
87
|
+
1.9.3-p547
|
88
|
+
EOF
|
89
|
+
rbenv rehash
|
90
|
+
ruby --version
|
91
|
+
```
|
92
|
+
* Install the bundler gem
|
93
|
+
```
|
94
|
+
rbenv exec gem install bundler
|
95
|
+
rbenv rehash
|
96
|
+
bundle version
|
97
|
+
```
|
98
|
+
* Install the netdot-restclient code
|
99
|
+
```
|
100
|
+
git clone https://github.com/cvicente/netdot-restclient.git
|
101
|
+
cd netdot-restclient
|
102
|
+
```
|
103
|
+
* Run the bundler, to ensure we have all the gems we need
|
104
|
+
```
|
105
|
+
bundle install
|
106
|
+
```
|
107
|
+
* Optional: set environment variables for rspec tests
|
108
|
+
```
|
109
|
+
export SERVER=http://ipam0-01-unicorn-usnbn1.ci-aws.dev.ec2.dynback.net/netdot
|
110
|
+
```
|
111
|
+
* Run the default rake tasks
|
112
|
+
```
|
113
|
+
rake
|
114
|
+
```
|
data/Rakefile
CHANGED
@@ -1,8 +1,59 @@
|
|
1
|
+
#
|
2
|
+
# Rakefile
|
3
|
+
#
|
4
|
+
|
5
|
+
require 'rake'
|
6
|
+
require 'rake/clean'
|
7
|
+
|
8
|
+
CLEAN.include('.yardoc',
|
9
|
+
'cookie.dat'
|
10
|
+
)
|
11
|
+
CLOBBER.include('doc',
|
12
|
+
'pkg'
|
13
|
+
)
|
14
|
+
|
15
|
+
#---------------------------------------------------------------------------
|
16
|
+
# Packaging (bundler) -- build, install, and release
|
17
|
+
|
1
18
|
require 'bundler/gem_tasks'
|
19
|
+
|
20
|
+
#---------------------------------------------------------------------------
|
21
|
+
# Documentation (yard)
|
22
|
+
|
2
23
|
require 'yard'
|
24
|
+
YARD::Rake::YardocTask.new
|
25
|
+
|
26
|
+
desc 'Use yard for doc'
|
27
|
+
task doc: :yard
|
28
|
+
|
29
|
+
#---------------------------------------------------------------------------
|
30
|
+
# Test
|
3
31
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
32
|
+
require 'rspec/core/rake_task'
|
33
|
+
|
34
|
+
# These are for running 'rspec' with our Netdot test server
|
35
|
+
ENV['SERVER'] ||= 'http://localhost/netdot'
|
36
|
+
ENV['USERNAME'] ||= 'admin'
|
37
|
+
ENV['PASSWORD'] ||= 'admin'
|
38
|
+
|
39
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
40
|
+
t.pattern = 'spec/**{,/*/**}/*_spec.rb'
|
41
|
+
t.rspec_opts = '--format documentation'
|
8
42
|
end
|
43
|
+
|
44
|
+
desc 'Use rspec for test'
|
45
|
+
task test: :spec
|
46
|
+
|
47
|
+
#---------------------------------------------------------------------------
|
48
|
+
# Style (rubocop)
|
49
|
+
|
50
|
+
require 'rubocop/rake_task'
|
51
|
+
RuboCop::RakeTask.new
|
52
|
+
|
53
|
+
desc 'Use rubocop for style'
|
54
|
+
task style: :rubocop
|
55
|
+
|
56
|
+
#---------------------------------------------------------------------------
|
57
|
+
|
58
|
+
desc 'Build the Gem if style, test, and doc are successful'
|
59
|
+
task default: [:rubocop, :spec, :yard, :build]
|
data/lib/netdot/host.rb
CHANGED
@@ -5,7 +5,7 @@ module Netdot
|
|
5
5
|
attr_accessor :connection
|
6
6
|
|
7
7
|
# Constructor
|
8
|
-
# @
|
8
|
+
# @option argv [Hash] :connection (REQUIRED) a Netdot::RestClient object
|
9
9
|
def initialize(argv = {})
|
10
10
|
[:connection].each do |k|
|
11
11
|
fail ArgumentError, "Missing required argument '#{k}'" unless argv[k]
|
data/lib/netdot/ipblock.rb
CHANGED
@@ -5,7 +5,7 @@ module Netdot
|
|
5
5
|
attr_accessor :connection
|
6
6
|
|
7
7
|
# Constructor
|
8
|
-
# @
|
8
|
+
# @option argv [Hash] :connection (REQUIRED) a Netdot::RestClient object
|
9
9
|
def initialize(argv = {})
|
10
10
|
[:connection].each do |k|
|
11
11
|
fail ArgumentError, "Missing required argument '#{k}'" unless argv[k]
|
data/lib/netdot/restclient.rb
CHANGED
@@ -9,18 +9,18 @@ module Netdot
|
|
9
9
|
attr_accessor :format, :base_url, :ua, :xs
|
10
10
|
|
11
11
|
# Constructor and login method
|
12
|
-
# @
|
13
|
-
# @
|
14
|
-
# @
|
15
|
-
# @
|
16
|
-
# @
|
17
|
-
# @
|
18
|
-
# @
|
12
|
+
# @option argv [String] :server (REQUIRED) Netdot server URL
|
13
|
+
# @option argv [String] :username (REQUIRED) Netdot Username
|
14
|
+
# @option argv [String] :password (REQUIRED) Netdot password
|
15
|
+
# @option argv [Fixnum] :retries (3) number of attempts
|
16
|
+
# @option argv [Fixnum] :timeout (10) timeout in seconds
|
17
|
+
# @option argv [String] :format (xml) content format <xml>
|
18
|
+
# @option argv [String] :ssl_version ('') specify version of SSL;
|
19
19
|
# see HTTPClient
|
20
|
-
# @
|
21
|
-
# @
|
22
|
-
# @
|
23
|
-
# @
|
20
|
+
# @option argv [String] :ssl_verify (true) verify server cert (default: yes)
|
21
|
+
# @option argv [String] :ssl_ca_file ('') path to SSL CA cert file
|
22
|
+
# @option argv [String] :ssl_ca_dir ('') path to SSL CA cert directory
|
23
|
+
# @option argv [String] :cookie_file ('./cookie.dat') cookie filename
|
24
24
|
def initialize(argv = {})
|
25
25
|
[:server, :username, :password].each do |k|
|
26
26
|
fail ArgumentError, "Missing required argument '#{k}'" unless argv[k]
|
data/netdot-restclient.gemspec
CHANGED
@@ -18,10 +18,15 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
22
|
-
spec.add_development_dependency '
|
23
|
-
spec.add_development_dependency '
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.9'
|
22
|
+
spec.add_development_dependency 'logger', '~>1.2'
|
23
|
+
spec.add_development_dependency 'netaddr', '~>1.5'
|
24
|
+
spec.add_development_dependency 'rake', '~>10.4'
|
25
|
+
spec.add_development_dependency 'redcarpet', '~>3.2'
|
26
|
+
spec.add_development_dependency 'rspec', '~> 2.99'
|
27
|
+
spec.add_development_dependency 'rubocop', '~>0.31'
|
28
|
+
spec.add_development_dependency 'yard', '~>0.8'
|
24
29
|
|
25
|
-
spec.
|
26
|
-
spec.
|
30
|
+
spec.add_runtime_dependency 'httpclient', '~>2.6'
|
31
|
+
spec.add_runtime_dependency 'xml-simple', '~>1.1'
|
27
32
|
end
|
data/spec/restclient_spec.rb
CHANGED
@@ -35,9 +35,14 @@ describe Netdot::RestClient do
|
|
35
35
|
username: ENV['USERNAME'] || 'admin',
|
36
36
|
password: ENV['PASSWORD'] || 'admin'
|
37
37
|
}
|
38
|
-
|
39
|
-
|
40
|
-
|
38
|
+
if ENV['SERVER'] =~ /^https:/
|
39
|
+
expect do
|
40
|
+
Netdot::RestClient.new(args)
|
41
|
+
end.to raise_error
|
42
|
+
else
|
43
|
+
STDERR.puts 'Warning: Skipping the following test' \
|
44
|
+
", as URL scheme is not 'https:'"
|
45
|
+
end
|
41
46
|
end
|
42
47
|
|
43
48
|
it 'does not raise an exception if SSL verification is disabled' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netdot-restclient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,63 +9,118 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-05-
|
12
|
+
date: 2015-05-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement: &
|
16
|
+
requirement: &81443330 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '1.
|
21
|
+
version: '1.9'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *81443330
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: logger
|
27
|
+
requirement: &81443080 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.2'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *81443080
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: netaddr
|
38
|
+
requirement: &81442850 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '1.5'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *81442850
|
25
47
|
- !ruby/object:Gem::Dependency
|
26
48
|
name: rake
|
27
|
-
requirement: &
|
49
|
+
requirement: &81442620 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.4'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *81442620
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: redcarpet
|
60
|
+
requirement: &81442390 !ruby/object:Gem::Requirement
|
28
61
|
none: false
|
29
62
|
requirements:
|
30
|
-
- -
|
63
|
+
- - ~>
|
31
64
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
65
|
+
version: '3.2'
|
33
66
|
type: :development
|
34
67
|
prerelease: false
|
35
|
-
version_requirements: *
|
68
|
+
version_requirements: *81442390
|
36
69
|
- !ruby/object:Gem::Dependency
|
37
70
|
name: rspec
|
38
|
-
requirement: &
|
71
|
+
requirement: &81442160 !ruby/object:Gem::Requirement
|
39
72
|
none: false
|
40
73
|
requirements:
|
41
74
|
- - ~>
|
42
75
|
- !ruby/object:Gem::Version
|
43
|
-
version: '2.
|
76
|
+
version: '2.99'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *81442160
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: rubocop
|
82
|
+
requirement: &81441930 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0.31'
|
44
88
|
type: :development
|
45
89
|
prerelease: false
|
46
|
-
version_requirements: *
|
90
|
+
version_requirements: *81441930
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: yard
|
93
|
+
requirement: &81441700 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ~>
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0.8'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *81441700
|
47
102
|
- !ruby/object:Gem::Dependency
|
48
103
|
name: httpclient
|
49
|
-
requirement: &
|
104
|
+
requirement: &81441470 !ruby/object:Gem::Requirement
|
50
105
|
none: false
|
51
106
|
requirements:
|
52
|
-
- -
|
107
|
+
- - ~>
|
53
108
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
109
|
+
version: '2.6'
|
55
110
|
type: :runtime
|
56
111
|
prerelease: false
|
57
|
-
version_requirements: *
|
112
|
+
version_requirements: *81441470
|
58
113
|
- !ruby/object:Gem::Dependency
|
59
114
|
name: xml-simple
|
60
|
-
requirement: &
|
115
|
+
requirement: &81441240 !ruby/object:Gem::Requirement
|
61
116
|
none: false
|
62
117
|
requirements:
|
63
|
-
- -
|
118
|
+
- - ~>
|
64
119
|
- !ruby/object:Gem::Version
|
65
|
-
version: '
|
120
|
+
version: '1.1'
|
66
121
|
type: :runtime
|
67
122
|
prerelease: false
|
68
|
-
version_requirements: *
|
123
|
+
version_requirements: *81441240
|
69
124
|
description: Talk to Netdot via REST with Ruby
|
70
125
|
email:
|
71
126
|
- cvicente@gmail.com
|
@@ -80,6 +135,7 @@ files:
|
|
80
135
|
- .rubocop.yml
|
81
136
|
- Gemfile
|
82
137
|
- LICENSE.txt
|
138
|
+
- Makefile
|
83
139
|
- README.md
|
84
140
|
- Rakefile
|
85
141
|
- lib/netdot.rb
|