Sha256: dba0d203c6cb6fa5a34e98049f05a6e143831a13fc593bd7c074c7d9986d8354

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

module Brightbox
  command [:groups] do |cmd|

    cmd.desc "Remove servers from a server group"
    cmd.arg_name "grp-id [srv-id...]"
    cmd.command [:remove_servers] do |c|

      c.desc "Remove all servers from group"
      c.switch [:a, :all], :negatable => false

      c.action do |global_options, options, args|
        grp_id = args.shift
        raise "You must specify the server group and the server ids to remove" unless grp_id && grp_id[/^grp-/] && (!args.empty? || options[:a])

        sg = ServerGroup.find grp_id

        servers = if options[:a]
                    sg.server_ids
                  else
                    Server.find_or_call(args) do |id|
                      raise "Couldn't find server #{id}"
                    end
                  end

        if servers.empty?
          info "Server group #{sg} already contains zero servers"
        else
          info "Removing#{" all" if options[:a]} #{servers.size} servers from server group #{sg}"
          sg.remove_servers servers
        end

        sg.reload
        render_table([sg], global_options)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
brightbox-cli-1.1.0 lib/brightbox-cli/commands/groups-remove-servers.rb
brightbox-cli-1.0.0 lib/brightbox-cli/commands/groups-remove-servers.rb
brightbox-cli-1.0.0.rc2 lib/brightbox-cli/commands/groups-remove-servers.rb
brightbox-cli-1.0.0.rc1 lib/brightbox-cli/commands/groups-remove-servers.rb