bosh-director 1.2807.0 → 1.2809.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.
@@ -54,9 +54,9 @@ Bosh::Director::App.new(config)
54
54
  logger = Logging::Logger.new('DirectorWorker')
55
55
  resque_logging = config.hash.fetch('resque', {}).fetch('logging', {})
56
56
  if resque_logging.has_key?('file')
57
- logger.add_appenders(Logging.appenders.file('DirectorWorkerFile', filename: resque_logging.fetch('file')))
57
+ logger.add_appenders(Logging.appenders.file('DirectorWorkerFile', filename: resque_logging.fetch('file'), layout: ThreadFormatter.layout))
58
58
  else
59
- logger.add_appenders(Logging.appenders.stdout('DirectorWorkerIO'))
59
+ logger.add_appenders(Logging.appenders.stdout('DirectorWorkerIO', layout: ThreadFormatter.layout))
60
60
  end
61
61
  logger.level = Logging.levelify(resque_logging.fetch('level', 'info'))
62
62
  Resque.logger = logger
@@ -0,0 +1,38 @@
1
+ Sequel.migration do
2
+ up do
3
+ # mysql doesn't let us drop tasks' user_id column because it has a foreign key,
4
+ # and sequel won't let us drop the foreign key, so we're recreating the table
5
+ # from scratch. Sorry.
6
+
7
+ create_table :tasks_new do
8
+ primary_key :id
9
+ String :state, :null => false
10
+ Time :timestamp, :null => false
11
+ String :description, :null => false
12
+ String :result, :text => true, :null => true
13
+ String :output, :null => true
14
+ Time :checkpoint_time
15
+ String :type, :null => false
16
+ String :username, :null => true
17
+ end
18
+
19
+ run "INSERT INTO tasks_new
20
+ (state, timestamp, description, result, output, checkpoint_time, type, username)
21
+ SELECT t.state, t.timestamp, t.description, t.result, t.output, t.checkpoint_time, t.type, u.username
22
+ FROM tasks t
23
+ LEFT OUTER JOIN users u ON t.user_id = u.id"
24
+
25
+ drop_table :tasks
26
+ rename_table :tasks_new, :tasks
27
+
28
+ alter_table :tasks do
29
+ add_index :state
30
+ add_index :timestamp
31
+ add_index :description
32
+ end
33
+ end
34
+
35
+ down do
36
+ raise Sequel::Error, "Irreversible migration, tasks:user_id might contain nulls so we cannot enforce 'not null' constraint"
37
+ end
38
+ end
@@ -5,12 +5,12 @@ module Bosh::Director
5
5
  class CompiledPackageGroupManager
6
6
  include ApiHelper
7
7
 
8
- def create_from_file_path(user, path)
8
+ def create_from_file_path(username, path)
9
9
  unless File.exists?(path)
10
10
  raise DirectorError, "Failed to import compiled packages: file not found - #{path}"
11
11
  end
12
12
 
13
- JobQueue.new.enqueue(user, Jobs::ImportCompiledPackages, 'import compiled packages', [path])
13
+ JobQueue.new.enqueue(username, Jobs::ImportCompiledPackages, 'import compiled packages', [path])
14
14
  end
15
15
  end
16
16
  end
@@ -11,7 +11,7 @@ module Bosh::Director
11
11
  DeploymentLookup.new.by_name(name)
12
12
  end
13
13
 
14
- def create_deployment(user, deployment_manifest, options = {})
14
+ def create_deployment(username, deployment_manifest, options = {})
15
15
  random_name = "deployment-#{SecureRandom.uuid}"
16
16
  deployment_manifest_dir = Dir::tmpdir
17
17
  deployment_manifest_file = File.join(deployment_manifest_dir, random_name)
@@ -22,11 +22,11 @@ module Bosh::Director
22
22
 
23
23
  write_file(deployment_manifest_file, deployment_manifest)
24
24
 
