freebsd-ports/net-mgmt/p5-FusionInventory-Agent/files/patch-add_jails_support
Steve Wills 195df866ab - Update to 2.2.5
- Add various options
- Fix depends
- Improve depends based on options

PR:		ports/167017
Submitted by:	akrus <akrus@flygroup.st>
Approved by:	Veniamin Gvozdikov <g.veniamin@googlemail.com> (maintainer)
2012-08-25 20:20:28 +00:00

64 lines
1.5 KiB
Text

--- lib/FusionInventory/Agent/Task/Inventory/Input/Virtualization/Jails.pm 1970-01-01 01:00:00.000000000 +0100
+++ lib/FusionInventory/Agent/Task/Inventory/Input/Virtualization/Jails.pm 2012-05-29 09:35:00.000000000 +0100
@@ -0,0 +1,61 @@
+package FusionInventory::Agent::Task::Inventory::Input::Virtualization::Jails;
+
+use strict;
+use warnings;
+
+use FusionInventory::Agent::Tools;
+
+sub isEnabled {
+ return canRun('jls');
+}
+
+sub doInventory {
+ my (%params) = @_;
+
+ my $inventory = $params{inventory};
+ my $logger = $params{inventory};
+
+ my $command = 'jls -n';
+ foreach my $machine (_getVirtualMachines(logger => $logger)) {
+ $inventory->addEntry(
+ section => 'VIRTUALMACHINES', entry => $machine
+ );
+ }
+}
+
+sub _getVirtualMachines {
+ my (%params) = (
+ command => 'jls -n',
+ @_
+ );
+
+ my $handle = getFileHandle(%params);
+
+ return unless $handle;
+
+ my @machines;
+ while (my $line = <$handle>) {
+ my $info;
+ foreach my $item (split(' ', $line)) {
+ next unless $item =~ /(\S+)=(\S+)/;
+ my $key = $1;
+ my $value = $2;
+ $info->{$1} = $2;
+ }
+
+ my $machine = {
+ VMTYPE => 'jail',
+ NAME => $info->{'host.hostname'},
+ VMID => $info->{'jid'},
+ STATUS => 'running'
+ };
+
+ push @machines, $machine;
+
+ }
+ close $handle;
+
+ return @machines;
+}
+
+1;