module PactBroker::Client::CLI::DeploymentCommands

Constants

RECORD_DEPLOYMENT_HELP_URL
RECORD_RELEASE_HELP_URL
RECORD_SUPPORT_ENDED_HELP_URL
RECORD_UNDEPLOYMENT_HELP_URL

Public Class Methods

included(thor) click to toggle source
# File lib/pact_broker/client/cli/deployment_commands.rb, line 11
def self.included(thor)
  thor.class_eval do
    desc "record-deployment", "Record deployment of a pacticipant version to an environment. See #{RECORD_DEPLOYMENT_HELP_URL} for more information."
    method_option :pacticipant, required: true, aliases: "-a", desc: "The name of the pacticipant that was deployed."
    method_option :version, required: true, aliases: "-e", desc: "The pacticipant version number that was deployed."
    method_option :environment, required: true, desc: "The name of the environment that the pacticipant version was deployed to."
    method_option :application_instance, default: nil, required: false, desc: "Optional. The application instance to which the deployment has occurred - a logical identifer required to differentiate deployments when there are multiple instances of the same application in an environment. This field was called 'target' in a beta release."
    method_option :target, hidden: true, default: nil, required: false, desc: "Renamed to application_instance"
    output_option_json_or_text
    shared_authentication_options

    def record_deployment
      $stderr.puts("WARN: target has been renamed to application-instance") if options.target
      params = {
        pacticipant_name: options.pacticipant,
        version_number: options.version,
        environment_name: options.environment,
        application_instance: options.application_instance || options.target
      }
      execute_deployment_command(params, "RecordDeployment")
    end

    desc "record-undeployment", "Record undeployment of a pacticipant from an environment."
    long_desc "Note that use of this command is only required if you are permanently removing an application instance from an environment. It is not required if you are deploying over a previous version, as record-deployment will automatically mark the previously deployed version as undeployed for you. See #{RECORD_UNDEPLOYMENT_HELP_URL} for more information."
    method_option :pacticipant, required: true, aliases: "-a", desc: "The name of the pacticipant that was undeployed."
    method_option :environment, required: true, desc: "The name of the environment that the pacticipant version was undeployed from."
    method_option :application_instance, default: nil, required: false, desc: "Optional. The application instance from which the application is being undeployed - a logical identifer required to differentiate deployments when there are multiple instances of the same application in an environment. This field was called 'target' in a beta release."
    method_option :target, default: nil, required: false, desc: "Optional. The target that the application is being undeployed from - a logical identifer required to differentiate deployments when there are multiple instances of the same application in an environment."
    output_option_json_or_text
    shared_authentication_options

    def record_undeployment
      $stderr.puts("WARN: target has been renamed to application-instance") if options.target
      params = {
        pacticipant_name: options.pacticipant,
        environment_name: options.environment,
        application_instance: options.application_instance || options.target
      }
      execute_deployment_command(params, "RecordUndeployment")
    end

    desc "record-release", "Record release of a pacticipant version to an environment. See See #{RECORD_RELEASE_HELP_URL} for more information."
    method_option :pacticipant, required: true, aliases: "-a", desc: "The name of the pacticipant that was released."
    method_option :version, required: true, aliases: "-e", desc: "The pacticipant version number that was released."
    method_option :environment, required: true, desc: "The name of the environment that the pacticipant version was released to."
    output_option_json_or_text
    shared_authentication_options

    def record_release
      params = {
        pacticipant_name: options.pacticipant,
        version_number: options.version,
        environment_name: options.environment
      }
      execute_deployment_command(params, "RecordRelease")
    end

    desc "record-support-ended", "Record the end of support for a pacticipant version in an environment. See #{RECORD_SUPPORT_ENDED_HELP_URL} for more information."
    method_option :pacticipant, required: true, aliases: "-a", desc: "The name of the pacticipant."
    method_option :version, required: true, aliases: "-e", desc: "The pacticipant version number for which support is ended."
    method_option :environment, required: true, desc: "The name of the environment in which the support is ended."
    output_option_json_or_text
    shared_authentication_options

    def record_support_ended
      params = {
        pacticipant_name: options.pacticipant,
        version_number: options.version,
        environment_name: options.environment
      }
      execute_deployment_command(params, "RecordSupportEnded")
    end

    no_commands do
      def execute_deployment_command(params, command_class_name)
        require 'pact_broker/client/deployments'
        command_options = { verbose: options.verbose, output: options.output }
        result = PactBroker::Client::Deployments.const_get(command_class_name).call(params, command_options, pact_broker_client_options)
        $stdout.puts result.message
        exit(1) unless result.success
      end
    end
  end
end

Public Instance Methods

execute_deployment_command(params, command_class_name) click to toggle source
# File lib/pact_broker/client/cli/deployment_commands.rb, line 85
def execute_deployment_command(params, command_class_name)
  require 'pact_broker/client/deployments'
  command_options = { verbose: options.verbose, output: options.output }
  result = PactBroker::Client::Deployments.const_get(command_class_name).call(params, command_options, pact_broker_client_options)
  $stdout.puts result.message
  exit(1) unless result.success
end
record_deployment() click to toggle source
# File lib/pact_broker/client/cli/deployment_commands.rb, line 22
def record_deployment
  $stderr.puts("WARN: target has been renamed to application-instance") if options.target
  params = {
    pacticipant_name: options.pacticipant,
    version_number: options.version,
    environment_name: options.environment,
    application_instance: options.application_instance || options.target
  }
  execute_deployment_command(params, "RecordDeployment")
end
record_release() click to toggle source
# File lib/pact_broker/client/cli/deployment_commands.rb, line 59
def record_release
  params = {
    pacticipant_name: options.pacticipant,
    version_number: options.version,
    environment_name: options.environment
  }
  execute_deployment_command(params, "RecordRelease")
end
record_support_ended() click to toggle source
# File lib/pact_broker/client/cli/deployment_commands.rb, line 75
def record_support_ended
  params = {
    pacticipant_name: options.pacticipant,
    version_number: options.version,
    environment_name: options.environment
  }
  execute_deployment_command(params, "RecordSupportEnded")
end
record_undeployment() click to toggle source
# File lib/pact_broker/client/cli/deployment_commands.rb, line 42
def record_undeployment
  $stderr.puts("WARN: target has been renamed to application-instance") if options.target
  params = {
    pacticipant_name: options.pacticipant,
    environment_name: options.environment,
    application_instance: options.application_instance || options.target
  }
  execute_deployment_command(params, "RecordUndeployment")
end