NAME

App::ClusterSSH::Cluster - Object representing cluster configuration

SYNOPSIS

DESCRIPTION

Object representing application configuration

METHODS

$cluster=ClusterSSH::Cluster->new();

Create a new object. Object should be common across all invocations.

$cluster->get_cluster_entries($filename);

Read in /etc/clusters, $HOME/.clusterssh/clusters and any other given file name and register the tags found.

@external_tags=list_external_clusters()

Call an external script suing -L to list available tags

@resolved_tags=get_external_clusters(@tags)

Use an external script to resolve @tags into hostnames.

$cluster->get_tag_entries($filename);

Read in /etc/tags, $HOME/.clusterssh/tags and any other given file name and register the tags found.

$cluster->read_cluster_file($filename);

Read in the given cluster file and register the tags found

$cluster->expand_filename($filename);

Expand ~ or $HOME in a filename

$cluster->read_tag_file($filename);

Read in the given tag file and register the tags found

$cluster->register_tag($tag,@hosts);

Register the given tag name with the given host names.

$cluster->register_host($host,@tags);

Register the given host on the provided tags.

@entries = $cluster->get_tag('tag');
$entries = $cluster->get_tag('tag');

Retrieve all entries for the given tag. Returns an array of hosts or the number of hosts in the array depending on context.

@tags = $cluster->list_tags();

Return an array of all available tag names

%tags = $cluster->dump_tags();

Returns a hash of all tag data.

@tags = $cluster->expand_glob( $type, $name, @items );

Use shell expansion against each item in @items, where $type is either 'node', or 'tag' and $name is the node or tag name. These attributes are presented to the user in the event of an issue with the expanion to track down the source.

AUTHOR

Duncan Ferguson, <duncan_j_ferguson at yahoo.co.uk>

LICENSE AND COPYRIGHT

Copyright 1999-2016 Duncan Ferguson.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.