skyscape-vpn 0.0.5 → 0.0.6

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a072a576f027e00aa7e7bf038869fea21d8d1db9
4
- data.tar.gz: 44e3fb53bddf8988d1943f20e06d1f906a29e7b0
3
+ metadata.gz: 720bcec1ef57ecf8b0469df5d5ca8ffa165dc17f
4
+ data.tar.gz: 6cc1064bf36c23779dd4163a93bfad57bd49e9d6
5
5
  SHA512:
6
- metadata.gz: 83c23fb510ec1d01e42825db7e5ff5c3fb8ecc1aed79dcd56287464eb12282f203fa1f4936d32fac4569b5fe9e4273eaadcb2aec6c4c10ee66e087ebc539135a
7
- data.tar.gz: bb61d511315c1467cc06e76d27501c559d40843f10441557bac5d3d90a8b53c4f25738f12bb0d19b2b309314ac38a3e1eb1d4afd417657976254ee4a20702d88
6
+ metadata.gz: 396fad116c41556655d409130cde94edc9f8cc1d2af54f69d02df040f1340f565b6c770e47107761da61f2b76c75dd8b3cf1a657dc4bb09772cab1258d5e4bff
7
+ data.tar.gz: 926c0f5cbe2963086094748c0ce40801e00801c9272562897f245745210ec0ccae7d993a3b61930bcd19f11a5ef366af8a34a5cc45bd7303060db3711bdd3d8d
data/README.md CHANGED
@@ -1,36 +1,149 @@
1
- # Skyscape::Vpn
1
+ #Skyscape IPSec VPN Configuration Tool
2
+
3
+ This command line tool allows Skyscape customers using vShield Edge firewalls to configure IPSec tunnels using a configuration file written in "YAML"
4
+ For more information on YAML and it's syntax see: https://en.wikipedia.org/wiki/YAML
2
5
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/skyscape/vpn`. To experiment with that code, run `bin/console` for an interactive prompt.
4
6
 
5
- TODO: Delete this and the text above, and describe your gem
6
7
 
7
8
  ## Installation
8
9
 
9
- Add this line to your application's Gemfile:
10
+ First ensure Ruby is installed on your machine.
11
+
12
+ To check you can run:
10
13
 
11
- ```ruby
12
- gem 'skyscape-vpn'
14
+ ```batchfile
15
+ >ruby -v
16
+ ruby 2.0.0p247 (2013-06-27) [i386-mingw32]
13
17
  ```
14
18
 
15
- And then execute:
19
+ The tool was built using Ruby 2.0.0p247 but other versions may work.
16
20
 
17
- $ bundle
21
+ And then install the gem using:
22
+ ```batchfile
23
+ >gem install skyscape-vpn
24
+ ```
18
25
 
19
- Or install it yourself as:
26
+ ## Usage
20
27
 
21
- $ gem install skyscape-vpn
28
+ Once installed the tool can be run by executing the following:
22
29
 
23
- ## Usage
30
+ ```batchfile
31
+ >skyscape-vpn apply <path to yaml file>
32
+ ```
33
+
34
+ For example:
35
+
36
+ ```batchfile
37
+ >skyscape-vpn apply c:\tmp\firewalls.yml
38
+ ```
39
+
40
+ Or for Linux:
41
+
42
+ ```batchfile
43
+ $ skyscape-vpn apply /tmp/firewalls.yml
44
+ ```
24
45
 
25
- TODO: Write usage instructions here
26
46
 
