NAME
Illumos::Zones - Zone administration class
SYNOPSIS
use Illumos::Zones;
...
my $zone = Illumos::Zones->new(debug => 0);
...
DESCRIPTION
class to manage Zones
ATTRIBUTES
debug
print debug information to STDERR
METHODS
schema
returns a schema for "Data::Processor" so that the zone config can be validated before written to the zone.
my $schema = $zone->schema();
template
returns a minimal template config for creating a zone
my $cfg = $zone->template();
resources
returns a list of zone resources
my @res = @{$zone->resources()};
resourceArrays
returns a list of zone resources which are arrays (i.e. can have multiple entries)
my @resArray = @{$zone->resourceArrays()};
zoneName
static method. returns the name of the current zone
Illumos::Zones->zonename();
isGZ
static method. returns true if we are on the global zone
Illumos::Zones->isGZ();
listZones
returns the list of zones. each element contains a hash with all the zone infos (cf. 'zoneamd list')
my @zones = @{$zone->listZones()};
listZone
returns a hash with all the zone infos (cf. 'zoneadm list')
my %zone = %{$zone->listZone($zonename)};
zoneState
returns the state of the zone
$zone->zoneState($zonename);
boot
boots the zone
$zone->boot($zonename);
shutdown
gracefully shuts down the zone
$zone->shutdown($zonename);
reboot
reboots the zone
$zone->reboot($zonename);
createZone
creates a zone and applies the properties
$zone->createZone($zonename, { %props });
deleteZone
deletes a zone (zone must be uninstalled first)
$zone->deleteZone($zonename);
installZone
installs a zone
$zone->install($zonename);
uninstallZone
uninstalls a zone
$zone->uninstall($zonename);
zoneExists
checks whether a zone exists or not
$zone->zoneExists($zonename);
getZoneProperties
returns a JSON data structure which contains all the zone properties
my %zonecfg = %{$zone->getZoneProperties($zonename)};
setZoneProperties
applies the properties provided in a JSON data structure to the zone if the zone does not exist it will be created
$zone->setZoneProperties($zonename, { %zonecfg });
resourceExists
checks whether a resource exists or not. $property
and $value
are optional parameters
$zone->resourceExists($zonename, $resource, $property, $value);
addResource
adds a resource
$zone->addResource($zonename, $resource, { %props });
delResource
deletes a resource. $property
and $value
are optional parameters for distinction if multiple resources of the same type exists.
$zone->delResource($zonename, $resource, $property, $value);
clearResources
deletes all resrouces
$zone->clearResources($zonename);
setProperty
sets a property
$zone->setProperty($zonename, $property, $value);
clearProperty
sets a property to the default value
$zone->clearProperty($zonename, $property);
COPYRIGHT
Copyright (c) 2015 by OETIKER+PARTNER AG. All rights reserved.
LICENSE
This program 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 3 of the License, or (at your option) any later version.
This program 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 this program. If not, see http://www.gnu.org/licenses/.
AUTHOR
Dominik Hassler <hadfl@cpan.org>, Tobias Oetiker <tobi@oetiker.ch>
HISTORY
2015-05-08 had Initial Version