bosh-stemcell 1.2824.0 → 1.2827.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f1c339921855e06733713773ff4bcf64e21bdd2b
4
+ data.tar.gz: 321ea72e34e48f90542109061bf8285805c4b648
5
+ SHA512:
6
+ metadata.gz: 2a4027b6c935f99ea31e7bbfa156100316e2a5fe42ff0e7e92ee4cf9985cb971ead1135650afcaa03809233a42b7810ed061375624985c6cc4825604dd27de55
7
+ data.tar.gz: 632be5e53195844d33857540e085d3a4f2397137454990ad586a9f2384d3f4df893f551936f10268e7a102e48c4ee18f272dafe371fb78c34ce64c074f6d94ac
@@ -4,18 +4,20 @@ module Bosh::Stemcell
4
4
  class ArchiveFilename
5
5
  extend Forwardable
6
6
 
7
- def initialize(version, definition, base_name)
7
+ def initialize(version, definition, base_name, disk_format)
8
8
  @version = version
9
9
  @definition = definition
10
10
  @base_name = base_name
11
+ @disk_format = disk_format
11
12
  end
12
13
 
13
14
  def to_s
14
15
  stemcell_filename_parts = [
15
16
  name,
16
17
  version,
17
- definition.stemcell_name
18
+ definition.stemcell_name(disk_format)
18
19
  ]
20
+
19
21
  "#{stemcell_filename_parts.join('-')}.tgz"
20
22
  end
21
23
 
@@ -29,6 +31,7 @@ module Bosh::Stemcell
29
31
  :base_name,
30
32
  :version,
31
33
  :definition,
34
+ :disk_format,
32
35
  )
33
36
  end
34
37
  end
@@ -1,5 +1,6 @@
1
1
  require 'bosh/core/shell'
2
2
  require 'bosh/stemcell/builder_options'
3
+ require 'bosh/stemcell/stemcell'
3
4
  require 'forwardable'
4
5
 
5
6
  module Bosh::Stemcell
@@ -13,6 +14,7 @@ module Bosh::Stemcell
13
14
  @environment = env
14
15
  @definition = definition
15
16
  @os_image_tarball_path = os_image_tarball_path
