netscaler 0.6.0 → 0.7.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.
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