Query: config::model::idelementreference
OS: debian
Section: 3pm
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
Config::Model::IdElementReference(3pm) User Contributed Perl Documentation Config::Model::IdElementReference(3pm)NAMEConfig::Model::IdElementReference - Refer to id element(s) and extract keysVERSIONversion 2.021SYNOPSIS# synopsis shows an example of model of a network to use references use Config::Model; use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); my $model = Config::Model->new; # model of several hosts with several NICs $model->create_config_class( name => 'Host', 'element' => [ ip_nic => { type => 'hash', index_type => 'string', cargo => { type => 'leaf', value_type => 'uniline', } }, ] ); # model to choose a master host and a master NIC (whatever that may be) # among configured hosts. Once these 2 are configured, the model computes # the master IP $model->create_config_class( name => "MyNetwork", element => [ host => { type => 'hash', index_type => 'string', cargo => { type => 'node', config_class_name => 'Host' }, }, # master_host is one of the configured hosts master_host => { type => 'leaf', value_type => 'reference', # provided by tConfig::Model::IdElementReference refer_to => '! host' }, # master_nic is one NIC of the master host master_nic => { type => 'leaf', value_type => 'reference', # provided by tConfig::Model::IdElementReference computed_refer_to => { # provided by Config::Model::ValueComputer formula => ' ! host:$h ip_nic ', variables => { h => '- master_host' } } }, # provided by Config::Model::ValueComputer master_ip => { type => 'leaf', value_type => 'string', compute => { formula => '$ip', variables => { h => '- master_host', nic => '- master_nic', ip => '! host:$h ip_nic:$nic' } } }, ], ); my $inst = $model->instance(root_class_name => 'MyNetwork' ); my $root = $inst->config_root ; # configure hosts on my network my $step = 'host:foo ip_nic:eth0=192.168.0.1 ip_nic:eth1=192.168.1.1 - host:bar ip_nic:eth0=192.168.0.2 ip_nic:eth1=192.168.1.2 - host:baz ip_nic:eth0=192.168.0.3 ip_nic:eth1=192.168.1.3 '; $root->load( step => $step ); print "master host can be one of ", join(' ',$root->fetch_element('master_host')->get_choice)," " ; # prints: master host can be one of bar baz foo # choose master host $root->load('master_host=bar') ; print "master NIC of master host can be one of ", join(' ',$root->fetch_element('master_nic')->get_choice)," " ; # prints: master NIC of master host can be one of eth0 eth1 # choose master nic $root->load('master_nic=eth1') ; # check what is the master IP computed by the model print "master IP is ",$root->grab_value('master_ip')," "; # prints master IP is 192.168.1.2DESCRIPTIONThis class is user by Config::Model::Value to set up an enumerated value where the possible choice depends on the key of a Config::Model::HashId or the content of a Config::Model::ListId object. This class is also used by Config::Model::CheckList to define the checklist items from the keys of another hash (or content of a list).CONSTRUCTORConstruction is handled by the calling object (Config::Model::Node). Config class parameters refer_to "refer_to" is used to specify a hash element that will be used as a reference. "refer_to" points to an array or hash element in the configuration tree using the path syntax (See "grab" in Config::Model::Node for details). computed_refer_to When "computed_refer_to" is used, the path is computed using values from several elements in the configuration tree. "computed_refer_to" is a hash with 2 mandatory elements: "formula" and "variables". The available choice of this (computed or not) reference value is made from the available keys of the refered_to hash element or the values of the refered_to array element. The example means the the value must correspond to an existing host: value_type => 'reference', refer_to => '! host' This example means the the value must correspond to an existing lan within the host whose Id is specified by hostname: value_type => 'reference', computed_refer_to => { formula => '! host:$a lan', variables => { a => '- hostname' } } If you need to combine possibilities from several hash, use the ""+"" token to separate 2 paths: value_type => 'reference', computed_refer_to => { formula => '! host:$a lan + ! host:foobar lan', variables => { a => '- hostname' } } You can specify "refer_to" or "computed_refer_to" with a "choice" argument so the possible enum value will be the combination of the specified choice and the refered_to values. Methods reference_info Returns a human readable string with explains how is retrieved the reference. This method is mostly used to construct an error messages.AUTHORDominique Dumont, (ddumont at cpan dot org)SEE ALSOConfig::Model, Config::Model::Value, Config::Model::AnyId, Config::Model::CheckList perl v5.14.2 2012-11-09 Config::Model::IdElementReference(3pm)
Similar Topics in the Unix Linux Community |
---|
nic question... |
nic configuration |
second NIC not working - D-Link DGE 530 T |
How to extract NIC and other info ,given Ip |
about lan |