17
+ @version = version
16
18
  @stemcell_builder_options = BuilderOptions.new(
17
19
  env: env,
18
20
  definition: definition,
@@ -23,11 +25,14 @@ module Bosh::Stemcell
23
25
  @shell = Bosh::Core::Shell.new
24
26
  end
25
27
 
28
+ attr_reader :version
29
+
26
30
  def prepare_build
27
31
  sanitize
28
32
  prepare_build_path
29
33
  copy_stemcell_builder_to_build_path
30
34
  prepare_work_root
35
+ prepare_stemcell_path
31
36
  persist_settings_for_bash
32
37
  end
33
38
 
@@ -55,8 +60,11 @@ module Bosh::Stemcell
55
60
  File.join(build_root, 'build')
56
61
  end
57
62
 
58
- def stemcell_file
59
- File.join(work_path, settings['stemcell_tgz'])
63
+ def stemcell_files
64
+ definition.disk_formats.map do |disk_format|
65
+ stemcell_filename = Stemcell.new(@definition, 'bosh-stemcell', @version, disk_format)
66
+ File.join(work_path, stemcell_filename.name)
67
+ end
60
68
  end
61
69
 
62
70
  def chroot_dir
@@ -71,6 +79,10 @@ module Bosh::Stemcell
71
79
  File.join(work_root, 'work')
72
80
  end
73
81
 
82
+ def stemcell_tarball_path
83
+ work_path
84
+ end
85
+
74
86
  def command_env
75
87
  "env #{hash_as_bash_env(proxy_settings_from_environment)}"
76
88
  end
@@ -116,6 +128,10 @@ module Bosh::Stemcell
116
128
  FileUtils.mkdir_p(build_path, verbose: true)
117
129
  end
118
130
 
131
+ def prepare_stemcell_path
132
+ FileUtils.mkdir_p(File.join(work_path, 'stemcell'))
133
+ end
134
+
119
135
  def copy_stemcell_builder_to_build_path
120
136
  FileUtils.cp_r(Dir.glob("#{STEMCELL_BUILDER_SOURCE_DIR}/*"), build_path, preserve: true, verbose: true)
121
137
  end
@@ -18,8 +18,6 @@ module Bosh::Stemcell
18
18
 
19
19
  def default
20
20
  {
21
- 'stemcell_name' => "bosh-#{@definition.stemcell_name}",
22
- 'stemcell_tgz' => archive_filename.to_s,
23
21
  'stemcell_image_name' => stemcell_image_name,
24
22
  'stemcell_version' => stemcell_version,
25
23
  'stemcell_hypervisor' => infrastructure.hypervisor,
@@ -34,6 +32,10 @@ module Bosh::Stemcell
34
32
  }.merge(bosh_micro_options).merge(environment_variables).merge(ovf_options)
35
33
  end
36
34
 
35
+ attr_reader(
36
+ :stemcell_version,
37
+ )
38
+
37
39
  private
38
40
 
39
41
  def_delegators(
@@ -45,7 +47,6 @@ module Bosh::Stemcell
45
47
 
46
48
  attr_reader(
47
49
  :environment,
48
- :stemcell_version,
49
50
  :definition,
50
51
  :image_create_disk_size,
51
52
  :bosh_micro_release_tgz_path,
@@ -76,10 +77,6 @@ module Bosh::Stemcell
76
77
  }
77
78
  end
78
79
 
79
- def archive_filename
80
- ArchiveFilename.new(stemcell_version, definition, 'bosh-stemcell')
81
- end
82
-
83
80
  def stemcell_image_name
84
81
  "#{infrastructure.name}-#{infrastructure.hypervisor}-#{operating_system.name}.raw"
85
82
  end
@@ -19,7 +19,7 @@ module Bosh::Stemcell
19
19
  hypervisor_name,
20
20
  Bosh::Stemcell::OperatingSystem.for(operating_system_name, operating_system_version),
21
21
  Bosh::Stemcell::Agent.for(agent_name),
22
- light
22
+ light,
23
23
  )
24
24
  end
25
25
 
@@ -31,7 +31,7 @@ module Bosh::Stemcell
31
31
  @light = light
32
32
  end
33
33
 
34
- def stemcell_name
34
+ def stemcell_name(disk_format)
35
35
  stemcell_name_parts = [
36
36
  infrastructure.name,
37
37
  hypervisor_name,
@@ -39,9 +39,15 @@ module Bosh::Stemcell
39
39
  ]
40
40
  stemcell_name_parts << operating_system.version if operating_system.version
41
41
  stemcell_name_parts << "#{agent.name}_agent" unless agent.name == 'ruby'
42
+ stemcell_name_parts << disk_format unless disk_format == infrastructure.default_disk_format
43
+
42
44
  stemcell_name_parts.join('-')
43
45
  end
44
46
 
47
+ def disk_formats
48
+ infrastructure.disk_formats
49
+ end
50
+
45
51
  def ==(other)
46
52
  infrastructure == other.infrastructure &&
47
53
  operating_system == other.operating_system &&
@@ -50,7 +56,7 @@ module Bosh::Stemcell
50
56
  end
51
57
 
52
58
  def light?
53
- @light
59
+ @light == true
54
60
  end
55
61
  end
56
62
  end
@@ -20,13 +20,22 @@ module Bosh::Stemcell
20
20
  end
21
21
 
22
22
  class Base
23
- attr_reader :name, :hypervisor, :default_disk_size
23
+ attr_reader :name, :hypervisor, :default_disk_size, :disk_formats
24
24
 
25
25
  def initialize(options = {})
26
26
  @name = options.fetch(:name)
27
27
  @supports_light_stemcell = options.fetch(:supports_light_stemcell, false)
28
28
  @hypervisor = options.fetch(:hypervisor)
29
29
  @default_disk_size = options.fetch(:default_disk_size)
30
+ @disk_formats = options.fetch(:disk_formats)
31
+ end
32
+
33
+ def default_disk_format
34
+ disk_formats.first
35
+ end
36
+
37
+ def additional_cloud_properties
38
+ {}
30
39
  end
31
40
 
32
41
  def ==(other)
@@ -38,37 +47,63 @@ module Bosh::Stemcell
38
47
 
39
48
  class NullInfrastructure < Base
40
49
  def initialize
41
- super(name: 'null', hypervisor: 'null', default_disk_size: -1)
50
+ super(name: 'null', hypervisor: 'null', default_disk_size: -1, disk_formats: [])
42
51
  end
43
52
  end
44
53
 
45
54
  class OpenStack < Base
46
55
  def initialize
47
- super(name: 'openstack', hypervisor: 'kvm', default_disk_size: 3072)
56
+ super(name: 'openstack', hypervisor: 'kvm', default_disk_size: 3072, disk_formats: ['qcow2', 'raw'])
57
+ end
58
+
59
+ def additional_cloud_properties
60
+ {'auto_disk_config' => true}
48
61
  end
49
62
  end
50
63
 
51
64
  class Vsphere < Base
52
65
  def initialize
53
- super(name: 'vsphere', hypervisor: 'esxi', default_disk_size: 3072)
66
+ super(name: 'vsphere', hypervisor: 'esxi', default_disk_size: 3072, disk_formats: ['ovf'])
67
+ end
68
+
69
+ def additional_cloud_properties
70
+ {'root_device_name' => '/dev/sda1'}
54
71
  end
55
72
  end
56
73
 
57
74
  class Vcloud < Base
58
75
  def initialize
59
- super(name: 'vcloud', hypervisor: 'esxi', default_disk_size: 3072)
76
+ super(name: 'vcloud', hypervisor: 'esxi', default_disk_size: 3072, disk_formats: ['ovf'])
77
+ end
78
+
79
+ def additional_cloud_properties
80
+ {'root_device_name' => '/dev/sda1'}
60
81
  end
61
82
  end
62
83
 
63
84
  class Aws < Base
64
85
  def initialize
65
- super(name: 'aws', hypervisor: 'xen', supports_light_stemcell: true, default_disk_size: 2048)
86
+ super(
87
+ name: 'aws',
88
+ hypervisor: 'xen',
89
+ supports_light_stemcell: true,
90
+ default_disk_size: 2048,
91
+ disk_formats: ['raw']
92
+ )
93
+ end
94
+
95
+ def additional_cloud_properties
96
+ {'root_device_name' => '/dev/sda1'}
66
97
  end
67
98
  end
68
99
 
69
100
  class Warden < Base
70
101
  def initialize
71
- super(name: 'warden', hypervisor: 'boshlite', default_disk_size: 2048)
102
+ super(name: 'warden', hypervisor: 'boshlite', default_disk_size: 2048, disk_formats: ['files'])
103
+ end
104
+
105
+ def additional_cloud_properties
106
+ {'root_device_name' => '/dev/sda1'}
72
107
  end
73
108
  end
74
109
  end
@@ -34,7 +34,7 @@ module Bosh::Stemcell
34
34
  ]
