bosh-director 1.1868.0 → 1.1975.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -69,8 +69,8 @@ module Bosh::Director
69
69
  # @param [Bosh::Director::DeploymentPlan] deployment Deployment plan
70
70
  # @param [Hash] job_spec Raw job spec from the deployment manifest
71
71
  # @return [Bosh::Director::DeploymentPlan::Job]
72
- def self.parse(deployment, job_spec)
73
- job_parser = JobSpecParser.new(deployment)
72
+ def self.parse(deployment, job_spec, event_log)
73
+ job_parser = JobSpecParser.new(deployment, event_log)
74
74
  job_parser.parse(job_spec)
75
75
  end
76
76
 
@@ -9,8 +9,9 @@ module Bosh::Director
9
9
  include IpUtil
10
10
 
11
11
  # @param [Bosh::Director::DeploymentPlan] deployment Deployment plan
12
- def initialize(deployment)
12
+ def initialize(deployment, event_log)
13
13
  @deployment = deployment
14
+ @event_log = event_log
14
15
  end
15
16
 
16
17
  # @param [Hash] job_spec Raw job spec from the deployment manifest
@@ -64,6 +65,12 @@ module Bosh::Director
64
65
  def parse_template
65
66
  template_names = safe_property(@job_spec, "template", optional: true)
66
67
  if template_names
68
+ if template_names.is_a?(Array)
69
+ @event_log.warn_deprecated(
70
+ "Please use `templates' when specifying multiple templates for a job. "\
71
+ "`template' for multiple templates will soon be unsupported."
72
+ )
73
+ end
67
74
  if template_names.is_a?(String)
68
75
  template_names = Array(template_names)
69
76
  end
@@ -41,7 +41,7 @@ module Bosh::Director
41
41
  @model = nil
42
42
  end
43
43
 
44
- def parse
44
+ def parse(event_log)
45
45
  parse_name
46
46
  parse_properties
47
47
  parse_releases
@@ -49,7 +49,7 @@ module Bosh::Director
49
49
  parse_compilation
50
50
  parse_update
51
51
  parse_resource_pools
52
- parse_jobs
52
+ parse_jobs(event_log)
53
53
  end
54
54
 
55
55
  # Looks up deployment model in DB or creates one if needed
@@ -208,7 +208,7 @@ module Bosh::Director
208
208
  # raise "No resource pools specified." if @resource_pools.empty?
209
209
  end
210
210
 
211
- def parse_jobs
211
+ def parse_jobs(event_log)
212
212
  @jobs = []
213
213
  @jobs_name_index = {}
214
214
  @jobs_canonical_name_index = Set.new
@@ -228,7 +228,7 @@ module Bosh::Director
228
228
  'deployment manifest'
229
229
  end
230
230
 
231
- job = Job.parse(self, job)
231
+ job = Job.parse(self, job, event_log)
232
232
 
233
233
  if @jobs_canonical_name_index.include?(job.canonical_name)
234
234
  raise DeploymentCanonicalJobNameTaken,
@@ -36,6 +36,14 @@ module Bosh::Director
36
36
  @last_stage.advance_and_track(task_name, &blk)
37
37
  end
38
38
 
39
+ def warn_deprecated(message)
40
+ log_entry(
41
+ 'time' => 0,
42
+ 'type' => 'deprecation',
43
+ 'message' => message,
44
+ )
45
+ end
46
+
39
47
  # Adds an error entry to the event log.
40
48
  # @param [DirectorError] error Director error
41
49
  # @return [void]
@@ -7,12 +7,12 @@ module Bosh::Director
7
7
  def initialize(job)
8
8
  @job = job
9
9
  job_template_loader = Core::Templates::JobTemplateLoader.new(Config.logger)
10
- @instance_renderer = Core::Templates::JobInstanceRenderer.new(@job, job_template_loader)
10
+ @instance_renderer = Core::Templates::JobInstanceRenderer.new(@job.templates, job_template_loader)
11
11
  end
12
12
 
13
13
  def render_job_instances(blobstore)
14
14
  @job.instances.each do |instance|
15
- rendered_job_instance = @instance_renderer.render(instance)
15
+ rendered_job_instance = @instance_renderer.render(instance.spec)
16
16
 
17
17
  configuration_hash = rendered_job_instance.configuration_hash
18
18
 
@@ -28,7 +28,7 @@ module Bosh::Director
28
28
 
29
29
  manifest_as_hash = Psych.load(@manifest)
30
30
  @deployment_plan = DeploymentPlan::Planner.new(manifest_as_hash, plan_options)
31
- @deployment_plan.parse
31
+ @deployment_plan.parse(event_log)
32
32
  logger.info('Created deployment plan')
33
33
 
34
34
  resource_pools = @deployment_plan.resource_pools
