net-openvpn 0.1 → 0.2
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 +15 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +29 -0
- data/Rakefile +8 -0
- data/lib/net/openvpn/client_config.rb +4 -0
- data/lib/net/openvpn/host.rb +8 -0
- data/lib/net/openvpn/parser/server_config.rb +7 -7
- data/lib/net/openvpn/server.rb +5 -2
- data/net-openvpn.gemspec +7 -2
- data/spec/lib/net/openvpn/host_spec.rb +55 -0
- data/spec/spec_helper.rb +6 -0
- metadata +67 -10
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZTEyMzk1ODQyMTMwYWE0MTRjNzZjYWUzZDFhYTExNzY2MGNjZGU1NA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZTBkOTU4NzFhYjlmNzYwNjVkY2M5YzYyZmE1NGEwMzE3OGJkYTk2OQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
Yjg1MWFlNWUwZmQ3YWNmOTQ4MGRiZTIzN2U5ZDgzNDQ1NTI3MmRiODAzNWQz
|
10
|
+
NGJmNTIyMzhkNmU1NjE4YzhiZThkNzk3ODljNmZjZmNiMWYyYmIwNTJjYWIx
|
11
|
+
NTZkY2I5NjMzNjI5ZmM0ZDRkYTAxZjUzMWJkMWNjZTMzNDFlN2I=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YTM5MDFkYzIzMzRmZjE0MzMxOTZlZDM5ZWJmMDllZmFkYjcyMjYxYTY0YWVi
|
14
|
+
MzQzZDkyMWQ5ODY5NjJlYzVjZTEyMTZmZGQ5Yzk5MzIzMDBlODBmOTJlMmQ1
|
15
|
+
YzQ3ZjM0YmNlNzA1OThlYjFkZGZjYTkyODgyMDU5MTlhY2M4ZWU=
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
net-openvpn (0.2)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
diff-lcs (1.2.5)
|
10
|
+
fakefs (0.5.0)
|
11
|
+
rake (10.1.1)
|
12
|
+
rspec (2.14.1)
|
13
|
+
rspec-core (~> 2.14.0)
|
14
|
+
rspec-expectations (~> 2.14.0)
|
15
|
+
rspec-mocks (~> 2.14.0)
|
16
|
+
rspec-core (2.14.7)
|
17
|
+
rspec-expectations (2.14.5)
|
18
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
19
|
+
rspec-mocks (2.14.5)
|
20
|
+
|
21
|
+
PLATFORMS
|
22
|
+
ruby
|
23
|
+
|
24
|
+
DEPENDENCIES
|
25
|
+
bundler (~> 1.5)
|
26
|
+
fakefs
|
27
|
+
net-openvpn!
|
28
|
+
rake
|
29
|
+
rspec
|
data/Rakefile
ADDED
data/lib/net/openvpn/host.rb
CHANGED
@@ -4,10 +4,10 @@ module Net
|
|
4
4
|
module ServerConfig
|
5
5
|
class << self
|
6
6
|
|
7
|
-
def parse(
|
7
|
+
def parse(text)
|
8
8
|
config = {}
|
9
9
|
|
10
|
-
|
10
|
+
text.each_line do |line|
|
11
11
|
next if line =~ /^$/
|
12
12
|
parts = line.split(" ")
|
13
13
|
key = parts.first
|
@@ -18,12 +18,12 @@ module Net
|
|
18
18
|
config
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
21
|
+
def generate(config)
|
22
|
+
text = ""
|
23
|
+
config.each do |key, value|
|
24
|
+
text.concat "#{key} #{value}\n"
|
26
25
|
end
|
26
|
+
text
|
27
27
|
end
|
28
28
|
|
29
29
|
end
|
data/lib/net/openvpn/server.rb
CHANGED
@@ -8,7 +8,7 @@ module Net
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def load
|
11
|
-
@config = Net::Openvpn::Parser::ServerConfig.parse(path)
|
11
|
+
@config = Net::Openvpn::Parser::ServerConfig.parse(File.read(path))
|
12
12
|
end
|
13
13
|
|
14
14
|
def get(key)
|
@@ -28,7 +28,10 @@ module Net
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def save
|
31
|
-
Net::Openvpn::Parser::ServerConfig.
|
31
|
+
text = Net::Openvpn::Parser::ServerConfig.generate(@config)
|
32
|
+
File.open(path, "w") do |f|
|
33
|
+
f.puts text
|
34
|
+
end
|
32
35
|
end
|
33
36
|
|
34
37
|
end
|
data/net-openvpn.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "net-openvpn"
|
7
|
-
spec.version = "0.
|
7
|
+
spec.version = "0.2"
|
8
8
|
spec.authors = ["Robert McLeod"]
|
9
9
|
spec.email = ["robert@penguinpower.co.nz"]
|
10
10
|
spec.description = %q{Net-Openvpn is an openvpn library for configuring a local OpenVPN service}
|
@@ -13,6 +13,11 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.license = "MIT"
|
14
14
|
|
15
15
|
spec.files = `git ls-files`.split($/)
|
16
|
-
spec.require_paths = ["lib"
|
16
|
+
spec.require_paths = ["lib"]
|
17
|
+
|
18
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
19
|
+
spec.add_development_dependency "rake"
|
20
|
+
spec.add_development_dependency "rspec"
|
21
|
+
spec.add_development_dependency "fakefs"
|
17
22
|
end
|
18
23
|
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
describe Net::Openvpn::Host, fakefs: true do
|
5
|
+
|
6
|
+
let(:network) { "10.8.0.0" }
|
7
|
+
let(:ip) { "10.8.0.10" }
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
FileUtils.mkdir_p("/etc/openvpn/ccd")
|
11
|
+
end
|
12
|
+
|
13
|
+
def create_a_host
|
14
|
+
host = Net::Openvpn.host("test")
|
15
|
+
host.ip = ip
|
16
|
+
host.network = network
|
17
|
+
host.save
|
18
|
+
host
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should create a host client configuration" do
|
22
|
+
create_a_host
|
23
|
+
|
24
|
+
expect(File.exist?("/etc/openvpn/ccd/test")).to be_true
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should remove a host client configuration" do
|
28
|
+
host = create_a_host
|
29
|
+
|
30
|
+
host.remove
|
31
|
+
expect(File.exist?("/etc/openvpn/ccd/test")).to be_false
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should have the correct info in the CCD file" do
|
35
|
+
host = create_a_host
|
36
|
+
|
37
|
+
expect(File.read("/etc/openvpn/ccd/test")).to include ip
|
38
|
+
expect(File.read("/etc/openvpn/ccd/test")).to include network
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should be new when it hasn't been saved" do
|
42
|
+
host = Net::Openvpn.host("test")
|
43
|
+
host.ip = ip
|
44
|
+
host.network = network
|
45
|
+
|
46
|
+
expect(host.new?).to be_true
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should not be new when it has been saved" do
|
50
|
+
host = create_a_host
|
51
|
+
|
52
|
+
expect(host.new?).to be_false
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,16 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-openvpn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
5
|
-
prerelease:
|
4
|
+
version: '0.2'
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Robert McLeod
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
11
|
+
date: 2014-02-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: fakefs
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
14
69
|
description: Net-Openvpn is an openvpn library for configuring a local OpenVPN service
|
15
70
|
email:
|
16
71
|
- robert@penguinpower.co.nz
|
@@ -18,38 +73,40 @@ executables: []
|
|
18
73
|
extensions: []
|
19
74
|
extra_rdoc_files: []
|
20
75
|
files:
|
76
|
+
- Gemfile
|
77
|
+
- Gemfile.lock
|
21
78
|
- README.md
|
79
|
+
- Rakefile
|
22
80
|
- lib/net/openvpn.rb
|
23
81
|
- lib/net/openvpn/client_config.rb
|
24
82
|
- lib/net/openvpn/host.rb
|
25
83
|
- lib/net/openvpn/parser/server_config.rb
|
26
84
|
- lib/net/openvpn/server.rb
|
27
85
|
- net-openvpn.gemspec
|
86
|
+
- spec/lib/net/openvpn/host_spec.rb
|
87
|
+
- spec/spec_helper.rb
|
28
88
|
homepage: https://github.com/penguinpowernz/net-openvpn
|
29
89
|
licenses:
|
30
90
|
- MIT
|
91
|
+
metadata: {}
|
31
92
|
post_install_message:
|
32
93
|
rdoc_options: []
|
33
94
|
require_paths:
|
34
95
|
- lib
|
35
|
-
- lib/net
|
36
|
-
- lib/net/openvpn
|
37
96
|
required_ruby_version: !ruby/object:Gem::Requirement
|
38
|
-
none: false
|
39
97
|
requirements:
|
40
98
|
- - ! '>='
|
41
99
|
- !ruby/object:Gem::Version
|
42
100
|
version: '0'
|
43
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
102
|
requirements:
|
46
103
|
- - ! '>='
|
47
104
|
- !ruby/object:Gem::Version
|
48
105
|
version: '0'
|
49
106
|
requirements: []
|
50
107
|
rubyforge_project:
|
51
|
-
rubygems_version:
|
108
|
+
rubygems_version: 2.2.1
|
52
109
|
signing_key:
|
53
|
-
specification_version:
|
110
|
+
specification_version: 4
|
54
111
|
summary: Local OpenVPN configurator
|
55
112
|
test_files: []
|