Class: Serverspec::Type::OctopusDeployAccount
- Inherits:
-
Base
- Object
- Base
- Serverspec::Type::OctopusDeployAccount
- 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
- #account_type?(account_type_name) ⇒ Boolean
- #aws_account? ⇒ Boolean
- #azure_account? ⇒ Boolean
- #exists? ⇒ Boolean
- #has_description?(account_description) ⇒ Boolean
- #has_property?(property_name, expected_value) ⇒ Boolean
- #has_tenanted_deployment_participation?(mode) ⇒ Boolean
- #in_environment?(environment_name) ⇒ Boolean
- #in_space(space_name) ⇒ Object
-
#initialize(*url_and_api_key, account_name) ⇒ OctopusDeployAccount
constructor
A new instance of OctopusDeployAccount.
- #ssh_key_pair? ⇒ Boolean
- #token? ⇒ Boolean
- #username_password? ⇒ Boolean
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, 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 |
Instance Method Details
#account_type?(account_type_name) ⇒ Boolean
51 52 53 54 55 56 57 58 59 |
# 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? ⇒ 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? account_type?(AWS) end |
#azure_account? ⇒ 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? account_type?(AZURE) # should also have a subscription number, but Octopus manages validation on this end |
#exists? ⇒ 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
45 46 47 48 49 |
# 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) ⇒ 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
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
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
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? account_type?(SSH) end |
#token? ⇒ Boolean
82 83 84 85 |
# 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? ⇒ 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? account_type?(USERNAME) end |