require "providers/provider_account"

module Devops
  module Model
    class OpenstackProviderAccount < ProviderAccount

      field :username, type: String
      field :auth_url, type: String
      field :tenant, type: String
      field :api_key, type: String

      default_scope ->{ where(provider: Provider::Openstack::PROVIDER) }

      validates_presence_of :username, message: "'username' is undefined"
      validates_length_of :username, maximum: 31
      validates_format_of :username, with: /\A[\w]+\z/, message: "invalid username"

      validates_presence_of :auth_url, message: "'auth_url' is undefined"
      validates_length_of :auth_url, maximum: 255

      validates_presence_of :tenant, message: "'tenant' is undefined"
      validates_length_of :tenant, maximum: 100

      validates_presence_of :api_key, message: "'api_key' is undefined"
      validates_length_of :api_key, maximum: 100

    end
  end
end

