class Serverspec::Type::OctopusDeployAccount
Constants
- ACCOUNT_TYPES
- AWS
- AZURE
constants for account types
- SSH
- TOKEN
- USERNAME
Public Class Methods
new(*url_and_api_key, account_name)
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 24 def initialize(*url_and_api_key, account_name) server_url, api_key = get_octopus_creds(url_and_api_key) @serverSupportsSpaces = check_supports_spaces(server_url) @name = "Octopus Deploy Account #{account_name}" @runner = Specinfra::Runner @accountName = account_name @serverUrl = server_url @apiKey = api_key if account_name.nil? or account_name == "" raise "'account_name' was not provided. Unable to connect to Octopus server to validate configuration." end end
Public Instance Methods
account_type?(account_type_name)
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 51 def account_type?(account_type_name) load_resource_if_nil() if !ACCOUNT_TYPES.include? account_type_name raise("'#{account_type_name}' is not a valid account type") end return false if @account.nil? @account["AccountType"] == account_type_name end
aws_account?()
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 67 def aws_account? return false if @account.nil? account_type?(AWS) end
azure_account?()
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 61 def azure_account? return false if @account.nil? account_type?(AZURE) # should also have a subscription number, but Octopus manages validation on this end
exists?()
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 40 def exists? load_resource_if_nil() (!@account.nil?) && (@account != []) end
has_description?(account_description)
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 45 def has_description?(account_description) load_resource_if_nil() return false if @account.nil? @account["Description"] == account_description end
has_property?(property_name, expected_value)
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 103 def has_property?(property_name, expected_value) load_resource_if_nil() return false if @account.nil? @account[property_name] == expected_value end
has_tenanted_deployment_participation?(mode)
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 97 def has_tenanted_deployment_participation?(mode) load_resource_if_nil() return false if @machine.nil? @machine["TenantedDeploymentParticipation"] == mode # copied directly from tentacle end
in_environment?(environment_name)
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 87 def in_environment?(environment_name) load_resource_if_nil() return false if @account.nil? url = "#{@serverUrl}/api/#{@spaceFragment}environments/all?api-key=#{@apiKey}" resp = Net::HTTP.get_response(URI.parse(url)) environments = JSON.parse(resp.body) environment_id = environments.select {|e| e["Name"] == environment_name}.first["Id"] !@account["EnvironmentIds"].select {|e| e == environment_id}.empty? end
in_space(space_name)
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 109 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 @accountName.nil? raise "'account_name' was not provided. Please provide an account name and try again." end self end
ssh_key_pair?()
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 72 def ssh_key_pair? return false if @account.nil? account_type?(SSH) end
token?()
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 82 def token? return false if @account.nil? account_type?(TOKEN) end
username_password?()
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 77 def username_password? return false if @account.nil? account_type?(USERNAME) end
Private Instance Methods
get_space_id?(space_name)
click to toggle source
# File lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb, line 127 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_account.rb, line 121 def load_resource_if_nil if @account.nil? @account = get_account_via_api(@serverUrl, @apiKey, @accountName) end end