Class: Bosh::Director::Api::DeploymentManager
- Inherits:
-
Object
- Object
- Bosh::Director::Api::DeploymentManager
show all
- Includes:
- ApiHelper
- Defined in:
- lib/bosh/director/api/deployment_manager.rb
Constant Summary
Constants included
from ApiHelper
ApiHelper::READ_CHUNK_SIZE
Instance Method Summary
collapse
Methods included from ApiHelper
#check_available_disk_space, #json_decode, #json_encode, #send_disposable_file, #start_task, #write_file
Instance Method Details
#create_deployment(username, deployment_manifest, cloud_config, options = {}) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/bosh/director/api/deployment_manager.rb', line 14
def create_deployment(username, deployment_manifest, cloud_config, options = {})
random_name = "deployment-#{SecureRandom.uuid}"
deployment_manifest_dir = Dir::tmpdir
deployment_manifest_file = File.join(deployment_manifest_dir, random_name)
unless check_available_disk_space(deployment_manifest_dir, deployment_manifest.size)
raise NotEnoughDiskSpace, 'Uploading deployment manifest failed. ' +
"Insufficient space on BOSH director in #{deployment_manifest_dir}"
end
write_file(deployment_manifest_file, deployment_manifest)
cloud_config_id = cloud_config.nil? ? nil : cloud_config.id
JobQueue.new.enqueue(username, Jobs::UpdateDeployment, 'create deployment', [deployment_manifest_file, cloud_config_id, options])
end
|
#delete_deployment(username, deployment, options = {}) ⇒ Object
29
30
31
|
# File 'lib/bosh/director/api/deployment_manager.rb', line 29
def delete_deployment(username, deployment, options = {})
JobQueue.new.enqueue(username, Jobs::DeleteDeployment, "delete deployment #{deployment.name}", [deployment.name, options])
end
|
#deployment_to_json(deployment) ⇒ Object
33
34
35
36
37
38
39
|
# File 'lib/bosh/director/api/deployment_manager.rb', line 33
def deployment_to_json(deployment)
result = {
'manifest' => deployment.manifest,
}
Yajl::Encoder.encode(result)
end
|
#deployment_vms_to_json(deployment) ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/bosh/director/api/deployment_manager.rb', line 41
def deployment_vms_to_json(deployment)
vms = []
filters = {:deployment_id => deployment.id}
Models::Vm.eager(:instance).filter(filters).all.each do |vm|
instance = vm.instance
vms << {
'agent_id' => vm.agent_id,
'cid' => vm.cid,
'job' => instance ? instance.job : nil,
'index' => instance ? instance.index : nil
}
end
Yajl::Encoder.encode(vms)
end
|
10
11
12
|
# File 'lib/bosh/director/api/deployment_manager.rb', line 10
def find_by_name(name)
DeploymentLookup.new.by_name(name)
end
|