netscaler 0.6.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Yzk5MTBlZTEzY2VmMmE2YWExNGUzMGY5MzYxMWYyNTY2YWE2YjhkNg==
4
+ NDVmYTVjYTQwY2U0OGUxYTExNDUwYmY0MTc4YmQ2YjNiNjUwNDQyYQ==
5
5
  data.tar.gz: !binary |-
6
- ODMzMTY3YmMyMjlhZTA2Yjk5ODJhZGRkZGJiNmY0MGIxMDk2OTkwZQ==
6
+ NmQ5NmViMzY2MjA2NDUyNzkwMjRhNDJkNDUzMWZjNzQ1ZTk1YWVmMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OWNjZjc4NWUwMWFiYzYzNDY0YmRiZDdmMTRjZjRmNDBiZDY4ZDUxMDE1NDMz
10
- Njg0MTBhNzdjNmVhYjhiOTgzZDYyZDdiMTVhZjVhMjBhMjJjOWUzMjRmZmFm
11
- YzUxYTBkNWU3YzUxNjdlYjYwNTkxMTg4ZThiNzI1YTUyN2IxOTM=
9
+ MDY1ZGFlMzgyMjA1ZDJlZWYwYzJmODFhMGU0YjM4MTBlZDhiZTc2MTU4NjUw
10
+ NzZkYjlmNWRiNjZiYjE3YTY4MDBkNDU2YjlmZThlZTE3Yzc1NmRjOWRkZjU1
11
+ ZWQ5NTUzYmVmYmQzNDliZDYyNWYxNzc4MDFjYzZmMTVjYjgxYmE=
12
12
  data.tar.gz: !binary |-
13
- ODhlOWZlN2IzODFhN2Y4YjRkYzQ5MTQ2YzYzODM1OTIyMGNhY2NiYTU2MzVj
14
- NDhjMGQ2NWVlN2Y2NTllOWRjZWE1Mzk3MTZiZjdkYmQ3YmU4N2U0MTNiODc0
15
- ZjM3MWEwMmM3YTcxNTE1MzUzYTE0NjE2ODNkYzA5NGYwNTg4NjI=
13
+ NjlmODdmZjNiNGMwMzJkYzRlZDQ4YzBjYWYzMzg0OGIwYjVmYTFhMmQ4NTlk
14
+ MjQ2NTY3MTZiZmU1NTQ3NWU3ZjczZmUzNzdlZGU1MjRkZWQwZjY3N2VmNGRh
15
+ NjE2NWQ0M2U2ZjYxZWVkODRlMDkzMmI3NThmY2UyMDlkM2E0NjI=
data/Gemfile CHANGED
@@ -14,5 +14,6 @@ group :development do
14
14
  gem 'simplecov-rcov'
15
15
  end
16
16
 
17
+ gem 'nokogiri', '~> 1.6.7.1'
17
18
  gem 'rest-client', '~> 1.8.0'
18
19
  gem 'json', '~> 1.8.2'
data/Gemfile.lock CHANGED
@@ -36,13 +36,13 @@ GEM
36
36
  json (1.8.2)
37
37
  jwt (1.4.1)
38
38
  mime-types (2.4.3)
39
- mini_portile (0.6.2)
39
+ mini_portile2 (2.0.0)
40
40
  multi_json (1.11.0)
41
41
  multi_xml (0.5.5)
42
42
  multipart-post (2.0.0)
43
43
  netrc (0.10.3)
44
- nokogiri (1.6.6.2)
45
- mini_portile (~> 0.6.0)
44
+ nokogiri (1.6.7.1)
45
+ mini_portile2 (~> 2.0.0.rc2)
46
46
  oauth2 (1.0.0)
47
47
  faraday (>= 0.8, < 0.10)
48
48
  jwt (~> 1.0)
@@ -89,6 +89,7 @@ DEPENDENCIES
89
89
  bundler
90
90
  jeweler (~> 2.0.1)