27
- ## Development
47
+ ## Configuration File
48
+
49
+ The configuration file uses YAML as a format and defines one or more vShield Edge Firewalls to be configured.
50
+ The file has the following syntax:
51
+
52
+ ```yaml
53
+ Firewalls:
54
+ - Name: Firewall_1
55
+ Service:
56
+ IsEnabled: true
57
+ Creds:
58
+ User: xxx.xxxx.xxx
59
+ Password: xxxxxxxxxxxx
60
+ Org: x-x-xx-xxxx
61
+ Url: api.vcd.portal.skyscapecloud.com
62
+ Edge: nftxxxxxx-x
63
+ GatewayIpsecVpnService:
64
+ IsEnabled: true
65
+ Tunnel:
66
+ - Name: west-to-east
67
+ IpsecVpnLocalPeerId:
68
+ IpsecVpnLocalPeerName:
69
+ PeerIpAddress: 111.111.111.111
70
+ PeerId: 111.111.111.111
71
+ LocalIpAddress: 222.222.222.222
72
+ LocalId: 222.222.222.222
73
+ LocalSubnet:
74
+ - Name: DMZ
75
+ Gateway: 10.0.1.1
76
+ Netmask: 255.255.255.0
77
+ PeerSubnet:
78
+ - Name: DMZ
79
+ Gateway: 10.0.10.1
80
+ Netmask: 255.255.255.0
81
+ SharedSecret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
82
+ EncryptionProtocol: AES256
83
+ Mtu: 1400
84
+ IsEnabled: true
85
+ - Name: Firewall_2
86
+ Creds:
87
+ User: xxx.xxxx.xxx
88
+ Password: xxxxxxxxxxxx
89
+ Org: x-x-xx-xxxx
90
+ Url: api.vcd.portal.skyscapecloud.com
91
+ Edge: nftxxxxxx-x
92
+ GatewayIpsecVpnService:
93
+ IsEnabled: true
94
+ Tunnel:
95
+ - Name: east-to-west
96
+ IpsecVpnLocalPeerId:
97
+ IpsecVpnLocalPeerName:
98
+ PeerIpAddress: 222.222.222.222
99
+ PeerId: 222.222.222.222
100
+ LocalIpAddress: 111.111.111.111
101
+ LocalId: 111.111.111.111
102
+ PeerSubnet:
103
+ - Name: DMZ
104
+ Gateway: 10.0.1.1
105
+ Netmask: 255.255.255.0
106
+ LocalSubnet:
107
+ - Name: DMZ
108
+ Gateway: 10.0.10.1
109
+ Netmask: 255.255.255.0
110
+ SharedSecret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
111
+ EncryptionProtocol: AES256
112
+ Mtu: 1400
113
+ IsEnabled: true
114
+ ```
115
+
116
+
117
+ Note that a hyphen ( - ) in YAML represents an array item (an item which can appear one or more times).
118
+ Hopefully it is clear from the example file above the the file supports:
119
+ * One or more vShield firewalls per file
120
+ * One or more tunnels per vShield firewall
121
+ * One or more local subnet per tunnel
122
+ * One or more peer subnet per tunnel
28
123
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
124
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
125
+ **PeerIpAddress** & **PeerId** should be set to the public IP address of the remote vShield Firewall
126
+ **LocalIpAddress** & **LocalId** should be set to the public IP address of the local vShield Firewall
127
+
128
+
129
+ The file can be created in any text editor (notepad etc) and is usually saved with a ".yml" file extension although this is not required by the tool.
32
130
 
33
131
  ## Contributing
34
132
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/skyscape-vpn.
133
+ Bug reports and pull requests are welcome on GitHub at https://github.com/skyscape-cloud-services/skyscape-vpn.
134
+ Please ensure that the tests run successfully before creating a PR and consider increasing the coverage if adding new features.
135
+
136
+ The project has unit tests using Rspec which can be run using:
137
+
138
+ ```batchfile
139
+ >bundle exec rspec
140
+ ```
141
+
142
+ The CLI tests are written using Cucumber & Aruba and can be run using:
143
+
144
+ ```batchfile
145
+ >bundle exec cucumber
146
+ ```
147
+
148
+ Note: Cucumber tests do not appear to work on Windows
36
149
 
