cloudfoundry/vmc

View on GitHub
lib/vmc/cli/service/unbind.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "vmc/detect"

require "vmc/cli/service/base"

module VMC::Service
  class Unbind < Base
    desc "Unbind a service from an application"
    group :services, :manage
    input :service, :desc => "Service to unbind", :argument => :optional,
          :from_given => by_name(:service_instance, :service)
    input :app, :desc => "Application to unbind from", :argument => :optional,
          :from_given => by_name(:app)
    def unbind_service
      app = input[:app]
      service = input[:service, app]

      with_progress(
          "Unbinding #{c(service.name, :name)} from #{c(app.name, :name)}") do
        app.unbind(service)
      end
    end

    private

    def ask_service(app)
      services = app.services
      fail "No bound services." if services.empty?

      ask "Which service?", :choices => services,
        :display => proc(&:name)
    end

    def ask_app
      ask "Which application?", :choices => client.apps,
        :display => proc(&:name)
    end
  end
end