35
35
  end
36
36
 
37
- def infrastructure_stages
37
+ def build_stemcell_image_stages
38
38
  case infrastructure
39
39
  when Infrastructure::Aws then
40
40
  aws_stages
@@ -49,34 +49,47 @@ module Bosh::Stemcell
49
49
  end
50
50
  end
51
51
 
52
+ def package_stemcell_stages(disk_format)
53
+ case disk_format
54
+ when 'raw' then
55
+ raw_package_stages
56
+ when 'qcow2' then
57
+ qcow2_package_stages
58
+ when 'ovf' then
59
+ ovf_package_stages
60
+ when 'files' then
61
+ files_package_stages
62
+ end
63
+ end
64
+
65
+ private
66
+
67
+ def_delegators :@definition, :infrastructure, :operating_system, :agent
68
+
52
69
  def openstack_stages
53
70
  if operating_system.instance_of?(OperatingSystem::Centos)
54
71
  centos_openstack_stages
55
72
  else
56
- default_openstack_stages
73
+ ubuntu_openstack_stages
57
74
  end
58
75
  end
59
76
 
60
77
  def vsphere_stages
61
78
  if operating_system.instance_of?(OperatingSystem::Centos)
62
- centos_vsphere_stages
79
+ centos_vmware_stages
63
80
  else
