bosh-stemcell 1.5.0.pre.1117 → 1.5.0.pre.1134

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
- require 'rake/file_utils_ext'
2
1
  require 'yaml'
2
+ require 'rake/file_utils_ext'
3
3
  require 'bosh/stemcell/aws/region'
4
4
 
5
5
  module Bosh::Stemcell
@@ -27,6 +27,12 @@ module Bosh::Stemcell
27
27
  cloud_properties.fetch('version')
28
28
  end
29
29
 
30
+ def sha1
31
+ sha1 = manifest.fetch('sha1')
32
+ raise 'sha1 must not be nil' unless sha1
33
+ sha1.to_s
34
+ end
35
+
30
36
  def light?
31
37
  infrastructure == 'aws' && ami_id
32
38
  end
@@ -36,7 +36,7 @@ module Bosh::Stemcell
36
36
 
37
37
  class Vsphere < Base
38
38
  def initialize
39
- super(name: 'vsphere', hypervisor: 'esxi', default_disk_size: 2048)
39
+ super(name: 'vsphere', hypervisor: 'esxi', default_disk_size: 3072)
40
40
  end
41
41
  end
42
42
 
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Stemcell
3
- VERSION = '1.5.0.pre.1117'
3
+ VERSION = '1.5.0.pre.1134'
4
4
  end
5
5
  end
Binary file
@@ -3,31 +3,32 @@ require 'bosh/stemcell/archive'
3
3
 
4
4
  module Bosh::Stemcell
5
5
  describe Archive do
6
+ subject { described_class.new(stemcell_path) }
6
7
  let(:stemcell_path) { spec_asset('fake-stemcell-aws.tgz') }
7
8
 
8
- subject { Archive.new(stemcell_path) }
9
-
10
9
  describe '#initialize' do
11
10
  it 'errors if path does not exist' do
12
- expect { Archive.new('/not/found/stemcell.tgz') }.to raise_error "Cannot find file `/not/found/stemcell.tgz'"
11
+ expect {
12
+ described_class.new('/not/found/stemcell.tgz')
13
+ }.to raise_error("Cannot find file `/not/found/stemcell.tgz'")
13
14
  end
14
15
  end
15
16
 
16
17
  describe '#manifest' do
17
18
  it 'has a manifest' do
18
- expect(subject.manifest).to be_a Hash
19
+ expect(subject.manifest).to be_a(Hash)
19
20
  end
20
21
  end
21
22
 
22
23
  describe '#name' do
23
24
  it 'has a name' do
24
- expect(subject.name).to eq 'fake-stemcell'
25
+ expect(subject.name).to eq('fake-stemcell')
25
26
  end
26
27
  end
27
28
 
28
29
  describe '#infrastructure' do
29
30
  it 'has an infrastructure' do
30
- expect(subject.infrastructure).to eq 'aws'
31
+ expect(subject.infrastructure).to eq('aws')
31
32
  end
32
33
  end
33
34
 
@@ -43,6 +44,32 @@ module Bosh::Stemcell
43
44
  end
44
45
  end
45
46
 
47
+ describe '#sha1' do
48
+ context 'when sha1 is just a string (from fake-stemcell-aws.tgz)' do
49
+ it 'returns a sha1 as a string' do
50
+ expect(subject.sha1).to eq('fake-stemcell-sha1')
51
+ end
52
+ end
53
+
54
+ context 'when sha1 happens to be a number' do
55
+ before { subject.manifest['sha1'] = 123 }
56
+
57
+ it 'returns a sha1 as a string' do
58
+ expect(subject.sha1).to eq('123')
59
+ end
60
+ end
61
+
62
+ context 'when the sha1 is nil' do
63
+ before { subject.manifest['sha1'] = nil }
64
+
65
+ it 'raises an error' do
66
+ expect {
67
+ subject.sha1
68
+ }.to raise_error(RuntimeError, 'sha1 must not be nil')
69
+ end
70
+ end
71
+ end
72
+
46
73
  describe '#light?' do
47
74
  context 'when infrastructure is "aws"' do
48
75
  context 'when there is not an "ami" key in the "cloud_properties" section of the manifest' do
@@ -51,14 +78,12 @@ module Bosh::Stemcell
51
78
 
52
79
  context 'when there is an "ami" key in the "cloud_properties" section of the manifest' do
53
80
  let(:stemcell_path) { spec_asset('light-fake-stemcell-aws.tgz') }
54
-
55
81
  it { should be_light }
56
82
  end
57
83
  end
58
84
 
59
85
  context 'when infrastructure is anything but "aws"' do
60
86
  let(:stemcell_path) { spec_asset('fake-stemcell-vsphere.tgz') }
61
-
62
87
  it { should_not be_light }
63
88
  end
64
89
  end
@@ -71,26 +96,26 @@ module Bosh::Stemcell
71
96
 
72
97
  context 'when there is an "ami" key in the "cloud_properties" section of the manifest' do