data/Rakefile CHANGED
@@ -1,13 +1,13 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
- require 'cucumber'
4
- require 'cucumber/rake/task'
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
- Cucumber::Rake::Task.new(:features) do |t|
8
- t.cucumber_opts = "features --format pretty"
9
- end
10
-
11
- task :default => :spec
12
- task :test => :spec
13
- task :test => :features
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+ require 'cucumber'
4
+ require 'cucumber/rake/task'
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+ Cucumber::Rake::Task.new(:features) do |t|
8
+ t.cucumber_opts = "features --format pretty"
9
+ end
10
+
11
+ task :default => :spec
12
+ task :test => :spec
13
+ task :test => :features
data/bin/skyscape-vpn CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env ruby
2
- $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
3
- require 'cli'
4
- Skyscape::Vcloud::Ipsec::Cli.start(ARGV)
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
3
+ require 'cli'
4
+ Skyscape::Vcloud::Ipsec::Cli.start(ARGV)
data/lib/cli.rb CHANGED
@@ -1,28 +1,28 @@
1
- require 'thor'
2
- require 'main'
3
- require 'version'
4
-
5
- module Skyscape
6
- module Vcloud
7
- module Ipsec
8
- class Cli < Thor
9
- desc "version", "Print skyscape-vpn version"
10
-
11
-
12
- def version
13
- puts Skyscape::Vcloud::Ipsec::VERSION
14
- end
15
-
16
-
17
- desc "apply <location>", "Begin configuration of IPSec tunnels"
18
- def apply(path)
19
- begin
20
- Skyscape::Vcloud::Ipsec::Main.new(path)
21
- rescue Exception => e
22
- puts e.message
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
1
+ require 'thor'
2
+ require 'main'
3
+ require 'version'
4
+
5
+ module Skyscape
6
+ module Vcloud
7
+ module Ipsec
8
+ class Cli < Thor
9
+ desc "version", "Print skyscape-vpn version"
10
+
11
+
12
+ def version
13
+ puts Skyscape::Vcloud::Ipsec::VERSION
14
+ end
15
+
16
+
17
+ desc "apply <location>", "Begin configuration of IPSec tunnels"
18
+ def apply(path)
19
+ begin
20
+ Skyscape::Vcloud::Ipsec::Main.new(path)
21
+ rescue Exception => e
22
+ puts e.message
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
data/lib/configuration.rb CHANGED
@@ -1,40 +1,51 @@
1
- require 'yaml'
2
- require 'active_support/hash_with_indifferent_access'
3
-
4
-
5
- module Skyscape
6
- module Vcloud
7
- module Ipsec
8
- class Configuration
9
- attr_accessor :file_location, :full_config, :firewalls
10
- def initialize(file_location = "#{Dir.pwd}/firewalls.yml")
11
- @file_location = file_location
12
- raise("Configuration File Not Found At #{file_location}") unless File.exists?(file_location)
13
-
14
- @full_config = load_yaml
15
- @firewalls = parse_config
16
- end
17
-
18
- def load_yaml
19
- file = File.open(@file_location)
20
- conf = YAML.load(file)
21
- file.close
22
-
23
- conf.deep_symbolize_keys! unless conf == false
24
- end
25
-
26
- def parse_config
27
- raise("No firewalls In Config File: #{@file_location}") unless @full_config.is_a?(Hash) && @full_config[:Firewalls]
28
- raise("No firewalls In Config File: #{@file_location}") unless @full_config[:Firewalls].is_a?(Array) && @full_config[:Firewalls].length > 0
29
- #To Do: Add Config Schema?
30
- @full_config[:Firewalls]
31
-
32
-
33
- end
34
-
35
-
36
-
37
- end
38
- end
39
- end
1
+ require 'yaml'
2
+
3
+ module Skyscape
4
+ module Vcloud
5
+ module Ipsec
6
+ class Configuration
7
+ attr_accessor :file_location, :full_config, :firewalls
8
+ def initialize(file_location = "#{Dir.pwd}/firewalls.yml")
9
+ @file_location = file_location
10
+ raise("Configuration File Not Found At #{file_location}") unless File.exists?(file_location)
11
+
12
+ @full_config = load_yaml
13
+ @firewalls = parse_config
14
+ end
15
+
16
+ def load_yaml
17
+ file = File.open(@file_location)
18
+ conf = YAML.load(file)
19
+ file.close
20
+
21
+ symbolize(conf) unless conf == false
22
+ end
23
+
24
+ def parse_config
25
+ raise("No firewalls In Config File: #{@file_location}") unless @full_config.is_a?(Hash) && @full_config[:Firewalls]
26
+ raise("No firewalls In Config File: #{@file_location}") unless @full_config[:Firewalls].is_a?(Array) && @full_config[:Firewalls].length > 0
27
+ #To Do: Add Config Schema?
28
+ @full_config[:Firewalls]
29
+
30
+
31
+ end
32
+
33
+ private
34
+
35
+ def symbolize(obj)
36
+ return obj.reduce({}) do |memo, (k, v)|
37
+ memo.tap { |m| m[k.to_sym] = symbolize(v) }
38
+ end if obj.is_a? Hash
39
+
40
+ return obj.reduce([]) do |memo, v|
41
+ memo << symbolize(v); memo
42
+ end if obj.is_a? Array
43
+
44
+ obj
45
+ end
46
+
47
+
48
+ end
49
+ end
50
+ end
40
51
  end
