Sha256: cb95b5b970c55b2931746a5111992b69a0aa679b26c2c241f24a22d6f1ea6555

Contents?: true

Size: 1.8 KB

Versions: 1

Compression:

Stored size: 1.8 KB

Contents

module Fog
  module Sql
    class AzureRM
      # Sql Server model for Server Service
      class SqlServer < Fog::Model
        identity :name
        attribute :id
        attribute :type
        attribute :resource_group
        attribute :location
        attribute :version
        attribute :state
        attribute :administrator_login, aliases: %w(administratorLogin)
        attribute :administrator_login_password, aliases: %w(administratorLoginPassword)
        attribute :fully_qualified_domain_name, aliases: %w(fullyQualifiedDomainName)

        def self.parse(server)
          data = {}
          data['resource_group'] = get_resource_group_from_id(server['id'])
          if server.is_a? Hash
            server.each do |k, v|
              if k == 'properties'
                v.each do |j, l|
                  data[j] = l
                end
              else
                data[k] = v
              end
            end
          else
            raise 'Object is not a hash. Parsing SQL Server object failed.'
          end

          data
        end

        def save
          requires :name, :resource_group, :location, :version, :administrator_login, :administrator_login_password
          sql_server = service.create_or_update_sql_server(format_sql_server_params)
          merge_attributes(Fog::Sql::AzureRM::SqlServer.parse(sql_server))
        end

        def destroy
          service.delete_sql_server(resource_group, name)
        end

        private

        def format_sql_server_params
          {
            resource_group: resource_group,
            name: name,
            version: version,
            location: location,
            administrator_login: administrator_login,
            administrator_login_password: administrator_login_password
          }
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fog-azure-rm-0.1.2 lib/fog/azurerm/models/sql/sql_server.rb