Class: ForemanFogProxmox::ComputeResourcesController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/foreman_fog_proxmox/compute_resources_controller.rb

Instance Method Summary collapse

Instance Method Details

#bridges_by_id_and_nodeObject

GET foreman_fog_proxmox/bridges/:compute_resource_id/:node_id



74
75
76
77
78
79
# File 'app/controllers/foreman_fog_proxmox/compute_resources_controller.rb', line 74

def bridges_by_id_and_node
  bridges = load_compute_resource(params[:compute_resource_id]).bridges(params[:node_id])
  respond_to do |format|
    format.json { render :json => bridges }
  end
end

#iso_storages_by_id_and_nodeObject

GET foreman_fog_proxmox/isostorages/:compute_resource_id/:node_id



66
67
68
69
70
71
# File 'app/controllers/foreman_fog_proxmox/compute_resources_controller.rb', line 66

def iso_storages_by_id_and_node
  storages = load_compute_resource(params[:compute_resource_id]).storages(params[:node_id], 'iso')
  respond_to do |format|
    format.json { render :json => storages }
  end
end

#isos_by_id_and_nodeObject

GET foreman_fog_proxmox/isos/:compute_resource_id/:node_id



41
42
43
44
45
46
47
# File 'app/controllers/foreman_fog_proxmox/compute_resources_controller.rb', line 41

def isos_by_id_and_node
  volumes = load_compute_resource(params[:compute_resource_id]).images_by_storage(params[:node_id],
    params[:storage], 'iso')
  respond_to do |format|
    format.json { render :json => volumes }
  end
end

#isos_by_id_and_node_and_storageObject

GET foreman_fog_proxmox/isos/:compute_resource_id/:node_id/:storage



23
24
25
26
27
28
29
# File 'app/controllers/foreman_fog_proxmox/compute_resources_controller.rb', line 23

def isos_by_id_and_node_and_storage
  volumes = load_compute_resource(params[:compute_resource_id]).images_by_storage(params[:node_id],
    params[:storage], 'iso')
  respond_to do |format|
    format.json { render :json => volumes }
  end
end

#metadataObject

GET foreman_fog_proxmox/metadata/:compute_resource_id



96
97
98
99
100
101
102
103
104
105
106
# File 'app/controllers/foreman_fog_proxmox/compute_resources_controller.rb', line 96

def 
  cr = ComputeResource.find(params[:compute_resource_id])

  render json: {
    nodes: extract_nodes(cr),
    pools: extract_pools(cr),
    storages: extract_storages(cr),
    bridges: extract_bridges(cr),
    images: extract_images(cr),
  }
end

#ostemplates_by_id_and_nodeObject

GET foreman_fog_proxmox/ostemplates/:compute_resource_id/:node_id



50
51
52
53
54
55
# File 'app/controllers/foreman_fog_proxmox/compute_resources_controller.rb', line 50

def ostemplates_by_id_and_node
  storages = load_compute_resource(params[:compute_resource_id]).storages(params[:node_id], 'vztmpl')
  respond_to do |format|
    format.json { render :json => storages }
  end
end

#ostemplates_by_id_and_node_and_storageObject

GET foreman_fog_proxmox/ostemplates/:compute_resource_id/:node_id/:storage



32
33
34
35
36
37
38
# File 'app/controllers/foreman_fog_proxmox/compute_resources_controller.rb', line 32

def ostemplates_by_id_and_node_and_storage
  volumes = load_compute_resource(params[:compute_resource_id]).images_by_storage(params[:node_id],
    params[:storage], 'vztmpl')
  respond_to do |format|
    format.json { render :json => volumes }
  end
end

#storages_by_id_and_nodeObject

GET foreman_fog_proxmox/storages/:compute_resource_id/:node_id



58
59
60
61
62
63
# File 'app/controllers/foreman_fog_proxmox/compute_resources_controller.rb', line 58

def storages_by_id_and_node
  storages = load_compute_resource(params[:compute_resource_id]).storages(params[:node_id])
  respond_to do |format|
    format.json { render :json => storages }
  end
end

#volumes_by_node_and_storageObject

GET foreman_fog_proxmox/volumes/:compute_resource_id/:node_id/:storage



82
83
84
85
86
87
88
89
90
91
92
93
# File 'app/controllers/foreman_fog_proxmox/compute_resources_controller.rb', line 82

def volumes_by_node_and_storage
  cr = ComputeResource.find(params[:compute_resource_id])
  node_id = params[:node_id]
  storage = params[:storage]

  vols = cr.storages(node_id).find { |s| s.storage == storage }&.volumes || []

  render json: Array(vols).map { |v|
    h = v.respond_to?(:as_json) ? v.as_json : v
    { volid: (h[:volid] || h['volid']), content: (h[:content] || h['content']) }
  }
end