91
91
  json (~> 1.8.2)
92
+ nokogiri (~> 1.6.7.1)
92
93
  rdoc (~> 4.2)
93
94
  rest-client (~> 1.8.0)
94
95
  rspec (~> 3.2)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.0
1
+ 0.7.1
@@ -17,14 +17,17 @@ module Netscaler
17
17
  end
18
18
  end
19
19
 
20
- :protected
20
+ protected
21
21
 
22
- def prepare_payload(data)
22
+ def prepare_payload(data, args={})
23
23
  if data.is_a?(String)
24
24
  post_data = "object=#{data}"
25
+ elsif args[:no_wrapper]
26
+ post_data = data.to_json
25
27
  else
26
28
  post_data = "object=#{data.to_json}"
27
29
  end
30
+
28
31
  return post_data
29
32
  end
30
33
 
@@ -32,9 +35,11 @@ module Netscaler
32
35
  options = {
33
36
  :cookies=>{}
34
37
  }
38
+
35
39
  unless @session.nil?
36
40
  options[:cookies]['NITRO_AUTH_TOKEN'] = @session
37
41
  end
42
+
38
43
  options[:accept] = :json
39
44
  options[:params] = args[:params] if args.has_key?(:params)
40
45
 
@@ -15,6 +15,7 @@ require 'netscaler/cs'
15
15
  require 'netscaler/ssl'
16
16
  require 'netscaler/rewrite'
17
17
  require 'netscaler/responder'
18
+ require 'netscaler/system'
18
19
 
19
20
  module Netscaler
20
21
  class Connection
@@ -41,6 +42,7 @@ module Netscaler
41
42
  @rewrite = Rewrite.new self
42
43
  @responder = Responder.new self
43
44
  @ssl =Ssl.new self
45
+ @system = System.new self
44
46
  end
45
47
 
46
48
  def adapter
@@ -91,6 +93,10 @@ module Netscaler
91
93
  @responder
92
94
  end
93
95
 
96
+ def system
97
+ @system
98
+ end
99
+
94
100
  def servers
95
101
  return @servers
96
102
  end
@@ -42,6 +42,36 @@ module Netscaler
42
42
  end
43
43
  end
44
44
 
45
+ def put(part, data, args={})
46
+ url = get_uri(part)
47
+ options = prepare_options(args)
48
+ options[:content_type] = 'application/x-www-form-urlencoded'
49
+
50
+ put_data = prepare_payload(data, args)
51
+ begin
52
+ @site[url].put put_data, options do |response, request, result|
53
+ return process_result(result, response)
54
+ end
55
+ rescue RestClient::Exception => e
56
+ fr = Netscaler::Adapter::FailedRequest.new "Bad request", e.response , e
57
+ raise fr
58
+ end
59
+ end
60
+
61
+ def put_no_body(part, data, args={})
62
+ url = get_uri(part)
63
+ options = prepare_options(args)
64
+ options[:content_type] = 'application/x-www-form-urlencoded'
65
+
66
+ put_data = prepare_payload(data)
67
+ begin
68
+ @site[url].put put_data, options
69
+ rescue RestClient::Exception => e
70
+ fr = Netscaler::Adapter::FailedRequest.new "Bad request", e.response , e
71
+ raise fr
72
+ end
73
+ end
74
+
45
75
  def get(part, args={})
46
76
  url = get_uri(part)
47
77
  options = prepare_options(args)
@@ -18,6 +18,11 @@ module Netscaler
18
18
  return @netscaler.adapter.post_no_body("config/lbvserver_service_binding/#{payload['name']}?action=bind/", {'params' => {'action' => 'bind'}, 'lbvserver_rewritepolicy_binding' => payload})
19
19
  end
20
20
 
