The new LCFG profile framework makes it simple to retrieve component and resource information from profiles stored in the various standard formats (XML, Berkeley DB and status files).
Loading a profile from XML, DB or status directory:
my $p = LCFG::Profile->new_from_xml(“example.xml”);
my $p = LCFG::Profile->new_from_bdb(“example.db”);
my $p = LCFG::Profile->new_from_status_dir(“/run/lcfg/status”);
Loading a component from a DB or status file:
my $c = LCFG::Profile::Component->new_from_bdb( “example.bdb”, “client” );
my $c = LCFG::Profile::Component->new_from_statusfile( “/run/lcfg/status/client” );
Retrieving a component (e.g. client) from the profile:
my $c = $p->find_component(“client”);
Retrieving a resource (e.g. client.components) from a component:
my $r = $c->find_resource(“components”);
Getting the resource value:
say $r->value;
For convenience, if the resource is a tag list then you can get the value as a perl list:
@comps = $r->value;
for my $comp (@comps) {
…
}