Sha256: 34a67e3ec32fca2733577f288086cd87458a5872498f7d139de154ecc9d51e66

Contents?: true

Size: 993 Bytes

Versions: 3

Compression:

Stored size: 993 Bytes

Contents

class NodesController < MVCLI::Controller
  requires :loadbalancers
  requires :nodes
  requires :command

  def index
    n = nodes
    n.load_balancer = load_balancer
    n.all
  end

  def show
    n = nodes
    n.load_balancer = load_balancer
    find_node_in n
  end

  def create
    template = Nodes::CreateForm
    argv = MVCLI::Argv.new command.argv
    form = template.new argv.options
    form.validate!

    n = nodes
    n.load_balancer = load_balancer
    options = {
      address: form.address,
      condition: form.condition,
      port: form.port,
      type: form.type
    }
    n.create options
  end

  def destroy
    n = nodes
    n.load_balancer = load_balancer
    find_node_in(n).destroy
    params[:id]
  end

  private

  def load_balancer
    loadbalancers.find{|l| l.name == params[:loadbalancer_id]} or fail Fog::Errors::NotFound
  end

  def find_node_in loadbalancer
    loadbalancer.find{|n| n.id.to_s == params[:id]} or fail Fog::Errors::NotFound
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rumm-0.1.0 app/controllers/nodes_controller.rb
rumm-0.0.24 app/controllers/nodes_controller.rb
rumm-0.0.23 app/controllers/nodes_controller.rb