1# 2# (c) Jan Gehring <jan.gehring@gmail.com> 3# 4# vim: set ts=2 sw=2 tw=0: 5# vim: set expandtab: 6 7package Rex::Virtualization::LibVirt::shutdown; 8 9use 5.010001; 10use strict; 11use warnings; 12 13our $VERSION = '1.13.4'; # VERSION 14 15use Rex::Logger; 16use Rex::Helper::Run; 17 18sub execute { 19 my ( $class, $arg1, %opt ) = @_; 20 my $virt_settings = Rex::Config->get("virtualization"); 21 chomp( my $uri = 22 ref($virt_settings) ? $virt_settings->{connect} : i_run "virsh uri" ); 23 24 unless ($arg1) { 25 die("You have to define the vm name!"); 26 } 27 28 my $dom = $arg1; 29 Rex::Logger::debug("shutdown domain: $dom"); 30 31 unless ($dom) { 32 die("VM $dom not found."); 33 } 34 35 i_run "virsh -c $uri shutdown '$dom'", fail_ok => 1; 36 if ( $? != 0 ) { 37 die("Error shutdown vm $dom"); 38 } 39 40} 41 421; 43