21
+ def responder_policy(payload)
22
+ raise ArgumentError, 'payload cannot be null' if payload.nil?
23
+ validate_payload(payload, [:name, :policyname, :priority])
24
+ return @netscaler.adapter.post_no_body("config/lbvserver_responderpolicy_binding/#{payload['name']}?action=bind/", {'params' => {'action' => 'bind'}, 'lbvserver_responderpolicy_binding' => payload})
25
+ end
21
26
  end
22
27
  end
23
28
  end
@@ -45,6 +45,30 @@ module Netscaler
45
45
  return process_result(@result, @response)
46
46
  end
47
47
 
48
+ def put(part, data, args={})
49
+ url = get_uri(part)
50
+ options = prepare_options(args)
51
+ options[:content_type] = :json#'application/json'
52
+ put_data = prepare_payload(data)
53
+ #puts "POST /#{url}\n#{put_data}"
54
+
55
+ return process_result(@result, @response)
56
+
57
+ #@site[url].post post_data, options do |response, request, result|
58
+ # return process_result(result, response)
59
+ #end
60
+ end
61
+
62
+ def put_no_body(part, data, args={})
63
+ url = get_uri(part)
64
+ options = prepare_options(args)
65
+ options[:content_type] = :json #'application/x-www-form-urlencoded'
66
+ put_data = prepare_payload(data)
67
+ #@site[url].put put_data, options
68
+ #puts "POST /#{url}\n#{put_data}"
69
+ return process_result(@result, @response)
70
+ end
71
+
48
72
  def get(part, args={})
49
73
  url = get_uri(part)
50
74
  options = prepare_options(args)
@@ -60,4 +84,4 @@ module Netscaler
60
84
  end
61
85
 
62
86
  end
63
- end
87
+ end
@@ -0,0 +1,23 @@
1
+ require 'netscaler/netscaler_service'
2
+
3
+ module Netscaler
4
+ class Ssl
5
+ class Certkey < NetscalerService
6
+ def initialize(netscaler)
7
+ @netscaler = netscaler
8
+ end
9
+
10
+ def add(payload={})
11
+ raise ArgumentError, 'payload cannot be null' if payload.nil?
12
+ validate_payload(payload, [:certkey, :cert, :key])
13
+ return @netscaler.adapter.post('config/sslcertkey', { 'sslcertkey' => payload })
14
+ end
15
+
16
+ def remove(payload={})
17
+ raise ArgumentError, 'payload cannot be null' if payload.nil?
18
+ validate_payload(payload, [:certkey])
19
+ return @netscaler.adapter.delete("config/sslcertkey/#{payload[:certkey]}")
20
+ end
21
+ end
22
+ end
23
+ end
@@ -8,10 +8,21 @@ module Netscaler
8
8
 
9
9
  def sslcertkey(payload)
10
10
  raise ArgumentError, 'payload cannot be null' if payload.nil?
11
- validate_payload(payload, [:name, :certkeyname])
12
- return @netscaler.adapter.post_no_body("config/sslvserver_sslcertkey_binding/#{payload[:vservername]}", {'params' => {'action' => 'bind'}, 'sslvserver_sslcertkey_binding' => payload})
11
+ validate_payload(payload, [:vservername, :certkeyname])
12
+ return @netscaler.adapter.post("config/sslvserver_sslcertkey_binding/#{payload[:vservername]}", {'params' => {'action' => 'bind'}, 'sslvserver_sslcertkey_binding' => payload})
13
13
  end
14
14
 
15
+ def sslpolicy(payload)
16
+ raise ArgumentError, 'payload cannot be null' if payload.nil?
17
+ validate_payload(payload, [:vservername, :policyname, :priority])
18
+ return @netscaler.adapter.put("config/sslvserver_sslpolicy_binding/#{payload[:vservername]}", {'sslvserver_sslpolicy_binding' => payload}, {no_wrapper: true})
19
+ end
20
+
21
+ def ecccurve(payload)
22
+ raise ArgumentError, 'payload cannot be null' if payload.nil?
23
+ validate_payload(payload, [:vservername, :ecccurvename])
24
+ return @netscaler.adapter.put("config/sslvserver_ecccurve_binding", {'sslvserver_ecccurve_binding' => payload}, {no_wrapper: true})
25
+ end
15
26
  end