25
- JobQueue.new.enqueue(user, Jobs::UpdateDeployment, 'create deployment', [deployment_manifest_file, options])
25
+ JobQueue.new.enqueue(username, Jobs::UpdateDeployment, 'create deployment', [deployment_manifest_file, options])
26
26
  end
27
27
 
28
- def delete_deployment(user, deployment, options = {})
29
- JobQueue.new.enqueue(user, Jobs::DeleteDeployment, "delete deployment #{deployment.name}", [deployment.name, options])
28
+ def delete_deployment(username, deployment, options = {})
29
+ JobQueue.new.enqueue(username, Jobs::DeleteDeployment, "delete deployment #{deployment.name}", [deployment.name, options])
30
30
  end
31
31
 
32
32
  def deployment_to_json(deployment)
@@ -39,7 +39,7 @@ module Bosh::Director
39
39
  AgentClient.with_defaults(vm.agent_id)
40
40
  end
41
41
 
42
- def fetch_logs(user, deployment_name, job, index, options = {})
42
+ def fetch_logs(username, deployment_name, job, index, options = {})
43
43
  if deployment_name.nil? || job.nil? || index.nil?
44
44
  raise DirectorError,
45
45
  'deployment, job and index parameters are required'
@@ -47,14 +47,14 @@ module Bosh::Director
47
47
 
48
48
  instance = find_by_name(deployment_name, job, index)
49
49
 
50
- JobQueue.new.enqueue(user, Jobs::FetchLogs, 'fetch logs', [instance.id, options])
50
+ JobQueue.new.enqueue(username, Jobs::FetchLogs, 'fetch logs', [instance.id, options])
51
51
  end
52
52
 
53
- def ssh(user, options)
53
+ def ssh(username, options)
54
54
  description = "ssh: #{options['command']}:#{options['target']}"
55
55
  deployment = DeploymentLookup.new.by_name(options['deployment_name'])
56
56
 
57
- JobQueue.new.enqueue(user, Jobs::Ssh, description, [deployment.id, options])
57
+ JobQueue.new.enqueue(username, Jobs::Ssh, description, [deployment.id, options])
58
58
  end
59
59
  end
60
60
  end
@@ -6,10 +6,10 @@ module Bosh::Director
6
6
  @deployment_manager = deployment_manager
7
7
  end
8
8
 
9
- def perform_scan(user, deployment_name)
9
+ def perform_scan(username, deployment_name)
10
10
  deployment = @deployment_manager.find_by_name(deployment_name)
11
11
 
12
- JobQueue.new.enqueue(user, Jobs::CloudCheck::Scan, 'scan cloud', [deployment.name])
12
+ JobQueue.new.enqueue(username, Jobs::CloudCheck::Scan, 'scan cloud', [deployment.name])
13
13
  end
14
14
 
15
15
  def get_problems(deployment_name)
@@ -23,15 +23,15 @@ module Bosh::Director
23
23
  Models::DeploymentProblem.filter(filters).order(:created_at).all
24
24
  end
25
25
 
26
- def apply_resolutions(user, deployment_name, resolutions)
26
+ def apply_resolutions(username, deployment_name, resolutions)
27
27
  deployment = @deployment_manager.find_by_name(deployment_name)
28
- JobQueue.new.enqueue(user, Jobs::CloudCheck::ApplyResolutions, 'apply resolutions', [deployment.name, resolutions])
28
+ JobQueue.new.enqueue(username, Jobs::CloudCheck::ApplyResolutions, 'apply resolutions', [deployment.name, resolutions])
29
29
  end
30
30
 
31
- def scan_and_fix(user, deployment_name, jobs)
31
+ def scan_and_fix(username, deployment_name, jobs)
32
32
  deployment = @deployment_manager.find_by_name(deployment_name)
33
33
 
