chef-provisioning-vbox 0.1.12 → 0.1.13
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46fe366c0dd7032b4e6233c1ae3974cb250ae111
|
4
|
+
data.tar.gz: 2dd756937705eeec8047ecb83341d4ec0e723ea4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b617282eaeb8b8e8a5df3f21b79daa3f3fd7da6abe9c209d52b2b4015a72bbc1e5b990283137976cbd2c92a70ae0c051e70a82a147fca48c1141842fcd4982c
|
7
|
+
data.tar.gz: 02e256064329dc2a76da1bc89f2b04d72161996960ef83519662bb883abcc2da1d06a866f37a64a9df55c4030771193e715065e37e7d3a457c4fd68ff8d9ed55
|
@@ -16,35 +16,9 @@ class Chef
|
|
16
16
|
Driver.new(driver_url, config)
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
19
|
#create vm
|
21
20
|
def vbox.create_server(name, machine_options)
|
22
|
-
server_id = %x(/usr/local/bin/createvm-q.sh "#{name}" 10)
|
23
|
-
end
|
24
|
-
|
25
|
-
#start vm
|
26
|
-
def vbox.power_on(server_id)
|
27
|
-
%x(vboxmanage startvm #{server_id} --type headless)
|
28
|
-
end
|
29
|
-
|
30
|
-
#ready the vm
|
31
|
-
def vbox.wait_for_machine_to_have_status(server_id)
|
32
|
-
ready = %x(ready.sh #{server_id})
|
33
|
-
end
|
34
|
-
|
35
|
-
#get hostname
|
36
|
-
def vbox.get_hostname(server_id)
|
37
|
-
hostname = %x(vboxmanage list vms |grep "#{server_id}|awk '{print $1}'|sed 's/"//g')
|
38
|
-
return hostname
|
39
|
-
end
|
40
|
-
|
41
|
-
def vbox.power_off(server_id)
|
42
|
-
%x(vboxmanage controlvm #{server_id} poweroff)
|
43
|
-
end
|
44
|
-
|
45
|
-
#destroy host
|
46
|
-
def vbox.destroy_machine(server_id)
|
47
|
-
%x(vboxmanage unregistervm #{server_id} --delete)
|
21
|
+
machine_spec.reference['server_id'] = %x(/usr/local/bin/createvm-q.sh "#{name}" 10)
|
48
22
|
end
|
49
23
|
|
50
24
|
def allocate_machine(action_handler, machine_spec, machine_options)
|
@@ -58,7 +32,7 @@ class Chef
|
|
58
32
|
if !machine_spec.reference
|
59
33
|
action_handler.perform_action "Creating server #{machine_spec.name} with options #{machine_options}" do
|
60
34
|
private_key = get_private_key('bootstrapkey')
|
61
|
-
server_id =
|
35
|
+
server_id = Vbox.create_server(machine_spec.name, machine_options)
|
62
36
|
machine_spec.reference = {
|
63
37
|
'driver_version' => Vbox::VERSION,
|
64
38
|
'server_id' => server_id
|
@@ -66,64 +40,6 @@ class Chef
|
|
66
40
|
end
|
67
41
|
end
|
68
42
|
end
|
69
|
-
|
70
|
-
out = %x(vboxmanage list vms |grep "#{server_id}" |awk '{print $2}'|sed 's/\{//g'|sed 's/\}//g')
|
71
|
-
machine_spec.reference['server_id'] = out
|
72
|
-
end
|
73
|
-
|
74
|
-
def ready_machine(action_handler, machine_spec, machine_options)
|
75
|
-
server_id = machine_spec.reference['server_id']
|
76
|
-
if vbox.machine_status(server_id) == 'stopped'
|
77
|
-
action_handler.perform_action "Powering up machine #{server_id}" do
|
78
|
-
vbox.power_on(server_id)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
if vbox.machine_status(server_id) != 'ready'
|
83
|
-
action_handler.perform_action "wait for machine #{server_id}" do
|
84
|
-
vbox.wait_for_machine_to_have_status(server_id, 'ready')
|
85
|
-
end
|
86
|
-
end
|
87
|
-
# Return the Machine object
|
88
|
-
machine_for(machine_spec, machine_options)
|
89
|
-
end
|
90
|
-
|
91
|
-
def machine_for(machine_spec, machine_options)
|
92
|
-
server_id = machine_spec.reference['server_id']
|
93
|
-
hostname = vbox.get_hostname()
|
94
|
-
username = 'root'
|
95
|
-
ssh_options = {
|
96
|
-
:auth_methods => ['publickey'],
|
97
|
-
:keys => [ get_key('bootstrapkey') ],
|
98
|
-
}
|
99
|
-
transport = Chef::Provisioning::Transport::SSH.new(vbox.get_hostname(server_id), username, ssh_options, {}, config)
|
100
|
-
convergence_strategy = Chef::Provisioning::ConvergenceStrategy::InstallCached.new(machine_options[:convergence_options], {})
|
101
|
-
Chef::Provisioning::Machine::UnixMachine.new(machine_spec, transport, convergence_strategy)
|
102
|
-
end
|
103
|
-
|
104
|
-
def destroy_machine(action_handler, machine_spec, machine_options)
|
105
|
-
if machine_spec.reference
|
106
|
-
server_id = machine_spec.reference['server_id']
|
107
|
-
action_handler.perform_action "Destroy machine #{server_id}" do
|
108
|
-
vbox.power_off(server_id)
|
109
|
-
vbox.destroy_machine(server_id)
|
110
|
-
machine_spec.reference = nil
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
def stop_machine(action_handler, machine_spec, machine_options)
|
116
|
-
if machine_spec.reference
|
117
|
-
server_id = machine_spec.reference['server_id']
|
118
|
-
action_handler.perform_action "Power off machine #{server_id}" do
|
119
|
-
vbox.power_off(server_id)
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
def connect_to_machine(machine_spec, machine_options)
|
125
|
-
machine_for(machine_spec, machine_options)
|
126
|
-
end
|
127
43
|
end
|
128
44
|
end
|
129
45
|
end
|