class Kontena::Cli::Apps::RemoveCommand

Attributes

services[R]

Public Instance Methods

execute() click to toggle source
# File lib/kontena/cli/apps/remove_command.rb, line 17
def execute
  require_api_url
  require_token
  require_config_file(filename)
  confirm unless forced?

  @services = services_from_yaml(filename, service_list, service_prefix, true)
  if services.size > 0
    remove_services(services)
  elsif !service_list.empty?
    puts "No such service: #{service_list.join(', ')}".colorize(:red)
  end
end

Private Instance Methods

delete(name, options, async = true) click to toggle source
# File lib/kontena/cli/apps/remove_command.rb, line 43
def delete(name, options, async = true)
  unless deleted_services.include?(name)
    service = get_service(token, prefixed_name(name)) rescue nil
    if(service)
      spinner "removing #{pastel.cyan(name)}" do
        delete_service(token, prefixed_name(name))
        unless async
          wait_for_delete_to_finish(service)
        end
      end
      deleted_services << name
    else
      warning "No such service #{name}"
    end
  end
end
deleted_services() click to toggle source

@return [Array]

# File lib/kontena/cli/apps/remove_command.rb, line 70
def deleted_services
  @deleted_services ||= []
end
remove_services(services) click to toggle source
# File lib/kontena/cli/apps/remove_command.rb, line 33
def remove_services(services)
  services.find_all {|service_name, options| options['links'] && options['links'].size > 0 }.each do |service_name, options|
    delete(service_name, options, false)
    services.delete(service_name)
  end
  services.each do |service_name, options|
    delete(service_name, options)
  end
end
wait_for_delete_to_finish(service) click to toggle source
# File lib/kontena/cli/apps/remove_command.rb, line 60
def wait_for_delete_to_finish(service)
  until service.nil?
    service = get_service(token, service['name']) rescue nil
    sleep 0.5
  end
end