34
- JobQueue.new.enqueue(user, Jobs::CloudCheck::ScanAndFix, 'scan and fix', [deployment.name, jobs, Bosh::Director::Config.fix_stateful_nodes])
34
+ JobQueue.new.enqueue(username, Jobs::CloudCheck::ScanAndFix, 'scan and fix', [deployment.name, jobs, Bosh::Director::Config.fix_stateful_nodes])
35
35
  end
36
36
  end
37
37
  end
@@ -46,21 +46,21 @@ module Bosh::Director
46
46
  release_version
47
47
  end
48
48
 
49
- def create_release_from_url(user, release_url, options)
49
+ def create_release_from_url(username, release_url, options)
50
50
  options[:remote] = true
51
- JobQueue.new.enqueue(user, Jobs::UpdateRelease, 'create release', [release_url, options])
51
+ JobQueue.new.enqueue(username, Jobs::UpdateRelease, 'create release', [release_url, options])
52
52
  end
53
53
 
54
- def create_release_from_file_path(user, release_path, options)
54
+ def create_release_from_file_path(username, release_path, options)
55
55
  unless File.exists?(release_path)
56
56
  raise DirectorError, "Failed to create release: file not found - #{release_path}"
57
57
  end
58
58
 
59
- JobQueue.new.enqueue(user, Jobs::UpdateRelease, 'create release', [release_path, options])
59
+ JobQueue.new.enqueue(username, Jobs::UpdateRelease, 'create release', [release_path, options])
60
60
  end
61
61
 
62
- def delete_release(user, release, options = {})
63
- JobQueue.new.enqueue(user, Jobs::DeleteRelease, "delete release: #{release.name}", [release.name, options])
62
+ def delete_release(username, release, options = {})
63
+ JobQueue.new.enqueue(username, Jobs::DeleteRelease, "delete release: #{release.name}", [release.name, options])
64
64
  end
65
65
  end
66
66
  end
@@ -1,20 +1,20 @@
1
1
  module Bosh::Director
2
2
  module Api
3
3
  class SnapshotManager
4
- def create_deployment_snapshot_task(user, deployment, options = {})
5
- JobQueue.new.enqueue(user, Jobs::SnapshotDeployment, 'snapshot deployment', [deployment.name, options])
4
+ def create_deployment_snapshot_task(username, deployment, options = {})
5
+ JobQueue.new.enqueue(username, Jobs::SnapshotDeployment, 'snapshot deployment', [deployment.name, options])
6
6
  end
7
7
 
8
- def create_snapshot_task(user, instance, options)
9
- JobQueue.new.enqueue(user, Jobs::CreateSnapshot, 'create snapshot', [instance.id, options])
8
+ def create_snapshot_task(username, instance, options)
9
+ JobQueue.new.enqueue(username, Jobs::CreateSnapshot, 'create snapshot', [instance.id, options])
10
10
  end
11
11
 
12
- def delete_deployment_snapshots_task(user, deployment)
13
- JobQueue.new.enqueue(user, Jobs::DeleteDeploymentSnapshots, 'delete deployment snapshots', [deployment.name])
12
+ def delete_deployment_snapshots_task(username, deployment)
13
+ JobQueue.new.enqueue(username, Jobs::DeleteDeploymentSnapshots, 'delete deployment snapshots', [deployment.name])
14
14
  end
15
15
 
16
- def delete_snapshots_task(user, snapshot_cids)
17
- JobQueue.new.enqueue(user, Jobs::DeleteSnapshots, 'delete snapshot', [snapshot_cids])
16
+ def delete_snapshots_task(username, snapshot_cids)
17
+ JobQueue.new.enqueue(username, Jobs::DeleteSnapshots, 'delete snapshot', [snapshot_cids])
18
18
  end
19
19
 
20
20
  def find_by_cid(deployment, snapshot_cid)
@@ -21,22 +21,22 @@ module Bosh::Director
21
21
  false
22
22
  end
23
23
 