64
- default_vsphere_stages
81
+ ubuntu_vmware_stages
65
82
  end
66
83
  end
67
84
 
68
85
  def vcloud_stages
69
86
  if operating_system.instance_of?(OperatingSystem::Centos)
70
- centos_vcloud_stages
87
+ centos_vmware_stages
71
88
  else
72
- default_vcloud_stages
89
+ ubuntu_vmware_stages
73
90
  end
74
91
  end
75
92
 
76
- private
77
-
78
- def_delegators :@definition, :infrastructure, :operating_system, :agent
79
-
80
93
  def centos_os_stages
81
94
  [
82
95
  :base_centos,
@@ -120,7 +133,7 @@ module Bosh::Stemcell
120
133
  ]
121
134
  end
122
135
 
123
- def centos_vsphere_stages
136
+ def centos_vmware_stages
124
137
  [
125
138
  #:system_open_vm_tools,
126
139
  :system_vsphere_cdrom,
@@ -129,26 +142,6 @@ module Bosh::Stemcell
129
142
  :bosh_harden,
130
143
  :image_create,
131
144
  :image_install_grub,
132
- :image_ovf_vmx,
133
- :image_ovf_generate,
134
- :image_ovf_prepare_stemcell,
135
- :stemcell,
136
- ]
137
- end
138
-
139
- def centos_vcloud_stages
140
- [
141
- #:system_open_vm_tools,
142
- :system_vsphere_cdrom,
143
- :system_parameters,
144
- :bosh_clean,
145
- :bosh_harden,
146
- :image_create,
147
- :image_install_grub,
148
- :image_ovf_vmx,
149
- :image_ovf_generate,
150
- :image_ovf_prepare_stemcell,
151
- :stemcell
152
145
  ]
153
146
  end
154
147
 
@@ -164,10 +157,6 @@ module Bosh::Stemcell
164
157
  :bosh_openstack_agent_settings,
165
158
  :image_create,
166
159
  :image_install_grub,
167
- :image_openstack_qcow2,
168
- :image_openstack_prepare_stemcell,
169
- # Final stemcell
170
- :stemcell_openstack,
171
160
  ]
172
161
  end
173
162
 
@@ -185,13 +174,10 @@ module Bosh::Stemcell
185
174
  :image_create,
186
175
  :image_install_grub,
187
176
  :image_aws_update_grub,
188
- :image_aws_prepare_stemcell,
189
- # Final stemcell
190
- :stemcell,
191
177
  ]
192
178
  end
193
179
 
194
- def default_openstack_stages
180
+ def ubuntu_openstack_stages
195
181
  [
196
182
  # Misc
197
183
  :system_openstack_network,
@@ -206,14 +192,10 @@ module Bosh::Stemcell
206
192
  # Image/bootloader
207
193
  :image_create,
208
194
  :image_install_grub,
209
- :image_openstack_qcow2,
210
- :image_openstack_prepare_stemcell,
211
- # Final stemcell
212
- :stemcell_openstack,
213
195
  ]
214
196
  end
215
197
 
216
- def default_vsphere_stages
198
+ def ubuntu_vmware_stages
217
199
  [
218
200
  :system_open_vm_tools,
219
201
  :system_vsphere_cdrom,
@@ -225,48 +207,46 @@ module Bosh::Stemcell
225
207
  # Image/bootloader
226
208
  :image_create,
227
209
  :image_install_grub,
228
- :image_ovf_vmx,
229
- :image_ovf_generate,
230
- :image_ovf_prepare_stemcell,
231
- # Final stemcell
232
- :stemcell,
233
210
  ]
234
211
  end
235
212
 
236
- def default_vcloud_stages
213
+ def warden_stages
237
214
  [
238
- :system_open_vm_tools,
239
- :system_vsphere_cdrom,
240
- # Misc
241
215
  :system_parameters,
216
+ :base_warden,
242
217
  # Finalisation
243
218
  :bosh_clean,
244
219
  :bosh_harden,
245
- # Image/bootloader
220
+ # only used for spec test
246
221
  :image_create,
247
- :image_install_grub,
222
+ ]
223
+ end
224
+
225
+ def raw_package_stages
226
+ [
227
+ :prepare_raw_image_stemcell,
228
+ ]
229
+ end
230
+
231
+ def qcow2_package_stages
232
+ [
233
+ :prepare_qcow2_image_stemcell,
234
+ ]
235
+ end
236
+
237
+ def ovf_package_stages
238
+ [
248
239
  :image_ovf_vmx,
249
240
  :image_ovf_generate,
250
- :image_ovf_prepare_stemcell,
251
- # Final stemcell
252
- :stemcell
241
+ :prepare_ovf_image_stemcell,
253
242
  ]
