class Serverspec::Type::OctopusDeployProjectGroup

Public Class Methods

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

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

  @project_group_name = project_group_name

  @name = "Octopus Deploy Project Group #{project_group_name}"
  @runner = Specinfra::Runner
  @serverUrl = serverUrl
  @apiKey = apiKey

  @serverSupportsSpaces = check_supports_spaces(serverUrl)
end

Public Instance Methods

exists?() click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_project_group.rb, line 30
def exists?
  load_resource_if_nil
  (!@project_group.nil?) && (@project_group != [])
end
has_description?(project_group_description) click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_project_group.rb, line 35
def has_description?(project_group_description)
  load_resource_if_nil
  return false if @project_group.nil?
  @project_group["Description"] == project_group_description
end
in_space(space_name) click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_project_group.rb, line 41
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 @project_group_name.nil?
    raise "'project_group_name' was not provided. Please provide a project group name and try again."
  end
  self
end

Private Instance Methods

get_space_id(space_name) click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_project_group.rb, line 53
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_project_group.rb, line 62
def load_resource_if_nil
  if @project_group.nil?
    @project_group = get_project_group_via_api(@serverUrl, @apiKey, @project_group_name)
  end
end