bosh-stemcell 1.2175.0 → 1.2200.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/bosh/stemcell/agent.rb +12 -0
- data/lib/bosh/stemcell/archive_handler.rb +11 -0
- data/lib/bosh/stemcell/{builder_command.rb → build_environment.rb} +89 -104
- data/lib/bosh/stemcell/builder_options.rb +12 -9
- data/lib/bosh/stemcell/infrastructure.rb +8 -0
- data/lib/bosh/stemcell/os_image_builder.rb +20 -0
- data/lib/bosh/stemcell/os_image_uploader.rb +23 -0
- data/lib/bosh/stemcell/stage_collection.rb +49 -33
- data/lib/bosh/stemcell/stage_runner.rb +2 -4
- data/lib/bosh/stemcell/stemcell_builder.rb +23 -0
- data/lib/bosh/stemcell/version.rb +1 -1
- metadata +10 -6
data/lib/bosh/stemcell/agent.rb
CHANGED
@@ -6,12 +6,24 @@ module Bosh::Stemcell
|
|
6
6
|
Go.new
|
7
7
|
when 'ruby'
|
8
8
|
Ruby.new
|
9
|
+
when 'null'
|
10
|
+
NullAgent.new
|
9
11
|
else
|
10
12
|
raise ArgumentError.new("invalid agent: #{name}")
|
11
13
|
end
|
12
14
|
|
13
15
|
end
|
14
16
|
|
17
|
+
class NullAgent
|
18
|
+
def name
|
19
|
+
'null'
|
20
|
+
end
|
21
|
+
|
22
|
+
def ==(other)
|
23
|
+
name == other.name
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
15
27
|
class Go
|
16
28
|
def name
|
17
29
|
'go'
|
@@ -1,79 +1,48 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
|
3
1
|
require 'bosh/core/shell'
|
4
2
|
require 'bosh/stemcell/builder_options'
|
5
|
-
require 'bosh/stemcell/disk_image'
|
6
|
-
require 'bosh/stemcell/definition'
|
7
|
-
require 'bosh/stemcell/stage_collection'
|
8
|
-
require 'bosh/stemcell/stage_runner'
|
9
|
-
|
10
3
|
require 'forwardable'
|
11
4
|
|
12
5
|
module Bosh::Stemcell
|
13
|
-
class
|
6
|
+
class BuildEnvironment
|
14
7
|
extend Forwardable
|
15
8
|
|
16
|
-
|
9
|
+
STEMCELL_BUILDER_SOURCE_DIR = File.join(File.expand_path('../../../../..', __FILE__), 'stemcell_builder')
|
10
|
+
STEMCELL_SPECS_DIR = File.expand_path('../../..', File.dirname(__FILE__))
|
11
|
+
|
12
|
+
def initialize(env, definition, version, release_tarball_path, os_image_tarball_path)
|
17
13
|
@environment = env
|
18
14
|
@definition = definition
|
15
|
+
@os_image_tarball_path = os_image_tarball_path
|
19
16
|
@stemcell_builder_options = BuilderOptions.new(
|
20
|
-
env,
|
21
|
-
definition,
|
22
|
-
version,
|
23
|
-
release_tarball_path,
|
17
|
+
env: env,
|
18
|
+
definition: definition,
|
19
|
+
version: version,
|
20
|
+
release_tarball: release_tarball_path,
|
21
|
+
os_image_tarball: os_image_tarball_path,
|
24
22
|
)
|
25
23
|
@shell = Bosh::Core::Shell.new
|
26
24
|
end
|
27
25
|
|
28
|
-
def
|
26
|
+
def prepare_build
|
29
27
|
sanitize
|
30
|
-
|
31
|
-
prepare_build_root
|
32
|
-
|
33
28
|
prepare_build_path
|
34
|
-
|
35
29
|
copy_stemcell_builder_to_build_path
|
36
|
-
|
37
30
|
prepare_work_root
|
38
|
-
|
39
31
|
persist_settings_for_bash
|
40
|
-
|
41
|
-
stage_collection = StageCollection.new(definition)
|
42
|
-
stage_runner = StageRunner.new(
|
43
|
-
build_path: build_path,
|
44
|
-
command_env: command_env,
|
45
|
-
settings_file: settings_path,
|
46
|
-
work_path: work_root
|
47
|
-
)
|
48
|
-
stage_runner.configure_and_apply(stage_collection.all_stages)
|
49
|
-
system(rspec_command) || raise('Stemcell specs failed')
|
50
|
-
|
51
|
-
stemcell_file
|
52
32
|
end
|
53
33
|
|
54
|
-
def
|
55
|
-
|
34
|
+
def os_image_rspec_command
|
35
|
+
[
|
36
|
+
"cd #{STEMCELL_SPECS_DIR};",
|
37
|
+
"OS_IMAGE=#{os_image_tarball_path}",
|
38
|
+
'bundle exec rspec -fd',
|
39
|
+
"spec/os_image/#{operating_system.name}_spec.rb",
|
40
|
+
].join(' ')
|
56
41
|
end
|
57
42
|
|
58
|
-
|
59
|
-
|
60
|
-
def_delegators(
|
61
|
-
:@definition,
|
62
|
-
:infrastructure,
|
63
|
-
:operating_system,
|
64
|
-
:agent,
|
65
|
-
)
|
66
|
-
|
67
|
-
attr_reader(
|
68
|
-
:shell,
|
69
|
-
:environment,
|
70
|
-
:definition,
|
71
|
-
:stemcell_builder_options
|
72
|
-
)
|
73
|
-
|
74
|
-
def rspec_command
|
43
|
+
def stemcell_rspec_command
|
75
44
|
[
|
76
|
-
"cd #{
|
45
|
+
"cd #{STEMCELL_SPECS_DIR};",
|
77
46
|
"STEMCELL_IMAGE=#{image_file_path}",
|
78
47
|
"bundle exec rspec -fd#{exclude_exclusions}",
|
79
48
|
"spec/stemcells/#{operating_system.name}_spec.rb",
|
@@ -82,80 +51,69 @@ module Bosh::Stemcell
|
|
82
51
|
].join(' ')
|
83
52
|
end
|
84
53
|
|
85
|
-
def
|
86
|
-
|
87
|
-
when 'vsphere'
|
88
|
-
' --tag ~exclude_on_vsphere'
|
89
|
-
when 'vcloud'
|
90
|
-
' --tag ~exclude_on_vcloud'
|
91
|
-
else
|
92
|
-
''
|
93
|
-
end
|
54
|
+
def build_path
|
55
|
+
File.join(build_root, 'build')
|
94
56
|
end
|
95
57
|
|
96
|
-
def
|
97
|
-
File.join(work_path, settings['
|
58
|
+
def stemcell_file
|
59
|
+
File.join(work_path, settings['stemcell_tgz'])
|
98
60
|
end
|
99
61
|
|
100
|
-
def
|
101
|
-
File.join(work_path, '
|
62
|
+
def chroot_dir
|
63
|
+
File.join(work_path, 'chroot')
|
102
64
|
end
|
103
65
|
|
104
|
-
def
|
105
|
-
|
106
|
-
|
107
|
-
system("sudo umount #{File.join(work_path, 'mnt/tmp/grub', settings['stemcell_image_name'])} 2> /dev/null")
|
108
|
-
system("sudo umount #{image_mount_point} 2> /dev/null")
|
109
|
-
system("sudo rm -rf #{base_directory}")
|
66
|
+
def settings_path
|
67
|
+
File.join(build_path, 'etc', 'settings.bash')
|
110
68
|
end
|
111
69
|
|
112
|
-
def
|
113
|
-
|
70
|
+
def work_path
|
71
|
+
File.join(work_root, 'work')
|
114
72
|
end
|
115
73
|
|
116
|
-
def
|
117
|
-
|
74
|
+
def command_env
|
75
|
+
"env #{hash_as_bash_env(proxy_settings_from_environment)}"
|
118
76
|
end
|
119
77
|
|
120
|
-
|
121
|
-
File.join(base_directory, 'build')
|
122
|
-
end
|
78
|
+
private
|
123
79
|
|
124
|
-
|
125
|
-
|
126
|
-
|
80
|
+
def_delegators(
|
81
|
+
:@definition,
|
82
|
+
:infrastructure,
|
83
|
+
:operating_system,
|
84
|
+
:agent,
|
85
|
+
)
|
127
86
|
|
128
|
-
|
129
|
-
|
130
|
-
|
87
|
+
attr_reader(
|
88
|
+
:shell,
|
89
|
+
:environment,
|
90
|
+
:definition,
|
91
|
+
:stemcell_builder_options,
|
92
|
+
:os_image_tarball_path,
|
93
|
+
)
|
131
94
|
|
132
|
-
def
|
133
|
-
FileUtils.
|
134
|
-
end
|
95
|
+
def sanitize
|
96
|
+
FileUtils.rm(Dir.glob('*.tgz'))
|
135
97
|
|
136
|
-
|
137
|
-
|
138
|
-
end
|
98
|
+
shell.run("sudo umount #{File.join(work_path, 'mnt/tmp/grub', settings['stemcell_image_name'])} 2> /dev/null",
|
99
|
+
{ ignore_failures: true })
|
139
100
|
|
140
|
-
|
141
|
-
|
101
|
+
shell.run("sudo umount #{image_mount_point} 2> /dev/null", { ignore_failures: true })
|
102
|
+
|
103
|
+
shell.run("sudo rm -rf #{base_directory}", { ignore_failures: true })
|
142
104
|
end
|
143
105
|
|
144
106
|
def prepare_build_path
|
145
|
-
FileUtils.rm_rf(build_path, verbose: true) if
|
107
|
+
FileUtils.rm_rf(build_path, verbose: true) if File.exist?(build_path)
|
146
108
|
FileUtils.mkdir_p(build_path, verbose: true)
|
147
109
|
end
|
148
110
|
|
149
|
-
def stemcell_builder_source_dir
|
150
|
-
File.join(File.expand_path('../../../../..', __FILE__), 'stemcell_builder')
|
151
|
-
end
|
152
|
-
|
153
111
|
def copy_stemcell_builder_to_build_path
|
154
|
-
FileUtils.cp_r(Dir.glob("#{
|
112
|
+
FileUtils.cp_r(Dir.glob("#{STEMCELL_BUILDER_SOURCE_DIR}/*"), build_path, preserve: true, verbose: true)
|
155
113
|
end
|
156
114
|
|
157
|
-
def
|
158
|
-
|
115
|
+
def prepare_work_root
|
116
|
+
FileUtils.mkdir_p(work_root, verbose: true)
|
159
117
|
end
|
160
118
|
|
161
119
|
def persist_settings_for_bash
|
@@ -167,12 +125,39 @@ module Bosh::Stemcell
|
|
167
125
|
end
|
168
126
|
end
|
169
127
|
|
170
|
-
def
|
171
|
-
|
128
|
+
def exclude_exclusions
|
129
|
+
case infrastructure.name
|
130
|
+
when 'vsphere'
|
131
|
+
' --tag ~exclude_on_vsphere'
|
132
|
+
when 'vcloud'
|
133
|
+
' --tag ~exclude_on_vcloud'
|
134
|
+
else
|
135
|
+
''
|
136
|
+
end
|
172
137
|
end
|
173
138
|
|
174
|
-
def
|
175
|
-
File.join(work_path, settings['
|
139
|
+
def image_file_path
|
140
|
+
File.join(work_path, settings['stemcell_image_name'])
|
141
|
+
end
|
142
|
+
|
143
|
+
def image_mount_point
|
144
|
+
File.join(work_path, 'mnt')
|
145
|
+
end
|
146
|
+
|
147
|
+
def settings
|
148
|
+
stemcell_builder_options.default
|
149
|
+
end
|
150
|
+
|
151
|
+
def base_directory
|
152
|
+
File.join('/mnt', 'stemcells', infrastructure.name, infrastructure.hypervisor, operating_system.name)
|
153
|
+
end
|
154
|
+
|
155
|
+
def build_root
|
156
|
+
File.join(base_directory, 'build')
|
157
|
+
end
|
158
|
+
|
159
|
+
def work_root
|
160
|
+
File.join(base_directory, 'work')
|
176
161
|
end
|
177
162
|
|
178
163
|
def proxy_settings_from_environment
|
@@ -8,13 +8,14 @@ module Bosh::Stemcell
|
|
8
8
|
class BuilderOptions
|
9
9
|
extend Forwardable
|
10
10
|
|
11
|
-
def initialize(
|
12
|
-
@environment = env
|
13
|
-
@definition = definition
|
14
|
-
|
15
|
-
@stemcell_version = version
|
16
|
-
@image_create_disk_size = disk_size
|
17
|
-
@bosh_micro_release_tgz_path =
|
11
|
+
def initialize(dependencies = {})
|
12
|
+
@environment = dependencies.fetch(:env)
|
13
|
+
@definition = dependencies.fetch(:definition)
|
14
|
+
|
15
|
+
@stemcell_version = dependencies.fetch(:version)
|
16
|
+
@image_create_disk_size = dependencies.fetch(:disk_size, infrastructure.default_disk_size)
|
17
|
+
@bosh_micro_release_tgz_path = dependencies.fetch(:release_tarball)
|
18
|
+
@os_image_tgz_path = dependencies.fetch(:os_image_tarball)
|
18
19
|
end
|
19
20
|
|
20
21
|
def default
|
@@ -34,7 +35,8 @@ module Bosh::Stemcell
|
|
34
35
|
'bosh_release_src_dir' => File.join(source_root, 'release/src/bosh'),
|
35
36
|
'bosh_agent_src_dir' => File.join(source_root, 'bosh_agent'),
|
36
37
|
'go_agent_src_dir' => File.join(source_root, 'go_agent'),
|
37
|
-
'image_create_disk_size' => image_create_disk_size
|
38
|
+
'image_create_disk_size' => image_create_disk_size,
|
39
|
+
'os_image_tgz' => os_image_tgz_path,
|
38
40
|
}.merge(bosh_micro_options).merge(environment_variables).merge(ovf_options)
|
39
41
|
end
|
40
42
|
|
@@ -52,7 +54,8 @@ module Bosh::Stemcell
|
|
52
54
|
:stemcell_version,
|
53
55
|
:definition,
|
54
56
|
:image_create_disk_size,
|
55
|
-
:bosh_micro_release_tgz_path
|
57
|
+
:bosh_micro_release_tgz_path,
|
58
|
+
:os_image_tgz_path,
|
56
59
|
)
|
57
60
|
|
58
61
|
def ovf_options
|
@@ -10,6 +10,8 @@ module Bosh::Stemcell
|
|
10
10
|
Vsphere.new
|
11
11
|
when 'vcloud'
|
12
12
|
Vcloud.new
|
13
|
+
when 'null'
|
14
|
+
NullInfrastructure.new
|
13
15
|
else
|
14
16
|
raise ArgumentError.new("invalid infrastructure: #{name}")
|
15
17
|
end
|
@@ -37,6 +39,12 @@ module Bosh::Stemcell
|
|
37
39
|
end
|
38
40
|
end
|
39
41
|
|
42
|
+
class NullInfrastructure < Base
|
43
|
+
def initialize
|
44
|
+
super(name: 'null', hypervisor: 'null', default_disk_size: -1)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
40
48
|
class OpenStack < Base
|
41
49
|
def initialize
|
42
50
|
super(name: 'openstack', hypervisor: 'kvm', default_disk_size: 10240)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Bosh::Stemcell
|
2
|
+
class OsImageBuilder
|
3
|
+
def initialize(dependencies = {})
|
4
|
+
@environment = dependencies.fetch(:environment)
|
5
|
+
@collection = dependencies.fetch(:collection)
|
6
|
+
@runner = dependencies.fetch(:runner)
|
7
|
+
@archive_handler = dependencies.fetch(:archive_handler)
|
8
|
+
end
|
9
|
+
|
10
|
+
def build(os_image_path)
|
11
|
+
environment.prepare_build
|
12
|
+
runner.configure_and_apply(collection.operating_system_stages)
|
13
|
+
archive_handler.compress(environment.chroot_dir, os_image_path)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
attr_reader :environment, :collection, :runner, :archive_handler
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Bosh::Stemcell
|
2
|
+
class OsImageUploader
|
3
|
+
def initialize(dependencies = {})
|
4
|
+
@digester = dependencies.fetch(:digester)
|
5
|
+
@adapter = dependencies.fetch(:adapter)
|
6
|
+
end
|
7
|
+
|
8
|
+
def upload(bucket_name, os_image_path)
|
9
|
+
digest = digester.file(os_image_path).hexdigest
|
10
|
+
adapter.upload(
|
11
|
+
bucket_name: bucket_name,
|
12
|
+
key: digest,
|
13
|
+
body: os_image_path,
|
14
|
+
public: true,
|
15
|
+
)
|
16
|
+
digest
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
attr_reader :digester, :adapter
|
22
|
+
end
|
23
|
+
end
|
@@ -9,53 +9,65 @@ module Bosh::Stemcell
|
|
9
9
|
@definition = definition
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
13
|
-
|
12
|
+
def operating_system_stages
|
13
|
+
case operating_system
|
14
|
+
when OperatingSystem::Centos then
|
15
|
+
centos_os_stages + common_os_stages
|
16
|
+
when OperatingSystem::Ubuntu then
|
17
|
+
ubuntu_os_stages + common_os_stages
|
18
|
+
end
|
14
19
|
end
|
15
20
|
|
16
|
-
|
17
|
-
|
18
|
-
|
21
|
+
def extract_operating_system_stages
|
22
|
+
[
|
23
|
+
:untar_base_os_image,
|
24
|
+
]
|
25
|
+
end
|
19
26
|
|
20
27
|
def agent_stages
|
21
28
|
case agent
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def operating_system_stages
|
39
|
-
case operating_system
|
40
|
-
when OperatingSystem::Centos then
|
41
|
-
centos_os_stages + common_os_stages
|
42
|
-
when OperatingSystem::Ubuntu then
|
43
|
-
ubuntu_os_stages + common_os_stages
|
29
|
+
when Agent::Go
|
30
|
+
[
|
31
|
+
:bosh_ruby,
|
32
|
+
:bosh_go_agent,
|
33
|
+
:bosh_micro_go,
|
34
|
+
:aws_cli,
|
35
|
+
]
|
36
|
+
when Agent::Ruby
|
37
|
+
[
|
38
|
+
:bosh_ruby,
|
39
|
+
:bosh_agent,
|
40
|
+
:bosh_micro,
|
41
|
+
]
|
44
42
|
end
|
45
43
|
end
|
46
44
|
|
45
|
+
# rubocop:disable MethodLength
|
47
46
|
def infrastructure_stages
|
48
47
|
case infrastructure
|
49
|
-
|
50
|
-
|
51
|
-
|
48
|
+
when Infrastructure::Aws then
|
49
|
+
aws_stages
|
50
|
+
when Infrastructure::OpenStack then
|
51
|
+
if operating_system.instance_of?(OperatingSystem::Centos)
|
52
|
+
centos_openstack_stages
|
53
|
+
else
|
52
54
|
openstack_stages
|
53
|
-
|
55
|
+
end
|
56
|
+
when Infrastructure::Vsphere then
|
57
|
+
if operating_system.instance_of?(OperatingSystem::Centos)
|
58
|
+
centos_vsphere_stages
|
59
|
+
else
|
54
60
|
vsphere_stages
|
55
|
-
|
56
|
-
|
61
|
+
end
|
62
|
+
when Infrastructure::Vcloud then
|
63
|
+
if operating_system.instance_of?(OperatingSystem::Centos)
|
64
|
+
centos_vcloud_stages
|
65
|
+
else
|
66
|
+
default_vcloud_stages
|
67
|
+
end
|
57
68
|
end
|
58
69
|
end
|
70
|
+
# rubocop:enable MethodLength
|
59
71
|
|
60
72
|
def openstack_stages
|
61
73
|
if operating_system.instance_of?(OperatingSystem::Centos)
|
@@ -81,6 +93,10 @@ module Bosh::Stemcell
|
|
81
93
|
end
|
82
94
|
end
|
83
95
|
|
96
|
+
private
|
97
|
+
|
98
|
+
def_delegators :@definition, :infrastructure, :operating_system, :agent
|
99
|
+
|
84
100
|
def centos_os_stages
|
85
101
|
[:base_centos, :base_yum]
|
86
102
|
end
|
@@ -26,17 +26,15 @@ module Bosh::Stemcell
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def apply(stages)
|
29
|
-
work_directory = File.join(work_path, 'work')
|
30
|
-
|
31
29
|
stages.each do |stage|
|
32
|
-
FileUtils.mkdir_p(
|
30
|
+
FileUtils.mkdir_p(work_path)
|
33
31
|
|
34
32
|
puts "=== Applying '#{stage}' stage ==="
|
35
33
|
puts "== Started #{Time.now.strftime('%a %b %e %H:%M:%S %Z %Y')} =="
|
36
34
|
|
37
35
|
stage_apply_script = File.join(build_path, 'stages', stage.to_s, 'apply.sh')
|
38
36
|
|
39
|
-
run_sudo_with_command_env("#{stage_apply_script} #{
|
37
|
+
run_sudo_with_command_env("#{stage_apply_script} #{work_path}")
|
40
38
|
end
|
41
39
|
end
|
42
40
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Bosh::Stemcell
|
2
|
+
class StemcellBuilder
|
3
|
+
def initialize(dependencies = {})
|
4
|
+
@gem_components = dependencies.fetch(:gem_components)
|
5
|
+
@environment = dependencies.fetch(:environment)
|
6
|
+
@collection = dependencies.fetch(:collection)
|
7
|
+
@runner = dependencies.fetch(:runner)
|
8
|
+
end
|
9
|
+
|
10
|
+
def build
|
11
|
+
gem_components.build_release_gems
|
12
|
+
environment.prepare_build
|
13
|
+
stemcell_stages = collection.extract_operating_system_stages +
|
14
|
+
collection.agent_stages +
|
15
|
+
collection.infrastructure_stages
|
16
|
+
runner.configure_and_apply(stemcell_stages)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
attr_reader :gem_components, :environment, :collection, :runner
|
22
|
+
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bosh-stemcell
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2200.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-03-
|
12
|
+
date: 2014-03-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bosh_aws_cpi
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.2200.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.
|
29
|
+
version: 1.2200.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: fakefs
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,17 +149,21 @@ files:
|
|
149
149
|
- lib/bosh/stemcell/agent.rb
|
150
150
|
- lib/bosh/stemcell/archive.rb
|
151
151
|
- lib/bosh/stemcell/archive_filename.rb
|
152
|
+
- lib/bosh/stemcell/archive_handler.rb
|
152
153
|
- lib/bosh/stemcell/aws/ami.rb
|
153
154
|
- lib/bosh/stemcell/aws/light_stemcell.rb
|
154
155
|
- lib/bosh/stemcell/aws/region.rb
|
155
|
-
- lib/bosh/stemcell/
|
156
|
+
- lib/bosh/stemcell/build_environment.rb
|
156
157
|
- lib/bosh/stemcell/builder_options.rb
|
157
158
|
- lib/bosh/stemcell/definition.rb
|
158
159
|
- lib/bosh/stemcell/disk_image.rb
|
159
160
|
- lib/bosh/stemcell/infrastructure.rb
|
160
161
|
- lib/bosh/stemcell/operating_system.rb
|
162
|
+
- lib/bosh/stemcell/os_image_builder.rb
|
163
|
+
- lib/bosh/stemcell/os_image_uploader.rb
|
161
164
|
- lib/bosh/stemcell/stage_collection.rb
|
162
165
|
- lib/bosh/stemcell/stage_runner.rb
|
166
|
+
- lib/bosh/stemcell/stemcell_builder.rb
|
163
167
|
- lib/bosh/stemcell/version.rb
|
164
168
|
- lib/monkeypatch/serverspec/backend/exec.rb
|
165
169
|
- README.md
|
@@ -184,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
188
|
version: '0'
|
185
189
|
segments:
|
186
190
|
- 0
|
187
|
-
hash:
|
191
|
+
hash: 2870165919734630849
|
188
192
|
requirements: []
|
189
193
|
rubyforge_project:
|
190
194
|
rubygems_version: 1.8.23
|