16
27
  end
17
28
  end
@@ -8,10 +8,21 @@ module Netscaler
8
8
 
9
9
  def sslcertkey(payload)
10
10
  raise ArgumentError, 'payload cannot be null' if payload.nil?
11
- validate_payload(payload, [:name, :certkeyname])
11
+ validate_payload(payload, [:vservername, :certkeyname])
12
12
  return @netscaler.adapter.post_no_body("config/sslvserver_sslcertkey_binding/#{payload[:vservername]}?action=unbind/", {'params' => {'action' => 'unbind'}, 'sslvserver_sslcertkey_binding' => payload})
13
13
  end
14
14
 
15
+ def sslpolicy(payload)
16
+ raise ArgumentError, 'payload cannot be null' if payload.nil?
17
+ validate_payload(payload, [:vservername, :policyname, :priority])
18
+ return @netscaler.adapter.delete("config/sslvserver_sslpolicy_binding/#{payload[:vservername]}", {'params' => { 'policyname' => payload[:policyname], 'priority' => payload[:priority]}})
19
+ end
20
+
21
+ def ecccurve(payload)
22
+ raise ArgumentError, 'payload cannot be null' if payload.nil?
23
+ validate_payload(payload, [:vservername, :ecccurvename])
24
+ return @netscaler.adapter.delete("config/sslvserver_sslecccurve_binding/#{payload[:vservername]}", {'params' => {'ecccurvename' => payload[:ecccurename]}})
25
+ end
15
26
  end
16
27
  end
17
28
  end
@@ -36,6 +36,12 @@ module Netscaler
36
36
  return @netscaler.adapter.post_no_body('config/sslvserver/', {'sslvserver' => payload})
37
37
  end
38
38
 
39
+ def update(payload)
40
+ raise ArgumentError, 'payload cannot be null' if payload.nil?
41
+ validate_payload(payload, [:vservername])
42
+ return @netscaler.adapter.put('config/sslvserver/', {'sslvserver' => payload}, {no_wrapper: true})
43
+ end
44
+
39
45
  def stat(payload)
40
46
  raise ArgumentError, 'payload cannot be null' if payload.nil?
41
47
  validate_payload(payload, [:name])
data/lib/netscaler/ssl.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'netscaler/ssl/vserver'
2
2
  require 'netscaler/ssl/vserver/bind'
3
3
  require 'netscaler/ssl/vserver/unbind'
4
+ require 'netscaler/ssl/certkey'
4
5
 
5
6
  module Netscaler
6
7
  class Ssl
@@ -13,5 +14,8 @@ module Netscaler
13
14
  Vserver.new @netscaler
14
15
  end
15
16
 
17
+ def certkey
18
+ Certkey.new @netscaler
19
+ end
16
20
  end
17
21
  end
@@ -0,0 +1,17 @@
1
+ require 'netscaler/netscaler_service'
2
+
3
+ module Netscaler
4
+ class System
5
+ class File < NetscalerService
6
+ def initialize(netscaler)
7
+ @netscaler = netscaler
8
+ end
9
+
10
+ def add(payload = {})
11
+ raise ArgumentError, 'payload cannot be null' if payload.nil?
12
+ validate_payload(payload, [:filename, :filecontent, :filelocation])
13
+ return @netscaler.adapter.post('config/systemfile', { 'systemfile' => payload })
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ require 'netscaler/netscaler_service'
2
+ require 'netscaler/system/file'
3
+
4
+ module Netscaler
5
+ class System
6
+ def initialize(netscaler)
7
+ @netscaler = netscaler
8
+ end
9
+
10
+ def file
11
+ File.new @netscaler
12
+ end
13
+ end
14
+ end
data/netscaler.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: netscaler 0.6.0 ruby lib
5
+ # stub: netscaler 0.7.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "netscaler"
9
- s.version = "0.6.0"
9
+ s.version = "0.7.1"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Jeremy Custenborder", "David Andrew", "Jarrett Irons"]
14
- s.date = "2015-05-24"
14
+ s.date = "2015-12-27"
15
15
  s.description = "Netscaler api working against the Citrix Nitro api. Currently supports Nitro 9.3. Hope to add support for 10.X. Currently has support for som basics such as adding servers/services/servicegroups."