data/lib/main.rb CHANGED
@@ -1,83 +1,83 @@
1
- require 'fog'
2
- require 'configuration'
3
-
4
-
5
- module Skyscape
6
- module Vcloud
7
- module Ipsec
8
- class Main
9
- attr_accessor :config
10
- def initialize(config_file)
11
- @config = Skyscape::Vcloud::Ipsec::Configuration.new(config_file)
12
- configure_firewalls(@config.firewalls)
13
-
14
- end
15
-
16
- def configure_firewalls(firewalls)
17
- firewalls.each do |firewall|
18
- configure_firewall(firewall)
19
- end
20
- end
21
-
22
- def configure_firewall(firewall)
23
- creds = firewall[:Creds]
24
- connection = vcloud_login(creds)
25
- edge_id = get_edge_href(creds[:Edge],connection).split('/').last
26
-
27
- puts "Configuring VPN Service For Firewall: #{creds[:Edge]}"
28
- task = connection.post_configure_edge_gateway_services(edge_id,firewall).body
29
- monitor_task(task[:href].split('/').last,connection)
30
- puts "Finished Configuring VPN Service For Firewall: #{creds[:Edge]}"
31
-
32
- #TO DO: SUPPORT MERGING CONFIG WITH EXISTING
33
- #current_config = get_current_config(edge_href,connection)
34
- #new_config = merge_configs(current_config, new_config)
35
-
36
- end
37
-
38
- def vcloud_login(creds)
39
- puts "Connecting to vCloud Director API"
40
- connection = Fog::Compute::VcloudDirector.new(
41
- :vcloud_director_username => "#{creds[:User]}@#{creds[:Org]}",
42
- :vcloud_director_password => creds[:Password],
43
- :vcloud_director_host => creds[:Url],
44
- :vcloud_director_show_progress => true, # task progress bar on/off
45
- :connection_options => {
46
- :omit_default_port => true
47
- }
48
- )
49
- puts "Connected to vCloud Director API"
50
-
51
- connection
52
- end
53
-
54
- def get_edge_href(edge_name, connection)
55
- puts "Getting vShield Edge HREF From Query"
56
- results = connection.get_execute_query(type="edgeGateway", :filter => "name==#{edge_name}").body
57
-
58
- raise "Edge #{edge_name} Not Found!" unless results[:total] == "1"
59
- raise "Edge Name #{edge_name} Not Unique!" if results[:total].to_i > 1
60
- puts "Finished Getting vShield Edge HREF From Query"
61
- result = results[:EdgeGatewayRecord][:href]
62
- end
63
-
64
- def get_current_config(edge_href,connection)
65
- configuration = connection.get_edge_gateway(edge_href.split('/').last).body
66
-
67
- vpn_service = configuration[:Configuration][:EdgeGatewayServiceConfiguration][:GatewayIpsecVpnService]
68
- end
69
-
70
- def monitor_task(task_id,connection)
71
- task = connection.get_task(task_id).body
72
- while(task[:status] == "running") do
73
- puts " Task: #{task[:operation]} Still Running"
74
- task = connection.get_task(task_id).body
75
- sleep(3)
76
- end
77
-
78
- puts " Task: #{task[:operation]} Completed With Status: #{task[:status]}"
79
- end
80
- end
81
- end
82
- end
83
- end
1
+ require 'fog'
2
+ require 'configuration'
3
+
4
+
5
+ module Skyscape
6
+ module Vcloud
7
+ module Ipsec
8
+ class Main
9
+ attr_accessor :config
10
+ def initialize(config_file)
11
+ @config = Skyscape::Vcloud::Ipsec::Configuration.new(config_file)
12
+ configure_firewalls(@config.firewalls)
13
+
14
+ end
15
+
16
+ def configure_firewalls(firewalls)
17
+ firewalls.each do |firewall|
18
+ configure_firewall(firewall)
19
+ end
20
+ end
21
+
22
+ def configure_firewall(firewall)
23
+ creds = firewall[:Creds]
24
+ connection = vcloud_login(creds)
25
+ edge_id = get_edge_href(creds[:Edge],connection).split('/').last
26
+
27
+ puts "Configuring VPN Service For Firewall: #{creds[:Edge]}"
28
+ task = connection.post_configure_edge_gateway_services(edge_id,firewall).body
29
+ monitor_task(task[:href].split('/').last,connection)
30
+ puts "Finished Configuring VPN Service For Firewall: #{creds[:Edge]}"
31
+
32
+ #TO DO: SUPPORT MERGING CONFIG WITH EXISTING
33
+ #current_config = get_current_config(edge_href,connection)
34
+ #new_config = merge_configs(current_config, new_config)
35
+
36
+ end
37
+
38
+ def vcloud_login(creds)
39
+ puts "Connecting to vCloud Director API"
40
+ connection = Fog::Compute::VcloudDirector.new(
41
+ :vcloud_director_username => "#{creds[:User]}@#{creds[:Org]}",
42
+ :vcloud_director_password => creds[:Password],
43
+ :vcloud_director_host => creds[:Url],
44
+ :vcloud_director_show_progress => true, # task progress bar on/off
45
+ :connection_options => {
46
+ :omit_default_port => true
47
+ }
48
+ )
49
+ puts "Connected to vCloud Director API"
50
+
51
+ connection
52
+ end
53
+
54
+ def get_edge_href(edge_name, connection)
55
+ puts "Getting vShield Edge HREF From Query"
56
+ results = connection.get_execute_query(type="edgeGateway", :filter => "name==#{edge_name}").body
57
+
58
+ raise "Edge #{edge_name} Not Found!" unless results[:total] == "1"
59
+ raise "Edge Name #{edge_name} Not Unique!" if results[:total].to_i > 1
60
+ puts "Finished Getting vShield Edge HREF From Query"
61
+ result = results[:EdgeGatewayRecord][:href]
62
+ end
63
+
64
+ def get_current_config(edge_href,connection)
65
+ configuration = connection.get_edge_gateway(edge_href.split('/').last).body
66
+
67
+ vpn_service = configuration[:Configuration][:EdgeGatewayServiceConfiguration][:GatewayIpsecVpnService]
68
+ end
69
+
70
+ def monitor_task(task_id,connection)
71
+ task = connection.get_task(task_id).body
72
+ while(task[:status] == "running") do
73
+ puts " Task: #{task[:operation]} Still Running"
74
+ task = connection.get_task(task_id).body
75
+ sleep(3)
76
+ end
77
+
78
+ puts " Task: #{task[:operation]} Completed With Status: #{task[:status]}"
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
data/lib/version.rb CHANGED
@@ -1,7 +1,7 @@
1
- module Skyscape
2
- module Vcloud
3
- module Ipsec
4
- VERSION = "0.0.5"
5
- end
6
- end
7
- end
1
+ module Skyscape
2
+ module Vcloud
3
+ module Ipsec
4
+ VERSION = "0.0.6"
5
+ end
6
+ end
7
+ end
data/skyscape-vpn.gemspec CHANGED
@@ -1,36 +1,35 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "skyscape-vpn"
8
- spec.version = Skyscape::Vcloud::Ipsec::VERSION
9
- spec.authors = ["Tim Lawrence"]
10
- spec.email = ["tlawrence@skyscapecloud.com"]
11
-
12
- spec.summary = %q{Configure vCloud Director IPSec VPNs}
13
- spec.homepage = "https://github.com/skyscape-cloud-services"
14
-
15
- # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
16
- # delete this section to allow pushing this gem to any host.
17
- if spec.respond_to?(:metadata)
18
- spec.metadata['allowed_push_host'] = "https://rubygems.org"
19
- else
20
- raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
21
- end
22
-
23
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
- spec.bindir = "bin"
25
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
26
- spec.require_paths = ["lib"]
27
-
28
- spec.add_development_dependency "bundler", "~> 1.10"
29
- spec.add_development_dependency "rake", "~> 10.0"
30
- spec.add_development_dependency "rspec"
31
- spec.add_development_dependency "aruba"
32
-
33
- spec.add_runtime_dependency 'fog', '>=1.26.0'
34
- spec.add_runtime_dependency 'activesupport'
35
- spec.add_runtime_dependency 'thor'
36
- end
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "skyscape-vpn"
8
+ spec.version = Skyscape::Vcloud::Ipsec::VERSION
9
+ spec.authors = ["Tim Lawrence"]
10
+ spec.email = ["tlawrence@skyscapecloud.com"]
11
+
12
+ spec.summary = %q{Configure vCloud Director IPSec VPNs}
13
+ spec.homepage = "https://github.com/skyscape-cloud-services"
14
+
15
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
16
+ # delete this section to allow pushing this gem to any host.
17
+ if spec.respond_to?(:metadata)
18
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
19
+ else
20
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
21
+ end
22
+
23
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
+ spec.bindir = "bin"
25
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
26
+ spec.require_paths = ["lib"]
27
+
28
+ spec.add_development_dependency "bundler", "~> 1.10"
29
+ spec.add_development_dependency "rake", "~> 10.0"
30
+ spec.add_development_dependency "rspec"
31
+ spec.add_development_dependency "aruba"
32
+
33
+ spec.add_runtime_dependency 'fog', '>=1.26.0'
34
+ spec.add_runtime_dependency 'thor'
35
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skyscape-vpn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Lawrence
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-29 00:00:00.000000000 Z
11
+ date: 2016-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.26.0
83
- - !ruby/object:Gem::Dependency
84
- name: activesupport
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: thor
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -148,9 +134,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
134
  version: '0'
149
135
  requirements: []
150
136
  rubyforge_project:
151
- rubygems_version: 2.0.3
137
+ rubygems_version: 2.5.1
152
138
  signing_key:
153
139
  specification_version: 4
154
140
  summary: Configure vCloud Director IPSec VPNs
155
141
  test_files: []
156
- has_rdoc: