Class: ForemanDocker::Docker
- Inherits:
-
ComputeResource
- Object
- ComputeResource
- ForemanDocker::Docker
- Defined in:
- app/models/foreman_docker/docker.rb
Class Method Summary collapse
Instance Method Summary collapse
- #available_images ⇒ Object
- #capabilities ⇒ Object
- #create_vm(args = {}) ⇒ Object
- #image(id) ⇒ Object
-
#max_cpu_count ⇒ Object
FIXME.
- #max_memory ⇒ Object
- #provided_attributes ⇒ Object
- #provider_friendly_name ⇒ Object
- #supports_update? ⇒ Boolean
- #vm_instance_defaults ⇒ Object
Class Method Details
.model_name ⇒ Object
8 9 10 |
# File 'app/models/foreman_docker/docker.rb', line 8 def self.model_name ComputeResource.model_name end |
Instance Method Details
#available_images ⇒ Object
33 34 35 |
# File 'app/models/foreman_docker/docker.rb', line 33 def available_images client.images end |
#capabilities ⇒ Object
12 13 14 |
# File 'app/models/foreman_docker/docker.rb', line 12 def capabilities [:image] end |
#create_vm(args = {}) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'app/models/foreman_docker/docker.rb', line 45 def create_vm args = {} args['cmd'] = Array.wrap( args.delete('cmd') ) = vm_instance_defaults.merge(args) logger.debug("creating Docker with the following options: #{.inspect}") client.servers.create rescue Fog::Errors::Error => e logger.debug "Fog error: #{e.}\n " + e.backtrace.join("\n ") errors.add(:base, e..to_s) false end |
#image(id) ⇒ Object
37 38 39 |
# File 'app/models/foreman_docker/docker.rb', line 37 def image(id) client.image.get(id) || raise(ActiveRecord::RecordNotFound) end |
#max_cpu_count ⇒ Object
FIXME
25 26 27 |
# File 'app/models/foreman_docker/docker.rb', line 25 def max_cpu_count 8 end |
#max_memory ⇒ Object
29 30 31 |
# File 'app/models/foreman_docker/docker.rb', line 29 def max_memory 16*1024*1024*1024 end |
#provided_attributes ⇒ Object
20 21 22 |
# File 'app/models/foreman_docker/docker.rb', line 20 def provided_attributes super.merge({:mac => :mac}) end |
#provider_friendly_name ⇒ Object
41 42 43 |
# File 'app/models/foreman_docker/docker.rb', line 41 def provider_friendly_name "Docker" end |
#supports_update? ⇒ Boolean
16 17 18 |
# File 'app/models/foreman_docker/docker.rb', line 16 def supports_update? false end |
#vm_instance_defaults ⇒ Object
56 57 58 |
# File 'app/models/foreman_docker/docker.rb', line 56 def vm_instance_defaults ActiveSupport::HashWithIndifferentAccess.new('name' => "foreman_#{Time.now.to_i}", 'cmd' => ['/bin/bash']) end |