Class: Serverspec::Type::OctopusDeployAccount

Inherits:
Base
  • Object
show all
Defined in:
lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb

Constant Summary collapse

AZURE =

constants for account types

'AzureSubscription'.freeze
AWS =
'AmazonWebServicesAccount'.freeze
SSH =
'SshKeypair'.freeze
TOKEN =
'Token'.freeze
USERNAME =
'UsernamePassword'.freeze
ACCOUNT_TYPES =
[AZURE, AWS, SSH, TOKEN, USERNAME]

Instance Method Summary collapse

Constructor Details

#initialize(*url_and_api_key, account_name) ⇒ OctopusDeployAccount

Returns a new instance of OctopusDeployAccount.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb', line 24

def initialize(*url_and_api_key, )
  server_url, api_key = get_octopus_creds(url_and_api_key)

  @serverSupportsSpaces = check_supports_spaces(server_url)

  @name = "Octopus Deploy Account #{}"
  @runner = Specinfra::Runner
  @accountName = 
  @serverUrl = server_url
  @apiKey = api_key

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

Instance Method Details

#account_type?(account_type_name) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
54
55
56
57
58
59
# File 'lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb', line 51

def ()
  load_resource_if_nil()
  if !ACCOUNT_TYPES.include? 
    raise("'#{}' is not a valid account type")
  end
  return false if @account.nil?

  @account["AccountType"] == 
end

#aws_account?Boolean

Returns:

  • (Boolean)


67
68
69
70
# File 'lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb', line 67

def aws_account?
  return false if @account.nil?
  (AWS)
end

#azure_account?Boolean

Returns:

  • (Boolean)


61
62
63
64
65
# File 'lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb', line 61

def azure_account?
  return false if @account.nil?
  (AZURE)
  # should also have a subscription number, but Octopus manages validation on this
end

#exists?Boolean

Returns:

  • (Boolean)


40
41
42
43
# 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) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
48
49
# File 'lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb', line 45

def has_description?()
  load_resource_if_nil()
  return false if @account.nil?
  @account["Description"] == 
end

#has_property?(property_name, expected_value) ⇒ Boolean

Returns:

  • (Boolean)


103
104
105
106
107
# 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) ⇒ Boolean

Returns:

  • (Boolean)


97
98
99
100
101
# 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) ⇒ Boolean

Returns:

  • (Boolean)


87
88
89
90
91
92
93
94
95
# 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) ⇒ Object



109
110
111
112
113
114
115
116
117
# 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?Boolean

Returns:

  • (Boolean)


72
73
74
75
# File 'lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb', line 72

def ssh_key_pair?
  return false if @account.nil?
  (SSH)
end

#token?Boolean

Returns:

  • (Boolean)


82
83
84
85
# File 'lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb', line 82

def token?
  return false if @account.nil?
  (TOKEN)
end

#username_password?Boolean

Returns:

  • (Boolean)


77
78
79
80
# File 'lib/octopus_serverspec_extensions/type/octopus_deploy_account.rb', line 77

def username_password?
  return false if @account.nil?
  (USERNAME)
end