24
- def create_stemcell_from_url(user, stemcell_url)
25
- JobQueue.new.enqueue(user, Jobs::UpdateStemcell, 'create stemcell', [stemcell_url, { remote: true }])
24
+ def create_stemcell_from_url(username, stemcell_url)
25
+ JobQueue.new.enqueue(username, Jobs::UpdateStemcell, 'create stemcell', [stemcell_url, { remote: true }])
26
26
  end
27
27
 
28
- def create_stemcell_from_file_path(user, stemcell_path)
28
+ def create_stemcell_from_file_path(username, stemcell_path)
29
29
  unless File.exists?(stemcell_path)
30
30
  raise DirectorError, "Failed to create stemcell: file not found - #{stemcell_path}"
31
31
  end
32
32
 
33
- JobQueue.new.enqueue(user, Jobs::UpdateStemcell, 'create stemcell', [stemcell_path])
33
+ JobQueue.new.enqueue(username, Jobs::UpdateStemcell, 'create stemcell', [stemcell_path])
34
34
  end
35
35
 
36
- def delete_stemcell(user, stemcell, options={})
36
+ def delete_stemcell(username, stemcell, options={})
37
37
  description = "delete stemcell: #{stemcell.name}/#{stemcell.version}"
38
38
 
39
- JobQueue.new.enqueue(user, Jobs::DeleteStemcell, description, [stemcell.name, stemcell.version, options])
39
+ JobQueue.new.enqueue(username, Jobs::DeleteStemcell, description, [stemcell.name, stemcell.version, options])
40
40
  end
41
41
  end
42
42
  end
@@ -4,8 +4,7 @@ module Bosh::Director
4
4
  module Api
5
5
  class TaskHelper
6
6
  def create_task(username, type, description)
