Import Upstream version 2.2.1
|
@ -0,0 +1,102 @@
|
||||||
|
# Contribute to virt-manager
|
||||||
|
|
||||||
|
## Bug reporting
|
||||||
|
|
||||||
|
The preferred place for bug reports is bugzilla.redhat.com. This
|
||||||
|
is documented more at https://virt-manager.org/bugs/
|
||||||
|
|
||||||
|
Small issues can be reported in the
|
||||||
|
[github issue tracker](https://github.com/virt-manager/virt-manager/issues).
|
||||||
|
Anything that's non-trivial, or is a feature request, should be filed in
|
||||||
|
bugzilla.
|
||||||
|
|
||||||
|
Please only file issues if they apply to the latest version of
|
||||||
|
virt-manager. If you are using an older version from a distro,
|
||||||
|
please file a bug with them.
|
||||||
|
|
||||||
|
When filing a bug, please reproduce the issue with the `--debug`
|
||||||
|
flag passed to the tool and attach the full output in the bug
|
||||||
|
report.
|
||||||
|
|
||||||
|
|
||||||
|
## Writing patches
|
||||||
|
|
||||||
|
The following commands will be useful for anyone writing patches:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./setup.py test # Run local unit test suite
|
||||||
|
./setup.py pylint # Run pylint/pycodestyle checking
|
||||||
|
```
|
||||||
|
|
||||||
|
Any patches shouldn't change the output of 'test' or 'pylint'. Depending
|
||||||
|
on what version of libvirt or pylint is installed, you may see some
|
||||||
|
pre-existing errors from these commands. The important thing is that
|
||||||
|
any changes you make do not add additional errors.
|
||||||
|
|
||||||
|
The 'pylint' command requires [`pylint`](https://github.com/PyCQA/pylint)
|
||||||
|
and [`pycodestyle`](https://github.com/pycqa/pycodestyle) to be installed.
|
||||||
|
If [`codespell`](https://github.com/codespell-project/codespell) is installed,
|
||||||
|
it will be invoked as well.
|
||||||
|
|
||||||
|
One useful way to manually test virt-manager's UI is using libvirt's
|
||||||
|
unit test driver. From the source directory, Launch virt-manager like:
|
||||||
|
```sh
|
||||||
|
./virt-manager --connect test://$PWD/tests/testdriver.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
This testdriver has many fake XML definitions that can be used to see each bit
|
||||||
|
of virt-manager's UI. It also enables testing the various wizards without
|
||||||
|
having to alter your host virt config.
|
||||||
|
|
||||||
|
The command line tools can be tested similarly. To run a virt-install
|
||||||
|
command that won't alter your host config, you can do:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./virt-install --connect test:///default --debug ...
|
||||||
|
```
|
||||||
|
|
||||||
|
`--connect test:///default` here is libvirt's built in unit test driver.
|
||||||
|
|
||||||
|
We use [glade-3](https://glade.gnome.org/) for building most of virt-manager's
|
||||||
|
UI. See the files in the ui/ directory.
|
||||||
|
|
||||||
|
|
||||||
|
## Submitting patches
|
||||||
|
|
||||||
|
The [virt-manager git repo](https://github.com/virt-manager/virt-manager)
|
||||||
|
is hosted on github. Small patches are acceptable via github pull-request,
|
||||||
|
but anything non-trivial should be sent to the
|
||||||
|
[virt-tools-list mailing list](https://www.redhat.com/mailman/listinfo/virt-tools-list).
|
||||||
|
|
||||||
|
Sending patches using `git send-email` is preferred, but `git format-patch`
|
||||||
|
output attached to an email is also fine.
|
||||||
|
|
||||||
|
|
||||||
|
## Introductory tasks
|
||||||
|
|
||||||
|
Extending the virt-install or virt-xml command line is a good introductory
|
||||||
|
task for virt-manager. See [the wiki](https://github.com/virt-manager/virt-manager/wiki)
|
||||||
|
for both a patch tutorial, and a list of libvirt `<domain>` XML options
|
||||||
|
that still need to be added to our command line.
|
||||||
|
|
||||||
|
|
||||||
|
## Translations
|
||||||
|
|
||||||
|
Translations are handled at `fedora.zanata.org`. Please register for a Fedora
|
||||||
|
account and request access to a translation team, as described at
|
||||||
|
[Translate on Zanata](https://fedoraproject.org/wiki/L10N/Translate_on_Zanata),
|
||||||
|
and contribute at
|
||||||
|
[virt-manager at Zanata](https://fedora.zanata.org/project/view/virt-manager/).
|
||||||
|
|
||||||
|
|
||||||
|
## Advanced testing
|
||||||
|
|
||||||
|
There's a few standalone specialty tests:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./setup.py test_ui # dogtail UI test suite. This takes over your desktop
|
||||||
|
./setup.py test_urls # Test fetching media from live distro URLs
|
||||||
|
./setup.py test_initrd_inject # Test live virt-install --initrd-inject
|
||||||
|
```
|
||||||
|
|
||||||
|
All test 'test*' commands have a `--debug` option if you are hitting problems. For more options, see `./setup.py test --help`.
|
|
@ -0,0 +1,339 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
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 2 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, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License.
|
|
@ -0,0 +1,49 @@
|
||||||
|
# Basic Install
|
||||||
|
|
||||||
|
For starters, if you just want to run `virt-manager/virt-install` to test out
|
||||||
|
changes, it can be done from the source directory:
|
||||||
|
```sh
|
||||||
|
./virt-manager
|
||||||
|
```
|
||||||
|
|
||||||
|
To install the software into `/usr/local` (usually), you can do:
|
||||||
|
```sh
|
||||||
|
./setup.py install
|
||||||
|
```
|
||||||
|
|
||||||
|
To build an RPM, you can run:
|
||||||
|
```sh
|
||||||
|
./setup.py rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
`setup.py` generally has all the build and install commands, for more info see:
|
||||||
|
|
||||||
|
- `./setup.py --help-commands`
|
||||||
|
- `./setup.py install --help`
|
||||||
|
- [Python Standard Build and Install](https://docs.python.org/3/install/#standard-build-and-install)
|
||||||
|
|
||||||
|
|
||||||
|
## Pre-requisite software
|
||||||
|
|
||||||
|
A detailed dependency list can be found in
|
||||||
|
[virt-manager.spec.in](virt-manager.spec.in) file.
|
||||||
|
|
||||||
|
Minimum version requirements of major components:
|
||||||
|
|
||||||
|
- python >= 3.4
|
||||||
|
- gtk3 >= 3.22
|
||||||
|
- libvirt-python >= 0.6.0
|
||||||
|
- pygobject3 >= 3.22
|
||||||
|
- libosinfo >= 0.2.10
|
||||||
|
- gtksourceview >= 3
|
||||||
|
|
||||||
|
On Debian or Ubuntu based distributions, you need to install the
|
||||||
|
`gobject-introspection` bindings for some dependencies like `libvirt-glib`
|
||||||
|
and `libosinfo`. Look for package names that start with `'gir'`, for example
|
||||||
|
`gir1.2-libosinfo-1.0`.
|
||||||
|
|
||||||
|
|
||||||
|
## Optional software
|
||||||
|
|
||||||
|
`virt-manager` can optionally use [libguestfs](http://libguestfs.org/)
|
||||||
|
for inspecting the guests. For this, `python-libguestfs` >= 1.22 is needed.
|
|
@ -0,0 +1,15 @@
|
||||||
|
# to be included/excluded from the tarball produced by sdist
|
||||||
|
include COPYING CONTRIBUTING.md INSTALL.md NEWS.md README.md
|
||||||
|
include MANIFEST.in
|
||||||
|
include setup.py
|
||||||
|
include virt-*
|
||||||
|
recursive-include data *
|
||||||
|
exclude data/gschemas.compiled
|
||||||
|
recursive-include man *
|
||||||
|
recursive-include po *
|
||||||
|
recursive-include tests *
|
||||||
|
recursive-include ui *
|
||||||
|
recursive-include virtManager *
|
||||||
|
recursive-include virtconv *
|
||||||
|
recursive-include virtinst *
|
||||||
|
global-exclude *.pyc
|
|
@ -0,0 +1,571 @@
|
||||||
|
# Virtual Machine Manager News
|
||||||
|
|
||||||
|
## Release 2.2.1 (July 03, 2019)
|
||||||
|
- CVE-2019-10183: Replace --unattended user-password and admin-password with
|
||||||
|
user-password-file and admin-password-file (Fabiano Fidêncio)
|
||||||
|
- Consistent --memballoon default across non-x86 (Andrea Bolognani)
|
||||||
|
- virt-install: add --numatune memnode.* (Athina Plaskasoviti)
|
||||||
|
- Drop hard dep on gtksourceview4, gtksourceview3 is fine as well
|
||||||
|
|
||||||
|
## Release 2.2.0 (June 17, 2019)
|
||||||
|
- libvirt XML viewing and editing UI for new and existing domain, pools,
|
||||||
|
volumes, networks
|
||||||
|
- virt-install: libosinfo --unattended support (Fabiano Fidêncio, Cole
|
||||||
|
Robinson)
|
||||||
|
- Improve CPU model security defaults (Pavel Hrdina)
|
||||||
|
- virt-install: new --install option. Ex: virt-install --install fedora29
|
||||||
|
- virt-install: new --install kernel=,initrd=
|
||||||
|
- virt-install: --disk, --memory, --name defaults from libosinfo (Fabiano
|
||||||
|
Fidêncio, Cole Robinson)
|
||||||
|
- virt-install: add device suboption aliases which consistently match
|
||||||
|
libvirt XML naming
|
||||||
|
- virt-xml: new --start, --no-define options (Marc Hartmayer)
|
||||||
|
- virt-install: Add driver_queues argument to --controller (Vasudeva Kamath)
|
||||||
|
- RISC-V support (Andrea Bolognani)
|
||||||
|
- Device default improvements for non-x86 KVM (Andrea Bolognani)
|
||||||
|
- Redesigned 'New Network' wizard
|
||||||
|
- libguestfs inspection improvements (Pino Toscano)
|
||||||
|
- virt-install: Add support for xenbus controller (Jim Fehlig)
|
||||||
|
- cli: Add --disk wwn=,rawio= (Athina Plaskasoviti)
|
||||||
|
- cli: Add --memballoon autodeflate=,stats.period= (Athina Plaskasoviti)
|
||||||
|
- cli: Add --iothreads (Athina Plaskasoviti)
|
||||||
|
- cli: Add --numatune memory.placement (Athina Plaskasoviti)
|
||||||
|
- cli: Add --launchSecurity option (Erik Skultety)
|
||||||
|
- cli: Fill in --memorybacking options
|
||||||
|
- cli: --smartcard: support database= and certificate[0-9]*=
|
||||||
|
- cli: --sysinfo: Add chasis suboptions
|
||||||
|
- cli: --metadata: add genid= and genid_enable=
|
||||||
|
- cli: --vcpus: add vcpus.vcpu[0-9]* config
|
||||||
|
- cli: fill in all common char source options for --serial, --parellel,
|
||||||
|
--console, --channel, --smartcard, --rng, --redirdev
|
||||||
|
|
||||||
|
## Release 2.1.0 (February 03, 2019)
|
||||||
|
- Bash autocompletion support (Lin Ma, Cole Robinson)
|
||||||
|
- UI and command line --vsock support (Slavomir Kaslev)
|
||||||
|
- virt-xml: Add --os-variant option (Andrea Bolognani)
|
||||||
|
- virt-install: use libosinfo cpu, mem, disk size defaults (Fabiano
|
||||||
|
Fidencio)
|
||||||
|
- virt-install: Better usage of libosinfo -unknown distro IDs (Fabiano
|
||||||
|
Fidencio)
|
||||||
|
- virt-install: More usage of libosinfo for ISO --location detection
|
||||||
|
- virt-install: Add --location LOCATION,kernel=X,initrd=Y for pointing to
|
||||||
|
kernel/initrd in media that virt-install/libosinfo fails to detect
|
||||||
|
|
||||||
|
## Release 2.0.0 (October 15, 2018)
|
||||||
|
- Finish port to Python 3 (Radostin Stoyanov, Cole Robinson)
|
||||||
|
- Improved VM defaults for supported OS: q35 PCIe, usb3, CPU host-model
|
||||||
|
- Search based OS selection UI for new VMs (Daniel P. Berrangé, Cole
|
||||||
|
Robinson)
|
||||||
|
- Track OS name for lifetime of domain in <metadata> XML
|
||||||
|
- Host interface management UI has been completely removed
|
||||||
|
- Show domain IP on interface details page (Lin Ma, Cole Robinson)
|
||||||
|
- More efficient stats polling with AllDomainStats (Simon Kobyda, Cole
|
||||||
|
Robinson)
|
||||||
|
- TPM device model and backend UI (Marc-André Lureau, Stefan Berger)
|
||||||
|
- Show <channel> connection state in UI (Lin Ma)
|
||||||
|
- Show attached devices in <controller> UI (Lin Ma)
|
||||||
|
- UI option to plug/unplug VM nic link (Simon Kobyda)
|
||||||
|
- UI support for disk discard and detect_zeroes (Povilas Kanapickas, Lin Ma)
|
||||||
|
- Improved SUSE --location URL/ISO detection (Charles Arnold)
|
||||||
|
- cli and UI support for SCSI persistent reservations (Lin Ma)
|
||||||
|
- cli: Add --network mtu.size= option (Anya Harter)
|
||||||
|
- cli: Add --disk driver.copy_on_read (Anya Harter)
|
||||||
|
- cli: Add --disk geometry support (Anya Harter)
|
||||||
|
- cli: Add --sound codec support (Anya Harter)
|
||||||
|
- cli: Add --hostdev net/char/block for LXC (Lubomir Rintel)
|
||||||
|
- cli: Add --memorybacking access_mode and source_type (Marc-André Lureau)
|
||||||
|
- cli: Add --boot rebootTimout (Yossi Ovadia)
|
||||||
|
- cli: Add --boot bootloader=
|
||||||
|
- cli: Add --destroy-on-exit
|
||||||
|
|
||||||
|
## Release 1.5.0 (February 06, 2018)
|
||||||
|
- python3 prep work (Radostin Stoyanov, Cole Robinson, Cédric Bosdonnat)
|
||||||
|
- Switch --location ISO to use isoinfo (Andrew Wong)
|
||||||
|
- virt-install: add --cpu numa distance handling (Menno Lageman)
|
||||||
|
- virt-install: fix --disk for rbd volumes with auth (Rauno Väli)
|
||||||
|
- virt-install: add --cputune vcpupin handling (Wim ten Have)
|
||||||
|
- details ui: Showing attached scsi devices per controller (Lin Ma)
|
||||||
|
- network ui: Show details about SR-IOV VF pool (Lin Ma)
|
||||||
|
- Greatly expand UI test suite coverage
|
||||||
|
|
||||||
|
## Release 1.4.3 (September 19, 2017)
|
||||||
|
- Improve install of debian/ubuntu non-x86 media (Viktor Mihajlovski, Andrew
|
||||||
|
Wong)
|
||||||
|
- New virt-install --graphics listen.* (Pavel Hrdina)
|
||||||
|
- New virt-install --disk snapshot_policy= (Pavel Hrdina)
|
||||||
|
- New virt-install --cpu cache.* (Lin Ma)
|
||||||
|
- Several bug fixes
|
||||||
|
|
||||||
|
## Release 1.4.2 (August 08, 2017)
|
||||||
|
|
||||||
|
- New VM wizard virt-bootstrap integration (Radostin Stoyanov)
|
||||||
|
- New VM wizard support for virtuozzo containers (Mikhail Feoktistov)
|
||||||
|
- network UI: add support to create SR-IOV VF pool (Lin Ma)
|
||||||
|
- Nicer OS list in New VM wizard (Pino Toscano)
|
||||||
|
- Better defaults for UEFI secureboot builds (Pavel Hrdina)
|
||||||
|
- Fix defaults for aarch64 VMs if graphics are requested
|
||||||
|
- virt-install: new `--memdev` option (Pavel Hrdina)
|
||||||
|
- virt-install: add `--disk logical/physical_block_size` (Yuri Arabadji)
|
||||||
|
- virt-install: add `--features hyperv_reset=, hyperv_synic=` (Venkat Datta N
|
||||||
|
H)
|
||||||
|
|
||||||
|
## Release 1.4.1 (March 08, 2017)
|
||||||
|
|
||||||
|
- storage/nodedev event API support (Jovanka Gulicoska)
|
||||||
|
- UI options for enabling spice GL (Marc-André Lureau)
|
||||||
|
- Add default virtio-rng /dev/urandom for supported guest OS
|
||||||
|
- Cloning and rename support for UEFI VMs (Pavel Hrdina)
|
||||||
|
- libguestfs inspection UI improvements (Pino Toscano)
|
||||||
|
- virt-install: Add `--qemu-commandline`
|
||||||
|
- virt-install: Add `--network vhostuser` (Chen Hanxiao)
|
||||||
|
- virt-install: Add `--sysinfo` (Charles Arnold)
|
||||||
|
|
||||||
|
## Release 1.4.0 (June 18, 2016)
|
||||||
|
|
||||||
|
- virt-manager: spice GL console support (Marc-André Lureau, Cole Robinson)
|
||||||
|
- Bump gtk and pygobject deps to 3.14
|
||||||
|
- virt-manager: add checkbox to forget keyring password (Pavel Hrdina)
|
||||||
|
- cli: add `--graphics gl=` (Marc-André Lureau)
|
||||||
|
- cli: add `--video accel3d=` (Marc-André Lureau)
|
||||||
|
- cli: add `--graphics listen=none` (Marc-André Lureau)
|
||||||
|
- cli: add `--transient` flag (Richard W.M. Jones)
|
||||||
|
- cli: `--features gic=` support, and set a default for it (Pavel Hrdina)
|
||||||
|
- cli: Expose `--video heads, ram, vram, vgamem`
|
||||||
|
- cli: add `--graphics listen=socket`
|
||||||
|
- cli: add device address.type/address.bus/...
|
||||||
|
- cli: add `--disk seclabelX.model` (and .label, .relabel)
|
||||||
|
- cli: add `-cpu cellX.id` (and .cpus, and .memory)
|
||||||
|
- cli: add `--network rom_bar=` and `rom_file=`
|
||||||
|
- cli: add `--disk backing_format=`
|
||||||
|
- Many bug fixes and improvements
|
||||||
|
|
||||||
|
## Release 1.3.2 (December 24, 2015)
|
||||||
|
|
||||||
|
- Fix dependency issues with vte
|
||||||
|
|
||||||
|
## Release 1.3.1 (December 06, 2015)
|
||||||
|
|
||||||
|
- Fix command line API on RHEL7 pygobject
|
||||||
|
|
||||||
|
## Release 1.3.0 (November 24, 2015)
|
||||||
|
|
||||||
|
- Git hosting moved to http://github.com/virt-manager/virt-manager
|
||||||
|
- Switch translation infrastructure from transifex to fedora.zanata.org
|
||||||
|
- Add dogtail UI tests and infrastructure
|
||||||
|
- Improved support for s390x kvm (Kevin Zhao)
|
||||||
|
- virt-install and virt-manager now remove created disk images if VM
|
||||||
|
install startup fails
|
||||||
|
- Replace urlgrabber usage with requests and urllib2
|
||||||
|
- virt-install: add `--network` virtualport support for openvswitch
|
||||||
|
(Daniel P. Berrange)
|
||||||
|
- virt-install: support multiple `--security` labels
|
||||||
|
- virt-install: support `--features kvm_hidden=on|off` (Pavel Hrdina)
|
||||||
|
- virt-install: add `--features pmu=on|off`
|
||||||
|
- virt-install: add `--features pvspinlock=on|off` (Abhijeet Kasurde)
|
||||||
|
- virt-install: add `--events on_lockfailure=on|off` (Abhijeet Kasurde)
|
||||||
|
- virt-install: add `--network link_state=up|down`
|
||||||
|
- virt-install: add `--vcpu placement=static|auto`
|
||||||
|
|
||||||
|
## Release 1.2.1 (June 06, 2015)
|
||||||
|
|
||||||
|
- Bugfix release
|
||||||
|
- Fix connecting to older libvirt versions (Michał Kępień)
|
||||||
|
- Fix connecting to VM console with non-IP hostname (Giuseppe Scrivano)
|
||||||
|
- Fix addhardware/create wizard errors when a nodedev disappears
|
||||||
|
- Fix adding a second cdrom via customize dialog
|
||||||
|
|
||||||
|
## Release 1.2.0 (May 04, 2015)
|
||||||
|
|
||||||
|
- OVMF/AAVMF Support (Laszlo Ersek, Giuseppe Scrivano, Cole Robinson)
|
||||||
|
- Improved support for AArch64 qemu/kvm
|
||||||
|
- virt-install: Support `--disk type=network` parameters
|
||||||
|
- virt-install: Make `--disk` just work
|
||||||
|
- virt-install: Add `--disk sgio=` option (Giuseppe Scrivano)
|
||||||
|
- addhardware: default to an existing bus when adding a new disk
|
||||||
|
(Giuseppe Scrivano)
|
||||||
|
- virt-install: Add `--input` device option
|
||||||
|
- virt-manager: Unify storagebrowser and storage details functionality
|
||||||
|
- virt-manager: allow setting a custom connection row name
|
||||||
|
- virt-install: Support `--hostdev scsi` passthrough
|
||||||
|
- virt-install: Fill in a bunch of `--graphics` spice options
|
||||||
|
- Disable spice image compression for new local VMs
|
||||||
|
- virt-manager: big reworking of the migration dialog
|
||||||
|
|
||||||
|
## Release 1.1.0 (September 07, 2014)
|
||||||
|
|
||||||
|
- Switch to libosinfo as OS metadata database (Giuseppe Scrivano)
|
||||||
|
- Use libosinfo for OS detection from CDROM media labels (Giuseppe
|
||||||
|
Scrivano)
|
||||||
|
- Use libosinfo for improved OS defaults, like recommended disk size
|
||||||
|
(Giuseppe Scrivano)
|
||||||
|
- virt-image tool has been removed, as previously announced
|
||||||
|
- Enable Hyper-V enlightenments for Windows VMs
|
||||||
|
- Revert virtio-console default, back to plain serial console
|
||||||
|
- Experimental q35 option in new VM 'customize' dialog
|
||||||
|
- UI for virtual network QoS settings (Giuseppe Scrivano)
|
||||||
|
- virt-install: `--disk discard=` support (Jim Minter)
|
||||||
|
- addhardware: Add spiceport UI (Marc-André Lureau)
|
||||||
|
- virt-install: `--events on_poweroff` etc. support (Chen Hanxiao)
|
||||||
|
- cli:`--network portgroup=` support and UI support
|
||||||
|
- cli:`--boot initargs=` and UI support
|
||||||
|
- addhardware: allow setting controller model (Chen Hanxiao)
|
||||||
|
- virt-install: support setting hugepage options (Chen Hanxiao)
|
||||||
|
|
||||||
|
## Release 1.0.1 (March 22, 2014)
|
||||||
|
|
||||||
|
- virt-install/virt-xml: New `--memorybacking` option (Chen Hanxiao)
|
||||||
|
- virt-install/virt-xml: New `--memtune option` (Chen Hanxiao)
|
||||||
|
- virt-manager: UI for LXC `<idmap>` (Chen Hanxiao)
|
||||||
|
- virt-manager: gsettings key to disable keygrab (Kjö Hansi Glaz)
|
||||||
|
- virt-manager: Show domain state reason in the UI (Giuseppe Scrivano)
|
||||||
|
- Fix a number of bugs found since the 1.0.0 release
|
||||||
|
|
||||||
|
## Release 1.0.0 (February 14, 2014)
|
||||||
|
|
||||||
|
- virt-manager: Snapshot support
|
||||||
|
- New tool virt-xml: Edit libvirt XML in one shot from the command line
|
||||||
|
- Improved defaults: qcow2, USB2, host CPU model, guest agent channel,...
|
||||||
|
- Introspect command line options like `--disk=?` or `--network=help`
|
||||||
|
- The virt-image tool will be removed before the next release, speak up
|
||||||
|
if you have a good reason not to remove it.
|
||||||
|
- virt-manager: Support arm vexpress VM creation
|
||||||
|
- virt-manager: Add guest memory usage graphs (Thorsten Behrens)
|
||||||
|
- virt-manager: UI for editing `<filesystem>` devices (Cédric Bosdonnat)
|
||||||
|
- Spice USB redirection support (Guannan Ren)
|
||||||
|
- `<tpm>` UI and command line support (Stefan Berger)
|
||||||
|
- `<rng>` UI and command line support (Giuseppe Scrivano)
|
||||||
|
- `<panic>` UI and command line support (Chen Hanxiao)
|
||||||
|
- `<blkiotune>` command line support (Chen Hanxiao)
|
||||||
|
- virt-manager: support for glusterfs storage pools (Giuseppe Scrivano)
|
||||||
|
- cli: New options `--memory`, `--features`, `--clock`, `--metadata`, `--pm`
|
||||||
|
- Greatly improve app responsiveness when connecting to remote hosts
|
||||||
|
- Lots of UI cleanup and improvements
|
||||||
|
|
||||||
|
## Release 0.10.0 (June 19, 2013)
|
||||||
|
|
||||||
|
- Merged code with python-virtinst. virtinst is no longer public
|
||||||
|
- Port from GTK2 to GTK3 (Daniel Berrange, Cole Robinson)
|
||||||
|
- Port from gconf to gsettings
|
||||||
|
- Port from autotools to python distutils
|
||||||
|
- Remove virt-manager-tui
|
||||||
|
- Remove HAL support
|
||||||
|
- IPv6 and static route virtual network support (Gene Czarcinski)
|
||||||
|
- virt-install: Add `--cpu host-passthrough` (Ken ICHIKAWA, Hu Tao)
|
||||||
|
|
||||||
|
## Release 0.9.5 (April 01, 2013)
|
||||||
|
|
||||||
|
- Enable adding virtio-scsi disks (Chen Hanxiao)
|
||||||
|
- Support security auto-relabel setting (Martin Kletzander)
|
||||||
|
- Support disk iotune settings (David Shane Holden)
|
||||||
|
- Support 'reset' as a reboot option (John Doyle)
|
||||||
|
- Bug fixes and minor improvements
|
||||||
|
|
||||||
|
## Release 0.9.4 (July 29, 2012)
|
||||||
|
|
||||||
|
- Fix VNC keygrab issues
|
||||||
|
|
||||||
|
## Release 0.9.3 (July 09, 2012)
|
||||||
|
|
||||||
|
- Fix broken release tar.gz of version 0.9.2
|
||||||
|
|
||||||
|
## Release 0.9.2 (July 09, 2012)
|
||||||
|
|
||||||
|
- Convert to gtkbuilder: UI can now be edited with modern glade tool
|
||||||
|
- virt-manager no longer runs on RHEL5, but can manage a remote RHEL5
|
||||||
|
host
|
||||||
|
- Option to configure spapr net and disk devices for pseries (Li Zhang)
|
||||||
|
- Many bug fixes and improvements
|
||||||
|
|
||||||
|
## Release 0.9.1 (January 31, 2012)
|
||||||
|
|
||||||
|
- Support for adding usb redirection devices (Marc-André Lureau)
|
||||||
|
- Option to switch usb controller to support usb2.0 (Marc-André Lureau)
|
||||||
|
- Option to specify machine type for non-x86 guests (Li Zhang)
|
||||||
|
- Support for filesystem device type and write policy (Deepak C Shetty)
|
||||||
|
- Many bug fixes!
|
||||||
|
|
||||||
|
## Release 0.9.0 (July 26, 2011)
|
||||||
|
|
||||||
|
- Use a hiding toolbar for fullscreen mode
|
||||||
|
- Use libguestfs to show guest packagelist and more (Richard W.M. Jones)
|
||||||
|
- Basic 'New VM' wizard support for LXC guests
|
||||||
|
- Remote serial console access (with latest libvirt)
|
||||||
|
- Remote URL guest installs (with latest libvirt)
|
||||||
|
- Add Hardware: Support `<filesystem>` devices
|
||||||
|
- Add Hardware: Support `<smartcard>` devices (Marc-André Lureau)
|
||||||
|
- Enable direct interface selection for qemu/kvm (Gerhard Stenzel)
|
||||||
|
- Allow viewing and changing disk serial number
|
||||||
|
|
||||||
|
## Release 0.8.7 (March 24, 2011)
|
||||||
|
|
||||||
|
- Allow renaming an offline VM
|
||||||
|
- Spice password support (Marc-André Lureau)
|
||||||
|
- Allow editting NIC `<virtualport>` settings (Gerhard Stenzel)
|
||||||
|
- Allow enabling/disabling individual CPU features
|
||||||
|
- Allow easily changing graphics type between VNC and SPICE for existing
|
||||||
|
VM
|
||||||
|
- Allow easily changing network source device for existing VM
|
||||||
|
|
||||||
|
## Release 0.8.6 (Jan 14, 2011)
|
||||||
|
|
||||||
|
- SPICE support (requires spice-gtk) (Marc-André Lureau)
|
||||||
|
- Option to configure CPU model
|
||||||
|
- Option to configure CPU topology
|
||||||
|
- Save and migration cancellation (Wen Congyang)
|
||||||
|
- Save and migration progress reporting
|
||||||
|
- Option to enable bios boot menu
|
||||||
|
- Option to configure direct kernel/initrd boot
|
||||||
|
|
||||||
|
## Release 0.8.5 (August 24, 2010)
|
||||||
|
|
||||||
|
- Improved save/restore support
|
||||||
|
- Option to view and change disk cache mode
|
||||||
|
- Configurable VNC keygrab sequence (Michal Novotny)
|
||||||
|
|
||||||
|
## Release 0.8.4 (March 24, 2010)
|
||||||
|
|
||||||
|
- 'Import' install option, to create a VM around an existing OS image
|
||||||
|
- Support multiple boot devices and boot order
|
||||||
|
- Watchdog device support
|
||||||
|
- Enable setting a human readable VM description.
|
||||||
|
- Option to manually specifying a bridge name, if bridge isn't detected
|
||||||
|
|
||||||
|
## Release 0.8.3 (February 8th, 2010)
|
||||||
|
|
||||||
|
- New ability to manage network interfaces: start, stop, and view existing
|
||||||
|
interfaces. Provision new bridge, bond, and vlan devices.
|
||||||
|
- New option to 'customize VM before install', which allows adjusting most
|
||||||
|
VM options from the install wizard.
|
||||||
|
|
||||||
|
## Release 0.8.2 (December 14th, 2009)
|
||||||
|
|
||||||
|
This is largely a bug fix release. The following important bugs were fixed:
|
||||||
|
|
||||||
|
- Right click in the manager window operates on the clicked row, NOT
|
||||||
|
the last selected row. This could cause an admin to accidentally shut down
|
||||||
|
the wrong machine.
|
||||||
|
- Running virt-manager on a new machine / user account no longer produces
|
||||||
|
a traceback.
|
||||||
|
|
||||||
|
Additionally, there is one new feature:
|
||||||
|
|
||||||
|
- Allow ejecting and connecting floppy media
|
||||||
|
|
||||||
|
## Release 0.8.1 (December 3rd, 2009)
|
||||||
|
|
||||||
|
- VM Migration wizard, exposing various migration options
|
||||||
|
- Enumerate CDROM and bridge devices on remote connections
|
||||||
|
- Can once again list multiple graphs in main manager window (Jon Nordby)
|
||||||
|
- Support disabling dhcp (Michal Novotny), and specifying 'routed' type for
|
||||||
|
new virtual networks
|
||||||
|
- Support storage pool source enumeration for LVM, NFS, and SCSI
|
||||||
|
- Allow changing VM ACPI, APIC, clock offset, individual vcpu pinning,
|
||||||
|
and video model (vga, cirrus, etc.)
|
||||||
|
- Many improvements and bugfixes
|
||||||
|
|
||||||
|
## Release 0.8.0 (July 28th, 2009)
|
||||||
|
|
||||||
|
This release includes:
|
||||||
|
|
||||||
|
- New 'Clone VM' Wizard
|
||||||
|
- Improved UI, including an overhaul of the main 'manager' view
|
||||||
|
- System tray icon for easy VM access (start, stop, view console/details)
|
||||||
|
- Wizard for adding serial, parallel, and video devices to existing VMs.
|
||||||
|
- CPU pinning support (Michal Novotny)
|
||||||
|
- Ability to view and change VM security (sVirt) settings (Dan Walsh)
|
||||||
|
- Many bug fixes and improvements
|
||||||
|
|
||||||
|
## Release 0.7.0 (March 9th, 2009)
|
||||||
|
|
||||||
|
This release includes:
|
||||||
|
|
||||||
|
- Redesigned 'New Virtual Machine' wizard (Jeremy Perry, Tim Allen,
|
||||||
|
Cole Robinson)
|
||||||
|
- Option to remove storage when deleting a virtual machine.
|
||||||
|
- File browser for libvirt storage pools and volumes, for use when
|
||||||
|
attaching storage to a new or existing guest.
|
||||||
|
- Physical device assignment (PCI, USB) for existing virtual machines.
|
||||||
|
- Bug fixes and minor improvements.
|
||||||
|
|
||||||
|
## Release 0.6.1 (January 26th, 2009)
|
||||||
|
|
||||||
|
This release includes:
|
||||||
|
|
||||||
|
- VM disk and network stats reporting (Guido Gunther)
|
||||||
|
- VM Migration support (Shigeki Sakamoto)
|
||||||
|
- Support for adding sound devices to an existing VM
|
||||||
|
- Enumerate host devices attached to an existing VM
|
||||||
|
- Allow specifying a device model when adding a network device to an
|
||||||
|
existing VM
|
||||||
|
- Combine the serial console view with the VM Details window
|
||||||
|
- Allow connection to multiple VM serial consoles
|
||||||
|
- Bug fixes and many minor improvements.
|
||||||
|
|
||||||
|
## Release 0.6.0 (September 10th, 2008)
|
||||||
|
|
||||||
|
This release includes:
|
||||||
|
|
||||||
|
- Remote storage management and provisioning: View, add, remove, and
|
||||||
|
provision libvirt managed storage. Attach managed storage to a
|
||||||
|
remote VM.
|
||||||
|
- Remote VM installation support: Install from managed media (cdrom)
|
||||||
|
or PXE. Simple install time storage provisioning.
|
||||||
|
- VM details and console windows merged: each VM is now represented by a
|
||||||
|
single tabbed window.
|
||||||
|
- Use Avahi to list libvirtd instances on network
|
||||||
|
- Hypervisor Autoconnect: Option to connect to hypervisor at virt-manager
|
||||||
|
start up.
|
||||||
|
- Option to add sound device emulation when creating new guests.
|
||||||
|
- Virtio and USB options when adding a disk device.
|
||||||
|
- Allow viewing and removing VM sound, serial, parallel, and console devices.
|
||||||
|
- Specifying a specific keymap when adding display device.
|
||||||
|
- Keep app running if manager window is closed by VM window is still open.
|
||||||
|
- Allow limiting amount of stored stats history
|
||||||
|
- Numerous bug fixes and minor improvements.
|
||||||
|
|
||||||
|
## Release 0.5.4
|
||||||
|
|
||||||
|
This release focuses on minor feature enhancement and bug fixes. Using
|
||||||
|
the new GTK-VNC accelerated scaling support, the guest console window
|
||||||
|
can be smoothly resized to fill the screen. The SSH username is passed
|
||||||
|
through to the VNC console when tunnelling. Adding bridged network
|
||||||
|
devices is fixed. Support for all libvirt authentication methods is
|
||||||
|
enabled including Kerberos and PolicyKit. Solaris portability fix for
|
||||||
|
the text console. Support for detecting bonding and VLAN devices for
|
||||||
|
attaching guest NICs. Allow fullvirt guests to install off kernel and
|
||||||
|
initrd as well as existing CDROM methods. Fix invocation of DBus methods
|
||||||
|
to use an interface. Allow setting of autostart flag, and changing boot
|
||||||
|
device ordering. Control the new VM wizard based on declared hypervisor
|
||||||
|
capabilities.
|
||||||
|
|
||||||
|
## Release 0.5.3
|
||||||
|
|
||||||
|
This is a bug fix release. The sizing of the VNC window is fixed for
|
||||||
|
screens where the physical size is less than the guest screen size.
|
||||||
|
The 'new vm' button is switched back to its old (more obvious style/
|
||||||
|
placement). Restore of VMs is working again for local connections. A
|
||||||
|
menu for sending special key sequences to the guest is added. Lots of
|
||||||
|
other misc bug fixes
|
||||||
|
|
||||||
|
## Release 0.5.2
|
||||||
|
|
||||||
|
This is a bug fix release. Some broken menu items are hooked up again.
|
||||||
|
The rounding of memory values is fixed. Re-connecting to the VNC display
|
||||||
|
is fixed. Blocking of GTK accelerators is re-introduced when VNC is
|
||||||
|
active. Scrollbars on the VNC widget are re-introduced if the console
|
||||||
|
is close to the maximum local screensize. One new VM wizard is enabled
|
||||||
|
per connection. Hardware device details are immediately refreshed after
|
||||||
|
changes. Ability to add/remove display and input devices is enabled.
|
||||||
|
|
||||||
|
## Release 0.5.1
|
||||||
|
|
||||||
|
This release improves upon the remote management capabilities. It can
|
||||||
|
now tunnel connections to the VNC server over SSH. It avoids prompting
|
||||||
|
for SSH passwords on the console. Handling of VNC connections & retries
|
||||||
|
is made more robust. There is support for changing CDROM media on the
|
||||||
|
fly (requires suitably updated libvirt). There is ability to PXE boot
|
||||||
|
install fullyvirtualized guests. Connetions to hypervisors are opened
|
||||||
|
in the background to avoid blocking the whole UI.
|
||||||
|
|
||||||
|
## Release 0.5.0
|
||||||
|
|
||||||
|
This release introduces the ability to manage multiple remote machines,
|
||||||
|
using either SSH+public keys, or TLS+x509 certificates to connect and
|
||||||
|
authenticate. The main user interface is re-worked to show multiple
|
||||||
|
hosts in a tree view, remebering connections across restarts. It is
|
||||||
|
not currently possible to create new guests with a remote host connection.
|
||||||
|
This capability will be added in a future release. The guest VNC console
|
||||||
|
implementation has been replaced with the GTK-VNC widget for greatly
|
||||||
|
improved performance and increased feature set. Other miscellaneous bug
|
||||||
|
fixes and feature enhancements are also included.
|
||||||
|
|
||||||
|
## Release 0.4.0
|
||||||
|
|
||||||
|
This release introduces major new functionality. There is new UI for the
|
||||||
|
creation & management of virtual networks using the new libvirt networking
|
||||||
|
APIs. The guest creation wizard can now attach VMs to a virtual network or
|
||||||
|
shared physical devices. The initial connection dialog is no longer shown,
|
||||||
|
either a QEMU or Xen connection is automatically opened based on host kernel
|
||||||
|
capabilities. For existing guests there is support for the addition and
|
||||||
|
removal of both disk & network devices (hot-add/remove too if supported by
|
||||||
|
the virtualization platform being used - eg Xen paravirt). The keymap for
|
||||||
|
guest VNC server is automatically set based on the local keymap to assist
|
||||||
|
people using non-English keyboard layouts. There is improved error reporting
|
||||||
|
for a number of critical operations such as starting guests / connecting
|
||||||
|
to the hypervisor.
|
||||||
|
|
||||||
|
## Release 0.3.2
|
||||||
|
|
||||||
|
The release introduces online help for all windows / dialogs in the
|
||||||
|
application, to explain usage & operation of key functions. Auto-popup
|
||||||
|
of consoles was fixed for existing inactive domains. Additional control
|
||||||
|
operations are available on the right-click menu in the VM list. A
|
||||||
|
handful of other minor bug fixes are also applied.
|
||||||
|
|
||||||
|
## Release 0.3.1
|
||||||
|
|
||||||
|
This release introduces support for managing QEMU / KVM virtual machines
|
||||||
|
using the new libvirt QEMU driver backend. This requires a new libvirt
|
||||||
|
(at least 0.2.0) to enable the QEMU driver. It also requires an install
|
||||||
|
of the virtinst package of at least version 0.101.0 to support QEMU. The
|
||||||
|
dual cursor problem is worked around by grabbing the mouse pointer upon
|
||||||
|
first button press (release with Ctrl+Alt). The progress bar display
|
||||||
|
when creating new VMs has had its appearance tweaked. The new VM creation
|
||||||
|
wizard also allows the user to specify the type of guest OS being installed.
|
||||||
|
This will allow the setup of virtual hardware to be optimized for the needs
|
||||||
|
of specific guest OS.
|
||||||
|
|
||||||
|
## Release 0.3.0
|
||||||
|
|
||||||
|
This release brings a major functionality update, enabling management
|
||||||
|
of inactive domains. This requires a new libvirt (at least 0.1.11)
|
||||||
|
to provide implementations of inactive domain management for Xen 3.0.3
|
||||||
|
and Xen 3.0.4. With this new functionality the display will list all
|
||||||
|
guests which are in the 'shutoff' state. The guest can be started with
|
||||||
|
the 'Run' button in the virtual console window. The vistinst package
|
||||||
|
must also be updated to at least version 0.100.0 to ensure that during
|
||||||
|
provisioning of guests it uses the new inactive domain management APIs.
|
||||||
|
Finally there have been a variety of minor UI fixes & enhancements
|
||||||
|
such as progress bars during guest creation, reliability fixes to the
|
||||||
|
virtual console and even greater coverage for translations.
|
||||||
|
|
||||||
|
## Release 0.2.6
|
||||||
|
|
||||||
|
The release focus has been on major bug fixing. This is also the
|
||||||
|
first release in which (partial) translations are available for
|
||||||
|
the UI in approximately 20 languages - thanks to the Fedora i18n
|
||||||
|
team for excellent progress on this. It is now possible to control
|
||||||
|
the virt-manager UI with command line arguments as well as the DBus
|
||||||
|
API & it DBus activation is no longer used by default which fixes
|
||||||
|
interaction with GNOME keyring & AT-SPI accesibility. Numerous
|
||||||
|
UI issues were fixed / clarified, particularly in the graphical
|
||||||
|
console and new VM creation wizard.
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.1.4
|
||||||
|
|
||||||
|
* Integration with GNOME keyring for the VNC console to avoid
|
||||||
|
need to remember passwords when accessing the guest domain's
|
||||||
|
console
|
||||||
|
* Use cairo to rendered a '50% alpha gray wash' over the screenshot
|
||||||
|
to give appearance of a 'dimmed' display when paused. Also render
|
||||||
|
the word 'paused' in big letters.
|
||||||
|
* Initial cut of code for saving domain snapshots to disk
|
||||||
|
* Added icons for buttons which were missing graphics
|
||||||
|
* Miscellaneous RPM spec file fixes to comply with rpmlint
|
||||||
|
* Update status icons to match those in the gnome-applet-vm
|
||||||
|
* Added domain ID and # VCPUs to summary view
|
||||||
|
* Misc bug fixes
|
||||||
|
|
||||||
|
## Release 0.1.3
|
||||||
|
|
||||||
|
* Fixed DBus service activation & general brokenness
|
||||||
|
* Added a display of virtual CPU count in summary page
|
||||||
|
* Fixed alignment of status label in details page
|
||||||
|
* Make hardware config panel resizeable
|
||||||
|
* Switch detailed graph rendering to use sparkline code
|
||||||
|
* Switch to use filled sparkline graphs
|
||||||
|
|
||||||
|
## Release 0.1.2
|
||||||
|
|
||||||
|
* First public release
|
|
@ -0,0 +1,10 @@
|
||||||
|
Metadata-Version: 1.0
|
||||||
|
Name: virt-manager
|
||||||
|
Version: 2.2.1
|
||||||
|
Summary: UNKNOWN
|
||||||
|
Home-page: http://virt-manager.org
|
||||||
|
Author: Cole Robinson
|
||||||
|
Author-email: virt-tools-list@redhat.com
|
||||||
|
License: GPLv2+
|
||||||
|
Description: UNKNOWN
|
||||||
|
Platform: UNKNOWN
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Virtual Machine Manager
|
||||||
|
|
||||||
|
`virt-manager` is a graphical tool for managing virtual machines
|
||||||
|
via [libvirt](https://libvirt.org). Most usage is with QEMU/KVM
|
||||||
|
virtual machines, but Xen and libvirt LXC containers are well
|
||||||
|
supported. Common operations for any libvirt driver should work.
|
||||||
|
|
||||||
|
Several command line tools are also provided:
|
||||||
|
|
||||||
|
- `virt-install`: Create new libvirt virtual machines
|
||||||
|
- `virt-clone`: Duplicate existing libvirt virtual machines
|
||||||
|
- `virt-xml`: Edit existing libvirt virtual machines/manipulate libvirt XML
|
||||||
|
- `virt-convert`: Convert VMX or OVF configs to libvirt virtual machines
|
||||||
|
|
||||||
|
For dependency info and installation instructions, see the
|
||||||
|
[INSTALL.md](INSTALL.md) file. If you just want to quickly test the
|
||||||
|
code from a git checkout, you can launch any of the commands like:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./virt-manager --debug ...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
|
||||||
|
- All comments / suggestions / patches should be directed to the
|
||||||
|
[virt-tools-list](https://www.redhat.com/mailman/listinfo/virt-tools-list)
|
||||||
|
mailing list.
|
||||||
|
- For IRC we use #virt on OFTC.
|
||||||
|
- For bug reporting info, see
|
||||||
|
[virt-manager bug reporting](https://virt-manager.org/bugs).
|
||||||
|
- There are further project details on the
|
||||||
|
[virt-manager](https://virt-manager.org/) website.
|
||||||
|
- See the [CONTRIBUTING.md](CONTRIBUTING.md) file for info about submitting patches or
|
||||||
|
contributing translations.
|
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Run something, muting output or redirecting it to the debug stream
|
||||||
|
# depending on the value of _ARC_DEBUG.
|
||||||
|
__python_argcomplete_run() {
|
||||||
|
if [[ -z "$_ARC_DEBUG" ]]; then
|
||||||
|
"$@" 8>&1 9>&2 1>/dev/null 2>&1
|
||||||
|
else
|
||||||
|
"$@" 8>&1 9>&2 1>&9 2>&1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_python_argcomplete() {
|
||||||
|
if [[ "$COMP_WORDBREAKS" != *,* ]]; then
|
||||||
|
COMP_WORDBREAKS="${COMP_WORDBREAKS},"
|
||||||
|
fi
|
||||||
|
local IFS=$'\013'
|
||||||
|
local SUPPRESS_SPACE=0
|
||||||
|
if compopt +o nospace 2> /dev/null; then
|
||||||
|
SUPPRESS_SPACE=1
|
||||||
|
fi
|
||||||
|
COMP_WORDS[4]=""
|
||||||
|
COMPREPLY=( $(IFS="$IFS" \
|
||||||
|
COMP_LINE="$COMP_LINE" \
|
||||||
|
COMP_POINT="$COMP_POINT" \
|
||||||
|
COMP_TYPE="$COMP_TYPE" \
|
||||||
|
_ARGCOMPLETE_COMP_WORDBREAKS="\"'><;|&(:" \
|
||||||
|
_ARGCOMPLETE=1 \
|
||||||
|
_ARGCOMPLETE_SUPPRESS_SPACE=$SUPPRESS_SPACE \
|
||||||
|
__python_argcomplete_run "$1") )
|
||||||
|
if [[ $? != 0 ]]; then
|
||||||
|
unset COMPREPLY
|
||||||
|
elif [[ $SUPPRESS_SPACE == 1 ]] && [[ "$COMPREPLY" =~ [=/:]$ ]]; then
|
||||||
|
compopt -o nospace
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
complete -o nospace -o default -F _python_argcomplete ::SCRIPTNAME::
|
After Width: | Height: | Size: 570 B |
After Width: | Height: | Size: 702 B |
After Width: | Height: | Size: 932 B |
After Width: | Height: | Size: 716 B |
After Width: | Height: | Size: 915 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 783 B |
After Width: | Height: | Size: 945 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 785 B |
After Width: | Height: | Size: 882 B |
After Width: | Height: | Size: 596 B |
After Width: | Height: | Size: 742 B |
After Width: | Height: | Size: 790 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 921 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 828 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 570 B |
After Width: | Height: | Size: 702 B |
After Width: | Height: | Size: 932 B |
After Width: | Height: | Size: 716 B |
After Width: | Height: | Size: 915 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 783 B |
After Width: | Height: | Size: 945 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 785 B |
After Width: | Height: | Size: 882 B |
After Width: | Height: | Size: 596 B |
After Width: | Height: | Size: 742 B |
After Width: | Height: | Size: 790 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 921 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 828 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.7 KiB |
|
@ -0,0 +1,357 @@
|
||||||
|
<schemalist>
|
||||||
|
|
||||||
|
<!-- Relocatable per VM schema -->
|
||||||
|
<schema id="org.virt-manager.virt-manager.vm">
|
||||||
|
<key name="vm-window-size" type="(ii)">
|
||||||
|
<default>(-1, -1)</default>
|
||||||
|
<summary>VM window dimensions</summary>
|
||||||
|
<description>VM window dimensions</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="scaling" type="i">
|
||||||
|
<default>-1</default>
|
||||||
|
<summary>When to scale the VM graphical console</summary>
|
||||||
|
<description>When to scale the VM graphical console. -1 = global default, 0 = never, 1 = only when in full screen mode, 2 = Always</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="console-password" type="(si)">
|
||||||
|
<default>("", -1)</default>
|
||||||
|
<summary>Username and secrets ID for graphical password</summary>
|
||||||
|
<description>Username and secrets ID for graphical password</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="resize-guest" type="i">
|
||||||
|
<default>-1</default>
|
||||||
|
<summary>Automatically resize guest when window size changes</summary>
|
||||||
|
<description>Automatically change guest resolution along with virt-manager window. Only works with spice with a vdagent set up. -1 = global default, 0 = off, 1 = on.</description>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Relocatable per conn schema -->
|
||||||
|
<schema id="org.virt-manager.virt-manager.connection">
|
||||||
|
<key name="pretty-name" type="s">
|
||||||
|
<default>''</default>
|
||||||
|
<summary>Custom connection description</summary>
|
||||||
|
<description>Custom connection description, used in the manager window. If empty, the app generates a default on demand.</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="window-size" type="(ii)">
|
||||||
|
<default>(-1, -1)</default>
|
||||||
|
<summary>Conn details window dimensions</summary>
|
||||||
|
<description>Connection details window dimensions</description>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager"
|
||||||
|
path="/org/virt-manager/virt-manager/">
|
||||||
|
|
||||||
|
<key name="system-tray" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Show system tray icon</summary>
|
||||||
|
<description>Show system tray icon while app is running</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="xmleditor-enabled" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Enable XML editting UI</summary>
|
||||||
|
<description>Enable XML editting UI</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="enable-libguestfs-vm-inspection" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Enable libguestfs VM inspection</summary>
|
||||||
|
<description>Enable libguestfs VM inspection for things like OS icons, installed applications, etc. This only works if python libguestfs bindings are installed.</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="manager-window-height" type="i">
|
||||||
|
<default>0</default>
|
||||||
|
<summary>Default manager window height</summary>
|
||||||
|
<description>Default manager window height</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="manager-window-width" type="i">
|
||||||
|
<default>0</default>
|
||||||
|
<summary>Default manager window width</summary>
|
||||||
|
<description>Default manager window width</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<child name="connections" schema="org.virt-manager.virt-manager.connections"/>
|
||||||
|
<child name="vmlist-fields" schema="org.virt-manager.virt-manager.vmlist-fields"/>
|
||||||
|
<child name="stats" schema="org.virt-manager.virt-manager.stats"/>
|
||||||
|
<child name="urls" schema="org.virt-manager.virt-manager.urls"/>
|
||||||
|
<child name="console" schema="org.virt-manager.virt-manager.console"/>
|
||||||
|
<child name="details" schema="org.virt-manager.virt-manager.details"/>
|
||||||
|
<child name="new-vm" schema="org.virt-manager.virt-manager.new-vm"/>
|
||||||
|
<child name="paths" schema="org.virt-manager.virt-manager.paths"/>
|
||||||
|
<child name="confirm" schema="org.virt-manager.virt-manager.confirm"/>
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager.connections"
|
||||||
|
path="/org/virt-manager/virt-manager/connections/">
|
||||||
|
<key name="uris" type="as">
|
||||||
|
<default>[]</default>
|
||||||
|
<summary>Libvirt URIs listed in the manager window</summary>
|
||||||
|
<description>Libvirt URIs listed in the manager window</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="autoconnect" type="as">
|
||||||
|
<default>[]</default>
|
||||||
|
<summary>Libvirt URIs to connect to on app startup</summary>
|
||||||
|
<description>Libvirt URIs to connect to on app startup</description>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager.vmlist-fields" path="/org/virt-manager/virt-manager/vmlist-fields/">
|
||||||
|
|
||||||
|
<key name="disk-usage" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Show disk I/O in summary</summary>
|
||||||
|
<description>Show the disk I/O field in the domain list summary view</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="network-traffic" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Show network I/O in summary</summary>
|
||||||
|
<description>Show the network I/O field in the domain list summary view</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="cpu-usage" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Show guest cpu usage in summary</summary>
|
||||||
|
<description>Show the guest cpu usage field in the domain list summary view</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="host-cpu-usage" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Show host cpu usage in summary</summary>
|
||||||
|
<description>Show the host cpu usage field in the domain list summary view</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="memory-usage" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Show memory usage in summary</summary>
|
||||||
|
<description>Show memory usage field in the domain list summary view</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager.stats" path="/org/virt-manager/virt-manager/stats/">
|
||||||
|
|
||||||
|
<key name="update-interval" type="i">
|
||||||
|
<default>3</default>
|
||||||
|
<summary>The statistics update interval</summary>
|
||||||
|
<description>The statistics update interval in seconds</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="enable-cpu-poll" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Poll VM CPU stats</summary>
|
||||||
|
<description>Whether or not the app will poll VM CPU statistics</description>
|
||||||
|
</key>
|
||||||
|
<key name="enable-disk-poll" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Poll disk i/o stats</summary>
|
||||||
|
<description>Whether or not the app will poll VM disk i/o statistics</description>
|
||||||
|
</key>
|
||||||
|
<key name="enable-net-poll" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Poll net i/o stats</summary>
|
||||||
|
<description>Whether or not the app will poll VM network i/o statistics</description>
|
||||||
|
</key>
|
||||||
|
<key name="enable-memory-poll" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Poll memory stats</summary>
|
||||||
|
<description>Whether or not the app will poll VM memory statistics</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager.urls"
|
||||||
|
path="/org/virt-manager/virt-manager/urls/">
|
||||||
|
|
||||||
|
<key name="containers" type="as">
|
||||||
|
<default>[]</default>
|
||||||
|
<summary>Saved list of source URLs</summary>
|
||||||
|
<description>Saved list of source URLs used to bootstrap OS containers</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="urls" type="as">
|
||||||
|
<default>[]</default>
|
||||||
|
<summary>Saved list of install URLs</summary>
|
||||||
|
<description>Saved list of install URLs</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="isos" type="as">
|
||||||
|
<default>[]</default>
|
||||||
|
<summary>Saved list of install ISOs</summary>
|
||||||
|
<description>Saved list of install ISOs</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="kickstarts" type="as">
|
||||||
|
<default>[]</default>
|
||||||
|
<summary>Saved list of install kickstarts</summary>
|
||||||
|
<description>Saved list of install kickstarts</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager.console"
|
||||||
|
path="/org/virt-manager/virt-manager/console/">
|
||||||
|
<key name="enable-accels" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Enable menu accelerators in console window</summary>
|
||||||
|
<description>Whether to enable menu accelerators while connected to the guest graphical console.</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="scaling" type="i">
|
||||||
|
<default>1</default>
|
||||||
|
<summary>When to scale the VM graphical console</summary>
|
||||||
|
<description>When to scale the VM graphical console. 0 = never, 1 = only when in full screen mode, 2 = Always</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="resize-guest" type="i">
|
||||||
|
<default>-1</default>
|
||||||
|
<summary>Automatically resize guest when window size changes</summary>
|
||||||
|
<description>Automatically change guest resolution along with virt-manager window. Only works with spice with a vdagent set up. -1 = global default, 0 = off, 1 = on.</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="grab-keys" type="s">
|
||||||
|
<default>''</default>
|
||||||
|
<summary>Grab keyboard sequence for the graphical console</summary>
|
||||||
|
<description>Grab keyboard sequence for the graphical console</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<!--This key is not intended to be exposed in the UI yet-->
|
||||||
|
<key name="grab-keyboard" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Enable grab keyboard when active and focused</summary>
|
||||||
|
<description>Enable grab keyboard when active and focused</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="auto-redirect" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Enable SPICE Auto USB redirection in console window</summary>
|
||||||
|
<description>Whether to enable SPICE Auto USB redirection while connected to the guest console.</description>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager.details"
|
||||||
|
path="/org/virt-manager/virt-manager/details/">
|
||||||
|
<key name="show-toolbar" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Whether to show VM button toolbar in Details display</summary>
|
||||||
|
<description>Whether to show toolbar containing Virtual Machine action buttons (such as Run, Pause, Shutdown) in the details display</description>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager.new-vm"
|
||||||
|
path="/org/virt-manager/virt-manager/new-vm/">
|
||||||
|
<key name="add-sound" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Install sound device for new Vms</summary>
|
||||||
|
<description>Whether to install a sound device for new VMs</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="graphics-type" type="s">
|
||||||
|
<default>'system'</default>
|
||||||
|
<summary>Install selected graphics type for new VM</summary>
|
||||||
|
<description>Install selected graphics type for new VM. vnc or spice, system for software configured default</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="add-spice-usbredir" type="s">
|
||||||
|
<default>'system'</default>
|
||||||
|
<summary>Add spice usbredir HW for new VMs</summary>
|
||||||
|
<description>Add spice usbredir HW for new VMs. yes, no, or system for software configured default</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="storage-format" type="s">
|
||||||
|
<default>'default'</default>
|
||||||
|
<summary>Use selected format for new VM storage</summary>
|
||||||
|
<description>Use selected format when creating new disk images in new VM wizard</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="cpu-default" type="s">
|
||||||
|
<default>'default'</default>
|
||||||
|
<summary>CPU setting to use for new VMs</summary>
|
||||||
|
<description>CPU setting to use for new VMs. Limited to VMs matching the host architecture. Possible values: default (virt-manager default), hv-default (qemu's default), host-model-only (just the model, not the additional features), host-model (libvirt's host-model setting).</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager.paths"
|
||||||
|
path="/org/virt-manager/virt-manager/paths/">
|
||||||
|
<key name="image-default" type="s">
|
||||||
|
<default>''</default>
|
||||||
|
<summary>Default image path</summary>
|
||||||
|
<description>Default path for choosing VM images</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="media-default" type="s">
|
||||||
|
<default>''</default>
|
||||||
|
<summary>Default media path</summary>
|
||||||
|
<description>Default path for choosing media</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="screenshot-default" type="s">
|
||||||
|
<default>''</default>
|
||||||
|
<summary>Default screenshot path</summary>
|
||||||
|
<description>Default path for saving screenshots from VMs</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="perms-fix-ignore" type="as">
|
||||||
|
<default>[]</default>
|
||||||
|
<summary>Ask about fixing permissions</summary>
|
||||||
|
<description>Whether to ask about fixing path permissions</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.virt-manager.virt-manager.confirm" path="/org/virt-manager/virt-manager/confirm/">
|
||||||
|
|
||||||
|
<key name="forcepoweroff" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Confirm force poweroff request</summary>
|
||||||
|
<description>Whether we require confirmation to forcepoweroff a VM</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="poweroff" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Confirm poweroff request</summary>
|
||||||
|
<description>Whether we require confirmation to poweroff/reboot a VM</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="pause" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Confirm pause request</summary>
|
||||||
|
<description>Whether we require confirmation to pause a VM</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="removedev" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Confirm device removal request</summary>
|
||||||
|
<description>Whether we require confirmation to remove a virtual device</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="interface-power" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Confirm device interface start and stop</summary>
|
||||||
|
<description>Whether we require confirmation to start or stop a libvirt virtual interface</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="unapplied-dev" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Confirm about unapplied device changes</summary>
|
||||||
|
<description>Whether we ask the user to apply or discard unapplied device changes</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="delete-storage" type="b">
|
||||||
|
<default>true</default>
|
||||||
|
<summary>Confirm deleting storage</summary>
|
||||||
|
<description>Whether we require a confirmation on deleting storage</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
</schemalist>
|
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<component type="desktop">
|
||||||
|
<id>virt-manager.desktop</id>
|
||||||
|
<metadata_license>CC0-1.0</metadata_license>
|
||||||
|
<project_license>GPL-2.0+</project_license>
|
||||||
|
<_name>Virtual Machine Manager</_name>
|
||||||
|
<_summary>Graphically manage KVM, Xen, or LXC via libvirt</_summary>
|
||||||
|
<description>
|
||||||
|
<_p>
|
||||||
|
Virtual Machine Manager provides a graphical tool for administering virtual
|
||||||
|
machines for KVM, Xen, and LXC. Start, stop, add or remove virtual devices,
|
||||||
|
connect to a graphical or serial console, and see resource usage statistics
|
||||||
|
for existing VMs on local or remote machines. Uses libvirt as the backend
|
||||||
|
management API.
|
||||||
|
</_p>
|
||||||
|
</description>
|
||||||
|
<screenshots>
|
||||||
|
<screenshot type="default">
|
||||||
|
<image>https://virt-manager.org/appdata/en_US/manager.png</image>
|
||||||
|
<_caption>Main manager window</_caption>
|
||||||
|
</screenshot>
|
||||||
|
<screenshot>
|
||||||
|
<image>https://virt-manager.org/appdata/en_US/details.png</image>
|
||||||
|
<_caption>Virtual machine configuration screen</_caption>
|
||||||
|
</screenshot>
|
||||||
|
<screenshot>
|
||||||
|
<image>https://virt-manager.org/appdata/en_US/console.png</image>
|
||||||
|
<_caption>Graphical console connection for a virtual machine</_caption>
|
||||||
|
</screenshot>
|
||||||
|
</screenshots>
|
||||||
|
<url type="homepage">https://www.virt-manager.org/</url>
|
||||||
|
<url type="bugtracker">https://bugzilla.redhat.com/enter_bug.cgi?product=Virtualization%20Tools&component=virt-manager</url>
|
||||||
|
<url type="translate">https://fedora.zanata.org/project/view/virt-manager/</url>
|
||||||
|
<update_contact>virt-tools-list@redhat.com</update_contact>
|
||||||
|
<translation type="gettext">virt-manager</translation>
|
||||||
|
<keywords>
|
||||||
|
<keyword>virtualization</keyword>
|
||||||
|
<keyword>libvirt</keyword>
|
||||||
|
<keyword>qemu</keyword>
|
||||||
|
<keyword>kvm</keyword>
|
||||||
|
</keywords>
|
||||||
|
</component>
|
|
@ -0,0 +1,8 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
_Name=Virtual Machine Manager
|
||||||
|
_Comment=Manage virtual machines
|
||||||
|
Icon=virt-manager
|
||||||
|
Exec=virt-manager
|
||||||
|
Type=Application
|
||||||
|
Terminal=false
|
||||||
|
Categories=System;
|
|
@ -0,0 +1,228 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
virt-clone - clone existing virtual machine images
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
B<virt-clone> [OPTION]...
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
B<virt-clone> is a command line tool for cloning existing virtual machine
|
||||||
|
images using the C<libvirt> hypervisor management library. It will copy
|
||||||
|
the disk images of any existing virtual machine, and define a new guest
|
||||||
|
with an identical virtual hardware configuration. Elements which require
|
||||||
|
uniqueness will be updated to avoid a clash between old and new guests.
|
||||||
|
|
||||||
|
By default, virt-clone will show an error if the necessary information to
|
||||||
|
clone the guest is not provided. The --auto-clone option will generate
|
||||||
|
all needed input, aside from the source guest to clone.
|
||||||
|
|
||||||
|
Please note, virt-clone does not change anything _inside_ the guest OS, it only duplicates disks and does host side changes. So things like changing passwords, changing static IP address, etc are outside the scope of this tool. For these types of changes, please see B<virt-sysprep>.
|
||||||
|
|
||||||
|
=head1 GENERAL OPTIONS
|
||||||
|
|
||||||
|
Most options are not required. Minimum requirements are --original or
|
||||||
|
--original-xml (to specify the guest to clone), --name, and appropriate
|
||||||
|
storage options via -file.
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--connect> URI
|
||||||
|
|
||||||
|
Connect to a non-default hypervisor. See L<virt-install(1)> for details
|
||||||
|
|
||||||
|
=item B<-o> ORIGINAL_GUEST
|
||||||
|
|
||||||
|
=item B<--original> ORIGINAL_GUEST
|
||||||
|
|
||||||
|
Name of the original guest to be cloned. This guest must be shut off or paused
|
||||||
|
since it is not possible to safely clone active guests at this time.
|
||||||
|
|
||||||
|
=item B<--original-xml> ORIGINAL_XML
|
||||||
|
|
||||||
|
Libvirt guest xml file to use as the original guest. The guest does not need to
|
||||||
|
be defined on the libvirt connection. This takes the place of the
|
||||||
|
C<--original> parameter.
|
||||||
|
|
||||||
|
=item B<--auto-clone>
|
||||||
|
|
||||||
|
Generate a new guest name, and paths for new storage.
|
||||||
|
|
||||||
|
An example or possible generated output:
|
||||||
|
|
||||||
|
Original name : MyVM
|
||||||
|
Generated clone name : MyVM-clone
|
||||||
|
|
||||||
|
Original disk path : /home/user/foobar.img
|
||||||
|
Generated disk path : /home/user/foobar-clone.img
|
||||||
|
|
||||||
|
If generated names collide with existing VMs or storage, a number is appended,
|
||||||
|
such as foobar-clone-1.img, or MyVM-clone-3.
|
||||||
|
|
||||||
|
=item B<-n> NAME
|
||||||
|
|
||||||
|
=item B<--name> NAME
|
||||||
|
|
||||||
|
Name of the new guest virtual machine instance. This must be unique amongst
|
||||||
|
all guests known to the hypervisor connection, including those not
|
||||||
|
currently active.
|
||||||
|
|
||||||
|
=item B<-u> UUID
|
||||||
|
|
||||||
|
=item B<--uuid> UUID
|
||||||
|
|
||||||
|
UUID for the guest; if none is given a random UUID will be generated. If you
|
||||||
|
specify UUID, you should use a 32-digit hexadecimal number. UUID are intended
|
||||||
|
to be unique across the entire data center, and indeed world. Bear this in
|
||||||
|
mind if manually specifying a UUID
|
||||||
|
|
||||||
|
=item B<-f> DISKFILE
|
||||||
|
|
||||||
|
=item B<--file> DISKFILE
|
||||||
|
|
||||||
|
Path to the file, disk partition, or logical volume to use as the backing store
|
||||||
|
for the new guest's virtual disk. If the original guest has multiple disks,
|
||||||
|
this parameter must be repeated multiple times, once per disk in the original
|
||||||
|
virtual machine.
|
||||||
|
|
||||||
|
=item B<--nvram> NVRAMFILE
|
||||||
|
|
||||||
|
Optional path to the new nvram VARS file, if no path is specified and the
|
||||||
|
guest has nvram the new nvram path will be auto-generated. If the guest
|
||||||
|
doesn't have nvram this option will be ignored.
|
||||||
|
|
||||||
|
=item B<--force-copy> TARGET
|
||||||
|
|
||||||
|
Force cloning the passed disk target ('hdc', 'sda', etc.). By default,
|
||||||
|
C<virt-clone> will skip certain disks, such as those marked 'readonly' or
|
||||||
|
'shareable'.
|
||||||
|
|
||||||
|
=item B<--skip-copy> TARGET
|
||||||
|
|
||||||
|
Skip cloning the passed disk target ('hdc', 'sda', etc.). By default,
|
||||||
|
C<virt-clone> will clone certain disk images, typically read/write
|
||||||
|
devices. Use this to skip copying of a specific device, so the new
|
||||||
|
VM uses the same storage path as the original VM.
|
||||||
|
|
||||||
|
=item B<--nonsparse>
|
||||||
|
|
||||||
|
Fully allocate the new storage if the path being cloned is a sparse file.
|
||||||
|
See L<virt-install(1)> for more details on sparse vs. nonsparse.
|
||||||
|
|
||||||
|
=item B<--preserve-data>
|
||||||
|
|
||||||
|
No storage is cloned: disk images specific by --file are preserved as is,
|
||||||
|
and referenced in the new clone XML. This is useful if you want to clone
|
||||||
|
a VM XML template, but not the storage contents.
|
||||||
|
|
||||||
|
=item B<--reflink>
|
||||||
|
|
||||||
|
When --reflink is specified, perform a lightweight copy. This is much faster
|
||||||
|
if source images and destination images are all on the same btrfs filesystem.
|
||||||
|
If COW copy is not possible, then virt-clone fails.
|
||||||
|
|
||||||
|
=item B<-m> MAC
|
||||||
|
|
||||||
|
=item B<--mac> MAC
|
||||||
|
|
||||||
|
Fixed MAC address for the guest; If this parameter is omitted, or the value
|
||||||
|
C<RANDOM> is specified a suitable address will be randomly generated. Addresses
|
||||||
|
are applied sequentially to the networks as they are listed in the original
|
||||||
|
guest XML.
|
||||||
|
|
||||||
|
=item B<--print-xml>
|
||||||
|
|
||||||
|
Print the generated clone XML and exit without cloning.
|
||||||
|
|
||||||
|
=item B<--replace>
|
||||||
|
|
||||||
|
Shutdown and remove any existing guest with the passed C<--name> before
|
||||||
|
cloning the original guest.
|
||||||
|
|
||||||
|
=item B<-h>
|
||||||
|
|
||||||
|
=item B<--help>
|
||||||
|
|
||||||
|
Show the help message and exit
|
||||||
|
|
||||||
|
=item B<--version>
|
||||||
|
|
||||||
|
Show program's version number and exit
|
||||||
|
|
||||||
|
=item B<--check>
|
||||||
|
|
||||||
|
Enable or disable some validation checks. See L<virt-install(1)> for more details.
|
||||||
|
|
||||||
|
=item B<-q>
|
||||||
|
|
||||||
|
=item B<--quiet>
|
||||||
|
|
||||||
|
Suppress non-error output.
|
||||||
|
|
||||||
|
=item B<-d>
|
||||||
|
|
||||||
|
=item B<--debug>
|
||||||
|
|
||||||
|
Print debugging information to the terminal when running the install process.
|
||||||
|
The debugging information is also stored in
|
||||||
|
C<~/.cache/virt-manager/virt-clone.log> even if this parameter is omitted.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 EXAMPLES
|
||||||
|
|
||||||
|
Clone the guest called C<demo> on the default connection, auto generating
|
||||||
|
a new name and disk clone path.
|
||||||
|
|
||||||
|
# virt-clone \
|
||||||
|
--original demo \
|
||||||
|
--auto-clone
|
||||||
|
|
||||||
|
Clone the guest called C<demo> which has a single disk to copy
|
||||||
|
|
||||||
|
# virt-clone \
|
||||||
|
--original demo \
|
||||||
|
--name newdemo \
|
||||||
|
--file /var/lib/xen/images/newdemo.img
|
||||||
|
|
||||||
|
Clone a QEMU guest with multiple disks
|
||||||
|
|
||||||
|
# virt-clone \
|
||||||
|
--connect qemu:///system \
|
||||||
|
--original demo \
|
||||||
|
--name newdemo \
|
||||||
|
--file /var/lib/xen/images/newdemo.img \
|
||||||
|
--file /var/lib/xen/images/newdata.img
|
||||||
|
|
||||||
|
Clone a guest to a physical device which is at least as big as the
|
||||||
|
original guests disks. If the destination device is bigger, the
|
||||||
|
new guest can do a filesystem resize when it boots.
|
||||||
|
|
||||||
|
# virt-clone \
|
||||||
|
--connect qemu:///system \
|
||||||
|
--original demo \
|
||||||
|
--name newdemo \
|
||||||
|
--file /dev/HostVG/DemoVM \
|
||||||
|
--mac 52:54:00:34:11:54
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
Please see L<https://virt-manager.org/bugs>
|
||||||
|
|
||||||
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
Copyright (C) Fujitsu Limited, Copyright (C) Red Hat, Inc,
|
||||||
|
and various contributors.
|
||||||
|
This is free software. You may redistribute copies of it under the terms
|
||||||
|
of the GNU General Public License C<https://www.gnu.org/licenses/gpl.html>.
|
||||||
|
There is NO WARRANTY, to the extent permitted by law.
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
C<virt-sysprep(1)>, C<virsh(1)>, C<virt-install(1)>, C<virt-manager(1)>, the project website C<https://virt-manager.org>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
|
@ -0,0 +1,144 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
virt-convert - convert ovf/vmx to native libvirt guests
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
B<virt-convert> INPUT.vmx|INPUT.ovf|INPUT-DIR|INPUT.zip [OPTIONS]
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
B<virt-convert> is a command line tool for converting VMX or OVF virtual
|
||||||
|
machines to native libvirt XML. Disk format conversion can also be done
|
||||||
|
at the same time.
|
||||||
|
|
||||||
|
The simplest invocation is simply: virt-convert INPUT. INPUT might be
|
||||||
|
a .vmx or .ovf file, a directory containing a .vmx or .ovf file (and
|
||||||
|
likely 1 or more disk images), or an appliance archive like .zip, .tar.gz,
|
||||||
|
or .ova. virt-convert will try to do the right thing in each case.
|
||||||
|
|
||||||
|
By default, the virt-convert will convert all encountered disk images
|
||||||
|
to 'raw' format, sending the output to a new directory location. So the
|
||||||
|
original disk images are _not_ altered in place.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 OPTIONS
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--connect> URI
|
||||||
|
|
||||||
|
Connect to a non-default hypervisor. See L<virt-install(1)> for details
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 CONVERSION OPTIONS
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<-i> INPUT-FORMAT
|
||||||
|
|
||||||
|
=item B<--input-format> INPUT-FORMAT
|
||||||
|
|
||||||
|
Input format. This should be auto-detected, but can be forced if necessary. Currently C<vmx> and C<ovf> are supported.
|
||||||
|
|
||||||
|
=item B<-D> OUTPUT-FORMAT
|
||||||
|
|
||||||
|
=item B<--disk-format> OUTPUT-FORMAT
|
||||||
|
|
||||||
|
Output disk format. The default is 'raw', so any encountered disk images will be converted to 'raw' format using L<qemu-img(1)>. Pass C<none> if no conversion should be performed: in this case the images will just be copied to the specified --destination.
|
||||||
|
|
||||||
|
=item B<--destination> DIRECTORY
|
||||||
|
|
||||||
|
The directory to send converted/copied disk images. If not specified, the hypervisor default is used, typically /var/lib/libvirt/images.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 MISCELLANEOUS OPTIONS
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--noautoconsole>
|
||||||
|
|
||||||
|
Don't automatically try to connect to the guest console. The default behaviour
|
||||||
|
is to launch L<virt-viewer(1)> to display the graphical console, or to run the
|
||||||
|
C<virsh> C<console> command to display the text console. Use of this parameter
|
||||||
|
will disable this behaviour.
|
||||||
|
|
||||||
|
=item B<--print-xml>
|
||||||
|
|
||||||
|
Print the generated libvirt XML, but do not perform any disk conversions or
|
||||||
|
install/start the guest. This option implies --dry-run.
|
||||||
|
|
||||||
|
=item B<--dry-run>
|
||||||
|
|
||||||
|
Proceed through the conversion process, but don't convert disks or actually
|
||||||
|
write any converted files.
|
||||||
|
|
||||||
|
=item B<-h>
|
||||||
|
|
||||||
|
=item B<--help>
|
||||||
|
|
||||||
|
Show the help message and exit
|
||||||
|
|
||||||
|
=item B<--version>
|
||||||
|
|
||||||
|
Show program's version number and exit
|
||||||
|
|
||||||
|
=item B<-q>
|
||||||
|
|
||||||
|
=item B<--quiet>
|
||||||
|
|
||||||
|
Avoid verbose output.
|
||||||
|
|
||||||
|
=item B<-d>
|
||||||
|
|
||||||
|
=item B<--debug>
|
||||||
|
|
||||||
|
Print debugging information
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 EXAMPLES
|
||||||
|
|
||||||
|
Run a fedora18 OVA archive:
|
||||||
|
|
||||||
|
# virt-convert fedora18.ova
|
||||||
|
|
||||||
|
Run an extracted zip archive containing a centos6 .vmx and .vmdk file, converting the images to qcow2 format
|
||||||
|
|
||||||
|
# virt-convert centos6/ --disk-format qcow2
|
||||||
|
|
||||||
|
Convert the specified .vmx file. Any references disk images must be in the same directory. Don't change the disk format. Move the disk images to /tmp
|
||||||
|
|
||||||
|
# virt-convert foo.vmx --disk-format none --destination /tmp
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
Please see L<https://virt-manager.org/bugs>
|
||||||
|
|
||||||
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
Copyright (C) Red Hat, Inc, and various contributors.
|
||||||
|
This is free software. You may redistribute copies of it under the terms
|
||||||
|
of the GNU General Public License C<https://www.gnu.org/licenses/gpl.html>.
|
||||||
|
There is NO WARRANTY, to the extent permitted by law.
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
L<virt-install(1)>, the project website C<https://virt-manager.org>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
virt-manager - display the virtual machine desktop management tool
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
B<virt-manager> [OPTIONS]
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
B<virt-manager> is a desktop tool for managing virtual machines. It
|
||||||
|
provides the ability to control the lifecycle of existing machines
|
||||||
|
(bootup/shutdown,pause/resume,suspend/restore), provision new virtual
|
||||||
|
machines and various types of store, manage virtual networks,
|
||||||
|
access the graphical console of virtual machines, and view performance
|
||||||
|
statistics, all done locally or remotely.
|
||||||
|
|
||||||
|
=head1 OPTIONS
|
||||||
|
|
||||||
|
The following options are accepted when running C<virt-manager>:
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<-h>
|
||||||
|
|
||||||
|
=item B<--help>
|
||||||
|
|
||||||
|
Display command line help summary
|
||||||
|
|
||||||
|
=item B<--version>
|
||||||
|
|
||||||
|
Show virt-manager's version number and exit
|
||||||
|
|
||||||
|
=item B<-c> URI
|
||||||
|
|
||||||
|
=item B<--connect>=URI
|
||||||
|
|
||||||
|
Specify the hypervisor connection C<URI>
|
||||||
|
|
||||||
|
=item B<--debug>
|
||||||
|
|
||||||
|
List debugging output to the console (normally this is only logged in
|
||||||
|
~/.cache/virt-manager/virt-manager.log). This function implies --no-fork.
|
||||||
|
|
||||||
|
=item B<--no-fork>
|
||||||
|
|
||||||
|
Don't fork C<virt-manager> off into the background: run it blocking the
|
||||||
|
current terminal. Useful for seeing possible errors dumped to stdout/stderr.
|
||||||
|
|
||||||
|
=item B<--show-DIALOG-WINDOW>
|
||||||
|
|
||||||
|
Display the corresponding C<DIALOG-WINDOW> when launching C<virt-manager>.
|
||||||
|
Connection autostart is skipped, and the manager window will not be shown
|
||||||
|
at startup in this case.
|
||||||
|
|
||||||
|
The following C<DIALOG-WINDOW> options are currently available:
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--show-domain-creator>
|
||||||
|
|
||||||
|
Display the wizard for creating new virtual machines
|
||||||
|
|
||||||
|
=item B<--show-domain-editor> NAME|ID|UUID
|
||||||
|
|
||||||
|
Display the dialog for editing properties of the virtual machine with
|
||||||
|
unique ID matching either the domain name, ID, or UUID
|
||||||
|
|
||||||
|
=item B<--show-domain-performance> NAME|ID|UUID
|
||||||
|
|
||||||
|
Display the dialog for monitoring performance of the virtual machine with
|
||||||
|
unique ID matching either the domain name, ID, or UUID
|
||||||
|
|
||||||
|
=item B<--show-domain-console> NAME|ID|UUID
|
||||||
|
|
||||||
|
Display the virtual console of the virtual machine with
|
||||||
|
unique ID matching either the domain name, ID, or UUID
|
||||||
|
|
||||||
|
=item B<--show-host-summary>
|
||||||
|
|
||||||
|
Display the main window summarizing performance for all virtual machines
|
||||||
|
on the host.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Standard GTK options like --g-fatal-warnings are also accepted.
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
Please see L<https://virt-manager.org/bugs/>
|
||||||
|
|
||||||
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
Copyright (C) Red Hat, Inc, and various contributors.
|
||||||
|
This is free software. You may redistribute copies of it under the terms of the GNU General
|
||||||
|
Public License C<https://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent
|
||||||
|
permitted by law.
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
C<virsh(1)>, C<virt-viewer(1)>, the project website C<https://virt-manager.org>
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
|
@ -0,0 +1,433 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
virt-xml - Edit libvirt XML using command line options.
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
B<virt-xml> DOMAIN XML-ACTION XML-OPTION [OUTPUT-OPTION] [MISC-OPTIONS] ...
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
B<virt-xml> is a command line tool for editing libvirt XML using explicit command line options. See the EXAMPLES section at the end of this document to jump right in.
|
||||||
|
|
||||||
|
Each B<virt-xml> invocation requires 3 things: name of an existing domain to alter (or XML passed on stdin), an action to on the XML, and an XML change to make. actions are one of:
|
||||||
|
|
||||||
|
--add-device: Append a new device definition to the XML
|
||||||
|
--remove-device: Remove an existing device definition
|
||||||
|
--edit: Edit an existing XML block
|
||||||
|
--build-xml: Just build the requested XML block and print it. No domain or input are required here, but it's recommended to provide them, so virt-xml can fill in optimal defaults.
|
||||||
|
|
||||||
|
An XML change is one instance of any of the XML options provided by virt-xml, for example --disk or --boot.
|
||||||
|
|
||||||
|
B<virt-xml> only allows one action and XML pair per invocation. If you need to make multiple edits, invoke the command multiple times.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 OPTIONS
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<-c> URI
|
||||||
|
|
||||||
|
=item B<--connect>=URI
|
||||||
|
|
||||||
|
Connect to a non-default hypervisor. See L<virt-install(1)> for details
|
||||||
|
|
||||||
|
=item B<domain>
|
||||||
|
|
||||||
|
domain is the name, UUID, or ID of the existing VM. This can be omitted if
|
||||||
|
using --build-xml, or if XML is passed on stdin.
|
||||||
|
|
||||||
|
When a domain is specified, the default output action is --define, even if the VM is running. To update the running VM configuration, add the --update option (but not all options/devices support updating the running VM configuration).
|
||||||
|
|
||||||
|
If XML is passed on stdin, the default output is --print-xml.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 XML ACTIONS
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--edit> [EDIT-OPTIONS]
|
||||||
|
|
||||||
|
Edit the specified XML block. EDIT-OPTIONS tell B<virt-xml> which block to edit. The type of XML that we are editing is decided by XML option that is passed to B<virt-xml>. So if --disk is passed, EDIT-OPTIONS select which <disk> block to edit.
|
||||||
|
|
||||||
|
Certain XML options only ever map to a single XML block, like --cpu, --security, --boot, --clock, and a few others. In those cases, B<virt-xml> will not complain if a corresponding XML block does not already exist, it will create it for you.
|
||||||
|
|
||||||
|
Most XML options support a special value 'clearxml=yes'. When combined with --edit, it will completely blank out the XML block being edited before applying the requested changes. This allows completely rebuilding an XML block. See EXAMPLES for some usage.
|
||||||
|
|
||||||
|
EDIT-OPTIONS examples:
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--edit>
|
||||||
|
|
||||||
|
--edit without any options implies 'edit the first block'. So '--edit --disk DISK-OPTIONS' means 'edit the first <disk>'.
|
||||||
|
|
||||||
|
For the single XML block options mentioned above, plain '--edit' without any options is what you always want to use.
|
||||||
|
|
||||||
|
=item B<--edit> #
|
||||||
|
|
||||||
|
Select the specified XML block number. So '--edit 2 --disk DISK-OPTS' means 'edit the second <disk>'. This option only really applies for device XML.
|
||||||
|
|
||||||
|
=item B<--edit> all
|
||||||
|
|
||||||
|
Modify every XML block of the XML option type. So '--edit all --disk DISK-OPTS' means 'edit ever <disk> block'. This option only really applies for device XML.
|
||||||
|
|
||||||
|
=item B<--edit> DEVICE-OPTIONS
|
||||||
|
|
||||||
|
Modify every XML block that matches the passed device options. The device options are in the same format as would be passed to the XML option.
|
||||||
|
|
||||||
|
So '--edit path=/tmp/foo --disk DISK-OPTS' means 'edit every <disk> with path /tmp/foo'. This option only really applies for device XML.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=item B<--add-device>
|
||||||
|
|
||||||
|
Append the specified XML options to the XML <devices> list. Example: '--add-device --disk DISK-OPTIONS' will create a new <disk> block and add it to the XML.
|
||||||
|
|
||||||
|
This option will error if specified with a non-device XML option (see --edit section for a partial list).
|
||||||
|
|
||||||
|
=item B<--remove-device>
|
||||||
|
|
||||||
|
Remove the specified device from the XML. The device to remove is chosen by the XML option, which takes arguments in the same format as --edit. Examples
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--remove-device> --disk 2
|
||||||
|
|
||||||
|
Remove the second disk device
|
||||||
|
|
||||||
|
=item B<--remove-device> --network all
|
||||||
|
|
||||||
|
Remove all network devices
|
||||||
|
|
||||||
|
=item B<--remove-device> --sound pcspk
|
||||||
|
|
||||||
|
Remove all sound devices with model='pcspk'
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
This option will error if specified with a non-device XML option (see --edit section for a partial list).
|
||||||
|
|
||||||
|
=item B<--build-xml>
|
||||||
|
|
||||||
|
Just build the specified XML, and print it to stdout. No input domain or input XML is required. Example: '--build-xml --disk DISK-OPTIONS' will just print the new <disk> device.
|
||||||
|
|
||||||
|
However if the generated XML is targeted for a specific domain, it's recommended to pass it to virt-xml, so the tool can set optimal defaults.
|
||||||
|
|
||||||
|
This option will error if specified with an XML option that does not map cleanly to a specific XML block, like --vcpus or --memory.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 OUTPUT OPTIONS
|
||||||
|
|
||||||
|
These options decide what action to take after altering the XML. In the common case these do not need to be specified, as 'XML actions' will imply a default output action, described in detail above. These are only needed if you want to modify the default output.
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--update>
|
||||||
|
|
||||||
|
If the specified domain is running, attempt to alter the running VM configuration. If combined with --edit, this is an update operation. If combined with --add-device, this is a device hotplug. If combined with --remove-device, this is a device hotunplug.
|
||||||
|
|
||||||
|
Keep in mind, most XML properties and devices do not support live update operations, so don't expect it to succeed in all cases.
|
||||||
|
|
||||||
|
By default this also implies B<--define>.
|
||||||
|
|
||||||
|
=item B<--define>
|
||||||
|
|
||||||
|
Define the requested XML change. This is typically the default if no output option is specified, but if a --print option is specified, --define is required to force the change.
|
||||||
|
|
||||||
|
=item B<--no-define>
|
||||||
|
|
||||||
|
Explicitly do not define the XML. For example if you only want to alter the runtime state of a VM, combine this with B<--update>.
|
||||||
|
|
||||||
|
=item B<--start>
|
||||||
|
|
||||||
|
Start the VM after performing the requeseted changes. If combined with --no-define, this will create transient VM boot with the requested changes.
|
||||||
|
|
||||||
|
=item B<--print-diff>
|
||||||
|
|
||||||
|
Print the generated XML change in unified diff format. If only this output option is specified, all other output options are disabled and no persistent change is made.
|
||||||
|
|
||||||
|
=item B<--print-xml>
|
||||||
|
|
||||||
|
Print the generated XML in its entirety. If only this output option is specified, all other output options are disabled and no persistent change is made.
|
||||||
|
|
||||||
|
=item B<--confirm>
|
||||||
|
|
||||||
|
Before defining or updating the domain, show the generated XML diff and interactively request confirmation.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 GUEST OS OPTIONS
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--os-variant> OS_VARIANT
|
||||||
|
|
||||||
|
Optimize the guest configuration for a specific operating system (ex.
|
||||||
|
'fedora29', 'rhel7', 'win10'). While not required, specifying this
|
||||||
|
options is HIGHLY RECOMMENDED, as it can greatly increase performance
|
||||||
|
by specifying virtio among other guest tweaks.
|
||||||
|
|
||||||
|
If the guest has been installed using virt-manager version 2.0.0 or newer,
|
||||||
|
providing this information should not be necessary, as the OS variant will
|
||||||
|
have been stored in the guest configuration during installation and virt-xml
|
||||||
|
will retrieve it from there automatically.
|
||||||
|
|
||||||
|
Use the command "osinfo-query os" to get the list of the accepted OS
|
||||||
|
variants.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 XML OPTIONS
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<--disk>
|
||||||
|
|
||||||
|
=item B<--network>
|
||||||
|
|
||||||
|
=item B<--graphics>
|
||||||
|
|
||||||
|
=item B<--metadata>
|
||||||
|
|
||||||
|
=item B<--memory>
|
||||||
|
|
||||||
|
=item B<--vcpus>
|
||||||
|
|
||||||
|
=item B<--cpu>
|
||||||
|
|
||||||
|
=item B<--iothreads>
|
||||||
|
|
||||||
|
=item B<--seclabel>
|
||||||
|
|
||||||
|
=item B<--cputune>
|
||||||
|
|
||||||
|
=item B<--numatune>
|
||||||
|
|
||||||
|
=item B<--memtune>
|
||||||
|
|
||||||
|
=item B<--blkiotune>
|
||||||
|
|
||||||
|
=item B<--memorybacking>
|
||||||
|
|
||||||
|
=item B<--features>
|
||||||
|
|
||||||
|
=item B<--clock>
|
||||||
|
|
||||||
|
=item B<--pm>
|
||||||
|
|
||||||
|
=item B<--events>
|
||||||
|
|
||||||
|
=item B<--resources>
|
||||||
|
|
||||||
|
=item B<--sysinfo>
|
||||||
|
|
||||||
|
=item B<--qemu-commandline>
|
||||||
|
|
||||||
|
=item B<--launchSecurity>
|
||||||
|
|
||||||
|
=item B<--boot>
|
||||||
|
|
||||||
|
=item B<--idmap>
|
||||||
|
|
||||||
|
=item B<--controller>
|
||||||
|
|
||||||
|
=item B<--input>
|
||||||
|
|
||||||
|
=item B<--serial>
|
||||||
|
|
||||||
|
=item B<--parallel>
|
||||||
|
|
||||||
|
=item B<--channel>
|
||||||
|
|
||||||
|
=item B<--console>
|
||||||
|
|
||||||
|
=item B<--hostdev>
|
||||||
|
|
||||||
|
=item B<--filesystem>
|
||||||
|
|
||||||
|
=item B<--sound>
|
||||||
|
|
||||||
|
=item B<--watchdog>
|
||||||
|
|
||||||
|
=item B<--video>
|
||||||
|
|
||||||
|
=item B<--smartcard>
|
||||||
|
|
||||||
|
=item B<--redirdev>
|
||||||
|
|
||||||
|
=item B<--memballoon>
|
||||||
|
|
||||||
|
=item B<--tpm>
|
||||||
|
|
||||||
|
=item B<--rng>
|
||||||
|
|
||||||
|
=item B<--panic>
|
||||||
|
|
||||||
|
=item B<--memdev>
|
||||||
|
|
||||||
|
These options alter the XML for a single class of XML elements. More complete documentation is found in L<virt-install(1)>.
|
||||||
|
|
||||||
|
Generally these options map pretty straightforwardly to the libvirt XML, documented at L<https://libvirt.org/formatdomain.html>
|
||||||
|
|
||||||
|
Option strings are in the format of: --option opt=val,opt2=val2,... example: --disk path=/tmp/foo,shareable=on. Properties can be used with '--option opt=,', so to clear a disks cache setting you could use '--disk cache=,'
|
||||||
|
|
||||||
|
For any option, use --option=? to see a list of all available sub options, example: --disk=? or --boot=?
|
||||||
|
|
||||||
|
--help output also lists a few general examples. See the EXAMPLES section below for some common examples.
|
||||||
|
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 MISCELLANEOUS OPTIONS
|
||||||
|
|
||||||
|
=over 4
|
||||||
|
|
||||||
|
=item B<-h>
|
||||||
|
|
||||||
|
=item B<--help>
|
||||||
|
|
||||||
|
Show the help message and exit
|
||||||
|
|
||||||
|
=item B<--version>
|
||||||
|
|
||||||
|
Show program's version number and exit
|
||||||
|
|
||||||
|
=item B<-q>
|
||||||
|
|
||||||
|
=item B<--quiet>
|
||||||
|
|
||||||
|
Avoid verbose output.
|
||||||
|
|
||||||
|
=item B<-d>
|
||||||
|
|
||||||
|
=item B<--debug>
|
||||||
|
|
||||||
|
Print debugging information
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head1 EXAMPLES
|
||||||
|
|
||||||
|
See a list of all suboptions that --disk and --network take
|
||||||
|
|
||||||
|
# virt-xml --disk=? --network=?
|
||||||
|
|
||||||
|
Change the <description> of domain 'EXAMPLE':
|
||||||
|
|
||||||
|
# virt-xml EXAMPLE --edit --metadata description="my new description"
|
||||||
|
|
||||||
|
# Enable the boot device menu for domain 'EXAMPLE':
|
||||||
|
|
||||||
|
# virt-xml EXAMPLE --edit --boot menu=on
|
||||||
|
|
||||||
|
Clear the previous <cpu> definition of domain 'winxp', change it to 'host-model', but interactively confirm the diff before saving:
|
||||||
|
|
||||||
|
# virt-xml winxp --edit --cpu host-model,clearxml=yes --confirm
|
||||||
|
|
||||||
|
Change the second sound card to model=ich6 on 'fedora19', but only output the diff:
|
||||||
|
|
||||||
|
# virt-xml fedora19 --edit 2 --sound model=ich6 --print-diff
|
||||||
|
|
||||||
|
Update the every graphics device password to 'foo' of the running VM 'rhel6':
|
||||||
|
|
||||||
|
# virt-xml rhel6 --edit all --graphics password=foo --update
|
||||||
|
|
||||||
|
Remove the disk path from disk device hdc:
|
||||||
|
|
||||||
|
# virt-xml rhel6 --edit target=hdc --disk path=
|
||||||
|
|
||||||
|
Change all disk devices of type 'disk' to use cache=none, using XML from stdin, printing the new XML to stdout.
|
||||||
|
|
||||||
|
# cat <xmlfile> | virt-xml --edit device=disk --disk cache=none
|
||||||
|
|
||||||
|
Change disk 'hda' IO to native and use startup policy as 'optional'.
|
||||||
|
|
||||||
|
# virt-xml fedora20 --edit target=hda \
|
||||||
|
--disk io=native,startup_policy=optional
|
||||||
|
|
||||||
|
Change all host devices to use driver_name=vfio for VM 'fedora20' on the remote connection
|
||||||
|
|
||||||
|
# virt-xml --connect qemu+ssh://remotehost/system \
|
||||||
|
fedora20 --edit all --hostdev driver_name=vfio
|
||||||
|
|
||||||
|
Hotplug host USB device 001.003 to running domain 'fedora19':
|
||||||
|
|
||||||
|
# virt-xml fedora19 --update --add-device --hostdev 001.003
|
||||||
|
|
||||||
|
Add a spicevmc channel to the domain 'winxp', that will be available after the next VM shutdown.
|
||||||
|
|
||||||
|
# virt-xml winxp --add-device --channel spicevmc
|
||||||
|
|
||||||
|
Create a 10G qcow2 disk image and attach it to 'fedora18' for the next VM startup:
|
||||||
|
|
||||||
|
# virt-xml fedora18 --add-device \
|
||||||
|
--disk /var/lib/libvirt/images/newimage.qcow2,format=qcow2,size=10
|
||||||
|
|
||||||
|
Same as above, but ensure the disk is attached to the most appropriate bus
|
||||||
|
for the guest OS by providing information about it on the command line:
|
||||||
|
|
||||||
|
# virt-xml fedora18 --os-variant fedora18 --add-device \
|
||||||
|
--disk /var/lib/libvirt/images/newimage.qcow2,format=qcow2,size=10
|
||||||
|
|
||||||
|
Hotunplug the disk vdb from the running domain 'rhel7':
|
||||||
|
|
||||||
|
# virt-xml rhel7 --update --remove-device --disk target=vdb
|
||||||
|
|
||||||
|
Remove all graphics devices from the VM 'rhel7' after the next shutdown:
|
||||||
|
|
||||||
|
# virt-xml rhel7 --remove-device --graphics all
|
||||||
|
|
||||||
|
Generate XML for a virtio console device and print it to stdout:
|
||||||
|
|
||||||
|
# virt-xml --build-xml --console pty,target_type=virtio
|
||||||
|
|
||||||
|
Add qemu command line passthrough:
|
||||||
|
|
||||||
|
# virt-xml f25 --edit --confirm --qemu-commandline="-device FOO"
|
||||||
|
|
||||||
|
Use boot device 'network' for a single transient boot:
|
||||||
|
|
||||||
|
# virt-xml myvm --no-define --start --edit --boot network
|
||||||
|
|
||||||
|
=head1 CAVEATS
|
||||||
|
|
||||||
|
Virtualization hosts supported by libvirt may not permit all changes that might seem possible. Some edits made to a VM's definition may be ignored. For instance, QEMU does not allow the removal of certain devices once they've been defined.
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
Please see L<https://virt-manager.org/bugs>
|
||||||
|
|
||||||
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
Copyright (C) Red Hat, Inc, and various contributors.
|
||||||
|
This is free software. You may redistribute copies of it under the terms
|
||||||
|
of the GNU General Public License C<https://www.gnu.org/licenses/gpl.html>.
|
||||||
|
There is NO WARRANTY, to the extent permitted by law.
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
L<virt-install(1)>, the project website C<https://virt-manager.org>
|
||||||
|
|
||||||
|
=cut
|