The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Pantry::Model::Node - Pantry data model for nodes

VERSION

version 0.005

SYNOPSIS

  my $pantry = Pantry::Model::Pantry->new;
  my $node = $pantry->node("foo.example.com");

  $node->append_to_run_list('recipe[nginx]');
  $node->set_attribute('nginx.port' => 80);
  $node->save;

DESCRIPTION

Models the configuration data for a specific server.

ATTRIBUTES

name

This attribute is the canonical name of the node, generally a fully-qualified domain name

run_list

This attribute is provided by the Pantry::Role::Runlist role and holds a list of recipes (or roles) to be configured by chef-solo.

attributes

This attribute holds node attribute data as key-value pairs. Keys may be separated by a period to indicate nesting (literal periods must be escaped by a backslash). Values should be scalars or array references.

METHODS

set_attribute

  $node->set_attribute("nginx.port", 80);

Sets the node attribute for the given key to the given value.

get_attribute

  my $port = $node->get_attribute("nginx.port");

Returns the node attribute for the given key.

delete_attribute

  $node->delete_attribute("nginx.port");

Deletes the node attribute for the given key.

save

Saves the node to a file in the pantry. If the private _path attribute has not been set, an exception is thrown.

AUTHOR

David Golden <dagolden@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2011 by David Golden.

This is free software, licensed under:

  The Apache License, Version 2.0, January 2004