netdot-restclient 2.0.0 → 2.0.1
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/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
|