-
Notifications
You must be signed in to change notification settings - Fork 144
Expand file tree
/
Copy pathcontainer_volumes_controller.rb
More file actions
51 lines (43 loc) · 1.87 KB
/
container_volumes_controller.rb
File metadata and controls
51 lines (43 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
module Api
class ContainerVolumesController < BaseController
def attach_resource(type, id, data = {})
api_resource(type, id, "Attaching Resource to") do |container_volume|
vm_id = data["vm_id"] || params[:c_id]
raise BadRequestError, "Must specify a vm_id" if vm_id.blank?
pvc_name = data["pvc_name"] || params.dig(:resource, :pvc_name)
volume_name = data["volume_name"] || params.dig(:resource, :volume_name)
vm = resource_search(vm_id, :vms)
unless vm.supports?(:attach)
raise BadRequestError, "VM does not support attach"
end
{:task_id => container_volume.attach_volume_queue(User.current_userid, vm, pvc_name, volume_name)}
end
rescue => err
action_result(false, err.to_s)
end
def create_and_attach_volume_resource(type, id, data = {})
api_resource(type, id, "Attaching Resource to") do |container_volume|
vm_id = data["vm_id"] || params[:c_id]
raise BadRequestError, "Must specify a vm_id" if vm_id.blank?
vm = resource_search(vm_id, :vms)
unless vm.supports?(:attach)
raise BadRequestError, "VM does not support attach"
end
{:task_id => container_volume.create_pvc_queue(User.current_userid, vm, data)}
end
rescue => err
action_result(false, err.to_s)
end
def detach_resource(type, id, data = {})
api_resource(type, id, "Detaching Resource to") do |container_volume|
vm_id = data["vm_id"] || params[:c_id]
raise BadRequestError, "Must specify a vm_id" if data["vm_id"].blank?
volume_name = data["volume_name"] || params.dig(:resource, :volume_name)
vm = resource_search(vm_id, :vms)
{:task_id => container_volume.detach_volume_queue(User.current_userid, vm, volume_name)}
end
rescue => err
action_result(false, err.to_s)
end
end
end