16
16
  s.email = ["jeremy@scarcemedia.com", "david.andrew@webtrends.com", "jarrett.irons@gmail.com"]
17
17
  s.extra_rdoc_files = [
@@ -57,9 +57,12 @@ Gem::Specification.new do |s|
57
57
  "lib/netscaler/service.rb",
58
58
  "lib/netscaler/servicegroup.rb",
59
59
  "lib/netscaler/ssl.rb",
60
+ "lib/netscaler/ssl/certkey.rb",
60
61
  "lib/netscaler/ssl/vserver.rb",
61
62
  "lib/netscaler/ssl/vserver/bind.rb",
62
63
  "lib/netscaler/ssl/vserver/unbind.rb",
64
+ "lib/netscaler/system.rb",
65
+ "lib/netscaler/system/file.rb",
63
66
  "netscaler.gemspec",
64
67
  "spec/csvserver_spec.rb",
65
68
  "spec/lbvserver_spec.rb",
@@ -71,7 +74,9 @@ Gem::Specification.new do |s|
71
74
  "spec/service_spec.rb",
72
75
  "spec/servicegroup_spec.rb",
73
76
  "spec/spec_helper.rb",
74
- "spec/sslvserver_spec.rb"
77
+ "spec/sslcertkey_spec.rb",
78
+ "spec/sslvserver_spec.rb",
79
+ "spec/systemfile_spec.rb"
75
80
  ]
76
81
  s.homepage = "http://github.com/GravityLabs/netscaler"
77
82
  s.licenses = ["MIT"]
@@ -82,6 +87,7 @@ Gem::Specification.new do |s|
82
87
  s.specification_version = 4
83
88
 
84
89
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
90
+ s.add_runtime_dependency(%q<nokogiri>, ["~> 1.6.7.1"])
85
91
  s.add_runtime_dependency(%q<rest-client>, ["~> 1.8.0"])
86
92
  s.add_runtime_dependency(%q<json>, ["~> 1.8.2"])
87
93
  s.add_development_dependency(%q<rspec>, ["~> 3.2"])
@@ -91,6 +97,7 @@ Gem::Specification.new do |s|
91
97
  s.add_development_dependency(%q<simplecov>, ["~> 0.10"])
92
98
  s.add_development_dependency(%q<simplecov-rcov>, [">= 0"])
93
99
  else
100
+ s.add_dependency(%q<nokogiri>, ["~> 1.6.7.1"])
94
101
  s.add_dependency(%q<rest-client>, ["~> 1.8.0"])
95
102
  s.add_dependency(%q<json>, ["~> 1.8.2"])
96
103
  s.add_dependency(%q<rspec>, ["~> 3.2"])
@@ -101,6 +108,7 @@ Gem::Specification.new do |s|
101
108
  s.add_dependency(%q<simplecov-rcov>, [">= 0"])
102
109
  end
103
110
  else
111
+ s.add_dependency(%q<nokogiri>, ["~> 1.6.7.1"])
104
112
  s.add_dependency(%q<rest-client>, ["~> 1.8.0"])
105
113
  s.add_dependency(%q<json>, ["~> 1.8.2"])
106
114
  s.add_dependency(%q<rspec>, ["~> 3.2"])
