Sha256: acfdc698155ebc038c8155d598ce1ce4b539e1eab496c8f96dbeef545d0622aa

Contents?: true

Size: 1.3 KB

Versions: 17

Compression:

Stored size: 1.3 KB

Contents

module Ironfan
  class Dsl

    class Server < Ironfan::Dsl::Compute
      field      :cluster_name, String
      field      :facet_name,   String

      def initialize(attrs={},&block)
        unless attrs[:owner].nil?
          self.cluster_name =   attrs[:owner].cluster_name
          self.facet_name =     attrs[:owner].name

          self.role     "#{self.cluster_name}-cluster", :last
          self.role     attrs[:owner].facet_role.name,  :last
        end
        super
      end

      def full_name()           "#{cluster_name}-#{facet_name}-#{name}";        end
      def index()               name.to_i;                                      end
      def implied_volumes()     selected_cloud.implied_volumes;                 end

      def to_display(style,values={})
        selected_cloud.to_display(style,values)

        return values if style == :minimal

        values["Env"] =         environment
        values
      end

      # we should always show up in owners' inspect string
      def inspect_compact ; inspect ; end

      # @returns [Hash{String, Array}] of 'what you did wrong' => [relevant, info]
      def lint
        errors = []
        errors['missing cluster/facet/server'] = [cluster_name, facet_name, name] unless (cluster_name && facet_name && name)
        errors
      end
    end

  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
ironfan-4.12.3 lib/ironfan/dsl/server.rb
ironfan-4.12.2 lib/ironfan/dsl/server.rb
ironfan-4.12.1 lib/ironfan/dsl/server.rb
ironfan-4.12.0 lib/ironfan/dsl/server.rb
ironfan-4.11.5 lib/ironfan/dsl/server.rb
ironfan-4.11.4 lib/ironfan/dsl/server.rb
ironfan-4.11.3 lib/ironfan/dsl/server.rb
ironfan-4.11.2 lib/ironfan/dsl/server.rb
ironfan-4.11.2.pre3 lib/ironfan/dsl/server.rb
ironfan-4.11.2.pre2 lib/ironfan/dsl/server.rb
ironfan-4.11.2.pre lib/ironfan/dsl/server.rb
ironfan-4.11.1 lib/ironfan/dsl/server.rb
ironfan-4.11.0 lib/ironfan/dsl/server.rb
ironfan-4.10.4 lib/ironfan/dsl/server.rb
ironfan-4.10.3 lib/ironfan/dsl/server.rb
ironfan-4.10.2 lib/ironfan/dsl/server.rb
ironfan-4.10.1 lib/ironfan/dsl/server.rb