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 +8 -8
- data/Gemfile +1 -0
- data/Gemfile.lock +4 -3
- data/VERSION +1 -1
- data/lib/netscaler/adapter.rb +7 -2
- data/lib/netscaler/connection.rb +6 -0
- data/lib/netscaler/http_adapter.rb +30 -0
- data/lib/netscaler/lb/vserver/bind.rb +5 -0
- data/lib/netscaler/mock_adapter.rb +25 -1
- data/lib/netscaler/ssl/certkey.rb +23 -0
- data/lib/netscaler/ssl/vserver/bind.rb +13 -2
- data/lib/netscaler/ssl/vserver/unbind.rb +12 -1
- data/lib/netscaler/ssl/vserver.rb +6 -0
- data/lib/netscaler/ssl.rb +4 -0
- data/lib/netscaler/system/file.rb +17 -0
- data/lib/netscaler/system.rb +14 -0
- data/netscaler.gemspec +12 -4
- data/spec/sslcertkey_spec.rb +34 -0
- data/spec/sslvserver_spec.rb +56 -2
- data/spec/systemfile_spec.rb +34 -0
- metadata +21 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDVmYTVjYTQwY2U0OGUxYTExNDUwYmY0MTc4YmQ2YjNiNjUwNDQyYQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NmQ5NmViMzY2MjA2NDUyNzkwMjRhNDJkNDUzMWZjNzQ1ZTk1YWVmMg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDY1ZGFlMzgyMjA1ZDJlZWYwYzJmODFhMGU0YjM4MTBlZDhiZTc2MTU4NjUw
|
10
|
+
NzZkYjlmNWRiNjZiYjE3YTY4MDBkNDU2YjlmZThlZTE3Yzc1NmRjOWRkZjU1
|
11
|
+
ZWQ5NTUzYmVmYmQzNDliZDYyNWYxNzc4MDFjYzZmMTVjYjgxYmE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NjlmODdmZjNiNGMwMzJkYzRlZDQ4YzBjYWYzMzg0OGIwYjVmYTFhMmQ4NTlk
|
14
|
+
MjQ2NTY3MTZiZmU1NTQ3NWU3ZjczZmUzNzdlZGU1MjRkZWQwZjY3N2VmNGRh
|
15
|
+
NjE2NWQ0M2U2ZjYxZWVkODRlMDkzMmI3NThmY2UyMDlkM2E0NjI=
|
data/Gemfile
CHANGED
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
|
-
|
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.
|
45
|
-
|
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.
|
1
|
+
0.7.1
|
data/lib/netscaler/adapter.rb
CHANGED
@@ -17,14 +17,17 @@ module Netscaler
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
|
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
|
|
data/lib/netscaler/connection.rb
CHANGED
@@ -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, [:
|
12
|
-
return @netscaler.adapter.
|
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, [:
|
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
|
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.
|
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.
|
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-
|
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/
|
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
|
data/spec/sslvserver_spec.rb
CHANGED
@@ -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', :
|
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', :
|
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.
|
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-
|
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
|