7
- user = Models::User[:username => username]
8
- task = Models::Task.create(:user => user,
7
+ task = Models::Task.create(:username => username,
9
8
  :type => type,
10
9
  :description => description,
11
10
  :state => :queued,
@@ -25,7 +25,7 @@ module Bosh::Director
25
25
  "description" => task.description,
26
26
  "timestamp" => task.timestamp.to_i,
27
27
  "result" => task.result,
28
- "user" => task.user ? task.user.username : "admin"
28
+ "user" => task.username || "admin"
29
29
  }
30
30
  end
31
31
 
@@ -61,4 +61,4 @@ module Bosh::Director
61
61
  end
62
62
  end
63
63
  end
64
- end
64
+ end
@@ -1,8 +1,8 @@
1
1
  module Bosh::Director
2
2
  module Api
3
3
  class VmStateManager
4
- def fetch_vm_state(user, deployment, format)
5
- JobQueue.new.enqueue(user, Jobs::VmState, 'retrieve vm-stats', [deployment.id, format])
4
+ def fetch_vm_state(username, deployment, format)
5
+ JobQueue.new.enqueue(username, Jobs::VmState, 'retrieve vm-stats', [deployment.id, format])
6
6
  end
7
7
  end
8
8
  end
@@ -1,5 +1,6 @@
1
1
  require 'fileutils'
2
2
  require 'logging'
3
+ require 'bosh/director/dns_helper'
3
4
 
4
5
  module Bosh::Director
5
6
 
@@ -5,8 +5,8 @@ module Bosh::Director
5
5
  # Abstracts the resque system.
6
6
 
7
7
  class JobQueue
8
- def enqueue(user, job_class, description, params)
9
- task = Api::TaskHelper.new.create_task(user, job_class.job_type, description)
8
+ def enqueue(username, job_class, description, params)
9
+ task = Api::TaskHelper.new.create_task(username, job_class.job_type, description)
10
10
 
11
11
  Resque.enqueue(job_class, task.id, *params)
12
12
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  module Bosh::Director::Models
4
4
  class Task < Sequel::Model(Bosh::Director::Config.db)
5
- many_to_one :user
6
5
  def validate
7
6
  validates_presence [:state, :timestamp, :description]
8
7
  end
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Director
3
- VERSION = '1.2807.0'
3
+ VERSION = '1.2809.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.2807.0
4
+ version: 1.2809.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-12-25 00:00:00.000000000 Z
12
+ date: 2015-01-06 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.2807.0
37
+ version: 1.2809.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.2807.0
45
+ version: 1.2809.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.2807.0
53
+ version: 1.2809.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.2807.0
61
+ version: 1.2809.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.2807.0
69
+ version: 1.2809.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.2807.0
77
+ version: 1.2809.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.2807.0
85
+ version: 1.2809.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.2807.0
93
+ version: 1.2809.0
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: bosh-template
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.2807.0
101
+ version: 1.2809.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.2807.0
109
+ version: 1.2809.0
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: bosh_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.2807.0
117
+ version: 1.2809.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.2807.0
125
+ version: 1.2809.0
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: bosh_openstack_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.2807.0
133
+ version: 1.2809.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.2807.0
141
+ version: 1.2809.0
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: bosh_aws_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.2807.0
149
+ version: 1.2809.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.2807.0
157
+ version: 1.2809.0
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: bosh_vsphere_cpi
160
160
  requirement: !ruby/object:Gem::Requirement
@@ -162,7 +162,7 @@ dependencies:
162
162
  requirements:
163
163
  - - ~>
164
164
  - !ruby/object:Gem::Version
165
- version: 1.2807.0
165
+ version: 1.2809.0
166
166
  type: :runtime
167
167
  prerelease: false
168
168
  version_requirements: !ruby/object:Gem::Requirement
@@ -170,7 +170,7 @@ dependencies:
170
170
  requirements:
171
171
  - - ~>
172
172
  - !ruby/object:Gem::Version
173
- version: 1.2807.0
173
+ version: 1.2809.0
174
174
  - !ruby/object:Gem::Dependency
175
175
  name: bosh_warden_cpi
176
176
  requirement: !ruby/object:Gem::Requirement
@@ -178,7 +178,7 @@ dependencies:
178
178
  requirements:
179
179
  - - ~>
180
180
  - !ruby/object:Gem::Version
181
- version: 1.2807.0
181
+ version: 1.2809.0
182
182
  type: :runtime
183
183
  prerelease: false
184
184
  version_requirements: !ruby/object:Gem::Requirement
@@ -186,7 +186,7 @@ dependencies:
186
186
  requirements:
187
187
  - - ~>
188
188
  - !ruby/object:Gem::Version
189
- version: 1.2807.0
189
+ version: 1.2809.0
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: bosh_vcloud_cpi
192
192
  requirement: !ruby/object:Gem::Requirement
@@ -525,7 +525,7 @@ dependencies:
525
525
  version: '0'
526
526
  description: ! 'BOSH Director
527
527
 
528
- 0b041c'
528
+ f3cadb'
529
529
  email: support@cloudfoundry.com
530
530
  executables:
531
531
  - bosh-director
@@ -569,6 +569,7 @@ files:
569
569
  - db/migrations/director/20140124225348_proper_pk_for_attributes.rb
570
570
  - db/migrations/director/20140731215410_increase_text_limit_for_data_columns.rb
571
571
  - db/migrations/director/20141204234517_add_cloud_properties_to_persistent_disk.rb
572
+ - db/migrations/director/20150102234124_denormalize_task_user_id_to_task_username.rb
572
573
  - db/migrations/dns/20120123234908_initial.rb
573
574
  - lib/bosh/director.rb
574
575
  - lib/bosh/director/agent_client.rb
@@ -793,7 +794,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
793
794
  version: '0'
794
795
  segments:
795
796
  - 0
796
- hash: -3015350443129074724
797
+ hash: 182295446250487425
797
798
  requirements: []
798
799
  rubyforge_project:
799
800
  rubygems_version: 1.8.23