Sha256: 3f60925bda52eded2175d5c9c50acde900214945110607192351f16bef32fb9f
Contents?: true
Size: 1.17 KB
Versions: 2
Compression:
Stored size: 1.17 KB
Contents
module Ironfan class Dsl class Facet < Ironfan::Dsl::Compute include Ironfan::Plugin::Base; register_with Ironfan::Dsl::Cluster magic :instances, Integer, default: 1 collection :servers, Ironfan::Dsl::Server, resolver: :deep_resolve field :cluster_name, String def self.plugin_hook(owner, attrs, plugin_name, full_name, &blk) facet = owner.facet(plugin_name, new(attrs.merge(name: plugin_name, owner: owner))) _project(facet, &blk) end def initialize(attrs = {}, &blk) self.cluster_names attrs[:owner].cluster_names unless attrs[:owner].nil? self.realm_name attrs[:owner].realm_name unless attrs[:owner].nil? self.cluster_name = attrs[:owner].cluster_name unless attrs[:owner].nil? self.name = attrs[:name] unless attrs[:name].nil? self.facet_role Ironfan::Dsl::Role.new(name: "#{full_name}-facet") super (0..instances - 1).each{ |idx| server idx } end def children servers.to_a + components.to_a end def full_name "#{cluster_name}-#{name}" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ironfan-6.0.1 | lib/ironfan/dsl/facet.rb |
ironfan-6.0.0 | lib/ironfan/dsl/facet.rb |