bosh-director 1.5.0.pre.1390 → 1.5.0.pre.1391

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,16 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table :rendered_templates_archives do
4
+ primary_key :id
5
+ foreign_key :instance_id, :instances, null: false
6
+
7
+ String :blob_id, null: false
8
+ String :checksum, null: false
9
+
10
+ Time :created_at, null: false
11
+
12
+ index :blob_id
13
+ index :created_at
14
+ end
15
+ end
16
+ end
@@ -3,19 +3,39 @@ require 'bosh/director/compiled_package'
3
3
  module Bosh::Director::CompiledPackage
4
4
 
5
5
  class CompiledPackageInserter
6
+ def initialize(blobstore_client)
7
+ @blobstore_client = blobstore_client
8
+ end
6
9
 
7
10
  def insert(compiled_package, release_version)
8
11
  package = Bosh::Director::Models::Package[fingerprint: compiled_package.package_fingerprint]
9
12
  stemcell = Bosh::Director::Models::Stemcell[sha1: compiled_package.stemcell_sha1]
10
13
 
11
- Bosh::Director::Models::CompiledPackage.create(
12
- blobstore_id: compiled_package.blobstore_id,
13
- package_id: package.id,
14
- stemcell_id: stemcell.id,
15
- sha1: compiled_package.sha1,
14
+ unless Bosh::Director::Models::CompiledPackage[
15
+ package: package,
16
+ stemcell: stemcell,
16
17
  dependency_key: release_version.package_dependency_key(package.name),
17
- build: Bosh::Director::Models::CompiledPackage.generate_build_number(package, stemcell),
18
- )
18
+ ]
19
+
20
+ oid = File.open(compiled_package.blob_path) do |f|
21
+ @blobstore_client.create(f)
22
+ end
23
+
24
+ begin
25
+ Bosh::Director::Models::CompiledPackage.create(
26
+ blobstore_id: oid,
27
+ package: package,
28
+ stemcell: stemcell,
29
+ sha1: compiled_package.sha1,
30
+ dependency_key: release_version.package_dependency_key(package.name),
31
+ build: Bosh::Director::Models::CompiledPackage.generate_build_number(package, stemcell),
32
+ )
33
+ rescue
34
+ @blobstore_client.delete(oid)
35
+ raise
36
+ end
37
+ end
38
+
19
39
  end
20
40
 
21
41
  end
@@ -10,36 +10,28 @@ module Bosh::Director
10
10
  :import_compiled_packages
11
11
  end
12
12
 
13
- def initialize(export_dir, options={})
13
+ def initialize(export_dir)
14
14
  @export_dir = export_dir
15
15
 
16
- @blobstore_client = options.fetch(:blobstore_client) { Bosh::Director::App.instance.blobstores.blobstore }
16
+ @blobstore_client = Bosh::Director::App.instance.blobstores.blobstore
17
17
  end
18
18
 
19
19
  def perform
20
20
  export = Bosh::Director::CompiledPackage::CompiledPackagesExport.new(file: export_path)
21
21
 
22
22
  export.extract do |manifest, packages|
23
- packages.each { |p| p.check_blob_sha }
24
-
25
- packages.each do |package|
26
- File.open(package.blob_path) do |f|
27
- blobstore_client.create(f, package.blobstore_id)
28
- end
29
- end
30
-
31
23
  release_name = manifest.fetch('release_name')
32
- release_version = manifest.fetch('release_version')
24
+ release_version_version = manifest.fetch('release_version')
33
25
 
34
26
  release = Bosh::Director::Models::Release[name: release_name]
35
- release_version = Bosh::Director::Models::ReleaseVersion[release_id: release.id, version: release_version]
36
27
 
37
- inserter = Bosh::Director::CompiledPackage::CompiledPackageInserter.new
28
+ release_version = Bosh::Director::Models::ReleaseVersion[version: release_version_version, release: release]
29
+ inserter = Bosh::Director::CompiledPackage::CompiledPackageInserter.new(@blobstore_client)
30
+
31
+ packages.each { |p| p.check_blob_sha }
38
32
 
39
- Bosh::Director::Config.db.transaction do
40
- packages.each do |package|
41
- inserter.insert(package, release_version)
42
- end
33
+ packages.each do |package|
34
+ inserter.insert(package, release_version)
43
35
  end
44
36
  end
45
37
  ensure
@@ -5,6 +5,7 @@ module Bosh::Director::Models
5
5
  many_to_one :deployment
6
6
  many_to_one :vm
7
7
  one_to_many :persistent_disks
