NAME
HH::Unispool::Config::Entry::System - Class to group remote systems and devices
SYNOPSIS
use strict;
use HH::Unispool::Config;
use HH::Unispool::Config::OS;
use HH::Unispool::Config::Entry::Filter;
use HH::Unispool::Config::Entry::System;
use HH::Unispool::Config::Entry::Device::5;
use HH::Unispool::Config::Entry::Device::6;
use HH::Unispool::Config::Entry::RemoteSystem::8;
# Read and write config
my $conf1 = HH::Unispool::Config->new_from_file('t/config.sample');
$conf1->write('t/config.sample.1.out');
# Read again, modify a little and diff config
my $conf2 = HH::Unispool::Config->new_from_file('t/config.sample');
$conf2->delete_system('foobar.bar.org');
my $diff = $conf1->diff($conf2);
if ($diff) {
print STDERR "\nTHIS OUTPUT IS EXPECTED\n";
print STDERR "DIFFERENCES\n";
print STDERR $diff;
print STDERR "\nTHIS OUTPUT WAS EXPECTED\n";
}
# Create a config from scratch
my $conf3 = HH::Unispool::Config->new();
# Create a filter and add it to the configuration
my $flt = HH::Unispool::Config::Entry::Filter->new( {
name => 'cat',
file => '/usr/bin/cat',
} );
$conf3->add_filter($flt);
# Create the _Network_ system and add it to the configuration
my $sysn = HH::Unispool::Config::Entry::System->new( {
name => '_Network_',
} );
$conf3->add_system($sysn);
# Add a type 8 remote system to _Network_
my $rsys = HH::Unispool::Config::Entry::RemoteSystem::8->new( {
name => 'foo',
os => HH::Unispool::Config::OS->new( { os => 'Solaris' } ),
remote_node_name => 'foo.bar.org',
} );
$sysn->add_remote_system($rsys);
# Add a type 5 device to _Network_
my $dev = HH::Unispool::Config::Entry::Device::5->new( {
name => 'lp',
filter_name => 'cat',
remote_device_name => 'lp',
remote_system_name => 'foo',
description => 'lp',
} );
$sysn->add_device($dev);
# Create the foo.bar.org system and add it to the configuration
my $sysf = HH::Unispool::Config::Entry::System->new( {
name => 'foo.bar.org',
local_system_name => 'foo',
network_name => 'foo.bar.org',
os => HH::Unispool::Config::OS->new( { os => 'Solaris' } ),
type => 'cs',
} );
$conf3->add_system($sysf);
# Add a type 6 device to foo.bar.org
$dev = HH::Unispool::Config::Entry::Device::6->new( {
name => 'lp1',
filter_name => 'cat',
remote_node_name => 'lp1.foo.bar.org',
description => 'lp1',
} );
$sysf->add_device($dev);
# Add another type 6 device to foo.bar.org
$dev = HH::Unispool::Config::Entry::Device::6->new( {
name => 'lp2',
filter_name => 'cat',
remote_node_name => 'lp2.foo.bar.org',
description => 'lp2',
} );
$sysf->add_device($dev);
# Add another type 3 device to foo.bar.org
$dev = HH::Unispool::Config::Entry::Device::3->new( {
name => 'lp',
filter_name => 'cat',
member_device_name => [ qw( lp1 lp2 ) ],
description => 'lp',
} );
$sysf->add_device($dev);
# Write the configuration
$conf3->write('t/config.sample.3.out');
ABSTRACT
Class to group remote systems and devices
DESCRIPTION
HH::Unispool::Config::Entry::System groups remote systems and devices from UNISPOOL configuration. In different words, it groups from a configuration file anything between
* Miscellaneous configuration items for [...]
line and the following
* Miscellaneous configuration items for [...]
line or the following
* End of configuration dumped on host ...
line.
CONSTRUCTOR
- new(OPT_HASH_REF)
-
Creates a new
HH::Unispool::Config::Entry::Systemobject.OPT_HASH_REFis a hash reference used to pass initialization options.OPT_HASH_REFis mandatory. On error an exceptionError::Simpleis thrown.Options for
OPT_HASH_REFmay include:central_console_node-
Passed to set_central_console_node(). Defaults to 'SYSLOG'.
clean_on_weekdays_only-
Passed to set_clean_on_weekdays_only(). Defaults to 0.
date_format-
Passed to set_date_format(). Defaults to HH::Unispool::Config::DateFormat->new( { date_format = 'DD/MM/YY' } )>.
default_printer-
Passed to set_default_printer(). Defaults to 'lp'.
device-
Passed to set_device(). Must be an
ARRAYreference. diff_number-
Passed to set_diff_number(). Defaults to 0.
local_system_name-
Passed to set_local_system_name(). Mandatory option but not for the
_Network_system, in which case it is set to[Network]. maximum_delay_time-
Passed to set_maximum_delay_time(). Defaults to 15.
maximum_print_file_space-
Passed to set_maximum_print_file_space(). Defaults to 0.
maximum_save_file_space-
Passed to set_maximum_save_file_space(). Defaults to 0.
network_name-
Passed to set_network_name(). Mandatory option but not for the
_Network_system, in which case it is set to some bogus value. os-
Passed to set_os(). Mandatory option but not for the
_Network_system, in which case it is set to some bogus value. remote_system-
Passed to set_remote_system(). Must be an
ARRAYreference. save_groups-
Passed to set_save_groups(). Defaults to ''.
save_time_in_days-
Passed to set_save_time_in_days(). Defaults to 3.
start_time_clean_job_hour-
Passed to set_start_time_clean_job_hour(). Defaults to 0.
start_time_clean_job_minute-
Passed to set_start_time_clean_job_minute(). Defaults to 0.
type-
Passed to set_type().
Options for
OPT_HASH_REFinherited through packageHH::Unispool::Config::Entrymay include:name-
Passed to set_name(). Mandatory option.
- new_from_tokenizer(TOKENIZER)
-
This method is an implementation from package
'HH::Unispool::Config::Entry'. Constructs a newHH::Unispool::Config::Entryobject using tokens.TOKENIZERis anHH::Unispool::Config::File::Tokenizerreference. On error an exceptionError::Simpleis thrown.
METHODS
- diff(TO [, DIFF_NUMBER])
-
This method is overloaded from package
'HH::Unispool::Config::Entry'. Finds differences between two objects. Indiffterms, the object is the from object and the specifiedTOparameter the to object.TOis a reference to an identical object class. Returns an empty string if no difference found and a difference descritpion string otherwise. On error an exceptionError::Simpleis thrown. ParemeterDIFF_NUMBERif specified, overrules the value ofget_diff_number. - write(FILE_HANDLE)
-
This method is an implementation from package
'HH::Unispool::Config::Entry'. Writes the entry to the specified file handle.FILE_HANDLEis anIO::Handlereference. On error an exceptionError::Simpleis thrown. - set_central_console_node(VALUE)
-
Set the name of the system on which the console messages must be displayed.
VALUEis the value. On error an exceptionError::Simpleis thrown. - get_central_console_node()
-
Returns the name of the system on which the console messages must be displayed.
- set_clean_on_weekdays_only(VALUE)
-
State that saved printfiles are deleted on weekdays only.
VALUEis the value. Default value at initialization is0. On error an exceptionError::Simpleis thrown. - is_clean_on_weekdays_only()
-
Returns whether saved printfiles are deleted on weekdays only or not.
- set_date_format(VALUE)
-
Set the format in which UNISPOOL will show and accept date information.
VALUEis the value. Default value at initialization isHH::Unispool::Config::DateFormat->new( { date_format ='DD/MM/YY' } )>. On error an exceptionError::Simpleis thrown. - get_date_format()
-
Returns the format in which UNISPOOL will show and accept date information.
- set_default_printer(VALUE)
-
Set the printer to be used when no other one is specified.
VALUEis the value. Default value at initialization is'lp'. On error an exceptionError::Simpleis thrown. - get_default_printer()
-
Returns the printer to be used when no other one is specified.
- set_device( [ VALUE ... ] )
-
Set the list of devices for the system absolutely using values. Each
VALUEis an object out of which the id is obtained through methodget_name(). The obtained key is used to store the value and may be used for deletion and to fetch the value. 0 or more values may be supplied. Multiple occurences of the same key yield in the last occuring key to be inserted and the rest to be ignored. Each key of the specified values is allowed to occur only once. On error an exceptionError::Simpleis thrown. - add_device( [ VALUE ... ] )
-
Add additional values on the list of devices for the system. Each
VALUEis an object out of which the id is obtained through methodget_name(). The obtained key is used to store the value and may be used for deletion and to fetch the value. 0 or more values may be supplied. Multiple occurences of the same key yield in the last occuring key to be inserted and the rest to be ignored. Each key of the specified values is allowed to occur only once. On error an exceptionError::Simpleis thrown. - delete_device(ARRAY)
-
Delete elements from the list of devices for the system. Returns the number of deleted elements. On error an exception
Error::Simpleis thrown. - exists_device(ARRAY)
-
Returns the count of items in
ARRAYthat are in the list of devices for the system. - keys_device()
-
Returns an
ARRAYcontaining the keys of the list of devices for the system. - values_device( [ KEY_ARRAY ] )
-
Returns an
ARRAYcontaining the values of the list of devices for the system. IfKEY_ARRAYcontains one or moreKEYs the values related to theKEYs are returned. If noKEYs specified all values are returned. - set_diff_number(VALUE)
-
State that diff() should consider the
numberattribtutes.VALUEis the value. Default value at initialization is0. On error an exceptionError::Simpleis thrown. - is_diff_number()
-
Returns whether diff() should consider the
numberattribtutes or not. - set_local_system_name(VALUE)
-
Set the name of the system UNISPOOL is running on.
VALUEis the value.VALUEmay not beundef. On error an exceptionError::Simpleis thrown. - get_local_system_name()
-
Returns the name of the system UNISPOOL is running on.
- set_maximum_delay_time(VALUE)
-
Set the number of seconds the UNISPOOL main process is allowed to sleep between consecutive scans for printfiles.
VALUEis the value. Default value at initialization is15. On error an exceptionError::Simpleis thrown. - get_maximum_delay_time()
-
Returns the number of seconds the UNISPOOL main process is allowed to sleep between consecutive scans for printfiles.
- set_maximum_print_file_space(VALUE)
-
Set the maximum number of bytes available to store UNISPOOL printfiles.
VALUEis the value. Default value at initialization is0. On error an exceptionError::Simpleis thrown. - get_maximum_print_file_space()
-
Returns the maximum number of bytes available to store UNISPOOL printfiles.
- set_maximum_save_file_space(VALUE)
-
Set the maximum number of bytes available to store saved printfiles.
VALUEis the value. Default value at initialization is0. On error an exceptionError::Simpleis thrown. - get_maximum_save_file_space()
-
Returns the maximum number of bytes available to store saved printfiles.
- set_network_name(VALUE)
-
Set the network name of the system.
VALUEis the value.VALUEmay not beundef. On error an exceptionError::Simpleis thrown. - get_network_name()
-
Returns the network name of the system.
- set_os(VALUE)
-
Set the operating system running on this system.
VALUEis the value.VALUEmay not beundef. On error an exceptionError::Simpleis thrown. - get_os()
-
Returns the operating system running on this system.
- set_remote_system( [ VALUE ... ] )
-
Set the list of remote systems for the system absolutely using values. Each
VALUEis an object out of which the id is obtained through methodget_name(). The obtained key is used to store the value and may be used for deletion and to fetch the value. 0 or more values may be supplied. Multiple occurences of the same key yield in the last occuring key to be inserted and the rest to be ignored. Each key of the specified values is allowed to occur only once. On error an exceptionError::Simpleis thrown. - add_remote_system( [ VALUE ... ] )
-
Add additional values on the list of remote systems for the system. Each
VALUEis an object out of which the id is obtained through methodget_name(). The obtained key is used to store the value and may be used for deletion and to fetch the value. 0 or more values may be supplied. Multiple occurences of the same key yield in the last occuring key to be inserted and the rest to be ignored. Each key of the specified values is allowed to occur only once. On error an exceptionError::Simpleis thrown. - delete_remote_system(ARRAY)
-
Delete elements from the list of remote systems for the system. Returns the number of deleted elements. On error an exception
Error::Simpleis thrown. - exists_remote_system(ARRAY)
-
Returns the count of items in
ARRAYthat are in the list of remote systems for the system. - keys_remote_system()
-
Returns an
ARRAYcontaining the keys of the list of remote systems for the system. - values_remote_system( [ KEY_ARRAY ] )
-
Returns an
ARRAYcontaining the values of the list of remote systems for the system. IfKEY_ARRAYcontains one or moreKEYs the values related to theKEYs are returned. If noKEYs specified all values are returned. - set_save_groups(VALUE)
-
Set the number of savegroups (not found in UNISPOOL
config -screen).VALUEis the value. Default value at initialization is''. On error an exceptionError::Simpleis thrown. - get_save_groups()
-
Returns the number of savegroups (not found in UNISPOOL
config -screen). - set_save_time_in_days(VALUE)
-
Set the number of days saved printfiles will be kept on disk before they are automatically removed.
VALUEis the value. Default value at initialization is3. On error an exceptionError::Simpleis thrown. - get_save_time_in_days()
-
Returns the number of days saved printfiles will be kept on disk before they are automatically removed.
- set_start_time_clean_job_hour(VALUE)
-
Set the hour part of the time that the clean job must be started on a 24-hour clock.
VALUEis the value. Default value at initialization is0. On error an exceptionError::Simpleis thrown. - get_start_time_clean_job_hour()
-
Returns the hour part of the time that the clean job must be started on a 24-hour clock.
- set_start_time_clean_job_minute(VALUE)
-
Set the minute part of the time that the clean job must be started on a 24-hour clock.
VALUEis the value. Default value at initialization is0. On error an exceptionError::Simpleis thrown. - get_start_time_clean_job_minute()
-
Returns the minute part of the time that the clean job must be started on a 24-hour clock.
- set_type(VALUE)
-
Set the system type.
VALUEis the value. On error an exceptionError::Simpleis thrown. - get_type()
-
Returns the system type.
INHERITED METHODS FROM HH::Unispool::Config::Entry
SEE ALSO
HH::Unispool::Config, HH::Unispool::Config::DateFormat, HH::Unispool::Config::Entry, HH::Unispool::Config::Entry::Device, HH::Unispool::Config::Entry::Device::0, HH::Unispool::Config::Entry::Device::1, HH::Unispool::Config::Entry::Device::2, HH::Unispool::Config::Entry::Device::3, HH::Unispool::Config::Entry::Device::4, HH::Unispool::Config::Entry::Device::5, HH::Unispool::Config::Entry::Device::6, HH::Unispool::Config::Entry::Device::7, HH::Unispool::Config::Entry::Filter, HH::Unispool::Config::Entry::Numbered, HH::Unispool::Config::Entry::RemoteSystem, HH::Unispool::Config::Entry::RemoteSystem::3, HH::Unispool::Config::Entry::RemoteSystem::6, HH::Unispool::Config::Entry::RemoteSystem::7, HH::Unispool::Config::Entry::RemoteSystem::8, HH::Unispool::Config::ExecPri, HH::Unispool::Config::File::Token, HH::Unispool::Config::File::Token::Comment, HH::Unispool::Config::File::Token::Comment::Cs, HH::Unispool::Config::File::Token::Comment::Date, HH::Unispool::Config::File::Token::Comment::Device, HH::Unispool::Config::File::Token::Comment::Filter, HH::Unispool::Config::File::Token::Comment::Group, HH::Unispool::Config::File::Token::Comment::Head, HH::Unispool::Config::File::Token::Comment::Misc, HH::Unispool::Config::File::Token::Comment::NetDesc, HH::Unispool::Config::File::Token::Comment::RSys, HH::Unispool::Config::File::Token::Comment::Scope, HH::Unispool::Config::File::Token::Comment::Tail, HH::Unispool::Config::File::Token::Factory, HH::Unispool::Config::File::Token::Numbered, HH::Unispool::Config::File::Token::Numbered::Device, HH::Unispool::Config::File::Token::Numbered::Device::0, HH::Unispool::Config::File::Token::Numbered::Device::1, HH::Unispool::Config::File::Token::Numbered::Device::2, HH::Unispool::Config::File::Token::Numbered::Device::3, HH::Unispool::Config::File::Token::Numbered::Device::4, HH::Unispool::Config::File::Token::Numbered::Device::5, HH::Unispool::Config::File::Token::Numbered::Device::6, HH::Unispool::Config::File::Token::Numbered::Device::7, HH::Unispool::Config::File::Token::Numbered::Device::Group, HH::Unispool::Config::File::Token::Numbered::Device::Info, HH::Unispool::Config::File::Token::Numbered::Device::P, HH::Unispool::Config::File::Token::Numbered::Network, HH::Unispool::Config::File::Token::Numbered::System, HH::Unispool::Config::File::Token::Numbered::System::3, HH::Unispool::Config::File::Token::Numbered::System::6, HH::Unispool::Config::File::Token::Numbered::System::7, HH::Unispool::Config::File::Token::Numbered::System::8, HH::Unispool::Config::File::Token::Numbered::System::Info, HH::Unispool::Config::File::Token::Numbered::X, HH::Unispool::Config::File::Token::Unnumbered, HH::Unispool::Config::File::Token::Unnumbered::Bcs, HH::Unispool::Config::File::Token::Unnumbered::CSN, HH::Unispool::Config::File::Token::Unnumbered::Cs, HH::Unispool::Config::File::Token::Unnumbered::CsBcs, HH::Unispool::Config::File::Token::Unnumbered::Filter, HH::Unispool::Config::File::Token::Unnumbered::Host, HH::Unispool::Config::File::Token::Unnumbered::Misc, HH::Unispool::Config::File::Tokenizer, HH::Unispool::Config::FilterType, HH::Unispool::Config::OS, HH::Unispool::Config::Scope
BUGS
None known (yet.)
HISTORY
First development: February 2003
AUTHOR
Vincenzo Zocca
COPYRIGHT
Copyright 2003 by Vincenzo Zocca
LICENSE
This file is part of the HH::Unispool::Config module hierarchy for Perl by Vincenzo Zocca.
The HH::Unispool::Config module hierarchy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
The HH::Unispool::Config module hierarchy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with the HH::Unispool::Config module hierarchy; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA