bosh-director 1.1868.0 → 1.1975.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.
@@ -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