class MU::Cloud::Database

Stub base class; real implementations generated at runtime

Generic methods for all Database implementations

Public Instance Methods

getPassword() click to toggle source

Getting the password for a database's master user, and saving it in a database / cluster specific vault

# File modules/mu/cloud/database.rb, line 24
def getPassword
  if @config['password'].nil?
    if @config['auth_vault'] && !@config['auth_vault'].empty?
      @config['password'] = @groomclass.getSecret(
        vault: @config['auth_vault']['vault'],
        item: @config['auth_vault']['item'],
        field: @config['auth_vault']['password_field']
      )
    else
      # Should we use random instead?
      @config['password'] = Password.pronounceable(10..12)
    end
  end
  
  creds = {
    "username" => @config["master_user"],
    "password" => @config["password"]
  }
  @groomclass.saveSecret(vault: @mu_name, item: "database_credentials", data: creds)
end