73
98
  let(:stemcell_path) { spec_asset('light-fake-stemcell-aws.tgz') }
74
-
75
99
  its(:ami_id) { should eq('ami-FAKE_AMI_KEY') }
76
100
  end
77
101
  end
78
102
 
79
103
  context 'when infrastructure is anything but "aws"' do
80
104
  let(:stemcell_path) { spec_asset('fake-stemcell-vsphere.tgz') }
81
-
82
105
  its(:ami_id) { should be_nil }
83
106
  end
84
107
  end
85
108
 
86
109
  describe '#extract' do
87
110
  it 'extracts stemcell' do
88
- Rake::FileUtilsExt.should_receive(:sh).with(/tar xzf .*#{stemcell_path} --directory/)
111
+ Rake::FileUtilsExt.should_receive(:sh).with(
112
+ /tar xzf .*#{stemcell_path} --directory/)
89
113
  subject.extract {}
90
114
  end
91
115
 
92
116
  it 'extracts stemcell and excludes files' do
93
- Rake::FileUtilsExt.should_receive(:sh).with(/tar xzf .*#{stemcell_path} --directory .* --exclude=image/)
117
+ Rake::FileUtilsExt.should_receive(:sh).with(
118
+ /tar xzf .*#{stemcell_path} --directory .* --exclude=image/)
94
119
  subject.extract(exclude: 'image') {}
95
120
  end
96
121
  end
@@ -165,6 +165,7 @@ module Bosh::Stemcell
165
165
 
166
166
  context 'when infrastruture is vsphere' do
167
167
  let(:infrastructure) { Infrastructure.for('vsphere') }
168
+ let(:default_disk_size) { 3072 }
168
169
 
169
170
  it_sets_correct_environment_variables
170
171
 
@@ -60,7 +60,7 @@ module Bosh::Stemcell
60
60
  describe Infrastructure::Vsphere do
61
61
  its(:name) { should eq('vsphere') }
62
62
  its(:hypervisor) { should eq('esxi') }
63
- its(:default_disk_size) { should eq(2048) }
63
+ its(:default_disk_size) { should eq(3072) }
64
64
  it { should_not be_light }
65
65
  end
66
66
  end
@@ -92,8 +92,8 @@ describe 'CentOs Stemcell' do
92
92
 
93
93
  context 'installed by system_kernel' do
94
94
  {
95
- 'kernel' => '2.6.32-358.18.1.el6.x86_64',
96
- 'kernel-headers' => '2.6.32-358.18.1.el6.x86_64',
95
+ 'kernel' => '2.6.32-358.23.2.el6.x86_64',
96
+ 'kernel-headers' => '2.6.32-358.23.2.el6.x86_64',
97
97
  }.each do |pkg, version|
98
98
  describe package(pkg) do
99
99
  it { should be_installed.with_version(version) }
@@ -112,10 +112,11 @@ describe 'CentOs Stemcell' do
112
112
  it { should be_file }
113
113
  it { should contain 'default=0' }
114
114
  it { should contain 'timeout=1' }
115
- it { should contain 'title CentOS release 6.4 (Final) (2.6.32-358.18.1.el6.x86_64)' }
115
+ it { should contain 'title CentOS release 6.4 (Final) (2.6.32-358.23.2.el6.x86_64)' }
116
116
  it { should contain ' root (hd0,0)' }
117
- it { should contain ' kernel /boot/vmlinuz-2.6.32-358.18.1.el6.x86_64 ro root=UUID=' }
118
- it { should contain ' initrd /boot/initramfs-2.6.32-358.18.1.el6.x86_64.img' }
117
+ it { should contain ' kernel /boot/vmlinuz-2.6.32-358.23.2.el6.x86_64 ro root=UUID=' }
118
+ it { should contain ' selinux=0' }
119
+ it { should contain ' initrd /boot/initramfs-2.6.32-358.23.2.el6.x86_64.img' }
119
120
  end
120
121
 
121
122
  describe file('/boot/grub/menu.lst') do
@@ -126,6 +126,7 @@ describe 'Ubuntu Stemcell' do
126
126
  it { should contain 'title Ubuntu 10.04.4 LTS (3.0.0-32-virtual)' }
127
127
  it { should contain ' root (hd0,0)' }
128
128
  it { should contain ' kernel /boot/vmlinuz-3.0.0-32-virtual ro root=UUID=' }
129
+ it { should contain ' selinux=0' }
129
130
  it { should contain ' initrd /boot/initrd.img-3.0.0-32-virtual' }
130
131
  end
131
132
 
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.5.0.pre.1117
4
+ version: 1.5.0.pre.1134
5
5
  prerelease: 6
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: 2013-10-17 00:00:00.000000000 Z
12
+ date: 2013-10-21 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.5.0.pre.1117
21
+ version: 1.5.0.pre.1134
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.5.0.pre.1117
29
+ version: 1.5.0.pre.1134
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rake
32
32
  requirement: !ruby/object:Gem::Requirement