254
243
  end
255
244
 
256
- def warden_stages
245
+ def files_package_stages
257
246
  [
258
- :system_parameters,
259
- :base_warden,
260
- # Finalisation
261
- :bosh_clean,
262
- :bosh_harden,
263
- # Image copy
264
- :bosh_copy_root,
265
- # only used for spec test
266
- :image_create,
267
- # Final stemcell
268
- :stemcell,
247
+ :prepare_files_image_stemcell,
269
248
  ]
270
249
  end
250
+
271
251
  end
272
252
  end
@@ -0,0 +1,22 @@
1
+ module Bosh
2
+ module Stemcell
3
+ class Stemcell
4
+ attr_reader :version, :definition, :disk_format, :base_name
5
+
6
+ def initialize(definition, base_name, version, disk_format)
7
+ @definition = definition
8
+ @base_name = base_name
9
+ @version = version
10
+ @disk_format = disk_format
11
+ end
12
+
13
+ def infrastructure
14
+ @definition.infrastructure
15
+ end
16
+
17
+ def name
18
+ ArchiveFilename.new(version, definition, base_name, disk_format).to_s
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,18 +1,22 @@
1
+ require 'fileutils'
2
+ require 'bosh/stemcell/stage_collection'
3
+
1
4
  module Bosh::Stemcell
2
5
  class StemcellBuilder
3
6
  def initialize(dependencies = {})
4
7
  @gem_components = dependencies.fetch(:gem_components)
5
8
  @environment = dependencies.fetch(:environment)
6
- @collection = dependencies.fetch(:collection)
7
9
  @runner = dependencies.fetch(:runner)
10
+ @collection = dependencies.fetch(:collection)
8
11
  end
9
12
 
10
13
  def build
11
14
  gem_components.build_release_gems
12
15
  environment.prepare_build
16
+
13
17
  stemcell_stages = collection.extract_operating_system_stages +
14
18
  collection.agent_stages +
15
- collection.infrastructure_stages
19
+ collection.build_stemcell_image_stages
16
20
  runner.configure_and_apply(stemcell_stages)
17
21
  end
18
22
 
