Class: Puppet::Type::RelationshipMetaparam
- Defined in:
- lib/puppet/type.rb
Overview
RelationshipMetaparam is an implementation supporting the meta-parameters ‘:require`, `:subscribe`, `:notify`, and `:before`.
Constant Summary
Constants included from Util::Docs
Constants included from Util
Util::AbsolutePathPosix, Util::AbsolutePathWindows, Util::DEFAULT_POSIX_MODE, Util::DEFAULT_WINDOWS_MODE
Constants included from Util::POSIX
Util::POSIX::LOCALE_ENV_VARS, Util::POSIX::USER_ENV_VARS
Constants included from Util::SymbolicFileMode
Util::SymbolicFileMode::SetGIDBit, Util::SymbolicFileMode::SetUIDBit, Util::SymbolicFileMode::StickyBit, Util::SymbolicFileMode::SymbolicMode, Util::SymbolicFileMode::SymbolicSpecialToBit
Constants included from Util::Logging
Util::Logging::FILE_AND_LINE, Util::Logging::FILE_NO_LINE, Util::Logging::MM, Util::Logging::NO_FILE_LINE, Util::Logging::SUPPRESS_FILE_LINE
Class Attribute Summary collapse
-
.callback ⇒ Object
Returns the value of attribute callback.
-
.direction ⇒ Object
Returns the value of attribute direction.
-
.events ⇒ Object
Returns the value of attribute events.
-
.subclasses ⇒ Object
Returns the value of attribute subclasses.
Attributes inherited from Parameter
#name, #parent, #resource, #sensitive
Attributes included from Util::Docs
Class Method Summary collapse
Instance Method Summary collapse
-
#munge(references) ⇒ Array<Puppet::Resource>
Turns attribute value(s) into list of resources.
-
#to_edges ⇒ Array<Puppet::Relationship>
Creates edges for all relationships.
-
#validate_relationship ⇒ void
Checks each reference to assert that what it references exists in the catalog.
Methods inherited from Parameter
aliasvalue, defaultto, desc, doc, #file, #format, format_value_for_display, #initialize, initvars, isnamevar, isnamevar?, #isnamevar?, isrequired, #line, #log, #metaparam?, munge, newvalues, nodefault, #noop, #path, #pathbuilder, #provider, proxymethods, #remove, #required?, required?, #tags, #to_s, unmunge, #unmunge, #unsafe_munge, #unsafe_validate, validate, #validate, #value, #value=, #version
Methods included from Util::Docs
#desc, #dochook, #doctable, #markdown_definitionlist, #markdown_header, #nodoc?, #pad, scrub
Methods included from Util
absolute_path?, benchmark, chuser, clear_environment, default_env, deterministic_rand, deterministic_rand_int, exit_on_fail, get_env, get_environment, logmethods, merge_environment, path_to_uri, pretty_backtrace, replace_file, safe_posix_fork, set_env, symbolizehash, thinmark, uri_encode, uri_query_encode, uri_to_path, which, withenv, withumask
Methods included from Util::POSIX
#get_posix_field, #gid, #idfield, #methodbyid, #methodbyname, #search_posix_field, #uid
Methods included from Util::SymbolicFileMode
#normalize_symbolic_mode, #symbolic_mode_to_int, #valid_symbolic_mode?
Methods included from Util::MethodHelper
#requiredopts, #set_options, #symbolize_options
Methods included from Util::Logging
#clear_deprecation_warnings, #debug, #deprecation_warning, #format_exception, #get_deprecation_offender, #log_and_raise, #log_deprecations_to_file, #log_exception, #puppet_deprecation_warning, #send_log, setup_facter_logging!, #warn_once
Methods included from Util::Errors
#adderrorcontext, #devfail, #error_context, #exceptwrap, #fail
Constructor Details
This class inherits a constructor from Puppet::Parameter
Class Attribute Details
.callback ⇒ Object
Returns the value of attribute callback.
1476 1477 1478 |
# File 'lib/puppet/type.rb', line 1476 def callback @callback end |
.direction ⇒ Object
Returns the value of attribute direction.
1476 1477 1478 |
# File 'lib/puppet/type.rb', line 1476 def direction @direction end |
.events ⇒ Object
Returns the value of attribute events.
1476 1477 1478 |
# File 'lib/puppet/type.rb', line 1476 def events @events end |
.subclasses ⇒ Object
Returns the value of attribute subclasses.
1476 1477 1478 |
# File 'lib/puppet/type.rb', line 1476 def subclasses @subclasses end |
Class Method Details
.inherited(sub) ⇒ Object
1481 1482 1483 |
# File 'lib/puppet/type.rb', line 1481 def self.inherited(sub) @subclasses << sub end |
Instance Method Details
#munge(references) ⇒ Array<Puppet::Resource>
Returns turns attribute value(s) into list of resources.
1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 |
# File 'lib/puppet/type.rb', line 1486 def munge(references) references = [references] unless references.is_a?(Array) references.collect do |ref| if ref.is_a?(Puppet::Resource) ref else Puppet::Resource.new(ref) end end end |
#to_edges ⇒ Array<Puppet::Relationship>
references to “event-receivers” and “event generator” means in this context - are those just the resources at the two ends of the relationship?
Creates edges for all relationships. The ‘:in` relationships are specified by the event-receivers, and `:out` relationships are specified by the event generator. This way ’source’ and ‘target’ are consistent terms in both edges and events, i.e. an event targets edges whose source matches the event’s source. The direction of the relationship determines which resource is applied first and which resource is considered to be the event generator.
1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 |
# File 'lib/puppet/type.rb', line 1523 def to_edges @value.collect do |reference| reference.catalog = resource.catalog # Either of the two retrieval attempts could have returned # nil. unless = reference.resolve self.fail "Could not retrieve dependency '#{reference}' of #{@resource.ref}" end # Are we requiring them, or vice versa? See the method docs # for further info on this. if self.class.direction == :in source = target = @resource else source = @resource target = end if method = self.class.callback = { :event => self.class.events, :callback => method } self.debug { "subscribes to #{.ref}" } else # If there's no callback, there's no point in even adding # a label. = nil self.debug { "subscribes to #{.ref}" } end Puppet::Relationship.new(source, target, ) end end |
#validate_relationship ⇒ void
This method returns an undefined value.
Checks each reference to assert that what it references exists in the catalog.
1501 1502 1503 1504 1505 1506 1507 1508 |
# File 'lib/puppet/type.rb', line 1501 def validate_relationship @value.each do |ref| unless @resource.catalog.resource(ref.to_s) description = self.class.direction == :in ? "dependency" : "dependent" fail ResourceError, "Could not find #{description} #{ref} for #{resource.ref}" end end end |