class Serverspec::Type::OctopusDeployEnvironment

Public Class Methods

new(*url_and_api_key, environment_name) click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_environment.rb, line 15
def initialize(*url_and_api_key, environment_name)
  serverUrl, apiKey = get_octopus_creds(url_and_api_key)

  @environment_name = environment_name
  @name = "Octopus Deploy Environment #{environment_name}"
  @runner = Specinfra::Runner
  @serverUrl = serverUrl
  @apiKey = apiKey

  if environment_name.nil?
    raise "'environment_name' was not provided. Unable to connect to Octopus server to validate configuration."
  end

  @serverSupportsSpaces = check_supports_spaces(serverUrl)
end

Public Instance Methods

allow_dynamic_infrastructure?() click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_environment.rb, line 42
def allow_dynamic_infrastructure?
  load_resource_if_nil
  false if @environment.nil?
  @environment['AllowDynamicInfrastructure'] == true
end
exists?() click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_environment.rb, line 31
def exists?
  load_resource_if_nil
  (!@environment.nil?) && (@environment != [])
end
in_space(space_name) click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_environment.rb, line 48
def in_space(space_name)
  # allows us to tag .in_space() onto the end of the resource. as in
  # describe octopus_account("account name").in_space("MyNewSpace") do
  @spaceId = get_space_id(space_name)
  if @environment_name.nil?
    raise "'environment_name' was not provided. Unable to connect to Octopus server to validate configuration."
  end
  if(@spaceId.nil?)
    raise "unable to resolve space '#{@spaceId}'"
  end
  self
end
use_guided_failure?() click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_environment.rb, line 36
def use_guided_failure?
  load_resource_if_nil
  false if @environment.nil?
  @environment['UseGuidedFailure'] == true
end

Private Instance Methods

get_space_id(space_name) click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_environment.rb, line 69
def get_space_id(space_name)
  return false if @serverSupportsSpaces.nil?
  url = "#{@serverUrl}/api/Spaces/all?api-key=#{@apiKey}"
  resp = Net::HTTP.get_response(URI.parse(url))
  spaces = JSON.parse(resp.body)
  space_id = spaces.select {|e| e["Name"] == space_name}.first["Id"]
  space_id
end
load_resource_if_nil() click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_environment.rb, line 63
def load_resource_if_nil
  if @environment.nil?
    @environment = get_environment_via_api(@serverUrl, @apiKey, @environment_name)
  end
end