8
+ one_to_many :rendered_templates_archives
8
9
 
9
10
  def validate
10
11
  validates_presence [:deployment_id, :job, :index, :state]
@@ -0,0 +1,5 @@
1
+ module Bosh::Director::Models
2
+ class RenderedTemplatesArchive < Sequel::Model(Bosh::Director::Config.db)
3
+ many_to_one :instance
4
+ end
5
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Bosh
4
4
  module Director
5
- VERSION = '1.5.0.pre.1390'
5
+ VERSION = '1.5.0.pre.1391'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh-director
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0.pre.1390
4
+ version: 1.5.0.pre.1391
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-11-21 00:00:00.000000000 Z
12
+ date: 2013-11-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bcrypt-ruby
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 1.5.0.pre.1390
37
+ version: 1.5.0.pre.1391
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 1.5.0.pre.1390
45
+ version: 1.5.0.pre.1391
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: bosh-core
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: 1.5.0.pre.1390
53
+ version: 1.5.0.pre.1391
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 1.5.0.pre.1390
61
+ version: 1.5.0.pre.1391
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: bosh_common
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 1.5.0.pre.1390
69
+ version: 1.5.0.pre.1391
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,7 +74,7 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: 1.5.0.pre.1390
77
+ version: 1.5.0.pre.1391
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: bosh_cpi
80
80
  requirement: !ruby/object:Gem::Requirement
@@ -82,7 +82,7 @@ dependencies:
82
82
  requirements:
83
83
  - - ~>
84
84
  - !ruby/object:Gem::Version
85
- version: 1.5.0.pre.1390
85
+ version: 1.5.0.pre.1391
86
86
  type: :runtime
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +90,7 @@ dependencies:
90
90
  requirements:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
- version: 1.5.0.pre.1390
93
+ version: 1.5.0.pre.1391
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: bosh_openstack_cpi
96
96
  requirement: !ruby/object:Gem::Requirement
@@ -98,7 +98,7 @@ dependencies:
98
98
  requirements:
99
99
  - - ~>
100
100
  - !ruby/object:Gem::Version
101
- version: 1.5.0.pre.1390
101
+ version: 1.5.0.pre.1391
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - ~>
108
108
  - !ruby/object:Gem::Version
109
- version: 1.5.0.pre.1390
109
+ version: 1.5.0.pre.1391
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: bosh_aws_cpi
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +114,7 @@ dependencies:
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: 1.5.0.pre.1390
117
+ version: 1.5.0.pre.1391
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ dependencies:
122
122
  requirements:
123
123
  - - ~>
124
124
  - !ruby/object:Gem::Version
125
- version: 1.5.0.pre.1390
125
+ version: 1.5.0.pre.1391
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: bosh_vsphere_cpi
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  requirements:
131
131
  - - ~>
132
132
  - !ruby/object:Gem::Version
133
- version: 1.5.0.pre.1390
133
+ version: 1.5.0.pre.1391
134
134
  type: :runtime
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
@@ -138,7 +138,7 @@ dependencies:
138
138
  requirements:
139
139
  - - ~>
140
140
  - !ruby/object:Gem::Version
141
- version: 1.5.0.pre.1390
141
+ version: 1.5.0.pre.1391
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: eventmachine
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -461,7 +461,7 @@ dependencies:
461
461
  version: '0'
462
462
  description: ! 'BOSH Director
463
463
 
464
- 70ab6e'
464
+ a7d75a'
465
465
  email: support@cloudfoundry.com
466
466
  executables:
467
467
  - bosh-director
@@ -499,6 +499,7 @@ files:
499
499
  - db/migrations/director/20130409235338_snapshot.rb
500
500
  - db/migrations/director/20130530164918_add_paused_flag_to_instance.rb
501
501
  - db/migrations/director/20130531172604_add_director_attributes.rb
502
+ - db/migrations/director/20131121182231_add_rendered_templates_archives.rb
502
503
  - db/migrations/dns/20120123234908_initial.rb
503
504
  - lib/bosh/director.rb
504
505
  - lib/bosh/director/agent_client.rb
@@ -639,6 +640,7 @@ files:
639
640
  - lib/bosh/director/models/persistent_disk.rb
640
641
  - lib/bosh/director/models/release.rb
641
642
  - lib/bosh/director/models/release_version.rb
643
+ - lib/bosh/director/models/rendered_templates_archive.rb
642
644
  - lib/bosh/director/models/snapshot.rb
643
645
  - lib/bosh/director/models/stemcell.rb
644
646
  - lib/bosh/director/models/task.rb