vcloud-net_launcher 0.3.0 → 0.4.0

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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.4.0 (2014-07-25)
2
+
3
+ - Remove the command line option to enable fog mocking.
4
+ - Add documentation for public API methods.
5
+
1
6
  ## 0.3.0 (2014-07-14)
2
7
 
3
8
  Features:
@@ -4,19 +4,24 @@ module Vcloud
4
4
  module NetLauncher
5
5
  class Cli
6
6
 
7
+ # Initiates parsing of the command-line arguments.
8
+ #
9
+ # @param argv_array [Array] Command-line arguments
10
+ # @return [void]
7
11
  def initialize(argv_array)
8
12
  @usage_text = nil
9
13
  @config_file = nil
10
- @options = {
11
- "mock" => false,
12
- }
13
14
 
14
15
  parse(argv_array)
15
16
  end
16
17
 
18
+ # Runs +Vcloud::NetLauncher::NetLaunch#run+ to create networks defined
19
+ # in +@config_file+, catching any exceptions to prevent printing a backtrace.
20
+ #
21
+ # @return [void]
17
22
  def run
18
23
  begin
19
- Vcloud::NetLauncher::NetLaunch.new.run(@config_file, @options)
24
+ Vcloud::NetLauncher::NetLaunch.new.run(@config_file)
20
25
  rescue => error_msg
21
26
  $stderr.puts(error_msg)
22
27
  exit 1
@@ -52,10 +57,6 @@ Example configuration files can be found in:
52
57
  opts.separator ""
53
58
  opts.separator "Options:"
54
59
 
55
- opts.on("-m", "--mock", "Fog Mock mode enabled") do
56
- @options["mock"] = true
57
- end
58
-
59
60
  opts.on("-h", "--help", "Print usage and exit") do
60
61
  $stderr.puts opts
61
62
  exit
@@ -4,17 +4,20 @@ module Vcloud
4
4
  module NetLauncher
5
5
  class NetLaunch
6
6
 
7
+ # Initializes instance variables.
8
+ #
9
+ # @return [void]
7
10
  def initialize
8
11
  @config_loader = Vcloud::Core::ConfigLoader.new
9
12
  end
10
13
 
11
- def run(config_file = nil, options = {})
14
+ # Parses a configuration file and provisions the networks it defines.
15
+ #
16
+ # @param config_file [String] Path to a YAML or JSON-formatted configuration file
17
+ # @return [void]
18
+ def run(config_file = nil)
12
19
  config = @config_loader.load_config(config_file, Vcloud::NetLauncher::Schema::NET_LAUNCH)
13
20
 
14
- if options[:mock] || ENV['FOG_MOCK']
15
- ::Fog.mock!
16
- end
17
-
18
21
  config[:org_vdc_networks].each do |net_config|
19
22
  net_config[:fence_mode] ||= 'isolated'
20
23
  Vcloud::Core.logger.info("Provisioning orgVdcNetwork #{net_config[:name]}.")
@@ -1,5 +1,5 @@
1
1
  module Vcloud
2
2
  module NetLauncher
3
- VERSION = '0.3.0'
3
+ VERSION = '0.4.0'
4
4
  end
5
5
  end
data/spec/spec_helper.rb CHANGED
@@ -31,3 +31,11 @@ RSpec.configure do |config|
31
31
  c.syntax = :expect
32
32
  end
33
33
  end
34
+
35
+ # To enable Fog Mock mode use FOG_CREDENTIAL=fog_mock and FOG_MOCK=true
36
+ # If you do not have configuration for fog_mock in your vcloud_tools_testing_config.yaml,
37
+ # the test data is defined here: https://github.com/fog/fog/blob/master/lib/fog/vcloud_director/compute.rb#L483-L733
38
+ #
39
+ if ENV['FOG_MOCK']
40
+ Fog.mock!
41
+ end
@@ -40,29 +40,13 @@ describe Vcloud::NetLauncher::Cli do
40
40
  expect(Vcloud::NetLauncher::NetLaunch).to receive(:new).
41
41
  and_return(mock_net_launch)
42
42
  expect(mock_net_launch).to receive(:run).
43
- with(config_file, cli_options)
43
+ with(config_file)
44
44
  expect(subject.exitstatus).to eq(0)
45
45
  end
46
46
  end
47
47
 
48
48
  context "when given a single config file" do
49
49
  let(:args) { [ config_file ] }
50
- let(:cli_options) {
51
- {
52
- "mock" => false,
53
- }
54
- }
55
-
56
- it_behaves_like "a good CLI command"
57
- end
58
-
59
- context "when asked to use mock mode" do
60
- let(:args) { [ config_file, "--mock" ] }
61
- let(:cli_options) {
62
- {
63
- "mock" => true,
64
- }
65
- }
66
50
 
67
51
  it_behaves_like "a good CLI command"
68
52
  end
@@ -48,7 +48,7 @@ describe Vcloud::NetLauncher::NetLaunch do
48
48
  expect(Vcloud::Core::OrgVdcNetwork).to receive(:provision).with(network2)
49
49
  expect(Vcloud::Core::OrgVdcNetwork).to receive(:provision).with(network3)
50
50
 
51
- subject.run('input_config_yaml', cli_options)
51
+ subject.run('input_config_yaml')
52
52
  end
53
53
 
54
54
  it "should abort on errors from Vcloud::Core" do
@@ -58,27 +58,10 @@ describe Vcloud::NetLauncher::NetLaunch do
58
58
  expect(Vcloud::Core::OrgVdcNetwork).not_to receive(:provision).with(network3)
59
59
 
60
60
  expect {
61
- Vcloud::NetLauncher::NetLaunch.new.run('input_config_yaml', cli_options)
61
+ Vcloud::NetLauncher::NetLaunch.new.run('input_config_yaml')
62
62
  }.to raise_error(RuntimeError, 'Did not successfully create orgVdcNetwork')
63
63
  end
64
64
 
65
- describe "fog mocking" do
66
- it "should not mock fog by default" do
67
- expect(Fog).to_not receive(:mock!)
68
- expect(Vcloud::Core::OrgVdcNetwork).to receive(:provision).exactly(3).times
69
-
70
- subject.run('input_config_yaml', cli_options)
71
- end
72
-
73
- it "should mock fog when passed option" do
74
- expect(Fog).to receive(:mock!)
75
- expect(Vcloud::Core::OrgVdcNetwork).to receive(:provision).exactly(3).times
76
-
77
- cli_options = { :mock => true }
78
- subject.run('input_config_yaml', cli_options)
79
- end
80
- end
81
-
82
65
  end
83
66
 
84
67
  context "ConfigLoader returns one network without :fence_mode set" do
@@ -108,7 +91,7 @@ describe Vcloud::NetLauncher::NetLaunch do
108
91
  expect(network_without_fence_mode).not_to have_key(:fence_mode)
109
92
  expect(Vcloud::Core::OrgVdcNetwork).to receive(:provision).with(network_with_fence_mode)
110
93
 
111
- subject.run('input_config_yaml', cli_options)
94
+ subject.run('input_config_yaml')
112
95
  end
113
96
  end
114
97
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vcloud-net_launcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-15 00:00:00.000000000 Z
12
+ date: 2014-07-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vcloud-core
@@ -198,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
198
  version: '0'
199
199
  segments:
200
200
  - 0
201
- hash: 3723490288944592179
201
+ hash: 792051475262227984
202
202
  requirements: []
203
203
  rubyforge_project:
204
204
  rubygems_version: 1.8.23