fission 0.2.0 → 0.3.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +9 -0
- data/README.md +44 -3
- data/fission.gemspec +3 -2
- data/lib/fission.rb +6 -0
- data/lib/fission/cli.rb +12 -6
- data/lib/fission/command/clone.rb +3 -4
- data/lib/fission/command/delete.rb +65 -0
- data/lib/fission/command/snapshot_create.rb +47 -0
- data/lib/fission/command/snapshot_list.rb +42 -0
- data/lib/fission/command/snapshot_revert.rb +47 -0
- data/lib/fission/command/start.rb +22 -4
- data/lib/fission/command/stop.rb +2 -2
- data/lib/fission/command/suspend.rb +29 -13
- data/lib/fission/config.rb +2 -0
- data/lib/fission/fusion.rb +13 -0
- data/lib/fission/metadata.rb +39 -0
- data/lib/fission/version.rb +1 -1
- data/lib/fission/vm.rb +100 -15
- data/spec/fission/cli_spec.rb +91 -11
- data/spec/fission/command/clone_spec.rb +2 -6
- data/spec/fission/command/delete_spec.rb +109 -0
- data/spec/fission/command/snapshot_create_spec.rb +88 -0
- data/spec/fission/command/snapshot_list_spec.rb +61 -0
- data/spec/fission/command/snapshot_revert_spec.rb +90 -0
- data/spec/fission/command/start_spec.rb +35 -6
- data/spec/fission/command/status_spec.rb +2 -2
- data/spec/fission/command/stop_spec.rb +1 -4
- data/spec/fission/command/suspend_spec.rb +27 -6
- data/spec/fission/command_spec.rb +0 -1
- data/spec/fission/config_spec.rb +10 -0
- data/spec/fission/fusion_spec.rb +22 -0
- data/spec/fission/metadata_spec.rb +100 -0
- data/spec/fission/ui_spec.rb +8 -12
- data/spec/fission/vm_spec.rb +268 -44
- data/spec/spec_helper.rb +0 -17
- metadata +40 -11
@@ -1,11 +1,8 @@
|
|
1
1
|
require File.expand_path('../../../spec_helper.rb', __FILE__)
|
2
2
|
|
3
3
|
describe Fission::Command::Clone do
|
4
|
-
before
|
4
|
+
before do
|
5
5
|
@vm_info = ['foo', 'bar']
|
6
|
-
end
|
7
|
-
|
8
|
-
before :each do
|
9
6
|
@string_io = StringIO.new
|
10
7
|
Fission.stub!(:ui).and_return(Fission::UI.new(@string_io))
|
11
8
|
end
|
@@ -36,7 +33,6 @@ describe Fission::Command::Clone do
|
|
36
33
|
@string_io.string.should match /Unable to find the source vm #{@vm_info.first}/
|
37
34
|
end
|
38
35
|
|
39
|
-
|
40
36
|
it "should output an error and exit if the target vm already exists" do
|
41
37
|
@vm_info.each do |vm|
|
42
38
|
Fission::VM.should_receive(:exists?).with(vm).and_return(true)
|
@@ -84,7 +80,7 @@ describe Fission::Command::Clone do
|
|
84
80
|
it 'should output info for this command' do
|
85
81
|
output = Fission::Command::Clone.help
|
86
82
|
|
87
|
-
output.should match /clone source_vm target_vm/
|
83
|
+
output.should match /clone source_vm target_vm.+--start/m
|
88
84
|
end
|
89
85
|
end
|
90
86
|
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper.rb', __FILE__)
|
2
|
+
|
3
|
+
describe Fission::Command::Delete do
|
4
|
+
before do
|
5
|
+
@target_vm = ['foo']
|
6
|
+
@string_io = StringIO.new
|
7
|
+
Fission.stub!(:ui).and_return(Fission::UI.new(@string_io))
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "execute" do
|
11
|
+
it "should output an error and the help when no VM argument is passed in" do
|
12
|
+
Fission::Command::Delete.should_receive(:help)
|
13
|
+
|
14
|
+
lambda {
|
15
|
+
command = Fission::Command::Delete.new
|
16
|
+
command.execute
|
17
|
+
}.should raise_error SystemExit
|
18
|
+
|
19
|
+
@string_io.string.should match /Incorrect arguments for delete command/
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should output an error and exit if it can't find the target vm" do
|
23
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(false)
|
24
|
+
|
25
|
+
lambda {
|
26
|
+
command = Fission::Command::Delete.new @target_vm
|
27
|
+
command.execute
|
28
|
+
}.should raise_error SystemExit
|
29
|
+
|
30
|
+
@string_io.string.should match /Unable to find target vm #{@target_vm}/
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should try to delete the vm if it exists" do
|
34
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
35
|
+
Fission::Fusion.should_receive(:is_running?).and_return(false)
|
36
|
+
Fission::VM.should_receive(:delete).with(@target_vm.first)
|
37
|
+
command = Fission::Command::Delete.new @target_vm
|
38
|
+
command.execute
|
39
|
+
@string_io.string.should match /Deletion complete/
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should output an error and exit if the VM is running' do
|
43
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
44
|
+
Fission::VM.should_receive(:all_running).and_return(['foo', 'bar'])
|
45
|
+
lambda {
|
46
|
+
command = Fission::Command::Delete.new @target_vm
|
47
|
+
command.execute
|
48
|
+
}.should raise_error SystemExit
|
49
|
+
|
50
|
+
@string_io.string.should match /VM is currently running/
|
51
|
+
@string_io.string.should match /Either stop\/suspend the VM or use '--force' and try again/
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should output an error and exit if the fusion app is running' do
|
55
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
56
|
+
Fission::VM.should_receive(:all_running).and_return(['bar'])
|
57
|
+
Fission::Fusion.should_receive(:is_running?).and_return(true)
|
58
|
+
|
59
|
+
lambda {
|
60
|
+
command = Fission::Command::Delete.new @target_vm
|
61
|
+
command.execute
|
62
|
+
}.should raise_error SystemExit
|
63
|
+
|
64
|
+
@string_io.string.should match /Fusion GUI is currently running/
|
65
|
+
@string_io.string.should match /Either exit the Fusion GUI or use '--force' and try again/
|
66
|
+
@string_io.string.should match /NOTE: Forcing a VM deletion with the Fusion GUI running may not clean up all of the VM metadata/
|
67
|
+
end
|
68
|
+
|
69
|
+
describe 'with --force' do
|
70
|
+
before do
|
71
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should stop the VM if it's running and then delete it" do
|
75
|
+
@stop_cmd_mock = mock('stop_cmd')
|
76
|
+
@stop_cmd_mock.should_receive(:execute)
|
77
|
+
Fission::VM.should_receive(:all_running).and_return(['foo', 'bar'])
|
78
|
+
Fission::Fusion.should_receive(:is_running?).and_return(false)
|
79
|
+
Fission::Command::Stop.should_receive(:new).with(@target_vm).
|
80
|
+
and_return(@stop_cmd_mock)
|
81
|
+
command = Fission::Command::Delete.new @target_vm << '--force'
|
82
|
+
command.execute
|
83
|
+
@string_io.string.should match /VM is currently running/
|
84
|
+
@string_io.string.should match /Going to stop it/
|
85
|
+
@string_io.string.should match /Deletion complete/
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'should output a warning about fusion metadata issue and then delete the VM' do
|
89
|
+
Fission::VM.should_receive(:all_running).and_return(['bar'])
|
90
|
+
Fission::Fusion.should_receive(:is_running?).and_return(true)
|
91
|
+
command = Fission::Command::Delete.new @target_vm << '--force'
|
92
|
+
command.execute
|
93
|
+
@string_io.string.should match /Fusion GUI is currently running/
|
94
|
+
@string_io.string.should match /metadata for the VM may not be removed completely/
|
95
|
+
@string_io.string.should match /Deletion complete/
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe 'help' do
|
102
|
+
it 'should output info for this command' do
|
103
|
+
output = Fission::Command::Delete.help
|
104
|
+
|
105
|
+
output.should match /delete target_vm \[--force\]/
|
106
|
+
output.should match /--force/
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper.rb', __FILE__)
|
2
|
+
|
3
|
+
describe Fission::Command::SnapshotCreate do
|
4
|
+
before do
|
5
|
+
@target_vm = ['foo']
|
6
|
+
@vm_mock = mock('vm_mock')
|
7
|
+
Fission::VM.stub!(:new).and_return(@vm_mock)
|
8
|
+
@string_io = StringIO.new
|
9
|
+
Fission.stub!(:ui).and_return(Fission::UI.new(@string_io))
|
10
|
+
end
|
11
|
+
|
12
|
+
describe 'execute' do
|
13
|
+
it "should output an error and the help when no vm name is passed in" do
|
14
|
+
Fission::Command::SnapshotCreate.should_receive(:help)
|
15
|
+
|
16
|
+
lambda {
|
17
|
+
command = Fission::Command::SnapshotCreate.new
|
18
|
+
command.execute
|
19
|
+
}.should raise_error SystemExit
|
20
|
+
|
21
|
+
@string_io.string.should match /Incorrect arguments for snapshot create command/
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should output an error and the help when no snapshot name is passed in" do
|
25
|
+
Fission::Command::SnapshotCreate.should_receive(:help)
|
26
|
+
|
27
|
+
lambda {
|
28
|
+
command = Fission::Command::SnapshotCreate.new @target_vm
|
29
|
+
command.execute
|
30
|
+
}.should raise_error SystemExit
|
31
|
+
|
32
|
+
@string_io.string.should match /Incorrect arguments for snapshot create command/
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should output an error and exit if it can't find the target vm" do
|
36
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(false)
|
37
|
+
|
38
|
+
lambda {
|
39
|
+
command = Fission::Command::SnapshotCreate.new @target_vm << 'snap_1'
|
40
|
+
command.execute
|
41
|
+
}.should raise_error SystemExit
|
42
|
+
|
43
|
+
@string_io.string.should match /Unable to find the VM #{@target_vm.first}/
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should output an error and exit if the VM is not running' do
|
47
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
48
|
+
Fission::VM.should_receive(:all_running).and_return([])
|
49
|
+
lambda {
|
50
|
+
command = Fission::Command::SnapshotCreate.new @target_vm << 'snap_1'
|
51
|
+
command.execute
|
52
|
+
}.should raise_error SystemExit
|
53
|
+
|
54
|
+
@string_io.string.should match /VM 'foo' is not running/
|
55
|
+
@string_io.string.should match /A snapshot cannot be created unless the VM is running/
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should output an error and exit if there is already a snapshot with the provided name" do
|
59
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
60
|
+
Fission::VM.should_receive(:all_running).and_return(['foo'])
|
61
|
+
@vm_mock.should_receive(:snapshots).and_return(['snap_1'])
|
62
|
+
lambda {
|
63
|
+
command = Fission::Command::SnapshotCreate.new @target_vm << 'snap_1'
|
64
|
+
command.execute
|
65
|
+
}.should raise_error SystemExit
|
66
|
+
|
67
|
+
@string_io.string.should match /VM 'foo' already has a snapshot named 'snap_1'/
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should create a new snapshot with the provided name' do
|
71
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
72
|
+
Fission::VM.should_receive(:all_running).and_return(['foo'])
|
73
|
+
@vm_mock.should_receive(:snapshots).and_return([])
|
74
|
+
@vm_mock.should_receive(:create_snapshot).with('snap_1')
|
75
|
+
command = Fission::Command::SnapshotCreate.new @target_vm << 'snap_1'
|
76
|
+
command.execute
|
77
|
+
@string_io.string.should match /Creating snapshot/
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe 'help' do
|
82
|
+
it 'should output info for this command' do
|
83
|
+
output = Fission::Command::SnapshotCreate.help
|
84
|
+
|
85
|
+
output.should match /snapshot create my_vm snapshot_1/
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper.rb', __FILE__)
|
2
|
+
|
3
|
+
describe Fission::Command::SnapshotList do
|
4
|
+
before do
|
5
|
+
@target_vm = ['foo']
|
6
|
+
@vm_mock = mock('vm_mock')
|
7
|
+
Fission::VM.stub!(:new).and_return(@vm_mock)
|
8
|
+
@string_io = StringIO.new
|
9
|
+
Fission.stub!(:ui).and_return(Fission::UI.new(@string_io))
|
10
|
+
end
|
11
|
+
|
12
|
+
describe 'execute' do
|
13
|
+
it "should output an error and the help when no VM argument is passed in" do
|
14
|
+
Fission::Command::SnapshotList.should_receive(:help)
|
15
|
+
|
16
|
+
lambda {
|
17
|
+
command = Fission::Command::SnapshotList.new
|
18
|
+
command.execute
|
19
|
+
}.should raise_error SystemExit
|
20
|
+
|
21
|
+
@string_io.string.should match /Incorrect arguments for snapshot list command/
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should output an error and exit if it can't find the target vm" do
|
25
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(false)
|
26
|
+
|
27
|
+
lambda {
|
28
|
+
command = Fission::Command::SnapshotList.new @target_vm
|
29
|
+
command.execute
|
30
|
+
}.should raise_error SystemExit
|
31
|
+
|
32
|
+
@string_io.string.should match /Unable to find the VM #{@target_vm.first}/
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should output the list of snapshots if any exist' do
|
36
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
37
|
+
@vm_mock.should_receive(:snapshots).and_return(['snap 1', 'snap 2', 'snap 3'])
|
38
|
+
command = Fission::Command::SnapshotList.new @target_vm
|
39
|
+
command.execute
|
40
|
+
|
41
|
+
@string_io.string.should match /snap 1\nsnap 2\nsnap 3\n/
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should output that it could not find any snapshots if none exist' do
|
45
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
46
|
+
@vm_mock.should_receive(:snapshots).and_return([])
|
47
|
+
command = Fission::Command::SnapshotList.new @target_vm
|
48
|
+
command.execute
|
49
|
+
|
50
|
+
@string_io.string.should match /No snapshots found for VM '#{@target_vm.first}'/
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe 'help' do
|
55
|
+
it 'should output info for this command' do
|
56
|
+
output = Fission::Command::SnapshotList.help
|
57
|
+
|
58
|
+
output.should match /snapshot list/
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper.rb', __FILE__)
|
2
|
+
|
3
|
+
describe Fission::Command::SnapshotRevert do
|
4
|
+
before do
|
5
|
+
@target_vm = ['foo']
|
6
|
+
@vm_mock = mock('vm_mock')
|
7
|
+
Fission::VM.stub!(:new).and_return(@vm_mock)
|
8
|
+
@string_io = StringIO.new
|
9
|
+
Fission.stub!(:ui).and_return(Fission::UI.new(@string_io))
|
10
|
+
end
|
11
|
+
|
12
|
+
describe 'execute' do
|
13
|
+
it "should output an error and the help when no vm name is passed in" do
|
14
|
+
Fission::Command::SnapshotRevert.should_receive(:help)
|
15
|
+
|
16
|
+
lambda {
|
17
|
+
command = Fission::Command::SnapshotRevert.new
|
18
|
+
command.execute
|
19
|
+
}.should raise_error SystemExit
|
20
|
+
|
21
|
+
@string_io.string.should match /Incorrect arguments for snapshot revert command/
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should output an error and the help when no snapshot name is passed in" do
|
25
|
+
Fission::Command::SnapshotRevert.should_receive(:help)
|
26
|
+
|
27
|
+
lambda {
|
28
|
+
command = Fission::Command::SnapshotRevert.new @target_vm
|
29
|
+
command.execute
|
30
|
+
}.should raise_error SystemExit
|
31
|
+
|
32
|
+
@string_io.string.should match /Incorrect arguments for snapshot revert command/
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should output an error and exit if it can't find the target vm" do
|
36
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(false)
|
37
|
+
|
38
|
+
lambda {
|
39
|
+
command = Fission::Command::SnapshotRevert.new @target_vm << 'snap_1'
|
40
|
+
command.execute
|
41
|
+
}.should raise_error SystemExit
|
42
|
+
|
43
|
+
@string_io.string.should match /Unable to find the VM #{@target_vm.first}/
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should output an error and exit if it can't find the snapshot" do
|
47
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
48
|
+
Fission::Fusion.should_receive(:is_running?).and_return(false)
|
49
|
+
@vm_mock.should_receive(:snapshots).and_return([])
|
50
|
+
|
51
|
+
lambda {
|
52
|
+
command = Fission::Command::SnapshotRevert.new @target_vm << 'snap_1'
|
53
|
+
command.execute
|
54
|
+
}.should raise_error SystemExit
|
55
|
+
|
56
|
+
@string_io.string.should match /Unable to find the snapshot 'snap_1'/
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should output an error and exit if the fusion app is running' do
|
60
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
61
|
+
Fission::Fusion.should_receive(:is_running?).and_return(true)
|
62
|
+
|
63
|
+
lambda {
|
64
|
+
command = Fission::Command::SnapshotRevert.new @target_vm << 'snap_1'
|
65
|
+
command.execute
|
66
|
+
}.should raise_error SystemExit
|
67
|
+
|
68
|
+
@string_io.string.should match /Fusion GUI is currently running/
|
69
|
+
@string_io.string.should match /Please exit the Fusion GUI and try again/
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should revert to the snapshot with the provided name' do
|
73
|
+
Fission::VM.should_receive(:exists?).with(@target_vm.first).and_return(true)
|
74
|
+
Fission::Fusion.should_receive(:is_running?).and_return(false)
|
75
|
+
@vm_mock.should_receive(:snapshots).and_return(['snap_1', 'snap_2'])
|
76
|
+
@vm_mock.should_receive(:revert_to_snapshot).with('snap_1')
|
77
|
+
command = Fission::Command::SnapshotRevert.new @target_vm << 'snap_1'
|
78
|
+
command.execute
|
79
|
+
@string_io.string.should match /Reverting to snapshot 'snap_1'/
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe 'help' do
|
84
|
+
it 'should output info for this command' do
|
85
|
+
output = Fission::Command::SnapshotRevert.help
|
86
|
+
|
87
|
+
output.should match /snapshot revert my_vm snapshot_1/
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -1,13 +1,11 @@
|
|
1
1
|
require File.expand_path('../../../spec_helper.rb', __FILE__)
|
2
2
|
|
3
3
|
describe Fission::Command::Start do
|
4
|
-
before
|
4
|
+
before do
|
5
5
|
@vm_info = ['foo']
|
6
|
-
end
|
7
|
-
|
8
|
-
before :each do
|
9
6
|
@string_io = StringIO.new
|
10
7
|
Fission.stub!(:ui).and_return(Fission::UI.new(@string_io))
|
8
|
+
@vm_mock = mock('vm_mock')
|
11
9
|
end
|
12
10
|
|
13
11
|
describe 'execute' do
|
@@ -47,7 +45,6 @@ describe Fission::Command::Start do
|
|
47
45
|
end
|
48
46
|
|
49
47
|
it 'should try to start the vm if it is not running' do
|
50
|
-
@vm_mock = mock('vm_mock')
|
51
48
|
Fission::VM.should_receive(:exists?).with(@vm_info.first).and_return(true)
|
52
49
|
Fission::VM.should_receive(:all_running).and_return([])
|
53
50
|
Fission::VM.should_receive(:new).with(@vm_info.first).and_return(@vm_mock)
|
@@ -59,13 +56,45 @@ describe Fission::Command::Start do
|
|
59
56
|
@string_io.string.should match /Starting '#{@vm_info.first}'/
|
60
57
|
end
|
61
58
|
|
59
|
+
describe 'with --headless' do
|
60
|
+
it 'should start the vm headless' do
|
61
|
+
Fission::Fusion.should_receive(:is_running?).and_return(false)
|
62
|
+
Fission::VM.should_receive(:exists?).with(@vm_info.first).and_return(true)
|
63
|
+
Fission::VM.should_receive(:all_running).and_return([])
|
64
|
+
Fission::VM.should_receive(:new).with(@vm_info.first).and_return(@vm_mock)
|
65
|
+
@vm_mock.should_receive(:start).with(:headless => true)
|
66
|
+
|
67
|
+
command = Fission::Command::Start.new @vm_info << '--headless'
|
68
|
+
command.execute
|
69
|
+
|
70
|
+
@string_io.string.should match /Starting '#{@vm_info.first}'/
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should output an error and exit if the fusion app is running' do
|
74
|
+
Fission::Fusion.should_receive(:is_running?).and_return(true)
|
75
|
+
Fission::VM.should_receive(:exists?).with(@vm_info.first).and_return(true)
|
76
|
+
Fission::VM.should_receive(:all_running).and_return([])
|
77
|
+
Fission::VM.should_receive(:new).with(@vm_info.first).and_return(@vm_mock)
|
78
|
+
@vm_mock.should_not_receive(:start)
|
79
|
+
|
80
|
+
lambda {
|
81
|
+
command = Fission::Command::Start.new @vm_info << '--headless'
|
82
|
+
command.execute
|
83
|
+
}.should raise_error SystemExit
|
84
|
+
|
85
|
+
@string_io.string.should match /Fusion GUI is currently running/
|
86
|
+
@string_io.string.should match /A VM cannot be started in headless mode when the Fusion GUI is running/
|
87
|
+
@string_io.string.should match /Exit the Fusion GUI and try again/
|
88
|
+
end
|
89
|
+
end
|
62
90
|
end
|
63
91
|
|
64
92
|
describe 'help' do
|
65
93
|
it 'should output info for this command' do
|
66
94
|
output = Fission::Command::Start.help
|
67
95
|
|
68
|
-
output.should match /start vm/
|
96
|
+
output.should match /start vm \[options\]/
|
97
|
+
output.should match /--headless/
|
69
98
|
end
|
70
99
|
end
|
71
100
|
end
|