@@ -0,0 +1,75 @@
1
+ module Bosh
2
+ module Stemcell
3
+ class StemcellPackager
4
+ def initialize(definition, version, work_path, tarball_path, runner, collection)
5
+ @definition = definition
6
+ @version = version
7
+ @stemcell_build_path = File.join(work_path, 'stemcell')
8
+ @tarball_path = tarball_path
9
+ @runner = runner
10
+ @collection = collection
11
+ end
12
+
13
+ def package(disk_format)
14
+ File.delete(stemcell_image_path) if File.exist?(stemcell_image_path)
15
+
16
+ runner.configure_and_apply(collection.package_stemcell_stages(disk_format))
17
+
18
+ write_manifest(disk_format)
19
+ create_tarball(disk_format)
20
+ end
21
+
22
+ private
23
+
24
+ attr_reader :definition, :version, :stemcell_build_path, :tarball_path, :runner, :collection
25
+
26
+ def write_manifest(disk_format)
27
+ manifest_filename = File.join(stemcell_build_path, "stemcell.MF")
28
+ File.open(manifest_filename, "w") do |f|
29
+ f.write(Psych.dump(manifest(disk_format)))
30
+ end
31
+ end
32
+
33
+ def manifest(disk_format)
34
+ infrastructure = definition.infrastructure
35
+
36
+ {
37
+ 'name' => definition.stemcell_name(disk_format),
38
+ 'version' => version.to_s,
39
+ 'bosh_protocol' => 1,
40
+ 'sha1' => image_checksum,
41
+ 'cloud_properties' => {
42
+ 'name' => definition.stemcell_name(disk_format),
43
+ 'version' => version.to_s,
44
+ 'infrastructure' => infrastructure.name,
45
+ 'hypervisor' => infrastructure.hypervisor,
46
+ 'disk_format' => disk_format,
47
+ 'container_format' => 'bare',
48
+ 'os_type' => 'linux',
49
+ 'os_distro' => definition.operating_system.name,
50
+ 'architecture' => 'x86_64',
51
+ }.merge(infrastructure.additional_cloud_properties)
52
+ }
53
+ end
54
+
55
+ def create_tarball(disk_format)
56
+ stemcell_name = ArchiveFilename.new(version, definition, 'bosh-stemcell', disk_format).to_s
57
+ tarball_name = File.join(tarball_path, stemcell_name)
58
+
59
+ Dir.chdir(stemcell_build_path) do
60
+ system("tar zcf #{tarball_name} *")
61
+ end
62
+
63
+ tarball_name
64
+ end
65
+
66
+ def image_checksum
67
+ `shasum -a 1 #{stemcell_image_path}`.split(/\s/).first
68
+ end
69
+
70
+ def stemcell_image_path
71
+ File.join(stemcell_build_path, 'image')
72
+ end
73
+ end
74
+ end
75
+ end
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Stemcell
3
- VERSION = '1.2824.0'
3
+ VERSION = '1.2827.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,142 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh-stemcell
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2824.0
5
- prerelease:
4
+ version: 1.2827.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Pivotal
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-01-23 00:00:00.000000000 Z
11
+ date: 2015-01-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bosh_aws_cpi
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 1.2824.0
19
+ version: 1.2827.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 1.2824.0
26
+ version: 1.2827.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: fakefs
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rspec-its
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: timecop
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ">="
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: serverspec
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ">="
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: foodcritic
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ! '>='
115
+ - - ">="
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ! '>='
122
+ - - ">="
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0'
142
125
  description: Bosh::Stemcell provides tools to manage stemcells
@@ -145,6 +128,7 @@ executables: []
145
128
  extensions: []
146
129
  extra_rdoc_files: []
147
130
  files:
131
+ - README.md
148
132
  - lib/bosh/stemcell.rb
149
133
  - lib/bosh/stemcell/agent.rb
150
134
  - lib/bosh/stemcell/archive.rb
@@ -162,36 +146,33 @@ files:
162
146
  - lib/bosh/stemcell/os_image_builder.rb
163
147
  - lib/bosh/stemcell/stage_collection.rb
164
148
  - lib/bosh/stemcell/stage_runner.rb
149
+ - lib/bosh/stemcell/stemcell.rb
165
150
  - lib/bosh/stemcell/stemcell_builder.rb
151
+ - lib/bosh/stemcell/stemcell_packager.rb
166
152
  - lib/bosh/stemcell/version.rb
167
153
  - lib/monkeypatch/serverspec/backend/exec.rb
168
- - README.md
169
154
  homepage: https://github.com/cloudfoundry/bosh
170
155
  licenses:
171
156
  - Apache 2.0
157
+ metadata: {}
172
158
  post_install_message:
173
159
  rdoc_options: []
174
160
  require_paths:
175
161
  - lib
176
162
  required_ruby_version: !ruby/object:Gem::Requirement
177
- none: false
178
163
  requirements:
179
- - - ! '>='
164
+ - - ">="
180
165
  - !ruby/object:Gem::Version
181
166
  version: 1.9.3
182
167
  required_rubygems_version: !ruby/object:Gem::Requirement
183
- none: false
184
168
  requirements:
185
- - - ! '>='
169
+ - - ">="
186
170
  - !ruby/object:Gem::Version
187
171
  version: '0'
188
- segments:
189
- - 0
190
- hash: 3884337251874964436
191
172
  requirements: []
192
173
  rubyforge_project:
193
- rubygems_version: 1.8.23
174
+ rubygems_version: 2.2.2
194
175
  signing_key:
195
- specification_version: 3
176
+ specification_version: 4
196
177
  summary: Bosh::Stemcell provides tools to manage stemcells
197
178
  test_files: []