class SSC::Handler::Package

Public Instance Methods

add(name) click to toggle source
# File lib/handlers/package.rb, line 86
def add(name)
  if options.remote?
    require_appliance do |appliance|
      response= appliance.add_package(name)
      say case response['state']
      when "changed"
        "Package Added. State: #{response['state']}"
      when "equal"
        "Package Not Added."
      when "broken"
        "Package Added. State: #{response['state']}. Please resolve dependencies"
      else
        "unknown code"
      end
    end
  else
    package_file= PackageFile.new
    package_file.push('add', name)
    package_file.save
    say "#{name} marked for addition"
  end
end
ban(name) click to toggle source
# File lib/handlers/package.rb, line 129
def ban(name)
  if options.remote?
    require_appliance do |appliance|
      response= appliance.ban_package(name)
      response.collect{|key, val| "#{key}: #{val}"}
    end
  else
    package_file= PackageFile.new
    package_file.push('ban', name)
    package_file.save
    say "#{name} marked to be banned"
  end
end
list(type) click to toggle source
# File lib/handlers/package.rb, line 63
def list(type)
  package_file= PackageFile.new
  raise Thor::Error, "installed | selected package only"  unless ['installed', 'selected'].include?(type)
  out= if options.remote? || package_file.empty_list?
    require_appliance do |appliance|
      params= {:build_id => options.build_id} if options.build_id
      software= appliance.send("#{type}_software")
      formatted_list= software.collect do |package|
        version= package.version ? { "version" => package.version } : nil
        package_file.push('list', {package.name => version})
      end
      package_file.save
    end
  else
    package_file.read
  end
  say out.to_yaml
end
remove(name) click to toggle source
# File lib/handlers/package.rb, line 112
def remove(name)
  if options.remote?
    require_appliance do |appliance|
      response= appliance.remove_package(name)
      say "State: #{response['state']}"
    end
  else
    package_file= PackageFile.new
    package_file.push('remove', name)
    package_file.save
    say "#{name} marked for removal"
  end
end
unban(name) click to toggle source
# File lib/handlers/package.rb, line 146
def unban(name)
  if options.remote?
    require_appliance do |appliance|
      response= appliance.unban_package(name)
      response.collect{|key, val| "#{key}: #{val}"}
    end
  else
    package_file= PackageFile.new
    package_file.push('unban', name)
    package_file.save
    say "#{name} marked to be unbanned"
  end
end