@@ -0,0 +1,34 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+ require 'netscaler'
3
+ require 'netscaler/mock_adapter'
4
+
5
+ describe Netscaler::System::File do
6
+
7
+ connection = Netscaler::Connection.new 'hostname' => 'foo', 'password' => 'bar', 'username' => 'bar'
8
+ connection.adapter = Netscaler::MockAdapter.new :body => '{ "errorcode": 0, "message": "Done" }'
9
+
10
+ context 'when adding a new certkey' do
11
+ it 'a certkey is required' do
12
+ expect {
13
+ connection.ssl.certkey.add(cert: 'crt', key: 'key')
14
+ }.to raise_error(ArgumentError, /certkey/)
15
+ end
16
+
17
+ it 'a cert is required' do
18
+ expect {
19
+ connection.ssl.certkey.add(certKey: 'name', key: 'key')
20
+ }.to raise_error(ArgumentError, /certkey/)
21
+ end
22
+
23
+ it 'a key is required' do
24
+ expect {
25
+ connection.ssl.certkey.add(certkey: 'name', cert: 'crt')
26
+ }.to raise_error(ArgumentError, /key/)
27
+ end
28
+
29
+ it 'return hash when supplied all required params' do
30
+ result = connection.ssl.certkey.add(certkey: 'name', cert: 'crt', key: 'key')
31
+ expect(result).to be_kind_of(Hash)
32
+ end
33
+ end
34
+ end
@@ -81,6 +81,24 @@ describe Netscaler::Cs::Vserver do
81
81
  end
82
82
  end
83
83
 
84
+ context 'when upding an ssl vserver' do
85
+ it 'a vservername is required' do
86
+ expect {
87
+ connection.ssl.vserver.update()
88
+ }.to raise_error(ArgumentError, /wrong number/)
89
+ end
90
+
91
+ it 'should return a hash if :vservername is supplied' do
92
+ result = connection.ssl.vserver.update(
93
+ :vservername => 'foo',
94
+ :ssl11 => 'DISABLED',
95
+ :ssl12 => 'DISABLED',
96
+
97
+ )
98
+ expect(result).to be_kind_of(Hash)
99
+ end
100
+ end
101
+
84
102
  context 'when showing ssl vserver bindings' do
85
103
  it 'should throw an error if there is no arg' do