@@ -26,44 +26,21 @@ module Bosh::Director
26
26
 
27
27
  def apply_resolutions(resolutions)
28
28
  @resolutions = resolutions
29
- problems = Models::DeploymentProblem.filter(deployment: @deployment, state: 'open').all
30
- problem_ids = Set.new
29
+ problems = Models::DeploymentProblem.where(id: resolutions.keys)
31
30
 
32
- problems.each do |problem|
33
- problem_ids << problem.id.to_s
34
- unless @resolutions.has_key?(problem.id.to_s)
35
- raise CloudcheckResolutionNotProvided,
36
- "Resolution for problem #{problem.id} (#{problem.type}) is not provided"
37
- end
38
- end
31
+ begin_stage('Applying problem resolutions', problems.count)
39
32
 
40
- # We might have some resolutions for problems that are no longer open
41
- # or just some bogus problem ids, in that case we still need to mention
42
- # them in event log so end user understands what actually happened.
43
- missing_problem_ids = @resolutions.keys.to_set - problem_ids
44
-
45
- begin_stage("Applying problem resolutions", problems.size + missing_problem_ids.size)
46
33
  problems.each do |problem|
47
- apply_resolution(problem)
48
- end
34
+ if problem.state != 'open'
35
+ reason = "state is '#{problem.state}'"
36
+ track_and_log("Ignoring problem #{problem.id} (#{reason})")
37
+ elsif problem.deployment_id != @deployment.id
38
+ reason = 'not a part of this deployment'
39
+ track_and_log("Ignoring problem #{problem.id} (#{reason})")
49
40
 
50
- missing_problem_ids.each do |problem_id|
51
- if problem_id !~ /^\d+$/
52
- reason = "malformed id"
53
41
  else
54
- problem = Models::DeploymentProblem[problem_id.to_i]
55
- if problem.nil?
56
- reason = "not found"
57
- elsif problem.state != "open"
58
- reason = "state is '#{problem.state}'"
59
- elsif problem.deployment_id != @deployment.id
60
- reason = "not a part of this deployment"
61
- else
62
- reason = "reason unknown"
63
- end
42
+ apply_resolution(problem)
64
43
  end
65
-
66
- track_and_log("Ignoring problem #{problem_id} (#{reason})") { }
67
44
  end
68
45
  @resolved_count
69
46
  end
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Director
3
- VERSION = '1.1868.0'
3
+ VERSION = '1.1975.0'
4
4
  end
5
5
  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.1868.0
4
+ version: 1.1975.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-01-29 00:00:00.000000000 Z
12
+ date: 2014-02-12 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.1868.0
37
+ version: 1.1975.0
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.1868.0
45
+ version: 1.1975.0
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.1868.0
53
+ version: 1.1975.0
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.1868.0
61
+ version: 1.1975.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: bosh-director-core
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.1868.0
69
+ version: 1.1975.0
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.1868.0
77
+ version: 1.1975.0
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: bosh_common
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.1868.0
85
+ version: 1.1975.0
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.1868.0
93
+ version: 1.1975.0
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: bosh_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.1868.0
101
+ version: 1.1975.0
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.1868.0
109
+ version: 1.1975.0
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: bosh_openstack_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.1868.0
117
+ version: 1.1975.0
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.1868.0
125
+ version: 1.1975.0
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: bosh_aws_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.1868.0
133
+ version: 1.1975.0
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.1868.0
141
+ version: 1.1975.0
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: bosh_vsphere_cpi
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -146,7 +146,7 @@ dependencies:
146
146
  requirements:
147
147
  - - ~>
148
148
  - !ruby/object:Gem::Version
149
- version: 1.1868.0
149
+ version: 1.1975.0
150
150
  type: :runtime
151
151
  prerelease: false
152
152
  version_requirements: !ruby/object:Gem::Requirement
@@ -154,7 +154,7 @@ dependencies:
154
154
  requirements:
155
155
  - - ~>
156
156
  - !ruby/object:Gem::Version
157
- version: 1.1868.0
157
+ version: 1.1975.0
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: eventmachine
160
160
  requirement: !ruby/object:Gem::Requirement
@@ -477,7 +477,7 @@ dependencies:
477
477
  version: '1.0'
478
478
  description: ! 'BOSH Director
479
479
 
480
- f69423'
480
+ 9c66c4'
481
481
  email: support@cloudfoundry.com
482
482
  executables:
483
483
  - bosh-director
@@ -722,7 +722,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
722
722
  version: '0'
723
723
  segments:
724
724
  - 0
725
- hash: -2788441104523827358
725
+ hash: 396729707528319626
726
726
  requirements: []
727
727
  rubyforge_project:
728
728
  rubygems_version: 1.8.23