1Ravada::Domain::KVM(3)User Contributed Perl DocumentationRavada::Domain::KVM(3)
2
3
4
5   NAME
6       Ravada::Domain::KVM - KVM Virtual Machines library for Ravada
7
8   name
9       Returns the name of the domain
10
11   list_disks
12       Returns a list of the disks used by the virtual machine. CDRoms are not
13       included
14
15         my@ disks = $domain->list_disks();
16
17   remove_disks
18       Remove the volume files of the domain
19
20   pre_remove_domain
21       Cleanup operations executed before removing this domain
22
23           $self->pre_remove_domain
24
25   remove
26       Removes this domain. It removes also the disk drives and base images.
27
28   disk_device
29       Returns the file name of the disk of the domain.
30
31         my $file_name = $domain->disk_device();
32
33   pre_prepare_base
34       Run this before preparing the base. It is necessary to correctly detect
35       disks drivers for newer libvirts.
36
37       This is executed automatically so it shouldn't been called.
38
39   post_prepare_base
40       Task to run after preparing a base virtual machine
41
42   get_xml_base
43       Returns the XML definition for the base, only if prepare_base has been
44       run befor
45
46   display_info
47       Returns the display information as a hashref. The display URI is in the
48       display entry
49
50   is_active
51       Returns whether the domain is running or not
52
53   is_persistent
54       Returns wether the domain has a persistent configuration file
55
56   start
57       Starts the domain
58
59   shutdown
60       Stops the domain
61
62   shutdown_now
63       Shuts down uncleanly the domain
64
65   force_shutdown
66       Shuts down uncleanly the domain
67
68   pause
69       Pauses the domain
70
71   resume
72       Resumes a paused the domain
73
74   is_hibernated
75       Returns if the domain has a managed saved state.
76
77   is_paused
78       Returns if the domain is paused
79
80   can_hybernate
81       Returns true (1) for KVM domains
82
83   can_hybernate
84       Returns true (1) for KVM domains
85
86   hybernate
87       Take a snapshot of the domain's state and save the information to a
88       managed save location. The domain will be automatically restored with
89       this state when it is next started.
90
91           $domain->hybernate();
92
93   hybernate
94       Take a snapshot of the domain's state and save the information to a
95       managed save location. The domain will be automatically restored with
96       this state when it is next started.
97
98           $domain->hybernate();
99
100   add_volume
101       Adds a new volume to the domain
102
103           $domain->add_volume(name => $name, size => $size);
104           $domain->add_volume(name => $name, size => $size, xml => 'definition.xml');
105
106           $domain->add_volume(path => "/var/lib/libvirt/images/path.img");
107
108   list_volumes
109       Returns a list of the disk volumes. Each element of the list is a
110       string with the filename.  For KVM it reads from the XML definition of
111       the domain.
112
113           my @volumes = $domain->list_volumes();
114
115   list_volumes_info
116       Returns a list of the disk volumes. Each element of the list is a
117       string with the filename.  For KVM it reads from the XML definition of
118       the domain.
119
120           my @volumes = $domain->list_volumes_info();
121
122   screenshot
123       Takes a screenshot, it stores it in file.
124
125   can_screenshot
126       Returns if a screenshot of this domain can be taken.
127
128   storage_refresh
129       Refreshes the internal storage. Used after removing files such as base
130       images.
131
132   get_info
133       This is taken directly from Sys::Virt::Domain.
134
135       Returns a hash reference summarising the execution state of the domain.
136       The elements of the hash are as follows:
137
138       maxMem
139           The maximum memory allowed for this domain, in kilobytes
140
141       memory
142           The current memory allocated to the domain in kilobytes
143
144       cpu_time
145           The amount of CPU time used by the domain
146
147       n_virt_cpu
148           The current number of virtual CPUs enabled in the domain
149
150       state
151           The execution state of the machine, which will be one of the
152           constants &Sys::Virt::Domain::STATE_*.
153
154   set_max_mem
155       Set the maximum memory for the domain
156
157   get_max_mem
158       Get the maximum memory for the domain
159
160   set_memory
161       Sets the current available memory for the domain
162
163   rename
164       Renames the domain
165
166           $domain->rename("new name");
167
168   disk_size
169       Returns the size of the domains disk or disks If an array is expected,
170       it returns the list of disks sizes, if it expects an scalar returns the
171       first disk as it is asumed to be the main one.
172
173           my $size = $domain->disk_size();
174
175       sub _find_base {
176           my $self = shift;
177           my $file = shift;
178
179           my @cmd = ( 'qemu-img','info',$file);
180           my ($in,$out, $err);
181           run3(\@cmd,\$in, \$out, \$err);
182
183           my ($base) = $out =~ m{^backing file: (.*)}mi;
184           warn "No base for $file in $out" if !$base;
185
186           return $base;
187       }
188
189   clean_swap_volumes
190       Clean swap volumes. It actually just creates an empty qcow file from
191       the base
192
193       sub clean_swap_volumes {
194           my $self = shift;
195           return if !$self->is_local;
196           for my $file ($self->list_volumes) {
197               next if !$file || $file !~ /\.SWAP\.\w+/;
198               next if ! -e $file;
199               my $base = $self->_find_base($file) or next;
200
201               my @cmd = ('qemu-img','create'
202                       ,'-f','qcow2'
203                       ,'-b',$base
204                       ,$file
205               );
206               my ($in,$out, $err);
207               run3(\@cmd,\$in, \$out, \$err);
208               die $err if $err;
209               }
210       }
211
212   set_driver
213       Sets the value of a driver
214
215       Argument: name , driver
216
217           my $driver = $domain->set_driver('video','"type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"');
218
219   pre_remove
220       Code to run before removing the domain. It can be implemented in each
221       domain.  It is not expected to run by itself, the remove function calls
222       it before proceeding.  In KVM it removes saved images.
223
224           $domain->pre_remove();  # This isn't likely to be necessary
225           $domain->remove();      # Automatically calls the domain pre_remove method
226
227
228
229perl v5.32.0                      2020-12-26            Ravada::Domain::KVM(3)
Impressum