86
104
  expect {
@@ -120,12 +138,48 @@ describe Netscaler::Cs::Vserver do
120
138
  end
121
139
 
122
140
  it 'should return a Hash if all require arguments are supplied' do
123
- result = connection.ssl.vserver.bind.sslcertkey :certkeyname => 'foo', :name => 'bar'
141
+ result = connection.ssl.vserver.bind.sslcertkey :certkeyname => 'foo', :vservername => 'bar'
124
142
  expect(result).to be_kind_of(Hash)
125
- unbind_result = connection.ssl.vserver.unbind.sslcertkey :certkeyname => 'foo', :name => 'bar'
143
+ unbind_result = connection.ssl.vserver.unbind.sslcertkey :certkeyname => 'foo', :vservername => 'bar'
126
144
  expect(unbind_result).to be_kind_of(Hash)
127
145
 
128
146
  end
129
147
  end
130
148
 
149
+ context 'when [un]binding certificate policy to ssl vserver' do
150
+ it 'should throw an error if :vservername arg is not given' do
151
+ expect {
152
+ connection.ssl.vserver.bind.sslpolicy :policyname => 'foo'
153
+ }.to raise_error(ArgumentError, /vservername/)
154
+ expect {
155
+ connection.ssl.vserver.unbind.sslpolicy :policyname => 'foo'
156
+ }.to raise_error(ArgumentError, /vservername/)
157
+ end
158
+
159
+ it 'should throw an error if :policyname arg is not given' do
160
+ expect {
161
+ connection.ssl.vserver.bind.sslpolicy :vservername => 'foo'
162
+ }.to raise_error(ArgumentError, /policyname/)
163
+ expect {
164
+ connection.ssl.vserver.unbind.sslpolicy :vservername => 'foo'
165
+ }.to raise_error(ArgumentError, /policyname/)
166
+ end
167
+
168
+ it 'should throw an error if :priority arg is not given' do
169
+ expect {
170
+ connection.ssl.vserver.bind.sslpolicy :vservername => 'foo'
171
+ }.to raise_error(ArgumentError, /priority/)
172
+ expect {
173
+ connection.ssl.vserver.unbind.sslpolicy :vservername => 'foo'
174
+ }.to raise_error(ArgumentError, /priority/)
175
+ end
176
+
177
+ it 'should return a Hash if all require arguments are supplied' do
178
+ result = connection.ssl.vserver.bind.sslpolicy :vservername => 'foo', :policyname => 'bar', :priority => 10
179
+ expect(result).to be_kind_of(Hash)
180
+ unbind_result = connection.ssl.vserver.unbind.sslpolicy :vservername => 'foo', :policyname => 'bar', :priority => 10
181
+ expect(unbind_result).to be_kind_of(Hash)
182
+
183
+ end
184
+ end
131
185
  end
@@ -0,0 +1,34 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+ require 'netscaler'
3
+ require 'netscaler/mock_adapter'
4
+
5
+ describe Netscaler::System::File do
6
+
7
+ connection = Netscaler::Connection.new 'hostname' => 'foo', 'password' => 'bar', 'username' => 'bar'
8
+ connection.adapter = Netscaler::MockAdapter.new :body => '{ "errorcode": 0, "message": "Done" }'
9
+
10
+ context 'when adding a new file' do
11
+ it 'a filename is required' do
12
+ expect {
13
+ connection.system.file.add(filecontent: 'content', filelocation: '/nsconf/ssl')
14
+ }.to raise_error(ArgumentError, /filename/)
15
+ end
16
+
17
+ it 'a filecontent is required' do
18
+ expect {
19
+ connection.system.file.add(filename: 'name', filelocation: '/nsconf/ssl')
20
+ }.to raise_error(ArgumentError, /filecontent/)
21
+ end
22
+
23
+ it 'a filelocation is required' do
24
+ expect {
25
+ connection.system.file.add(filename: 'name', filecontent: 'contet')
26
+ }.to raise_error(ArgumentError, /filelocation/)
27
+ end
28
+
29
+ it 'return hash when supplied all required params' do
30
+ result = connection.system.file.add(filename: 'name', filecontent: 'contet', filelocation: '/nsconf/ssl')
31
+ expect(result).to be_kind_of(Hash)
32
+ end
33
+ end
34
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netscaler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Custenborder
@@ -10,8 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-05-24 00:00:00.000000000 Z
13
+ date: 2015-12-27 00:00:00.000000000 Z
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: nokogiri
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.6.7.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ version: 1.6.7.1
15
29
  - !ruby/object:Gem::Dependency
16
30
  name: rest-client
17
31
  requirement: !ruby/object:Gem::Requirement
@@ -175,9 +189,12 @@ files:
175
189
  - lib/netscaler/service.rb
176
190
  - lib/netscaler/servicegroup.rb
177
191
  - lib/netscaler/ssl.rb
192
+ - lib/netscaler/ssl/certkey.rb
178
193
  - lib/netscaler/ssl/vserver.rb
179
194
  - lib/netscaler/ssl/vserver/bind.rb
180
195
  - lib/netscaler/ssl/vserver/unbind.rb
196
+ - lib/netscaler/system.rb
197
+ - lib/netscaler/system/file.rb
181
198
  - netscaler.gemspec
182
199
  - spec/csvserver_spec.rb
183
200
  - spec/lbvserver_spec.rb
@@ -189,7 +206,9 @@ files:
189
206
  - spec/service_spec.rb
190
207
  - spec/servicegroup_spec.rb
191
208
  - spec/spec_helper.rb
209
+ - spec/sslcertkey_spec.rb
192
210
  - spec/sslvserver_spec.rb
211
+ - spec/systemfile_spec.rb
193
212
  homepage: http://github.com/GravityLabs/netscaler
194
213
  licenses:
195
214
  - MIT