Full Code of kimchi-project/kimchi for AI

master 36ed74be5d20 cached
491 files
12.3 MB
3.2M tokens
1650 symbols
2 requests
Copy disabled (too large) Download .txt
Showing preview only (12,979K chars total). Download the full file to get everything.
Repository: kimchi-project/kimchi
Branch: master
Commit: 36ed74be5d20
Files: 491
Total size: 12.3 MB

Directory structure:
gitextract_awwiafkd/

├── .flake8
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── pull_request_template.md
│   ├── scripts/
│   │   ├── setup_instance.sh
│   │   └── setup_kimchi_ubuntu.sh
│   └── workflows/
│       └── CI.yml
├── .gitignore
├── .pre-commit-config.yaml
├── ABOUT-NLS
├── API.json
├── AUTHORS
├── CONTRIBUTE.md
├── COPYING
├── COPYING.ASL2
├── COPYING.LGPL
├── ChangeLog
├── INSTALL
├── Makefile.am
├── VERSION
├── __init__.py
├── autogen.sh
├── build-aux/
│   ├── config.rpath
│   ├── genChangelog
│   ├── generateDepsFiles.py
│   └── pkg-version
├── build_packages.py
├── check_spec_errors.sh
├── check_ui_code_errors.sh
├── config.py.in
├── config.rpath
├── configure.ac
├── contrib/
│   ├── DEBIAN/
│   │   ├── Makefile.am
│   │   └── control.in
│   ├── Makefile.am
│   ├── check_i18n.py
│   ├── kimchi.spec.fedora.in
│   ├── kimchi.spec.suse.in
│   ├── kimchid.service.debian
│   ├── kimchid.service.fedora
│   └── make-deb.sh.in
├── control/
│   ├── Makefile.am
│   ├── __init__.py
│   ├── cpuinfo.py
│   ├── groups.py
│   ├── host.py
│   ├── interfaces.py
│   ├── networks.py
│   ├── ovsbridges.py
│   ├── storagepools.py
│   ├── storageservers.py
│   ├── storagevolumes.py
│   ├── templates.py
│   ├── users.py
│   ├── vm/
│   │   ├── Makefile.am
│   │   ├── __init__.py
│   │   ├── hostdevs.py
│   │   ├── ifaces.py
│   │   ├── snapshots.py
│   │   └── storages.py
│   └── vms.py
├── dependencies.yaml
├── disks.py
├── distroloader.py
├── distros.d/
│   ├── Makefile.am
│   ├── debian.json
│   ├── fedora.json
│   ├── gentoo.json
│   ├── opensuse.json
│   └── ubuntu.json
├── docs/
│   ├── API.md
│   ├── CI.md
│   ├── Makefile.am
│   ├── README.md
│   └── README.md.tmpl
├── i18n.py
├── imageinfo.py
├── iscsi.py
├── isoinfo.py
├── kimchi.conf
├── kvmusertests.py
├── m4/
│   ├── ac_python_module.m4
│   ├── gettext.m4
│   ├── iconv.m4
│   ├── intlmacosx.m4
│   ├── lib-ld.m4
│   ├── lib-link.m4
│   ├── lib-prefix.m4
│   ├── nls.m4
│   ├── po.m4
│   └── progtest.m4
├── mockmodel.py
├── model/
│   ├── Makefile.am
│   ├── __init__.py
│   ├── cpuinfo.py
│   ├── diskutils.py
│   ├── featuretests.py
│   ├── groups.py
│   ├── host.py
│   ├── hostdev.py
│   ├── interfaces.py
│   ├── libvirtconnection.py
│   ├── libvirtevents.py
│   ├── libvirtstoragepool.py
│   ├── model.py
│   ├── networks.py
│   ├── ovsbridges.py
│   ├── storagepools.py
│   ├── storageservers.py
│   ├── storagetargets.py
│   ├── storagevolumes.py
│   ├── templates.py
│   ├── users.py
│   ├── utils.py
│   ├── virtviewerfile.py
│   ├── vmhostdevs.py
│   ├── vmifaces.py
│   ├── vms.py
│   ├── vmsnapshots.py
│   └── vmstorages.py
├── network.py
├── osinfo.py
├── po/
│   ├── LINGUAS
│   ├── Makefile.in.in
│   ├── Makevars
│   ├── POTFILES.in
│   ├── de_DE.po
│   ├── en_US.po
│   ├── es_ES.po
│   ├── fr_FR.po
│   ├── gen-pot.in
│   ├── it_IT.po
│   ├── ja_JP.po
│   ├── kimchi.pot
│   ├── ko_KR.po
│   ├── pt_BR.po
│   ├── ru_RU.po
│   ├── zh_CN.po
│   └── zh_TW.po
├── requirements-FEDORA.txt
├── requirements-OPENSUSE-LEAP.txt
├── requirements-UBUNTU.txt
├── requirements-dev.txt
├── root.py
├── scan.py
├── screenshot.py
├── serialconsole.py
├── setup.cfg
├── template.conf
├── tests/
│   ├── Makefile.am
│   ├── iso_gen.py
│   ├── run_tests.sh.in
│   ├── test_authorization.py
│   ├── test_config.py.in
│   ├── test_disks.py
│   ├── test_host.py
│   ├── test_livemigration.py
│   ├── test_mock_network.py
│   ├── test_mock_storagepool.py
│   ├── test_mock_storagevolume.py
│   ├── test_mockmodel.py
│   ├── test_model.py
│   ├── test_model_libvirtevents.py
│   ├── test_model_network.py
│   ├── test_model_storagepool.py
│   ├── test_model_storagevolume.py
│   ├── test_networkxml.py
│   ├── test_osinfo.py
│   ├── test_rest.py
│   ├── test_storagepoolxml.py
│   ├── test_template.py
│   └── test_vmtemplate.py
├── ui/
│   ├── Makefile.am
│   ├── config/
│   │   ├── Makefile.am
│   │   └── tab-ext.xml
│   ├── css/
│   │   ├── Makefile.am
│   │   ├── kimchi.css
│   │   └── src/
│   │       ├── kimchi.scss
│   │       └── modules/
│   │           ├── _edit-guests.scss
│   │           ├── _guests.scss
│   │           ├── _iso-list.scss
│   │           ├── _network.scss
│   │           ├── _storage.scss
│   │           └── _templates.scss
│   ├── images/
│   │   └── Makefile.am
│   ├── js/
│   │   ├── Makefile.am
│   │   └── src/
│   │       ├── kimchi.api.js
│   │       ├── kimchi.guest_add_main.js
│   │       ├── kimchi.guest_edit_main.js
│   │       ├── kimchi.guest_livemigration.js
│   │       ├── kimchi.guest_main.js
│   │       ├── kimchi.guest_media_main.js
│   │       ├── kimchi.guest_storage_add.main.js
│   │       ├── kimchi.main.js
│   │       ├── kimchi.network.js
│   │       ├── kimchi.network_add_main.js
│   │       ├── kimchi.network_edit_main.js
│   │       ├── kimchi.storage_main.js
│   │       ├── kimchi.storagepool_add_main.js
│   │       ├── kimchi.storagepool_add_volume_main.js
│   │       ├── kimchi.storagepool_resize_volume_main.js
│   │       ├── kimchi.template_add_main.js
│   │       ├── kimchi.template_edit_main.js
│   │       └── kimchi.template_main.js
│   ├── pages/
│   │   ├── Makefile.am
│   │   ├── guest-add.html.tmpl
│   │   ├── guest-clone.html.tmpl
│   │   ├── guest-edit.html.tmpl
│   │   ├── guest-migration.html.tmpl
│   │   ├── guest-storage-add.html.tmpl
│   │   ├── guest.html.tmpl
│   │   ├── help/
│   │   │   ├── Makefile.am
│   │   │   ├── de_DE/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── dita-help.xsl
│   │   │   ├── en_US/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── es_ES/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── fr_FR/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── it_IT/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── ja_JP/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── kimchi.css
│   │   │   ├── ko_KR/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── pt_BR/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── ru_RU/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── zh_CN/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   └── zh_TW/
│   │   │       ├── Makefile.am
│   │   │       ├── guests.dita
│   │   │       ├── network.dita
│   │   │       ├── storage.dita
│   │   │       └── templates.dita
│   │   ├── i18n.json.tmpl
│   │   ├── network-add.html.tmpl
│   │   ├── network-edit.html.tmpl
│   │   ├── storagepool-add-volume.html.tmpl
│   │   ├── storagepool-add.html.tmpl
│   │   ├── storagepool-resize-volume.html.tmpl
│   │   ├── tabs/
│   │   │   ├── Makefile.am
│   │   │   ├── guests.html.tmpl
│   │   │   ├── network.html.tmpl
│   │   │   ├── storage.html.tmpl
│   │   │   └── templates.html.tmpl
│   │   ├── template-add.html.tmpl
│   │   └── template-edit.html.tmpl
│   ├── robots.txt
│   ├── serial/
│   │   ├── Makefile.am
│   │   ├── html/
│   │   │   ├── Makefile.am
│   │   │   └── serial.html
│   │   └── libs/
│   │       ├── Makefile.am
│   │       └── term.js
│   ├── spice-html5/
│   │   ├── Makefile.am
│   │   ├── atKeynames.js
│   │   ├── bitmap.js
│   │   ├── css/
│   │   │   ├── Makefile.am
│   │   │   └── spice.css
│   │   ├── cursor.js
│   │   ├── display.js
│   │   ├── enums.js
│   │   ├── inputs.js
│   │   ├── lz.js
│   │   ├── main.js
│   │   ├── pages/
│   │   │   ├── Makefile.am
│   │   │   └── spice_auto.html
│   │   ├── playback.js
│   │   ├── png.js
│   │   ├── quic.js
│   │   ├── resize.js
│   │   ├── simulatecursor.js
│   │   ├── spicearraybuffer.js
│   │   ├── spiceconn.js
│   │   ├── spicedataview.js
│   │   ├── spicemsg.js
│   │   ├── spicetype.js
│   │   ├── thirdparty/
│   │   │   ├── Makefile.am
│   │   │   ├── jsbn.js
│   │   │   ├── prng4.js
│   │   │   ├── rng.js
│   │   │   ├── rsa.js
│   │   │   └── sha1.js
│   │   ├── ticket.js
│   │   ├── utils.js
│   │   ├── webm.js
│   │   └── wire.js
│   └── spice-web-client/
│       ├── LICENSE
│       ├── Makefile.am
│       ├── README.md
│       ├── application/
│       │   ├── Makefile.am
│       │   ├── WorkerProcess.js
│       │   ├── agent.js
│       │   ├── application.js
│       │   ├── clientgui.js
│       │   ├── imagecache.js
│       │   ├── inputmanager.js
│       │   ├── packetfactory.js
│       │   ├── packetfilter.js
│       │   ├── packetprocess.js
│       │   ├── rasteroperation.js
│       │   ├── spiceconnection.js
│       │   ├── stream.js
│       │   └── virtualmouse.js
│       ├── benchmark.html
│       ├── commit-stage.sh
│       ├── index.html
│       ├── keymaps/
│       │   ├── Makefile.am
│       │   ├── keymap.js
│       │   ├── keymapes.js
│       │   ├── keymapit.js
│       │   └── keymapus.js
│       ├── lib/
│       │   ├── AsyncConsumer.js
│       │   ├── AsyncWorker.js
│       │   ├── CollisionDetector.js
│       │   ├── DataLogger.js
│       │   ├── GenericObjectPool.js
│       │   ├── GlobalPool.js
│       │   ├── ImageUncompressor.js
│       │   ├── IntegrationBenchmark.js
│       │   ├── Makefile.am
│       │   ├── PacketWorkerIdentifier.js
│       │   ├── SyncAsyncHandler.js
│       │   ├── base64.js
│       │   ├── biginteger.js
│       │   ├── bowser.js
│       │   ├── displayRouter.js
│       │   ├── encrypt.js
│       │   ├── flipper.js
│       │   ├── graphic.js
│       │   ├── graphicdebug.js
│       │   ├── images/
│       │   │   ├── Makefile.am
│       │   │   ├── bitmap.js
│       │   │   ├── jsquic_family.js
│       │   │   ├── jsquic_rgba.js
│       │   │   ├── jsquic_uncompress.js
│       │   │   ├── lz.js
│       │   │   └── png.js
│       │   ├── jquery-2.0.3.js
│       │   ├── jquery-mousewheel.js
│       │   ├── jsbn.js
│       │   ├── jsbn2.js
│       │   ├── modernizr.js
│       │   ├── pixastic.js
│       │   ├── prettyprint.js
│       │   ├── prng4.js
│       │   ├── queue.js
│       │   ├── rasterEngine.js
│       │   ├── rng.js
│       │   ├── runqueue.js
│       │   ├── sha1.js
│       │   ├── stuckkeyshandler.js
│       │   ├── timelapsedetector.js
│       │   ├── utils.js
│       │   └── virtualjoystick.js
│       ├── network/
│       │   ├── Makefile.am
│       │   ├── busconnection.js
│       │   ├── clusternodechooser.js
│       │   ├── connectioncontrol.js
│       │   ├── packetcontroller.js
│       │   ├── packetextractor.js
│       │   ├── packetlinkfactory.js
│       │   ├── packetreassembler.js
│       │   ├── reassemblerfactory.js
│       │   ├── sizedefiner.js
│       │   ├── socket.js
│       │   ├── socketqueue.js
│       │   ├── spicechannel.js
│       │   └── websocketwrapper.js
│       ├── package.json
│       ├── process/
│       │   ├── Makefile.am
│       │   ├── busprocess.js
│       │   ├── cursorprocess.js
│       │   ├── displaypreprocess.js
│       │   ├── displayprocess.js
│       │   ├── inputprocess.js
│       │   ├── mainprocess.js
│       │   └── playbackprocess.js
│       ├── resources/
│       │   └── Makefile.am
│       ├── run.js
│       ├── sonar.properties
│       ├── spiceobjects/
│       │   ├── Makefile.am
│       │   ├── generated/
│       │   │   ├── Makefile.am
│       │   │   └── protocol.js
│       │   └── spiceobjects.js
│       ├── spiceproxy/
│       │   ├── .gitignore
│       │   ├── .npmignore
│       │   ├── Makefile.am
│       │   ├── concatenator.js
│       │   ├── filelist.js
│       │   ├── globalpool.js
│       │   ├── package.json
│       │   ├── socket.js
│       │   └── spicechannel.js
│       ├── swcanvas/
│       │   ├── Makefile.am
│       │   ├── benchmark.html
│       │   ├── swcanvas.js
│       │   └── test.html
│       └── unittest/
│           ├── application.test.js
│           ├── busconnection.test.js
│           ├── busprocess.test.js
│           ├── clientgui.test.js
│           ├── clusternodechooser.test.js
│           ├── collisiondetector.test.js
│           ├── connectioncontrol.test.js
│           ├── displayprocess.test.js
│           ├── displayrouter.test.js
│           ├── eventobject.test.js
│           ├── graphic.test.js
│           ├── graphictest.test.js
│           ├── graphictestfiles/
│           │   ├── SPICE_MSG_DISPLAY_DRAW_ALPHA_BLEND_login_page
│           │   ├── SPICE_MSG_DISPLAY_DRAW_BLACKNESS_login_page
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_-_JPEG_ALPHA
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_explorer_icon
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_start_button
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_user_icon_windows_menu
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_windows_menu
│           │   ├── SPICE_MSG_DISPLAY_DRAW_FILL
│           │   ├── SPICE_MSG_DISPLAY_DRAW_STROKE_libreoffice_tooltip
│           │   ├── SPICE_MSG_DISPLAY_DRAW_TEXT_login_page
│           │   └── uris.js
│           ├── imageuncompressor.test.js
│           ├── inputmanager.test.js
│           ├── keymap.test.js
│           ├── packetcontroller.test.js
│           ├── packetextractor.test.js
│           ├── packetfactory.test.js
│           ├── packetlinkfactory.test.js
│           ├── packetprocess.test.js
│           ├── packetreassembler.test.js
│           ├── queue.test.js
│           ├── reassemblerfactory.test.js
│           ├── runqueue.test.js
│           ├── sizedefiner.test.js
│           ├── socket.test.js
│           ├── socketqueue.test.js
│           ├── some.html
│           ├── spicechannel.test.js
│           ├── spiceconnection.test.js
│           ├── stuckkeyshandler.test.js
│           ├── syncasynchandler.test.js
│           ├── tests.js
│           ├── timelapsedetector.test.js
│           └── viewqueue.test.js
├── utils.py
├── vmtemplate.py
└── xmlutils/
    ├── Makefile.am
    ├── __init__.py
    ├── bootorder.py
    ├── cpu.py
    ├── disk.py
    ├── graphics.py
    ├── interface.py
    ├── network.py
    ├── qemucmdline.py
    ├── serial.py
    └── usb.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .flake8
================================================
[flake8]
ignore = E203, E266, E501, W503, W504, E741, C901
max-line-length = 88
max-complexity = 18
select = B,C,E,F,W,T4,B9,B950


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
 - OS: [e.g. Fedora 31, Ubuntu 19.10]
 - Browser [e.g. chrome, safari]
 - Version [e.g. 2.5, local@<sha>]

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.


================================================
FILE: .github/pull_request_template.md
================================================
# Pull Request Template

## Description

Please, include a summary of the patch and why it should be accepted.
Link it to any open issue and share any other information and context you judge relevant for this PR.

Fixes # (issue)

## How Has This Been Tested?

Please, describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.

- [ ] Test A
- [ ] Test B

## Checklist:

- [ ] My commit message follow the pattern described in [here](https://chris.beams.io/posts/git-commit/)
- [ ] I have signed-off my commit (git commit -s) to certify I have the rights to submit this work under the same license and agrees to a Developer Certificate of Origin (see http://developercertificate.org/ for more information).
- [ ] My code follows the style guidelines of this project and I have run `make check-local` to confirm it.
- [ ] I have run `make` to build the project and update any documentation that was added as part of this PR.
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes (Run `make check` to confirm it)


================================================
FILE: .github/scripts/setup_instance.sh
================================================
#!/bin/bash

set -euxo pipefail

DISKS="gcloud compute disks"
IMAGES="gcloud compute images"
INSTANCES="gcloud compute instances"
VMX="https://compute.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"
DEFAULT_ZONE=us-central1-a

function createDisk() {
    #  Create disk
    #  
    #  $1: disk name
    #  $2: image project
    #  $3: image-family
    #  $4: zone
    zone=${4:-$DEFAULT_ZONE}

    diskName=$1
    ${DISKS} create $diskName \
             --image-project $2 \
             --image-family $3 \
             --size 20GB \
             --zone $zone
}

function createImage() {
    #  Create image with nested virtualization
    #
    #  $1: image name
    #  $2: disk name
    #  $3: zone
    zone=${3:-$DEFAULT_ZONE}

    imageName=$1
    ${IMAGES} create $imageName \
              --source-disk $2 \
              --source-disk-zone $zone \
              --licenses "${VMX}"
}

function createVM() {
    #  Create VM with nested virtualization
    #
    #  $1: VM name
    #  $2: image name
    #  $3: zone
    zone=${3:-$DEFAULT_ZONE}

    instanceName=$1
    ${INSTANCES} create $1 \
                 --zone $zone \
                 --min-cpu-platform "Intel Haswell" \
                 --image $2
}

# Entrypoint
#
#  $1: vm name
#  $2: image project
#  $3: image family
#  $4: zone
vmName=$1
imageProject=$2
imageFamily=$3
zone=${4:-$DEFAULT_ZONE}

# create disk   
diskName=$vmName-disk
createDisk $vmName-disk $imageProject $imageFamily $zone

# create image
imageName=$vmName-image
createImage $imageName $diskName $zone

# create vm
createVM $1 $imageName $zone


================================================
FILE: .github/scripts/setup_kimchi_ubuntu.sh
================================================
#!/bin/bash

set -euxo pipefail

function get_deps() {
    echo $(python3 -c "import yaml;print(' '.join(yaml.load(open('dependencies.yaml'), Loader=yaml.FullLoader)[\"$1\"][\"$2\"]))")
}


# install deps
sudo apt update
sudo apt install -y python3-pip
sudo apt install -y $(get_deps development-deps common)
sudo apt install -y $(get_deps development-deps ubuntu)

sudo apt install -y $(get_deps runtime-deps common)
sudo apt install -y $(get_deps runtime-deps ubuntu | sed 's/python3-cheetah//')

pip3 install -r requirements-UBUNTU.txt
pip3 install -r requirements-dev.txt

# autogen and make
./autogen.sh --system
make


================================================
FILE: .github/workflows/CI.yml
================================================
name: kimchi-CI
on: ["push"]

env:
  VM_NAME: ubuntu-${{ github.sha }}
  ZONE: us-central1-a
  PROJECT_ID: ${{ secrets.GCP_PROJECT }}
  WOK_DIR: wok
  KIMCHI_DIR: wok/src/wok/plugins/kimchi/

jobs:
  run-kimchi-tests:
    runs-on: ubuntu-latest
    steps:

      - uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
        with:
            version: '270.0.0'
            service_account_email: ${{ secrets.GCP_SA_EMAIL }}
            service_account_key: ${{ secrets.GCP_SA_KEY }}
      - run: gcloud config set project $PROJECT_ID

      - uses: actions/checkout@v2-beta

      - name: create instance
        run: bash .github/scripts/setup_instance.sh $VM_NAME ubuntu-os-cloud ubuntu-1804-lts
        shell: bash

      - name: checkout repos
        run: |
          gcloud compute ssh $VM_NAME --zone=$ZONE --command "git clone https://github.com/kimchi-project/wok"
          gcloud compute ssh $VM_NAME --zone=$ZONE --command "git clone https://github.com/$GITHUB_REPOSITORY $KIMCHI_DIR"
          gcloud compute ssh $VM_NAME --zone=$ZONE --command "cd $KIMCHI_DIR; git checkout $GITHUB_SHA"
        shell: bash

      - name: setup wok deps
        run: |
          gcloud compute ssh $VM_NAME --zone=$ZONE --command "cd $WOK_DIR; bash .github/scripts/setup_wok_ubuntu.sh"
        shell: bash

      - name: setup kimchi deps
        run: gcloud compute ssh $VM_NAME --zone=$ZONE --command "cd $KIMCHI_DIR; bash .github/scripts/setup_kimchi_ubuntu.sh"
        shell: bash

      - name: run tests
        run: gcloud compute ssh $VM_NAME --zone=$ZONE --command "cd $KIMCHI_DIR; sudo make check-local; sudo make check"
        shell: bash

      - name: Cleanup instance
        if: always()
        run: |
          gcloud compute instances delete ${VM_NAME} --delete-disks=all --zone=$ZONE -q || true
          gcloud compute images delete ${VM_NAME}-image -q || true
          gcloud compute disks delete ${VM_NAME}-disk --zone=$ZONE -q || true
        shell: bash


================================================
FILE: .gitignore
================================================
*.pyc
*~
*.list
i18n/mo/*
log
data
mo
autom4te.cache
Makefile
Makefile.in
aclocal.m4
m4/pkg.m4
build-aux/compile
build-aux/config.guess
build-aux/config.sub
build-aux/install-sh
build-aux/missing
build-aux/py-compile
build-aux/*-pkg-deps
configure
config.log
config.py
config.status
contrib/DEBIAN/control
contrib/kimchi.spec.fedora
contrib/kimchi.spec.suse
contrib/make-deb.sh
*.min.css
*.min.js
*.gmo
stamp-po
kimchi-*.tar.gz
tests/run_tests.sh
tests/test_config.py
po/POTFILES
po/gen-pot
*.orig
*.rej
*.pem
ui/pages/help/*/*.html


================================================
FILE: .pre-commit-config.yaml
================================================
# Pre-commit git hooks, run locally before every commit
# Init with
# $ pip install -r requirements-dev.txt
# $ pre-commit install

repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v2.1.0
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
        exclude: '\.list$'
    #-   id: check-docstring-first
    -   id: check-json
    #-   id: check-added-large-files
    -   id: check-yaml
    -   id: debug-statements
    #-   id: name-tests-test
    -   id: double-quote-string-fixer
    -   id: requirements-txt-fixer
-   repo: https://gitlab.com/pycqa/flake8
    rev: 3.7.1
    hooks:
    -   id: flake8
-   repo: https://github.com/pre-commit/mirrors-autopep8
    rev: v1.4.4
    hooks:
    -   id: autopep8
-   repo: https://github.com/asottile/reorder_python_imports
    rev: v1.3.5
    hooks:
    -   id: reorder-python-imports
        language_version: python3


================================================
FILE: ABOUT-NLS
================================================
1 Notes on the Free Translation Project
***************************************

Free software is going international!  The Free Translation Project is
a way to get maintainers of free software, translators, and users all
together, so that free software will gradually become able to speak many
languages.  A few packages already provide translations for their
messages.

   If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site.  But you do _not_
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.

   Installers will find here some useful hints.  These notes also
explain how users should proceed for getting the programs to use the
available translations.  They tell how people wanting to contribute and
work on translations can contact the appropriate team.

1.1 INSTALL Matters
===================

Some packages are "localizable" when properly installed; the programs
they contain can be made to speak your own native language.  Most such
packages use GNU `gettext'.  Other packages have their own ways to
internationalization, predating GNU `gettext'.

   By default, this package will be installed to allow translation of
messages.  It will automatically detect whether the system already
provides the GNU `gettext' functions.  Installers may use special
options at configuration time for changing the default behaviour.  The
command:

     ./configure --disable-nls

will _totally_ disable translation of messages.

   When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl' library
and will decide to use it.  If not, you may have to to use the
`--with-libintl-prefix' option to tell `configure' where to look for it.

   Internationalized packages usually have many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language.  Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
together with the package.  However, the environment variable `LINGUAS'
may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.

1.2 Using This Package
======================

As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
`LL_CC' combination.  If you happen to have the `LC_ALL' or some other
`LC_xxx' environment variables set, you should unset them before
setting `LANG', otherwise the setting of `LANG' will not have the
desired effect.  Here `LL' is an ISO 639 two-letter language code, and
`CC' is an ISO 3166 two-letter country code.  For example, let's
suppose that you speak German and live in Germany.  At the shell
prompt, merely execute `setenv LANG de_DE' (in `csh'),
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
This can be done from your `.login' or `.profile' file, once and for
all.

   You might think that the country code specification is redundant.
But in fact, some languages have dialects in different countries.  For
example, `de_AT' is used for Austria, and `pt_BR' for Brazil.  The
country code serves to distinguish the dialects.

   The locale naming convention of `LL_CC', with `LL' denoting the
language and `CC' denoting the country, is the one use on systems based
on GNU libc.  On other systems, some variations of this scheme are
used, such as `LL' or `LL_CC.ENCODING'.  You can get the list of
locales supported by your system for your language by running the
command `locale -a | grep '^LL''.

   Not all programs have translations for all languages.  By default, an
English message is shown in place of a nonexistent translation.  If you
understand other languages, you can set up a priority list of languages.
This is done through a different environment variable, called
`LANGUAGE'.  GNU `gettext' gives preference to `LANGUAGE' over `LANG'
for the purpose of message handling, but you still need to have `LANG'
set to the primary language; this is required by other parts of the
system libraries.  For example, some Swedish users who would rather
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.

   Special advice for Norwegian users: The language code for Norwegian
bokma*l changed from `no' to `nb' recently (in 2003).  During the
transition period, while some message catalogs for this language are
installed under `nb' and some older ones under `no', it's recommended
for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
older translations are used.

   In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect.  For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.

1.3 Translating Teams
=====================

For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list.  The up-to-date list of
teams can be found at the Free Translation Project's homepage,
`http://translationproject.org/', in the "Teams" area.

   If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is _not_ the same as the list itself, it has
`-request' appended.  For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:

     subscribe

   Keep in mind that team members are expected to participate
_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around.  If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `coordinator@translationproject.org' to
reach the coordinator for all translator teams.

   The English team is special.  It works at improving and uniformizing
the terminology in use.  Proven linguistic skills are praised more than
programming skills, here.

1.4 Available Packages
======================

Languages are not equally supported in all packages.  The following
matrix shows the current state of internationalization, as of June
2010.  The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.

     Ready PO files       af am an ar as ast az be be@latin bg bn_IN bs ca
                        +--------------------------------------------------+
     a2ps               |                       []                      [] |
     aegis              |                                                  |
     ant-phone          |                                                  |
     anubis             |                                                  |
     aspell             |                []                             [] |
     bash               |                                                  |
     bfd                |                                                  |
     bibshelf           |                []                                |
     binutils           |                                                  |
     bison              |                                                  |
     bison-runtime      |                []                                |
     bluez-pin          | []             []                                |
     bombono-dvd        |                                                  |
     buzztard           |                                                  |
     cflow              |                                                  |
     clisp              |                                                  |
     coreutils          |                                   []          [] |
     cpio               |                                                  |
     cppi               |                                                  |
     cpplib             |                                               [] |
     cryptsetup         |                                                  |
     dfarc              |                                                  |
     dialog             |                             []                [] |
     dico               |                                                  |
     diffutils          |                                               [] |
     dink               |                                                  |
     doodle             |                                                  |
     e2fsprogs          |                                               [] |
     enscript           |                                               [] |
     exif               |                                                  |
     fetchmail          |                                               [] |
     findutils          |                                   []             |
     flex               |                                               [] |
     freedink           |                                                  |
     gas                |                                                  |
     gawk               |                []                             [] |
     gcal               |                                               [] |
     gcc                |                                                  |
     gettext-examples   | []             []                 []          [] |
     gettext-runtime    |                                   []          [] |
     gettext-tools      |                                   []          [] |
     gip                |                                   []             |
     gjay               |                                                  |
     gliv               |                                   []             |
     glunarclock        |                []                 []             |
     gnubiff            |                                                  |
     gnucash            |                                               [] |
     gnuedu             |                                                  |
     gnulib             |                                                  |
     gnunet             |                                                  |
     gnunet-gtk         |                                                  |
     gnutls             |                                                  |
     gold               |                                                  |
     gpe-aerial         |                                                  |
     gpe-beam           |                                                  |
     gpe-bluetooth      |                                                  |
     gpe-calendar       |                                                  |
     gpe-clock          |                []                                |
     gpe-conf           |                                                  |
     gpe-contacts       |                                                  |
     gpe-edit           |                                                  |
     gpe-filemanager    |                                                  |
     gpe-go             |                                                  |
     gpe-login          |                                                  |
     gpe-ownerinfo      |                []                                |
     gpe-package        |                                                  |
     gpe-sketchbook     |                                                  |
     gpe-su             |                []                                |
     gpe-taskmanager    |                []                                |
     gpe-timesheet      |                []                                |
     gpe-today          |                []                                |
     gpe-todo           |                                                  |
     gphoto2            |                                                  |
     gprof              |                                   []             |
     gpsdrive           |                                                  |
     gramadoir          |                                                  |
     grep               |                                                  |
     grub               |                []                             [] |
     gsasl              |                                                  |
     gss                |                                                  |
     gst-plugins-bad    |                                   []             |
     gst-plugins-base   |                                   []             |
     gst-plugins-good   |                                   []             |
     gst-plugins-ugly   |                                   []             |
     gstreamer          | []                                []          [] |
     gtick              |                                                  |
     gtkam              |                       []                         |
     gtkorphan          |                                   []             |
     gtkspell           | []             []     []                         |
     gutenprint         |                                                  |
     hello              |                                   []             |
     help2man           |                                                  |
     hylafax            |                                                  |
     idutils            |                                                  |
     indent             |                                   []          [] |
     iso_15924          |                                                  |
     iso_3166           | []          []        []          []  []   [] [] |
     iso_3166_2         |                                                  |
     iso_4217           |                                                  |
     iso_639            |             [] []     []              []         |
     iso_639_3          |                                                  |
     jwhois             |                                                  |
     kbd                |                                                  |
     keytouch           |                                               [] |
     keytouch-editor    |                                                  |
     keytouch-keyboa... |                                               [] |
     klavaro            |          []                                      |
     latrine            |                                                  |
     ld                 |                                   []             |
     leafpad            |                                   []          [] |
     libc               |                                   []          [] |
     libexif            |                       ()                         |
     libextractor       |                                                  |
     libgnutls          |                                                  |
     libgpewidget       |                                                  |
     libgpg-error       |                                                  |
     libgphoto2         |                                                  |
     libgphoto2_port    |                                                  |
     libgsasl           |                                                  |
     libiconv           |                                   []             |
     libidn             |                                                  |
     lifelines          |                                                  |
     liferea            |                             []                [] |
     lilypond           |                                                  |
     linkdr             |          []                                      |
     lordsawar          |                                                  |
     lprng              |                                                  |
     lynx               |                                               [] |
     m4                 |                                                  |
     mailfromd          |                                                  |
     mailutils          |                                                  |
     make               |                                                  |
     man-db             |                                                  |
     man-db-manpages    |                                                  |
     minicom            |                                                  |
     mkisofs            |                                                  |
     myserver           |                                                  |
     nano               |                                   []          [] |
     opcodes            |                                                  |
     parted             |                                                  |
     pies               |                                                  |
     popt               |                                                  |
     psmisc             |                                                  |
     pspp               |                                               [] |
     pwdutils           |                                                  |
     radius             |                                               [] |
     recode             |                       []                      [] |
     rosegarden         |                                                  |
     rpm                |                                                  |
     rush               |                                                  |
     sarg               |                                                  |
     screem             |                                                  |
     scrollkeeper       |                    [] []                      [] |
     sed                |                []                             [] |
     sharutils          |                                   []          [] |
     shishi             |                                                  |
     skencil            |                                                  |
     solfege            |                                                  |
     solfege-manual     |                                                  |
     soundtracker       |                                                  |
     sp                 |                                                  |
     sysstat            |                                                  |
     tar                |                                   []             |
     texinfo            |                                                  |
     tin                |                                                  |
     unicode-han-tra... |                                                  |
     unicode-transla... |                                                  |
     util-linux-ng      |                                               [] |
     vice               |                                                  |
     vmm                |                                                  |
     vorbis-tools       |                                                  |
     wastesedge         |                                                  |
     wdiff              |                                                  |
     wget               |                       []                      [] |
     wyslij-po          |                                                  |
     xchat              |                []     []          []          [] |
     xdg-user-dirs      | []    []    [] []     []    []    []  []      [] |
     xkeyboard-config   |                                   []          [] |
                        +--------------------------------------------------+
                          af am an ar as ast az be be@latin bg bn_IN bs ca
                           6  0  1  2  3 19   1 10     3    28   3    1 38

                          crh cs da  de  el en en_GB en_ZA eo es et eu fa
                        +-------------------------------------------------+
     a2ps               |     [] []  []  []     []            [] []       |
     aegis              |        []  []                       []          |
     ant-phone          |        []  ()                                   |
     anubis             |        []  []                                   |
     aspell             |     [] []  []         []            []          |
     bash               |     []                           [] []          |
     bfd                |                                     []          |
     bibshelf           |        []  []                       []          |
     binutils           |                                     []          |
     bison              |            []  []                               |
     bison-runtime      |        []  []  []                      []       |
     bluez-pin          |     [] []  []  []                [] []          |
     bombono-dvd        |        []                                       |
     buzztard           |     [] []  []                                   |
     cflow              |        []  []                                   |
     clisp              |        []  []     []                []          |
     coreutils          |     [] []  []                          []       |
     cpio               |                                                 |
     cppi               |                                                 |
     cpplib             |        []  []                       []          |
     cryptsetup         |            []                                   |
     dfarc              |        []  []                       []          |
     dialog             |        []  []                    [] []    []    |
     dico               |                                                 |
     diffutils          |     [] []  []  []                [] []          |
     dink               |        []  []                       []          |
     doodle             |            []                                   |
     e2fsprogs          |     []     []                       []          |
     enscript           |        []  []         []                        |
     exif               |     () []  []                                   |
     fetchmail          |     [] []  ()  []     []            []          |
     findutils          |     [] []  []                                   |
     flex               |            []                       []          |
     freedink           |        []  []                       []          |
     gas                |                                     []          |
     gawk               |        []  []                       []          |
     gcal               |                                     []          |
     gcc                |            []                       []          |
     gettext-examples   |            []  []                [] []          |
     gettext-runtime    |        []  []                    [] []          |
     gettext-tools      |            []                       []    []    |
     gip                |        []  []                       []    []    |
     gjay               |            []                                   |
     gliv               |     [] []  []                                   |
     glunarclock        |        []  []                                   |
     gnubiff            |            ()                                   |
     gnucash            |     []     ()  ()     ()            ()          |
     gnuedu             |        []                           []          |
     gnulib             |            []                       []          |
     gnunet             |                                                 |
     gnunet-gtk         |        []                                       |
     gnutls             |     []     []                                   |
     gold               |                                     []          |
     gpe-aerial         |     [] []  []                       []          |
     gpe-beam           |     [] []  []                       []          |
     gpe-bluetooth      |        []  []                                   |
     gpe-calendar       |        []                                       |
     gpe-clock          |     [] []  []                       []          |
     gpe-conf           |     [] []  []                                   |
     gpe-contacts       |        []  []                       []          |
     gpe-edit           |        []  []                                   |
     gpe-filemanager    |        []  []                       []          |
     gpe-go             |     [] []  []                       []          |
     gpe-login          |        []  []                                   |
     gpe-ownerinfo      |     [] []  []                       []          |
     gpe-package        |        []  []                       []          |
     gpe-sketchbook     |     [] []  []                       []          |
     gpe-su             |     [] []  []                       []          |
     gpe-taskmanager    |     [] []  []                       []          |
     gpe-timesheet      |     [] []  []                       []          |
     gpe-today          |     [] []  []                       []          |
     gpe-todo           |        []  []                       []          |
     gphoto2            |     [] []  ()         []            []    []    |
     gprof              |        []  []                       []          |
     gpsdrive           |        []                           [] []       |
     gramadoir          |        []  []                    []             |
     grep               |     []                                          |
     grub               |        []  []                                   |
     gsasl              |            []                                   |
     gss                |                                                 |
     gst-plugins-bad    |     [] []  []                       []    []    |
     gst-plugins-base   |     [] []  []                       []    []    |
     gst-plugins-good   |     [] []  []  []                   []    []    |
     gst-plugins-ugly   |     [] []  []  []                   []    []    |
     gstreamer          |     [] []  []                       []    []    |
     gtick              |        []  ()                    []             |
     gtkam              |     [] []  ()                    [] []          |
     gtkorphan          |     [] []  []                    []             |
     gtkspell           |     [] []  []  []                [] []    []    |
     gutenprint         |        []  []         []                        |
     hello              |        []  []                    [] []          |
     help2man           |            []                                   |
     hylafax            |            []                       []          |
     idutils            |        []  []                                   |
     indent             |     [] []  []                    [] [] [] []    |
     iso_15924          |        []      ()                [] []          |
     iso_3166           | []  [] []  []  ()                [] [] [] ()    |
     iso_3166_2         |                ()                               |
     iso_4217           |     [] []  []  ()                   [] []       |
     iso_639            | []  [] []  []  ()                [] []          |
     iso_639_3          | []                                              |
     jwhois             |                                     []          |
     kbd                |     [] []  []  []                   []          |
     keytouch           |        []  []                                   |
     keytouch-editor    |        []  []                                   |
     keytouch-keyboa... |        []                                       |
     klavaro            |     [] []  []                    []             |
     latrine            |        []  ()                                   |
     ld                 |        []                           []          |
     leafpad            |     [] []  []  []                   []    []    |
     libc               |     [] []  []                       []          |
     libexif            |        []  []         ()                        |
     libextractor       |                                                 |
     libgnutls          |     []                                          |
     libgpewidget       |        []  []                                   |
     libgpg-error       |     []     []                                   |
     libgphoto2         |        []  ()                                   |
     libgphoto2_port    |        []  ()                             []    |
     libgsasl           |                                                 |
     libiconv           |     [] []  []                    []    []       |
     libidn             |     []     []                    []             |
     lifelines          |        []  ()                                   |
     liferea            |     []     []  []                   []    []    |
     lilypond           |     []     []                       []          |
     linkdr             |        []  []                       []          |
     lordsawar          |        []                                       |
     lprng              |                                                 |
     lynx               |     [] []  []                          []       |
     m4                 |     [] []  []  []                               |
     mailfromd          |                                                 |
     mailutils          |                                     []          |
     make               |        []  []                       []          |
     man-db             |                                                 |
     man-db-manpages    |                                                 |
     minicom            |     [] []  []                       []          |
     mkisofs            |                                                 |
     myserver           |                                                 |
     nano               |            []                       []    []    |
     opcodes            |            []                       []          |
     parted             |     []     []                                   |
     pies               |                                                 |
     popt               |     [] []  []                    [] []          |
     psmisc             |     []     []                             []    |
     pspp               |                                     []          |
     pwdutils           |        []                                       |
     radius             |                                     []          |
     recode             |     [] []  []  []                [] []          |
     rosegarden         |     ()     ()                       ()          |
     rpm                |        []  []                       []          |
     rush               |                                                 |
     sarg               |                                                 |
     screem             |                                                 |
     scrollkeeper       |     [] []  []         []            []          |
     sed                |     []     []  []                [] [] []       |
     sharutils          |        []  []                       [] []       |
     shishi             |                                                 |
     skencil            |        []  ()                       []          |
     solfege            |            []                    []    []       |
     solfege-manual     |                                  []    []       |
     soundtracker       |        []  []                       []          |
     sp                 |            []                                   |
     sysstat            |        []  []                             []    |
     tar                |     []     []                          [] []    |
     texinfo            |            []                    [] []          |
     tin                |            []                          []       |
     unicode-han-tra... |                                                 |
     unicode-transla... |                                                 |
     util-linux-ng      |     [] []  []                       []          |
     vice               |        ()  ()                                   |
     vmm                |            []                                   |
     vorbis-tools       |     []                           []             |
     wastesedge         |        []                                       |
     wdiff              |            []                       []          |
     wget               |     []     []                          []       |
     wyslij-po          |                                                 |
     xchat              |     []     []  []                   [] []       |
     xdg-user-dirs      | []  [] []  []  []                [] [] [] []    |
     xkeyboard-config   | []  [] []  []                    [] []          |
                        +-------------------------------------------------+
                          crh cs da  de  el en en_GB en_ZA eo es et eu fa
                           5  64 105 117 18  1   8     0   28 89 18 19  0

                          fi  fr  ga gl gu he hi hr hu hy id  is it ja ka kn
                        +----------------------------------------------------+
     a2ps               | []  []                          []        []       |
     aegis              |     []                                 []          |
     ant-phone          |     []                                 []          |
     anubis             | []  []                          []     []          |
     aspell             |     []  []                      []     []          |
     bash               | []  []                          []        []       |
     bfd                | []  []                          []                 |
     bibshelf           | []  []  []                      []     []          |
     binutils           | []  []                          []                 |
     bison              | []  []  []                      []                 |
     bison-runtime      | []  []  []                      []     [] []       |
     bluez-pin          | []  []  []                [] [] []  []    []       |
     bombono-dvd        | []                                                 |
     buzztard           |                                 []                 |
     cflow              | []      []                      []                 |
     clisp              |     []                                             |
     coreutils          |     []  []                []    []     []          |
     cpio               | []  []  []                      []                 |
     cppi               | []  []                                             |
     cpplib             | []  []                          []                 |
     cryptsetup         |     []                          []     []          |
     dfarc              | []  []                                 []          |
     dialog             |     []  [] []                   []  [] [] []       |
     dico               |                                                    |
     diffutils          | []  []  [] []    []       []    []     [] []       |
     dink               |     []                                             |
     doodle             |         []                             []          |
     e2fsprogs          |     []                          []                 |
     enscript           |     []  []             []       []                 |
     exif               | []  []                          []  [] [] []       |
     fetchmail          |     []                          []     [] []       |
     findutils          | []  []  []                []    []     []          |
     flex               | []  []  []                                         |
     freedink           | []  []                          []                 |
     gas                |     []                          []                 |
     gawk               |     []  []       []             []     () []       |
     gcal               |     []                                             |
     gcc                |                                 []                 |
     gettext-examples   | []  []  []                []    []     [] []       |
     gettext-runtime    | []  []  []                      []     [] []       |
     gettext-tools      |     []                          []     [] []       |
     gip                | []  []  [] []                   []        []       |
     gjay               | []                                                 |
     gliv               | []  ()                                             |
     glunarclock        | []      []                []    []                 |
     gnubiff            |     ()                          []     ()          |
     gnucash            | ()  ()           ()       ()           () []       |
     gnuedu             |     []                                 []          |
     gnulib             | []  []  []                []           [] []       |
     gnunet             |                                                    |
     gnunet-gtk         |     []                                             |
     gnutls             |     []                                 []          |
     gold               | []                              []                 |
     gpe-aerial         | []  []                          []                 |
     gpe-beam           | []  []                          []        []       |
     gpe-bluetooth      | []                              []     [] []       |
     gpe-calendar       | []                                        []       |
     gpe-clock          | []  []                    []    []        []       |
     gpe-conf           | []  []                          []        []       |
     gpe-contacts       | []  []                          []        []       |
     gpe-edit           | []                              []        []       |
     gpe-filemanager    | []                        []    []        []       |
     gpe-go             | []  []                    []    []        []       |
     gpe-login          | []                              []        []       |
     gpe-ownerinfo      | []  []                    []    []        []       |
     gpe-package        | []                              []        []       |
     gpe-sketchbook     | []  []                          []        []       |
     gpe-su             | []  []     []             []    []        []       |
     gpe-taskmanager    | []  []                    []    []        []       |
     gpe-timesheet      | []  []  []                      []        []       |
     gpe-today          | []  []  [] []             []    []        []       |
     gpe-todo           | []                              []        []       |
     gphoto2            | []  []                    []    []     [] []       |
     gprof              | []  []  []                      []                 |
     gpsdrive           |            []                   []     []          |
     gramadoir          |     []  []                      []                 |
     grep               | []                                     []          |
     grub               | []                        []    []     []          |
     gsasl              | []  []  []                      []     []          |
     gss                | []  []  []                      []     []          |
     gst-plugins-bad    | []  []                    []    []     [] []       |
     gst-plugins-base   | []  []                    []    []     [] []       |
     gst-plugins-good   | []  []                    []    []     [] []       |
     gst-plugins-ugly   | []  []                    []    []     [] []       |
     gstreamer          | []  []                    []    []     []          |
     gtick              | []  []  []                      []     []          |
     gtkam              |     []                    []    []     [] []       |
     gtkorphan          |     []                          []     []          |
     gtkspell           | []  []  [] []             [] [] []     [] []       |
     gutenprint         | []  []                    []           []          |
     hello              | []      []                      []                 |
     help2man           | []  []                                             |
     hylafax            |                                 []                 |
     idutils            | []  []  []                []    []     []          |
     indent             | []  []  [] []             []    []     [] []       |
     iso_15924          | []  ()                          []     []          |
     iso_3166           | []  ()  [] [] [] [] [] [] []    []     [] []       |
     iso_3166_2         |     ()                    []    []     []          |
     iso_4217           | []  ()                    []    []     [] []       |
     iso_639            | []  ()  []    []          []    []     [] []    [] |
     iso_639_3          |     ()                                 []       [] |
     jwhois             | []  []                    []    []     []          |
     kbd                |     []                          []                 |
     keytouch           | []  []  []                []    []     []          |
     keytouch-editor    | []      []                []    []     []          |
     keytouch-keyboa... | []      []                []    []     []          |
     klavaro            |            []             []                       |
     latrine            | []                              []     []          |
     ld                 | []  []  []                      []                 |
     leafpad            | []  []  []       []       []    []     [] ()       |
     libc               | []  []     []                   []        []       |
     libexif            |                                        []          |
     libextractor       |                                                    |
     libgnutls          |     []                                 []          |
     libgpewidget       | []      []                      []        []       |
     libgpg-error       |     []                                 []          |
     libgphoto2         |     []                                 [] []       |
     libgphoto2_port    |     []                                 [] []       |
     libgsasl           | []  []  []                      []     []          |
     libiconv           | []  []  []                      []     [] []       |
     libidn             | []  []                          []     []          |
     lifelines          |     ()                                             |
     liferea            |     []                    []           [] []       |
     lilypond           | []  []                                             |
     linkdr             | []               []    [] []           []          |
     lordsawar          |                                                    |
     lprng              |                                 []                 |
     lynx               |     []                    []    []     [] []       |
     m4                 | []  []  [] []                   []        []       |
     mailfromd          |                                                    |
     mailutils          |     []                          []                 |
     make               | []  []  [] []    []    []       []     [] []       |
     man-db             |                                 []     []          |
     man-db-manpages    |                                 []                 |
     minicom            | []  []                    []    []        []       |
     mkisofs            | []  []                          []     []          |
     myserver           |                                                    |
     nano               | []  []  [] []             []           []          |
     opcodes            | []  []  []                      []                 |
     parted             |     []                          []     [] []       |
     pies               |                                                    |
     popt               | []  []  [] []             []    []  [] [] []       |
     psmisc             | []  []                          []                 |
     pspp               |                                                    |
     pwdutils           |     []                          []                 |
     radius             |     []                          []                 |
     recode             | []  []  [] []    []       []    []     []          |
     rosegarden         | ()  ()                          ()     () ()       |
     rpm                |                                 []        []       |
     rush               |                                                    |
     sarg               |     []                                             |
     screem             |                                        [] []       |
     scrollkeeper       | []                        []    []     []          |
     sed                | []  []  [] []             []    []     [] []       |
     sharutils          | []  []  []                []    []     [] []       |
     shishi             |     []                                             |
     skencil            |     []                                             |
     solfege            | []  []     []                          []          |
     solfege-manual     |     []     []                                      |
     soundtracker       |     []                                 []          |
     sp                 |     []                                    ()       |
     sysstat            | []  []                          []     [] []       |
     tar                | []  []  []                []    []     [] []       |
     texinfo            |     []                          []     [] []       |
     tin                |     []                                             |
     unicode-han-tra... |                                                    |
     unicode-transla... |     []  []                                         |
     util-linux-ng      | []  []                    []    []     [] []       |
     vice               |     ()                    ()           ()          |
     vmm                |     []                                             |
     vorbis-tools       |                                 []                 |
     wastesedge         |     ()                                 ()          |
     wdiff              | []                                                 |
     wget               | []  []  []             [] []    []     [] []       |
     wyslij-po          | []  []                          []                 |
     xchat              | []  []        []    []    []    []     [] []    [] |
     xdg-user-dirs      | []  []  [] [] [] [] []    []    []  [] [] []    [] |
     xkeyboard-config   | []  []                    []    []     []          |
                        +----------------------------------------------------+
                          fi  fr  ga gl gu he hi hr hu hy id  is it ja ka kn
                          105 121 53 20  4  8  3  5 53  2 120  5 84 67  0  4

                          ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
                        +-----------------------------------------------+
     a2ps               |                               []              |
     aegis              |                                               |
     ant-phone          |                                               |
     anubis             |                               []    []        |
     aspell             |                         []                    |
     bash               |                                               |
     bfd                |                                               |
     bibshelf           |                []             []              |
     binutils           |                                               |
     bison              |                               []              |
     bison-runtime      |       []    [] []             []    []        |
     bluez-pin          |    [] []    [] []             []              |
     bombono-dvd        |                                               |
     buzztard           |                                               |
     cflow              |                                               |
     clisp              |                                               |
     coreutils          |          []                                   |
     cpio               |                                               |
     cppi               |                                               |
     cpplib             |                                               |
     cryptsetup         |                                               |
     dfarc              |                   []                          |
     dialog             |    []       [] []             []    []        |
     dico               |                                               |
     diffutils          |                []             []              |
     dink               |                                               |
     doodle             |                                               |
     e2fsprogs          |                                               |
     enscript           |                                               |
     exif               |                []                             |
     fetchmail          |                                               |
     findutils          |                                               |
     flex               |                                               |
     freedink           |                                     []        |
     gas                |                                               |
     gawk               |                                               |
     gcal               |                                               |
     gcc                |                                               |
     gettext-examples   |       []       []             [] []           |
     gettext-runtime    | []                                            |
     gettext-tools      | []                                            |
     gip                |                []             []              |
     gjay               |                                               |
     gliv               |                                               |
     glunarclock        |                []                             |
     gnubiff            |                                               |
     gnucash            | ()          ()                      ()     () |
     gnuedu             |                                               |
     gnulib             |                                               |
     gnunet             |                                               |
     gnunet-gtk         |                                               |
     gnutls             |                               []              |
     gold               |                                               |
     gpe-aerial         |                []                             |
     gpe-beam           |                []                             |
     gpe-bluetooth      |                []                []           |
     gpe-calendar       |                []                             |
     gpe-clock          | []    []       []             [] []           |
     gpe-conf           | []             []                             |
     gpe-contacts       | []             []                             |
     gpe-edit           |                []                             |
     gpe-filemanager    | []             []                             |
     gpe-go             | []             []                []           |
     gpe-login          |                []                             |
     gpe-ownerinfo      |                []             []              |
     gpe-package        | []             []                             |
     gpe-sketchbook     | []             []                             |
     gpe-su             | []    []       []             [] [] []        |
     gpe-taskmanager    | [] [] []       []             [] []           |
     gpe-timesheet      |                []             []              |
     gpe-today          |       []       []             [] []           |
     gpe-todo           |                []                   []        |
     gphoto2            |                                               |
     gprof              |                               []              |
     gpsdrive           |                                               |
     gramadoir          |                                               |
     grep               |                                               |
     grub               |                                               |
     gsasl              |                                               |
     gss                |                                               |
     gst-plugins-bad    |             [] []                [] []        |
     gst-plugins-base   |             [] []                             |
     gst-plugins-good   |                []                []           |
     gst-plugins-ugly   |             [] []             [] [] []        |
     gstreamer          |                                               |
     gtick              |                                               |
     gtkam              |                                     []        |
     gtkorphan          |                []                      []     |
     gtkspell           |       []    [] []       []    []    [] []     |
     gutenprint         |                                               |
     hello              | []             []             []              |
     help2man           |                                               |
     hylafax            |                                               |
     idutils            |                                               |
     indent             |                                               |
     iso_15924          |             [] []                             |
     iso_3166           | [] []       () [] [] []    []       []        |
     iso_3166_2         |                                               |
     iso_4217           |             []                      []        |
     iso_639            |                      []    []                 |
     iso_639_3          |                            []                 |
     jwhois             |                []                             |
     kbd                |                                               |
     keytouch           |                []                             |
     keytouch-editor    |                []                             |
     keytouch-keyboa... |                []                             |
     klavaro            |                                     []        |
     latrine            |                []                             |
     ld                 |                                               |
     leafpad            | []          [] []                             |
     libc               | []                                            |
     libexif            |                                               |
     libextractor       |                                               |
     libgnutls          |                               []              |
     libgpewidget       |                []             []              |
     libgpg-error       |                                               |
     libgphoto2         |                                               |
     libgphoto2_port    |                                               |
     libgsasl           |                                               |
     libiconv           |                                               |
     libidn             |                                               |
     lifelines          |                                               |
     liferea            |                                               |
     lilypond           |                                               |
     linkdr             |                                               |
     lordsawar          |                                               |
     lprng              |                                               |
     lynx               |                                               |
     m4                 |                                               |
     mailfromd          |                                               |
     mailutils          |                                               |
     make               | []                                            |
     man-db             |                                               |
     man-db-manpages    |                                               |
     minicom            |                                     []        |
     mkisofs            |                                               |
     myserver           |                                               |
     nano               |                               []    []        |
     opcodes            |                                               |
     parted             |                                               |
     pies               |                                               |
     popt               | []             []                   []        |
     psmisc             |                                               |
     pspp               |                                               |
     pwdutils           |                                               |
     radius             |                                               |
     recode             |                                               |
     rosegarden         |                                               |
     rpm                |                                               |
     rush               |                                               |
     sarg               |                                               |
     screem             |                                               |
     scrollkeeper       |                                     []     [] |
     sed                |                                               |
     sharutils          |                                               |
     shishi             |                                               |
     skencil            |                                               |
     solfege            |                                     []        |
     solfege-manual     |                                               |
     soundtracker       |                                               |
     sp                 |                                               |
     sysstat            |                []                             |
     tar                |       []                                      |
     texinfo            |                                     []        |
     tin                |                                               |
     unicode-han-tra... |                                               |
     unicode-transla... |                                               |
     util-linux-ng      |                                               |
     vice               |                                               |
     vmm                |                                               |
     vorbis-tools       |                                               |
     wastesedge         |                                               |
     wdiff              |                                               |
     wget               |             []                                |
     wyslij-po          |                                               |
     xchat              | []             [] []                          |
     xdg-user-dirs      | [] []       [] [] []       []       [] []     |
     xkeyboard-config   | []    []    []                                |
                        +-----------------------------------------------+
                          ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
                          20  5 10  1 13 48  4  2  2  4 24 10 20  3   1

                          nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
                        +---------------------------------------------------+
     a2ps               | []           []     []  []   [] []       []    [] |
     aegis              | []                      []      []                |
     ant-phone          |                         []   []                   |
     anubis             | []           []                 []                |
     aspell             | []                           [] []    [] []       |
     bash               | []                                    []          |
     bfd                |                                 []                |
     bibshelf           | []  []                                            |
     binutils           |                                 []    []          |
     bison              | []           []                 []                |
     bison-runtime      | []           []     []  []   [] []       []       |
     bluez-pin          | []           []         []   [] []    [] []    [] |
     bombono-dvd        |     []                          ()                |
     buzztard           | []  []                                            |
     cflow              |              []                                   |
     clisp              | []                              []                |
     coreutils          | []           []     []  []      []       []       |
     cpio               | []           []                 []                |
     cppi               |              []                                   |
     cpplib             | []                                                |
     cryptsetup         | []                                                |
     dfarc              |              []                                   |
     dialog             | []           []         []      []                |
     dico               |              []                                   |
     diffutils          | []           []         []   [] []             [] |
     dink               | ()                                                |
     doodle             | []                                          []    |
     e2fsprogs          | []           []                                   |
     enscript           | []                      []   [] []       []       |
     exif               | []           []              [] ()    []          |
     fetchmail          | []           []                 []          []    |
     findutils          | []           []     []          []       []       |
     flex               | []           []         []   [] []                |
     freedink           | []           []                                   |
     gas                |                                                   |
     gawk               | []           []         []   []                   |
     gcal               |                                                   |
     gcc                |                                                [] |
     gettext-examples   | []           []     []       [] []    [] []    [] |
     gettext-runtime    | []  []       []     []       [] []    [] []    [] |
     gettext-tools      |              []              [] []    [] []    [] |
     gip                | []           []                 []    []       [] |
     gjay               |                                                   |
     gliv               | []           []         []   [] []    []          |
     glunarclock        | []                      []   []       []       [] |
     gnubiff            | []                           ()                   |
     gnucash            | []           ()         ()      ()                |
     gnuedu             | []                                                |
     gnulib             | []           []                 []       []       |
     gnunet             |                                                   |
     gnunet-gtk         |                                                   |
     gnutls             | []           []                                   |
     gold               |                                                   |
     gpe-aerial         | []                  []  []   [] []       []    [] |
     gpe-beam           | []                  []  []   [] []       []    [] |
     gpe-bluetooth      | []                      []                        |
     gpe-calendar       |                         []      []       []    [] |
     gpe-clock          | []                  []  []   [] []    [] []    [] |
     gpe-conf           | []                  []  []   [] []    [] []       |
     gpe-contacts       |                         []   [] []       []    [] |
     gpe-edit           | []           []                          []       |
     gpe-filemanager    | []                              []       []       |
     gpe-go             | []           []         []   [] []    [] []    [] |
     gpe-login          | []                      []                        |
     gpe-ownerinfo      | []                  []  []   [] []    [] []    [] |
     gpe-package        | []                                       []       |
     gpe-sketchbook     | []                  []  []   [] []       []    [] |
     gpe-su             | []                  []  []   [] []    [] []    [] |
     gpe-taskmanager    | []                  []  []   [] []    [] []    [] |
     gpe-timesheet      | []                  []  []   [] []    [] []    [] |
     gpe-today          | []                  []  []   [] []    [] []    [] |
     gpe-todo           | []                      []      []       []    [] |
     gphoto2            | []        [] []         []   [] []    []       [] |
     gprof              | []                      []   []                   |
     gpsdrive           | []                              []                |
     gramadoir          | []                                    []          |
     grep               | []           []                 []    []          |
     grub               | []           []                 []                |
     gsasl              | []           []                       []       [] |
     gss                |              []              []       []          |
     gst-plugins-bad    | []           []         []      []    []    []    |
     gst-plugins-base   | []           []         []      []    []          |
     gst-plugins-good   | []           []         []      []    []          |
     gst-plugins-ugly   | []           []         []      []    [] []       |
     gstreamer          | []           []         []      []    []          |
     gtick              | []                              []    []          |
     gtkam              | []        [] []         []      []    []          |
     gtkorphan          | []                                                |
     gtkspell           | []           []     []  []   [] []    [] [] [] [] |
     gutenprint         | []                              []                |
     hello              | []           []                       [] []       |
     help2man           |              []                 []                |
     hylafax            | []                                                |
     idutils            | []           []         []   [] []                |
     indent             | []           []         []   [] []    []       [] |
     iso_15924          | []           []                 []       []       |
     iso_3166           | []  [] [] [] []     ()  []   [] [] [] [] [] [] [] |
     iso_3166_2         | []           []                          []       |
     iso_4217           | []  []       []     []          [] []    []    [] |
     iso_639            | []     [] [] []                 [] [] [] []    [] |
     iso_639_3          |        [] []                                      |
     jwhois             | []           []         []   []                   |
     kbd                | []           []              []                   |
     keytouch           | []           []                       []          |
     keytouch-editor    | []           []                       []          |
     keytouch-keyboa... | []           []                       []          |
     klavaro            | []                      []                        |
     latrine            |              []                 []                |
     ld                 |                                                   |
     leafpad            | []  []       []     []  []      []    [] []    [] |
     libc               | []           []                 []    []          |
     libexif            | []           []         ()            []          |
     libextractor       |                                                   |
     libgnutls          | []           []                                   |
     libgpewidget       | []           []                          []       |
     libgpg-error       |              []              []                   |
     libgphoto2         | []           []                                   |
     libgphoto2_port    | []           []         []      []    []          |
     libgsasl           | []           []              []       []       [] |
     libiconv           | []           []                       [] []    [] |
     libidn             | []           []                                   |
     lifelines          | []           []                                   |
     liferea            | []           []     []  []   [] ()    ()    []    |
     lilypond           | []                                                |
     linkdr             | []                  []          []                |
     lordsawar          |                                                   |
     lprng              |              []                                   |
     lynx               | []                      []      []                |
     m4                 | []           []         []   [] []                |
     mailfromd          |              []                                   |
     mailutils          |              []                                   |
     make               | []           []         []      []                |
     man-db             | []           []                 []                |
     man-db-manpages    | []           []                 []                |
     minicom            |              []         []   [] []                |
     mkisofs            | []           []                 []                |
     myserver           |                                                   |
     nano               | []           []         []      []                |
     opcodes            | []                           []                   |
     parted             | []           []                 []    []          |
     pies               |              []                                   |
     popt               | []           []     []          []                |
     psmisc             | []           []                 []                |
     pspp               | []                      []                        |
     pwdutils           |              []                                   |
     radius             | []           []                 []                |
     recode             | []           []     []  []   [] []    [] []       |
     rosegarden         |              ()                 ()                |
     rpm                | []           []     []                            |
     rush               | []           []                                   |
     sarg               |                                                   |
     screem             |                                                   |
     scrollkeeper       | []  []       []              [] []    []    [] [] |
     sed                | []           []     []  []   [] []    [] []    [] |
     sharutils          | []           []                 []             [] |
     shishi             |              []                                   |
     skencil            |                     []  []                        |
     solfege            | []           []         []      []                |
     solfege-manual     | []           []         []                        |
     soundtracker       |                                       []          |
     sp                 |                                                   |
     sysstat            | []           []         []      []                |
     tar                | []           []                 []       []       |
     texinfo            | []           []              [] []                |
     tin                |                                 []                |
     unicode-han-tra... |                                                   |
     unicode-transla... |                                                   |
     util-linux-ng      | []           []         []      []       []       |
     vice               | []                                                |
     vmm                | []                                                |
     vorbis-tools       | []           []                                   |
     wastesedge         | []                                                |
     wdiff              | []           []                                   |
     wget               | []           []     []  []      []    [] []       |
     wyslij-po          | []  []       []                                   |
     xchat              | []        [] []     []          []    [] [] [] [] |
     xdg-user-dirs      | []  [] [] [] []  [] []  []   [] []    [] [] [] [] |
     xkeyboard-config   | []           []                 []                |
                        +---------------------------------------------------+
                          nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
                          135 10  4  7 105  1 29  62   47 91  3 54 46  9 37

                          sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
                        +---------------------------------------------------+
     a2ps               | []              [] [] [] []                       | 27
     aegis              |                          []                       |  9
     ant-phone          | []                 []    []      []               |  9
     anubis             | []                 [] [] []                       | 15
     aspell             |                       [] []  []                   | 20
     bash               | []                    [] []                       | 12
     bfd                |                          []                       |  6
     bibshelf           | []                       []      []               | 16
     binutils           |                       [] []                       |  8
     bison              | []                       []                       | 12
     bison-runtime      | []              []    [] []      []          []   | 29
     bluez-pin          | []              [] [] [] []  []  []          []   | 37
     bombono-dvd        |                          []                       |  4
     buzztard           |                          []                       |  7
     cflow              |                       [] []      []               |  9
     clisp              |                                                   | 10
     coreutils          | []                    [] []      []               | 22
     cpio               | []                 [] [] []      []          []   | 13
     cppi               |                       [] []                       |  5
     cpplib             | []                 [] [] []      []          []   | 14
     cryptsetup         | []                       []                       |  7
     dfarc              |                          []                       |  9
     dialog             | []  []          []       []  []  []          []   | 30
     dico               |                       []                          |  2
     diffutils          | []                 [] [] []      []          []   | 30
     dink               |                                                   |  4
     doodle             | []                       []                       |  7
     e2fsprogs          | []                 []    []                       | 11
     enscript           | []                 [] [] []                       | 17
     exif               | []                       []      []               | 16
     fetchmail          |                    []    []      []               | 17
     findutils          | []                 [] [] []      []               | 20
     flex               | []                 []    []                  []   | 15
     freedink           |                          []                       | 10
     gas                |                    []                             |  4
     gawk               | []                 []    []      []               | 18
     gcal               | []                 []                             |  5
     gcc                | []                 []            []               |  7
     gettext-examples   | []                 [] [] []      []    []    []   | 34
     gettext-runtime    | []                 [] [] []      []    []    []   | 29
     gettext-tools      | []                 [] [] []      []          []   | 22
     gip                | []                       []      []          []   | 22
     gjay               |                          []                       |  3
     gliv               | []                 []    []                       | 14
     glunarclock        | []                       []  []  []          []   | 19
     gnubiff            | []                       []                       |  4
     gnucash            |                    () [] ()      []          ()   | 10
     gnuedu             |                          []                  []   |  7
     gnulib             | []                    [] []      []               | 16
     gnunet             |                          []                       |  1
     gnunet-gtk         | []                 []    []                       |  5
     gnutls             | []                       []      []               | 10
     gold               |                          []                       |  4
     gpe-aerial         | []                       []      []               | 18
     gpe-beam           | []                       []      []               | 19
     gpe-bluetooth      | []                       []      []               | 13
     gpe-calendar       | []                       []  []  []               | 12
     gpe-clock          | []                 []    []  []  []               | 28
     gpe-conf           | []                       []  []  []               | 20
     gpe-contacts       | []                       []      []               | 17
     gpe-edit           | []                       []      []               | 12
     gpe-filemanager    | []                       []  []  []               | 16
     gpe-go             | []                 []    []  []  []               | 25
     gpe-login          | []                       []      []               | 11
     gpe-ownerinfo      | []                 []    []      []          []   | 25
     gpe-package        | []                       []      []               | 13
     gpe-sketchbook     | []                       []      []               | 20
     gpe-su             | []                 []    []  []  []               | 30
     gpe-taskmanager    | []                 []    []  []  []               | 29
     gpe-timesheet      | []                 []    []      []          []   | 25
     gpe-today          | []                 []    []  []  []          []   | 30
     gpe-todo           | []                       []  []  []               | 17
     gphoto2            | []                    [] []      []          []   | 24
     gprof              | []                 []    []                       | 15
     gpsdrive           | []                       []      []               | 11
     gramadoir          | []                       []      []               | 11
     grep               |                 []       []      []               | 10
     grub               | []                       []      []               | 14
     gsasl              | []                       []      []          []   | 14
     gss                | []                       []      []               | 11
     gst-plugins-bad    | []                 []    []      []               | 26
     gst-plugins-base   | []                 [] [] []      []               | 24
     gst-plugins-good   | []                 []    []      []               | 24
     gst-plugins-ugly   | []                 [] [] []      []               | 29
     gstreamer          | []                    [] []      []               | 22
     gtick              |                       [] []      []               | 13
     gtkam              | []                       []      []               | 20
     gtkorphan          | []                       []      []               | 14
     gtkspell           | []              [] [] [] []  []  []    []    []   | 45
     gutenprint         | []                                                | 10
     hello              | []              [] []    []      []          []   | 21
     help2man           | []                       []                       |  7
     hylafax            |                          []                       |  5
     idutils            | []                 []    []      []               | 17
     indent             | []                 [] [] []      []          []   | 30
     iso_15924          |                 ()    [] ()      []          []   | 16
     iso_3166           | []        []    () [] [] ()  []  []    []    ()   | 53
     iso_3166_2         |                 ()    [] ()      []               |  9
     iso_4217           | []              () [] [] ()      []    []         | 26
     iso_639            | []     [] []    ()    [] ()  []  []    []    []   | 38
     iso_639_3          |        []                ()                       |  8
     jwhois             | []                 []    []      []          []   | 16
     kbd                | []                 [] [] []      []               | 15
     keytouch           | []                       []      []               | 16
     keytouch-editor    | []                       []      []               | 14
     keytouch-keyboa... | []                       []      []               | 14
     klavaro            |                          []                       | 11
     latrine            |                    []    []      []               | 10
     ld                 | []                 []    []                  []   | 11
     leafpad            | []                 [] [] []      []          []   | 33
     libc               | []                 []    []      []          []   | 21
     libexif            |                          []      ()               |  7
     libextractor       |                          []                       |  1
     libgnutls          | []                       []      []               |  9
     libgpewidget       | []                       []      []               | 14
     libgpg-error       | []                       []      []               |  9
     libgphoto2         |                       [] []                       |  8
     libgphoto2_port    | []                    [] []                  []   | 14
     libgsasl           | []                       []      []               | 13
     libiconv           | []                       []  []  []               | 21
     libidn             | ()                       []      []               | 11
     lifelines          | []                                                |  4
     liferea            | []                 []            []               | 21
     lilypond           |                          []                       |  7
     linkdr             | []                 []    []      []          []   | 17
     lordsawar          |                                                   |  1
     lprng              |                          []                       |  3
     lynx               | []                 [] [] []                       | 17
     m4                 | []                       []      []          []   | 19
     mailfromd          |                       [] []                       |  3
     mailutils          |                          []                       |  5
     make               | []                 []    []      []               | 21
     man-db             | []                       []      []               |  8
     man-db-manpages    |                                                   |  4
     minicom            | []                       []                       | 16
     mkisofs            |                          []      []               |  9
     myserver           |                                                   |  0
     nano               | []                       []      []          []   | 21
     opcodes            | []                 []    []                       | 11
     parted             | []                 [] [] []                  []   | 15
     pies               |                       [] []                       |  3
     popt               | []              [] []    []      []          []   | 27
     psmisc             | []                       []                       | 11
     pspp               |                                                   |  4
     pwdutils           | []                       []                       |  6
     radius             |                       [] []                       |  9
     recode             | []                 []    []      []               | 28
     rosegarden         | ()                                                |  0
     rpm                | []                       []                  []   | 11
     rush               |                       [] []                       |  4
     sarg               |                                                   |  1
     screem             |                          []                       |  3
     scrollkeeper       | []                 [] [] []                  []   | 27
     sed                | []                 []    []      []          []   | 30
     sharutils          | []                 []    []      []          []   | 22
     shishi             |                          []                       |  3
     skencil            | []                       []                       |  7
     solfege            | []                 []    []      []               | 16
     solfege-manual     |                    []                             |  8
     soundtracker       | []                 []    []                       |  9
     sp                 |                    []                             |  3
     sysstat            |                          []      []               | 15
     tar                | []                 [] [] []      []          []   | 23
     texinfo            | []                 [] [] []      []               | 17
     tin                |                                                   |  4
     unicode-han-tra... |                                                   |  0
     unicode-transla... |                                                   |  2
     util-linux-ng      | []                 [] [] []                       | 20
     vice               | ()                 ()                             |  1
     vmm                |                          []                       |  4
     vorbis-tools       |                          []                       |  6
     wastesedge         |                                                   |  2
     wdiff              | []                       []                       |  7
     wget               | []                 []    []      []          []   | 26
     wyslij-po          |                       [] []                       |  8
     xchat              | []              []    [] []      []          []   | 36
     xdg-user-dirs      | []     [] []    [] [] [] []      []    []    []   | 63
     xkeyboard-config   | []                    [] []                       | 22
                        +---------------------------------------------------+
       85 teams           sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
      178 domains         119  1  3  3  0 10 65 51 155 17  98     7    41    2618

   Some counters in the preceding matrix are higher than the number of
visible blocks let us expect.  This is because a few extra PO files are
used for implementing regional variants of languages, or language
dialects.

   For a PO file in the matrix above to be effective, the package to
which it applies should also have been internationalized and
distributed as such by its maintainer.  There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.

   If June 2010 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
matrix with full percentage details can be found at
`http://translationproject.org/extra/matrix.html'.

1.5 Using `gettext' in new packages
===================================

If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package.  Of course you have to respect the GNU Library General Public
License which covers the use of the GNU `gettext' library.  This means
in particular that even non-free programs can use `libintl' as a shared
library, whereas only free software can use `libintl' as a static
library or use modified versions of `libintl'.

   Once the sources are changed appropriately and the setup can handle
the use of `gettext' the only thing missing are the translations.  The
Free Translation Project is also available for packages which are not
developed inside the GNU project.  Therefore the information given above
applies also for every other Free Software Project.  Contact
`coordinator@translationproject.org' to make the `.pot' files available
to the translation teams.


================================================
FILE: API.json
================================================
{
    "$schema": "http://json-schema.org/draft-03/schema#",
    "title": "Kimchi API",
    "description": "Json schema for Kimchi API",
    "type": "object",
    "kimchitype": {
        "graphics": {
            "description": "Configure graphics parameters for the new VM",
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "enum": ["spice", "vnc"],
                    "error": "KCHVM0014E"
                },
                "listen": {
                    "error": "KCHVM0015E",
                    "type": [
                        {
                            "type": "string",
                            "format": "ipv4"
                        },
                        {
                            "type": "string",
                            "format": "ipv6"
                        }
                        ]
                }
            }
        },
        "cpu_info": {
            "description": "Configure CPU specifics for a VM.",
            "type": "object",
            "properties": {
                "vcpus": {
                    "description": "The new number of virtual CPUs for the VM",
                    "type": "integer",
                    "minimum": 1,
                    "error": "KCHTMPL0012E"
                },
                "maxvcpus": {
                    "description": "The maximum number of virtual CPUs that can be assigned to the VM",
                    "type": "integer",
                    "minimum": 1,
                    "error": "KCHTMPL0012E"
                },
                "topology": {
                    "description": "Configure the guest CPU topology.",
                    "type": "object",
                    "properties": {
                        "sockets": {
                            "type": "integer",
                            "minimum": 1,
                            "error": "KCHTMPL0026E"
                        },
                        "cores": {
                            "type": "integer",
                            "minimum": 1,
                            "error": "KCHTMPL0026E"
                        },
                        "threads": {
                            "type": "integer",
                            "minimum": 1,
                            "error": "KCHTMPL0026E"
                        }
                    },
                    "additionalProperties": false,
                    "error": "KCHCPUINF0009E"
                }
            },
            "additionalProperties": false,
            "error": "KCHCPUINF0008E"
        },
        "memory": {
            "description": "Current memory and maximum memory values",
            "type": "object",
            "properties": {
                "current": {
                    "description": "Memory (MB) for the template",
                    "type": "integer",
                    "minimum": 512,
                    "error": "KCHTMPL0013E"
                },
                "maxmemory": {
                    "description": "Maximum memory (MB) for the template",
                    "type": "integer",
                    "minimum": 512,
                    "error": "KCHTMPL0013E"
                }
            },
            "additionalProperties": false,
            "error": "KCHTMPL0030E"
        },
        "interface": {
             "description": "Host network interface. This indicates how to configure the host network interface (Ethernet, Bond, VLAN) as direct macvtap or as OVS interface to a VM.",
             "type": "object",
             "properties": {
                   "type": {
                        "description": "Host network interface type. Valid types are: 'macvtap' for host network interface (Ethernet, Bond, VLAN) to be connected as direct MacVTap or 'ovs' for openvswitch host network interface to be connected as virtual switch to a VM.",
                        "type": "string",
                        "required": true,
                        "pattern":  "^(macvtap|ovs)$",
                        "error": "KCHTMPL0034E"
                    },
                   "name": {
                        "description": "The host network interface name. It should be name of host network interface(Ethernet, Bond, VLAN) for type 'macvtap' and name of host openvswitch bridge interface for type ovs",
                        "type": "string",
                        "required": true,
                        "error": "KCHTMPL0035E"
                    },
                   "mode": {
                        "description": "Only applicable for macvtap interface type. That indicates whether packets will be delivered directly to target device (bridge) or to the external bridge (vepa-capable bridge).",
                        "type": "string",
                        "pattern":  "^(bridge|vepa)$",
                        "error": "KCHTMPL0036E"
                    }
             },
            "additionalProperties": false,
            "error": "KCHTMPL0038E"
       }
    },
    "properties": {
        "storagepools_create": {
            "type": "object",
            "error": "KCHPOOL0026E",
            "properties": {
                "name": {
                    "description": "The name of the Storage Pool",
                    "type": "string",
                    "required": true,
                    "minLength": 1,
                    "pattern": "^[^/]*$",
                    "error": "KCHPOOL0016E"
                },
                "type": {
                    "description": "The type of the defined Storage Pool",
                    "type": "string",
                    "required": true,
                    "pattern": "^dir|netfs|logical|kimchi-iso|iscsi|scsi$",
                    "error": "KCHPOOL0017E"
                },
                "path": {
                    "description": "The path of the defined Storage Pool",
                    "type": "string",
                    "error": "KCHPOOL0018E"
                },
                "source": {
                    "description": "Dictionary containing source information of the pool",
                    "type": "object",
                    "properties": {
                        "host": {
                            "description": "IP or hostname of server for a pool backed from a remote host",
                            "type": "string",
                            "error": "KCHPOOL0019E"
                        },
                        "path": {
                            "description": "Export path on NFS server for NFS pool",
                            "type": "string",
                            "error": "KCHPOOL0018E"
                        },
                        "devices": {
                            "description": "Array of devices to be used in the Storage Pool",
                            "type": "array",
                            "minItems": 1,
                            "uniqueItems": true,
                            "error": "KCHPOOL0021E",
                            "items": {
                                "description": "Full path of the block device node",
                                "type": "string",
                                "error": "KCHPOOL0020E"
                            }
                        },
                        "target": {
                            "description": "Target IQN of an iSCSI pool",
                            "type": "string",
                            "error": "KCHPOOL0022E"
                        },
                        "port": {
                            "description": "Listening port of a remote storage server",
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 65535,
                            "error": "KCHPOOL0023E"
                        },
                        "adapter_name": {
                            "description": "SCSI host name",
                            "type": "string",
                            "error": "KCHPOOL0030E"
                        },
                        "auth": {
                            "description": "Storage back-end authentication information",
                            "type": "object",
                            "properties": {
                                "username": {
                                    "description": "Login username of the iSCSI target",
                                    "type": "string",
                                    "error": "KCHPOOL0024E"
                                },
                                "password": {
                                    "description": "Login password of the iSCSI target",
                                    "type": "string",
                                    "error": "KCHPOOL0025E"
                                }
                            }
                        },
                        "from_vg": {
                            "description": "Indicate if a logical pool will be created from an existing VG or not",
                            "type": "boolean",
                            "error": "KCHPOOL0026E"
                        }
                    }
                }
            }
        },
        "storagepool_update": {
            "type": "object",
            "properties": {
                "autostart": {
                    "description": "Set autostart value of the pool",
                    "type": "boolean"
                },
                "disks": {
                    "description": "List of disks/partitions to be added",
                    "type": "array",
                    "items": { "type": "string" },
                    "minItems": 1,
                    "uniqueItems": true
                }
            },
            "additionalProperties": false
        },
        "storagevolumes_create": {
            "type": "object",
            "properties": {
                "name": {
                    "description": "The name of the Storage Volume",
                    "type": "string",
                    "minLength": 1,
                    "error": "KCHVOL0013E"
                },
                "capacity": {
                    "description": "The total size (MiB) of the storage volume",
                    "type": "number",
                    "minimum": 1,
                    "error": "KCHVOL0020E"
                },
                "upload": {
                    "description": "When the storage volume will be uploaded",
                    "type": "boolean",
                    "error": "KCHVOL0025E"
                },
                "allocation": {
                    "description": "The size(MiB) of allocation when create the storage volume",
                    "type": "number",
                    "minimum": 1,
                    "error": "KCHVOL0014E"
                },
                "format": {
                    "description": "The format of the volume",
                    "type": "string",
                    "pattern": "^(|qcow|qcow2|qed|raw|vmdk|vpc)$",
                    "error": "KCHVOL0015E"
                },
                "url": {
                    "description": "The remote URL of the storage volume",
                    "type": "string",
                    "pattern": "^(http|ftp)[s]?://",
                    "error": "KCHVOL0021E"
                }
            }
        },
        "storagevolume_update": {
            "type": "object",
            "properties": {
                "chunk": {
                    "description": "Upload storage volume chunk",
                    "error": "KCHVOL0024E",
                    "required": true
                },
                "chunk_size": {
                    "description": "Chunk size of uploaded storage volume",
                    "type": "string",
                    "required": true,
                    "error": "KCHVOL0024E"
                }
            },
            "additionalProperties": false
        },
        "vms_create": {
            "type": "object",
            "error": "KCHVM0016E",
            "properties": {
                "name": {
                    "description": "The name of the new VM",
                    "type": "string",
                    "pattern": "^[^/]*$",
                    "error": "KCHVM0011E"
                },
                "title": {
                    "description": "Title of VM",
                    "type": "string",
                    "error": "KCHVM0085E"
                },
                "description": {
                    "description": "Description of VM",
                    "type": "string",
                    "error": "KCHVM0086E"
                },
                "template": {
                    "description": "The URI of a template to use when building a VM",
                    "type": "string",
                    "pattern": "^/plugins/kimchi/templates/(.*?)/?$",
                    "required": true,
                    "error": "KCHVM0012E"
                },
                "storagepool": {
                    "description": "Assign a specefic Storage Pool to the new VM",
                    "type": "string",
                    "pattern": "^/plugins/kimchi/storagepools/[^/]+/?$",
                    "error": "KCHVM0013E"
                },
                "graphics": { "$ref": "#/kimchitype/graphics" }
            }
        },
        "vm_update": {
            "type": "object",
            "properties": {
                "name": {
                    "description": "New name of VM",
                    "type": "string",
                    "pattern": "^[^/]*$",
                    "minLength": 1,
                    "error": "KCHVM0011E"
                },
                "title": {
                    "description": "Title of VM",
                    "type": "string",
                    "error": "KCHVM0085E"
                },
                "description": {
                    "description": "Description of VM",
                    "type": "string",
                    "error": "KCHVM0086E"
                },
                "bootorder": {
                        "description": "Boot order",
                        "type": "array",
                        "error": "KCHVM0052E",
                        "items": [
                            {"type": "string",
                             "enum": ["hd", "cdrom", "network", "fd"]
                            },
                            {"type": "string",
                             "enum": ["hd", "cdrom", "network", "fd"]
                            },
                            {"type": "string",
                             "enum": ["hd", "cdrom", "network", "fd"]
                            },
                            {"type": "string",
                             "enum": ["hd", "cdrom", "network", "fd"]
                            }
                        ],
                        "minItems": 1,
                        "maxItems": 4,
                        "additionalItems": false,
                        "uniqueItems": true
                },
                "bootmenu": {
                    "description": "Bootmenu on guest power on",
                    "error": "KCHVM0053E",
                    "type": "boolean"
                },
                "autostart": {
                  "description": "Enable/Disable guest autostart",
                  "type": "boolean"
                },
                "users": {
                    "description": "Array of users who have permission to the VM",
                    "type": "array",
                    "uniqueItems": true,
                    "error": "KCHVM0023E",
                    "items": {
                        "description": "User name",
                        "type": "string",
                        "error": "KCHVM0024E"
                    }
                },
                "groups": {
                    "description": "Array of groups who have permission to the VM",
                    "type": "array",
                    "uniqueItems": true,
                    "error": "KCHVM0025E",
                    "items": {
                        "description": "Group name",
                        "type": "string",
                        "error": "KCHVM0026E"
                    }
                },
                "graphics": {
                    "description": "Graphics information from guest",
                    "type": "object",
                    "properties": {
                        "passwd": {
                            "description": "New graphics password.",
                            "type": "string",
                            "error": "KCHVM0031E"
                        },
                        "passwdValidTo": {
                            "description": "Life time for the graphics password.",
                            "type": "number",
                            "error": "KCHVM0032E"
                        },
                        "type": {
                            "description": "Graphics type",
                            "type": "string",
                            "enum": ["spice", "vnc"],
                            "error": "KCHVM0054E"
                        }
                    }
                },
                "cpu_info": { "$ref": "#/kimchitype/cpu_info" },
                "memory": { "$ref": "#/kimchitype/memory" },
                "console": {
                    "description": "type of the console attached to the guest in s390x architecture",
                    "type": "string",
                    "pattern": "^sclp|virtio$",
                    "error": "KCHVM0088E"
                }
            },
            "additionalProperties": false
        },
        "vm_migrate": {
            "type": "object",
            "properties": {
                "remote_host": {
                    "description": "IP address or hostname of the remote server",
                    "type": "string",
                    "minLength": 1,
                    "required": true,
                    "error": "KCHVM0060E"
                },
                "user": {
                    "description": "User of the remote server",
                    "type": "string",
                    "minLength": 1,
                    "error": "KCHVM0059E"
                },
                "password": {
                    "description": "Password of the user in the remote server",
                    "type": "string",
                    "error": "KCHVM0069E"
                },
                "enable_rdma": {
                    "description": "Enables RDMA transport",
                    "type": "boolean",
                    "error": "KCHVM0091E"
                }
            },
            "additionalProperties": false
        },
        "networks_create": {
            "type": "object",
            "error": "KCHNET0016E",
            "properties": {
                "name": {
                    "description": "The name of the new network",
                    "type": "string",
                    "minLength": 1,
                    "required": true,
                    "pattern": "^[^/\"]*$",
                    "error": "KCHNET0011E"
                },
                "connection": {
                    "description": "Specifies how this network should be connected to the other networks",
                    "type": "string",
                    "required": true,
                    "pattern": "^isolated|nat|bridge|macvtap|vepa|passthrough$",
                    "error": "KCHNET0012E"
                },
                "subnet": {
                    "description": "Network segment in slash-separated format with ip address and prefix or netmask",
                    "type": "string",
                    "error": "KCHNET0013E"
                },
                "interfaces": {
                    "description": "An array of network interfaces of the host",
                    "type": "array",
                    "minItems": 1,
                    "error": "KCHNET0014E"
                },
                "vlan_id": {
                    "description": "Network's VLAN ID",
                    "type": "integer",
                    "maximum": 4094,
                    "minimum": 1,
                    "error": "KCHNET0015E"
                }
            }
        },
        "network_update": {
            "type": "object",
            "additionalProperties": false,
            "error": "KCHAPI0001E",
            "properties": {
                "name": {
                    "description": "The new name of the network",
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[^/\"]*$",
                    "error": "KCHNET0011E"
                },
                "subnet": {
                    "description": "Network segment in slash-separated format with ip address and prefix or netmask",
                    "type": "string",
                    "error": "KCHNET0013E"
                },
                "interfaces": {
                    "description": "An array of network interfaces of the host",
                    "type": "array",
                    "error": "KCHNET0014E"
                },
                "vlan_id": {
                    "description": "Network's VLAN ID",
                    "type": "integer",
                    "maximum": 4094,
                    "minimum": 1,
                    "error": "KCHNET0015E"
                }
            }
        },
        "vmifaces_create": {
            "type": "object",
            "error": "KCHVMIF0007E",
            "properties": {
                "type": {
                    "description": "The type of VM network interface that libvirt supports. Type 'macvtap' for host network interface (Ethernet, Bond, VLAN) to be connected as direct MacVTap or 'ovs' for openvswitch host network interface to be connected as virtual switch to a VM or 'network' for libvirt virtual network to be connected to VM. ",
                    "type": "string",
                    "required": true,
                    "pattern": "^network|macvtap|ovs$",
                    "error": "KCHVMIF0004E"
                },
                "network": {
                    "description": "the name of one available network",
                    "type": "string",
                    "error": "KCHVMIF0005E"
                },
                "source": {
                    "description": "The host network interface name. It should be name of host network interface(Ethernet, Bond, VLAN) for type 'macvtap' and name of host openvswitch bridge interface for type ovs",
                    "type": "string",
                    "error": "KCHVMIF0016E"
                },
                "mode": {
                    "description": "Only applicable for macvtap ifaces type. That indicates whether packets will be delivered directly to target device (bridge) or to the external bridge (vepa-capable bridge)",
                    "type": "string",
                    "pattern": "^bridge|vepa$",
                    "error": "KCHVMIF0017E"
                },
                "model": {
                    "description": "model of emulated network interface card",
                    "type": "string",
                    "pattern": "^ne2k_pci|i82551|i82557b|i82559er|rtl8139|e1000|pcnet|virtio$",
                    "error": "KCHVMIF0006E"
                },
                "mac": {
                    "description": "Network Interface Card MAC address",
                    "type": "string",
                    "pattern": "(^$)|^(([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$)",
                    "error": "KCHVMIF0010E"
                }
            }
        },
        "vmiface_update": {
            "type": "object",
            "error": "KCHVMIF0008E",
            "properties": {
                "mac": {
                    "description": "Network Interface Card MAC address",
                    "type": "string",
                    "pattern": "^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$",
                    "error": "KCHVMIF0010E"
                }
            }
        },
        "templates_create": {
            "type": "object",
            "error": "KCHTMPL0016E",
            "properties": {
                "name": {
                    "description": "The name of the template",
                    "type": "string",
                    "pattern": "^[^ ]+( +[^ ]+)*$",
                    "minLength": 1,
                    "error": "KCHTMPL0008E"
                },
                "icon": {
                    "description": "The template icon path",
                    "type": "string",
                    "pattern": "^plugins/kimchi/images/",
                    "error": "KCHTMPL0009E"
                },
                "os_distro": {
                    "description": "Distribution name of the Operating System",
                    "type": "string",
                    "minLength": 1,
                    "error": "KCHTMPL0010E"
                },
                "os_version": {
                    "description": "Version of the Operating System",
                    "type": "string",
                    "minLength": 1,
                    "error": "KCHTMPL0011E"
                },
                "memory": { "$ref": "#/kimchitype/memory" },
                "source_media": {
                    "type" : "object",
                    "required": true,
                    "properties" : {
                        "type": {
                            "description": "Type of source media: disk or netboot",
                            "required": true,
                            "type": "string",
                            "pattern": "^disk|netboot$"
                        },
                        "path": {
                            "description": "Path for installation media (ISO, disk, remote ISO)",
                            "type": "string",
                            "pattern" : "^((/)|(http)[s]?:|[t]?(ftp)[s]?:)+.*$"
                        }
                    },
                    "additionalProperties": false
                },
                "disks": {
                    "description": "List of disks",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "index": {
                                "description": "Index of the disk",
                                "type": "integer",
                                "minimum": 0
                            },
                            "format": {
                                "description": "Type of the image of the disk",
                                "type": "string",
                                "pattern":  "^(qcow|qcow2|qed|raw|vmdk|vpc)$",
                                "error": "KCHTMPL0027E"
                            },
                            "size": {
                                "description": "Size (GB) of the disk",
                                "type": "number",
                                "minimum": 1,
                                "error": "KCHTMPL0022E"
                            },
                            "pool": {
                                "description": "Storage pool information",
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Location (URI) of the storage pool",
                                        "type": "string",
                                        "pattern": "^/plugins/kimchi/storagepools/[^/]+/?$",
                                        "error": "KCHTMPL0015E"
                                    }
                                }
                            }
                        }
                    },
                    "minItems": 1,
                    "uniqueItems": true
                },
                "networks": {
                    "description": "list of which networks will be assigned to the new VM.",
                    "type": "array",
                    "items": { "type": "string" },
                    "error": "KCHTMPL0017E"
                },
                "interfaces": {
                    "description": "list of host interfaces to be assigned to new VM",
                    "type": "array",
                    "items": { "ref": "#/kimchitype/interface"},
                    "error": "KCHTMPL0037E"
                },
                "folder": {
                    "description": "Folder",
                    "type": "array",
                    "items": { "type": "string" }
                },
                "graphics": { "$ref": "#/kimchitype/graphics" },
                "cpu_info": { "$ref": "#/kimchitype/cpu_info" },
                "console": {
                    "description": "type of the console attached to the guest in s390x architecture",
                    "type": "string",
                    "pattern": "^sclp|virtio$",
                    "error": "KCHTMPL0044E"
                }
            },
            "additionalProperties": false,
            "error": "KCHAPI0001E"
        },
        "storageservers_get_list": {
            "type": "object",
            "properties": {
                "_target_type": {
                    "description": "List storage servers of given type",
                    "type": "string",
                    "pattern": "^netfs|iscsi$"
                }
            },
            "additionalProperties": false,
            "error": "KCHAPI0001E"
        },
        "storagetargets_get_list": {
            "type": "object",
            "properties": {
                "_target_type": {
                    "description": "List storage servers of given type",
                    "type": "string",
                    "pattern": "^netfs|iscsi$"
                },
                "_server_port": {
                    "description": "the port of iscsi storage servers",
                    "type": "string",
                    "pattern": "^[0-9]{1,5}$"
                }
            },
            "additionalProperties": false,
            "error": "KCHAPI0001E"
         },
        "vmstorages_create": {
            "type": "object",
            "error": "KCHVMSTOR0012E",
            "properties": {
                "type": {
                    "description": "The storage type",
                    "type": "string",
                    "pattern": "^cdrom|disk$",
                    "required": true,
                    "error": "KCHVMSTOR0002E"
                },
                "pool": {
                    "description": "Storage pool name disk image locate in",
                    "type": "string",
                    "minLength": 1,
                    "error": "KCHVMSTOR0012E"
                },
                "vol": {
                    "description": "Storage volume name of disk image",
                    "type": "string",
                    "minLength": 1,
                    "error": "KCHVMSTOR0012E"
                },
               "path": {
                    "description": "Path of iso image file or disk mount point",
                    "type": "string",
                    "pattern": "^((/)|(http)[s]?:|[t]?(ftp)[s]?:)+.*$",
                    "error": "KCHVMSTOR0003E"
                }
            }
        },
        "vmstorage_update": {
            "type": "object",
            "error": "KCHVMSTOR0013E",
            "properties": {
               "path": {
                    "description": "Path of iso image file or disk mount point",
                    "type": "string",
		    "required": true,
                    "pattern": "^(|(/)|(http)[s]?:|[t]?(ftp)[s]?:)+.*$",
                    "error": "KCHVMSTOR0003E"
                }
            },
            "additionalProperties": false
        },
        "template_update": {
            "type": "object",
            "properties": {
                "name": {
                    "description": "The name of the template",
                    "type": "string",
                    "pattern": "^[^ ]+( +[^ ]+)*$",
                    "minLength": 1,
                    "error": "KCHTMPL0008E"
                },
                "icon": {
                    "description": "The template icon path",
                    "type": "string",
                    "pattern": "^plugins/kimchi/images/",
                    "error": "KCHTMPL0009E"
                },
                "os_distro": {
                    "description": "Distribution name of the Operating System",
                    "type": "string",
                    "minLength": 1,
                    "error": "KCHTMPL0010E"
                },
                "os_version": {
                    "description": "Version of the Operating System",
                    "type": "string",
                    "minLength": 1,
                    "error": "KCHTMPL0011E"
                },
                "memory": { "$ref": "#/kimchitype/memory" },
                "cdrom": {
                    "description": "Path for cdrom",
                    "type": "string",
                    "pattern": "^((/)|(http)[s]?:|[t]?(ftp)[s]?:)+.*$",
                    "error": "KCHTMPL0014E"
                },
                "disks": {
                    "description": "List of disks",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "index": {
                                "description": "Index of the disk",
                                "type": "integer",
                                "minimum": 0
                            },
                            "size": {
                                "description": "Size (GB) of the disk",
                                "type": "integer",
                                "minimum": 1,
                                "error": "KCHTMPL0022E"
                            },
                            "format": {
                                "description": "Type of the image of the disk",
                                "type": "string",
                                "pattern":  "^(qcow|qcow2|qed|raw|vmdk|vpc)$",
                                "error": "KCHTMPL0027E"
                            },
                            "pool": {
                                "description": "Storage pool information",
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "description": "Location (URI) of the storage pool",
                                        "type": "string",
                                        "pattern": "^/plugins/kimchi/storagepools/[^/]+/?$",
                                        "error": "KCHTMPL0015E"
                                    }
                                }
                            }
                        }
                    },
                    "minItems": 1,
                    "uniqueItems": true,
                    "error": "KCHTMPL0033E"
                },
                "networks": {
                    "description": "list of which networks will be assigned to the new VM.",
                    "type": "array",
                    "items": { "type": "string" },
                    "error": "KCHTMPL0017E"
                },
                "interfaces": {
                    "description": "list of host interfaces to be assigned to new VM",
                    "type": "array",
                    "items": { "ref": "#/kimchitype/interface"},
                    "error": "KCHTMPL0037E"
                },
                "folder": {
                    "description": "Folder",
                    "type": "array",
                    "items": { "type": "string" }
                },
                "graphics": { "$ref": "#/kimchitype/graphics" },
                "cpu_info": { "$ref": "#/kimchitype/cpu_info" },
                "console": {
                    "description": "type of the console attached to the guest in s390x architecture",
                    "type": "string",
                    "pattern": "^sclp|virtio$",
                    "error": "KCHTMPL0044E"
                }
            },
            "additionalProperties": false,
            "error": "KCHAPI0001E"
        },
        "devices_get_list": {
            "type": "object",
            "properties": {
                "_cap": {
                    "description": "List specific type of device",
                    "type": "string",
                    "pattern": "^fc_host|net|pci|scsi|scsi_host|storage|system|usb|usb_device$",
                    "error": "KCHDEVS0001E"
                },
                "_passthrough": {
                    "description": "List only devices eligible to be assigned to guest",
                    "type": "string",
                    "pattern": "^true|false$",
                    "error": "KCHDEVS0002E"
                },
                "_passthrough_affected_by": {
                    "description": "List the affected devices in the same group of a certain device to be assigned to guest",
                    "type": "string",
                    "pattern": "^[_A-Za-z0-9-]+$",
                    "error": "KCHDEVS0003E"
                },
               "_available_only": {
                    "description": "List only devices that are not being used by any other VM",
                    "type": "string",
                    "pattern": "^true|false$",
                    "error": "KCHDEVS0004E"
                }
            },
            "additionalProperties": false,
            "error": "KCHAPI0001E"
        },
        "vmhostdevs_create": {
            "type": "object",
            "properties": {
                "name": {
                    "description": "Then name of the device to assign to VM",
                    "type": "string",
                    "required": true,
                    "pattern": "^[_A-Za-z0-9-]+$",
                    "error": "KCHVMHDEV0004E"
                }
            },
            "error": "KCHAPI0001E"
        }
    }
}


================================================
FILE: AUTHORS
================================================
Adam King <rak@linux.vnet.ibm.com>
Adam Litke <adam.litke@gmail.com>
Adam <rak@linux.vnet.ibm.com>
Adriano Botega <abotega@linux.vnet.ibm.com>
Alan Jenkins <alan.james.jenkins@gmail.com>
Alexandre Tanaka Hirata <hirata@linux.vnet.ibm.com>
Aline Manera <alinefm@linux.vnet.ibm.com>
Andre Teodoro <andreteodoro.work@gmail.com>
Anthony Liguori <aliguori@us.ibm.com>
apporc <appleorchard2000@gmail.com>
Archana Singh <archus@linux.vnet.ibm.com>
Atreyee Mukhopadhyay <atreyee@linux.vnet.ibm.com>
Bing Bu Cao <mars@linux.vnet.ibm.com>
Brent Baude <bbaude@redhat.com>
Cédric Bosdonnat <cbosdonnat@suse.com>
Chandra Shekhar Reddy Potula <chandra@linux.vnet.ibm.com>
Christy Perez <christy@linux.vnet.ibm.com>
Cole Robinson <crobinso@redhat.com>
Crístian Deives <cristiandeives@gmail.com>
Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
Daniel Henrique Barboza <dhbarboza82@gmail.com>
Dinar Valeev <dvaleev@suse.com>
Eduardo Elias Ferreira <edusf@linux.vnet.ibm.com>
Eli Qiao <taget@linux.vnet.ibm.com>
Frederic Bonnard <frediz@linux.vnet.ibm.com>
Hongliang Wang <hlwang@linux.vnet.ibm.com>
Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com>
Julien Goodwin <jgoodwin@studio442.com.au>
Kersten Richter <kersten@us.ibm.com>
Leonardo Garcia <lagarcia@br.ibm.com>
Lucio Correia <luciojhc@linux.vnet.ibm.com>
malcolm yu <minghaoyusombie@gmail.com>
Mark Wu <wudxw@linux.vnet.ibm.com>
Paulo Vital <pvital@gmail.com>
Pooja Kulkarni <pkulkark@linux.vnet.ibm.com>
Pradeep K Surisetty <psuriset@linux.vnet.ibm.com>
Ramon Medeiros <ramonn@linux.vnet.ibm.com>
Rodrigo Trujillo <rodrigo.trujillo@linux.vnet.ibm.com>
Royce Lv <lvroyce@linux.vnet.ibm.com>
samhenri <samuel.guimaraes@eldorado.org.br>
ShaoHe Feng <shaohef@linux.vnet.ibm.com>
Shu Ming <shuming@linux.vnet.ibm.com>
Simon Jin <simonjin@linux.vnet.ibm.com>
Socorro Stoppler <socorro@linux.vnet.ibm.com>
ssdxiao <ssdxiao@163.com>
Stephan Conrad <stephan.conrad@gmail.com>
Suresh Babu Angadi <sureshab@in.ibm.com>
Thierry Fauck <thierry@linux.vnet.ibm.com>
Tony Breeds <tonyb@au1.ibm.com>
Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Wen Wang <wenwang@linux.vnet.ibm.com>
Xin Ding <xinding@linux.vnet.ibm.com>
Yu Xin Huo <huoyuxin@linux.vnet.ibm.com>
Zhou Zheng Sheng <zhshzhou@linux.vnet.ibm.com>
Zongmei Gou <gouzongmei@ourfuture.cn>


================================================
FILE: CONTRIBUTE.md
================================================
How to Contribute
=================

All development discussion happens on the mailing list.  All development is done
using the `git` SCM. Patches should be sent using the `git send-email` command
to the kimchi-devel@ovirt.org mailing list.

Good examples of how to send patches are included in
[QEMU SubmitAPatch](http://wiki.qemu.org/Contribute/SubmitAPatch) and
[Linux SubmittingPatches](https://www.kernel.org/doc/Documentation/SubmittingPatches).

All documentation and READMEs are written using
[Markdown](http://daringfireball.net/projects/markdown/).

For a patch to be committed, it must receive at least one "Reviewed-by" on the
mailing list.


================================================
FILE: COPYING
================================================
Kimchi is distributed pursuant to the terms of two different licenses.

The user interface (located in ui/ in this distribution) is governed by the
Apache License version 2.0.

Kimchi makes use of different projects and they are placed as below:
- the code under ui/spice-html5 is imported from spice-html5 project
(http://cgit.freedesktop.org/spice/spice-html5);
- the code under ui/serial/libs is imported from term.js project
(https://github.com/chjj/term.js) under MIT license;

The rest of this distribution is governed by the GNU Lesser General Public
License version 2.1.

See COPYING.LGPL and COPYING.ASL2.

The name "Gentoo" and the "g" logo are trademarks of Gentoo Foundation, Inc.
The content, project, site, product or any other type of item with which the
"Gentoo" name is associated is not part of the Gentoo project and is not
directed or managed by Gentoo Foundation, Inc.


Kimchi has a written consent to use SUSE logo as a open source project.
"SUSE" and the SUSE logo are trademarks of SUSE LLC or its subsidiaries or affiliates.
All other trademarks, trade names, or company names referenced herein are used for
identification only and are the property of their respective owners, it should not be
used by commercial means.


================================================
FILE: COPYING.ASL2
================================================

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: COPYING.LGPL
================================================
                  GNU LESSER GENERAL PUBLIC LICENSE
                       Version 2.1, February 1999

 Copyright (C) 1991, 1999 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.

[This is the first released version of the Lesser GPL.  It also counts
 as the successor of the GNU Library Public License, version 2, hence
 the version number 2.1.]

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it.  You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.

  When we speak of free software, we are referring to freedom of use,
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 and use pieces of
it in new free programs; and that you are informed that you can do
these things.

  To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights.  These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.

  To protect each distributor, we want to make it very clear that
there is no warranty for the free library.  Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

  Finally, software patents pose a constant threat to the existence of
any free program.  We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder.  Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.

  Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License.  This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License.  We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.

  When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library.  The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom.  The Lesser General
Public License permits more lax criteria for linking other code with
the library.

  We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License.  It also provides other free software developers Less
of an advantage over competing non-free programs.  These disadvantages
are the reason we use the ordinary General Public License for many
libraries.  However, the Lesser license provides advantages in certain
special circumstances.

  For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard.  To achieve this, non-free programs must be
allowed to use the library.  A more frequent case is that a free
library does the same job as widely used non-free libraries.  In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.

  In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software.  For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.

  Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

                  GNU LESSER GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, 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 library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.

  1. You may copy and distribute verbatim copies of the Library's
complete 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 distribute a copy of this License along with the
Library.

  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 Library or any portion
of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
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 Library, 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 Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you 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.

  If distribution of 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 satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

    c) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the materials to be 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.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library 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.

  9. 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 Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
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 with
this License.

  11. 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 Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library 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 Library.

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.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library 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.

  13. The Free Software Foundation may publish revised and/or new
versions of the Lesser 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 Library
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 Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
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

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "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
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. 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 LIBRARY 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
LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  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 library's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library 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
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; 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.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  <signature of Ty Coon>, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!


================================================
FILE: ChangeLog
================================================
CHANGELOG
=========

#### [3.0.0] ####
 * [a6574995] Update remote ISOs URLs                                                        (Aline Manera)
 * [b04c5e3a] OpenSUSE 15.1: Use localstatedir when runstatedir is not available             (Aline Manera)
 * [bb254866] OpenSUSE 15.1: Install pyparted via pip                                        (Aline Manera)
 * [e08abf34] Issue #1224 : kvmusertest.py: hardcoded path prevents kimchi module from loa.. (Renata Ravanelli)
 * [bc8f14e9] Issue #1264 : Libvirt check should only look for socket                        (Renata Ravanelli)
 * [68237118] Remove python3-pam as Kimchi dependency                                        (Aline Manera)
 * [c47a9c00] Use jsonschema Draft3Validator                                                 (Aline Manera)
 * [e7c5fca8] Bug fix: Proper set python3 on RPM build                                       (Aline Manera)
 * [1dadcdae] Bug fix: Detect CentOS 8 ISO                                                   (Aline Manera)
 * [daa803dd] Add pull request template                                                      (Aline Manera)
 * [77dcf86d] Create issue templates                                                         (Aline Manera)
 * [d3c54092] Update docs                                                                    (Aline Manera)
 * [9ff17b2f] Remove *deps.list files as they are auto generated on build                    (Aline Manera)
 * [4631a0a6] Ubuntu 19.10: Set dependencies properly                                        (Aline Manera)
 * [b35d21be] Use the correct python lib directory to install python libraries               (Aline Manera)
 * [28384e43] Fix build: Add new files to Makefile                                           (Aline Manera)
 * [37f2e983] Python3: Use python3-pep8 on Fedora                                            (Aline Manera)
 * [68d136a1] Fix #1285: Use distro.linux_distribution (python3)                             (Aline Manera)
 * [203ddc43] Fix #1179: Proper set cpu mode for PPC and Aarch64                             (Aline Manera)
 * [ec9b4d31] Fix #1281: Only listen to VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE events           (Aline Manera)
 * [832a2d3c] Fix #1228: Proper set storage volume capacity unit                             (Aline Manera)
 * [14f5e308] Bug fix: Update config tests due to 'take_screenshot' option                   (Aline Manera)
 * [8189398f] Bug fix: Set PYTHONPATH to while running  target                               (Aline Manera)
 * [6d91c39b] Bug fix: Update config tests due to /spice-web-client                          (Aline Manera)
 * [f72d0ef7] Bug fix: Use encoding option of ET.tostring() to get XML as string             (Aline Manera)
 * [0b09900c] Bug fix: Update tests as the default amount of memory was increased to 2048M   (Aline Manera)
 * [f3fd4563] Fix #1275: Update README with Kimchi dependencies                              (Aline Manera)
 * [74333089] Bug fix: Remove blank line from dependencies.yaml                              (Aline Manera)
 * [4f848586] Issue #1256: Always show the link to access guest via VNC or Spice             (Manassé Ngudia)
 * [3b70de3c] comma expected                                                                 (kattil3)
 * [c26d35d8] Python3: Update package dependencies                                           (Aline Manera)
 * [2ca10671] Increase default virtual machine memory to 2048Mb                              (Aline Manera)
 * [0c0d76aa] flipping problem fix                                                           (Pavel Gurenko)
 * [1ab22ad3] removed unneeded index.html static map                                         (Pavel Gurenko)
 * [5b29ccfd] added with_spice_web_client to config                                          (Pavel Gurenko)
 * [45a4ef55] api changes to support spice-web-client                                        (Pavel Gurenko)
 * [b27e60df] adds automakes for spice-web-client                                            (Pavel Gurenko)
 * [620d9a07] adds spice-web-client                                                          (Pavel Gurenko)
 * [9d1dee76] fix broken links                                                               (Invch)
 * [230b53e9] Bug fix: Proper get 'take_screenshot' parameter from kimchi config             (Aline Manera)
 * [cc4c9095] Use importlib module instead of imp                                            (Aline Manera)
 * [3d523cdb] Remove IBM license checker                                                     (Aline Manera)
 * [57f9f526] Add pre-commit configuration                                                   (Aline Manera)
 * [8334268a] Switch to Python 3                                                             (Aline Manera)
 * [c9068602] Add a configuration option for disabling taking a screenshot                   (ss23)
 * [c56b06db] stop testing symlinks/blockdevices against VALID_RAW_CONTENT                   (a-a)
 * [bc66961b] Issue 1242: Allow either python-imaging or python-pil in installer             (Ian Otto)
 * [c775ab5b] Issue #1215: Wrong tab into Storage section                                    (Cyrille Gindreau)
 * [382771e1] Update Ubuntu deps. (#1192)                                                    (dumol)
 * [0afbd77d] Guest autostart (#1163)                                                        (Galen Pospisil)
 * [5a38b72c] Fix error handler on $.ajax() function                                         (Aline Manera)
 * [bf9097dd] Fix issue #1165: Use relative path to access websockify                        (Aline Manera)
 * [9e85926c] Fix issue #1157: Consider DOS/MBR mime type as ISO file                        (Aline Manera)
 * [18e9257e] Use fontawesome spinner icon instead of external image                         (Aline Manera)
 * [e29d0463] Use fontawesome icon instead of external image                                 (Aline Manera)
 * [34aaaf7b] Use distro icons exposed by Kimchi URIs                                        (Aline Manera)
 * [93befdb5] Remove kimchi.setListVMAuto call function                                      (Aline Manera)
 * [0928eff5] .size() is deprecated on JQuery 3.2.1                                          (Aline Manera)
 * [2618d991] Remove alert-container as it is being provided by Wok basic-template           (Aline Manera)
 * [2dd489a7] Update README as http://kimchi-project.github.io/kimchi/downloads/ is no lon.. (Aline Manera)
 * [6fa2dda5] Add Domain listeners to update page according to user interations              (Aline Manera)
 * [6189310b] Register for libvirt domain events to update the UI accordindly                (Aline Manera)
 * [33857406] Add Network listeners to update page according to user interations             (Aline Manera)
 * [ad43cf49] Register for libvirt network events to update the UI accordindly               (Aline Manera)
 * [b4b48184] Add Storage Pools listeners to update page according to user interations       (Aline Manera)
 * [3c76dd2d] Register for libvirt storage pools events to update the UI accordindly         (Aline Manera)
 * [48d03e07] Add Template listeners to update page according to user interations            (Aline Manera)
 * [3803fece] Update po files                                                                (Aline Manera)
 * [810ad2e0] Change VNC & Spice console URLs to reference web interface port                (Galen Pospisil)
 * [f859a7aa] Issue #1155: enhancement                                                       (Joni Orponen)

#### [2.5.0] ####
 * [bd3a102a] Update VERSION, ChangeLog and .po files for 2.5 release                        (Aline Manera)
 * [0f3c23ce] Remove ginger-base as Kimchi dependency                                        (Aline Manera)
 * [6251e083] Remove federation feature from Kimchi as it is now on Wok                      (Aline Manera)
 * [fb99e655] Add server arch from /host API instead of relying on Ginger Base               (Aline Manera)
 * [4fae03c7] Move Kimchi specific functions from gingerbase.disks to Kimchi                 (Aline Manera)
 * [ed61aeff] Move Kimchi specific functions from gingerbase.netinfo to Kimchi               (Aline Manera)
 * [3653a56a] Remove Open Sans font requirement                                              (Aline Manera)
 * [330995a5] Bug fix: Let Wok specify UI configuration on cherrypy settings                 (Aline Manera)
 * [e236d110] Updated PO files                                                               (Rajat Gupta)
 * [33a6cd63] Update Copyright date on po files                                              (Aline Manera)

#### [2.4.0] ####
 * [856b1570] Update VERSION, ChangeLog and po files for 2.4.0 release                       (Aline Manera)
 * [c49cbb57] Bug fix: Set original VLAN device to network parameters to be updated          (Aline Manera)
 * [62cb5803] Bug fix 1119: Proper check NetworkManager is running when creating new network (Aline Manera)
 * [a4a5472b] Bug fix: Inform user there is no interface available when creating a network   (Aline Manera)
 * [1709bcf7] Bug fix: Proper display storage volume content on gallery view                 (Aline Manera)
 * [5f79fca4] Bug fix: Display full Volume dropdown menu content even when pool has few vo.. (Aline Manera)
 * [4b301157] Bug fix: Preserve "View Gallery" button location when opening Storage Volume.. (Aline Manera)
 * [04a2a9a0] Bug fix #1123: Do not rely on Wok configuration to get host information        (Aline Manera)

#### [2.4.0-rc1] ####
 * [61537e95] Bug fix #1107: Only set cache=none to disks that support direct IO             (Aline Manera)
 * [eb4dfde0] Use Websocket facilities from WoK                                              (Daniel Henrique Barboza)
 * [09d9a398] Update copyright date according commit 3195f7b1                                (Aline Manera)
 * [2b3a7219] Fix typo                                                                       (Lucio Correia)
 * [9f0cf4a7] fix wrong tab enumeration                                                      (fritz-net)
 * [a20b8a55] Fix storage volume test to run without nginx                                   (Lucio Correia)
 * [39bd67b6] Fix tests to run without proxy                                                 (Lucio Correia)
 * [fb6ba234] Fix patch_auth() call according to Wok changes                                 (Aline Manera)
 * [459d3f03] Improve logic to identify if a network is in use or not                        (Aline Manera)
 * [abe36bb5] Fix memory hotplug test case                                                   (Aline Manera)
 * [09a380c1] Fix snapshots test case                                                        (Aline Manera)
 * [952c029b] Bug fix: Set default host value while generating the virt-viewer config file   (Aline Manera)
 * [d95ed9dc] Update run_server() calls to do not pass model instance                        (Aline Manera)
 * [0758c189] Specify objectstore location when running on test mode                         (Aline Manera)
 * [a743f930] Bug Fix #979 - Change boot order UI                                            (Bianca Carvalho)
 * [049a9c9c] Update copyright date for root.py file                                         (Aline Manera)
 * [05af594c] Bug fix #1089: osinfo.py tablet_bus='usb' for x86 modern                       (Ramon Medeiros)
 * [a386a29e] Adding 'self.depends' option in root.py                                        (Daniel Henrique Barboza)
 * [90e37cf9] Fix for the kimchi #1102                                                       (Jayavardhan Katta)
 * [d59f5ff0] Fixed truncation for Guest Interface GUI OVS network/interface scroll bar      (Rajat Gupta)
 * [94bc11d8] Fixed Truncation appeared on Virtualization->add network of Japanese language  (Rajat Gupta)
 * [9a088014] Fixed for Truncation occurs in edit a guest panel console row                  (Rajat Gupta)
 * [08571fed] Bug fix #1096 - Prevent mass detach based on source PCI address                (Daniel Henrique Barboza)
 * [e24dfb5f] Remove role_key parameter                                                      (Aline Manera)
 * [649621f6] Remove whitespaces                                                             (Aline Manera)
 * [ed83a269] Add test to live snapshot                                                      (Ramon Medeiros)
 * [aa069381] Bug fix #1029: Unable to create a snapshot on a running guest                  (Ramon Medeiros)
 * [f5e7c699] Live migration RDMA support: mockmodel changes                                 (Daniel Henrique Barboza)
 * [9927cfb6] Live migration RDMA support: test changes                                      (Daniel Henrique Barboza)
 * [cda5bd13] Live migration RDMA support: ui changes                                        (Daniel Henrique Barboza)
 * [29b237aa] Live migration RDMA support: model changes                                     (Daniel Henrique Barboza)
 * [2b42c4ca] Live migration RDMA support: doc changes                                       (Daniel Henrique Barboza)
 * [64ffba7e] Bug fix #1016: Display current storage volume size on resize dialog            (Ramon Medeiros)
 * [b688fa49] VEPA interface not listed with VM running                                      (Ramon Medeiros)
 * [eaaea97b] Fix issue #1069: Allow user specifies the Template name when creating it       (Aline Manera)
 * [d0f1467e] Update copyright date                                                          (Aline Manera)
 * [8fce3b18] Bug fix #1073: Re-attach device to host when detaching it from guest           (Aline Manera)
 * [6288c73d] mockmodel.py: unsubscribing from 'exit' channel on cleanup                     (Daniel Henrique Barboza)
 * [d6c39766] Multi-culture UI issues for kimchi plugin Guest module                         (Rajat Gupta)
 * [9e6c5b93] Multi-culture UI issues for kimchi plugin Storage module                       (Rajat Gupta)
 * [5d478e30] Corrected position of close icon for create a network pop up alert             (Rajat Gupta)
 * [43948dc2] Multi-culture UI issues for kimchi plugin template module                      (Rajat Gupta)
 * [467afa2e] Bug fix #1064: In Migrate guest window, text boxes are not taking input prop.. (Bianca Carvalho)
 * [060a5bd3] Update README file to point to http://kimchi-project.github.io/kimchi/downlo.. (Aline Manera)
 * [86e75b00] Use libvirtd service in Ubuntu                                                 (Lucio Correia)
 * [1b2b8546] Bug fix #1026: CentOS: Unable to get and update memory values for a powered .. (Ramon Medeiros)
 * [03c5b000] Bug fix #1057: Failed to import kimchi                                         (Bianca Carvalho)
 * [0e2a8f3e] Add more details to error message when probing image                           (Lucio Correia)
 * [ebc2ebb3] Add missing dependency to documentation                             
Download .txt
gitextract_awwiafkd/

├── .flake8
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── pull_request_template.md
│   ├── scripts/
│   │   ├── setup_instance.sh
│   │   └── setup_kimchi_ubuntu.sh
│   └── workflows/
│       └── CI.yml
├── .gitignore
├── .pre-commit-config.yaml
├── ABOUT-NLS
├── API.json
├── AUTHORS
├── CONTRIBUTE.md
├── COPYING
├── COPYING.ASL2
├── COPYING.LGPL
├── ChangeLog
├── INSTALL
├── Makefile.am
├── VERSION
├── __init__.py
├── autogen.sh
├── build-aux/
│   ├── config.rpath
│   ├── genChangelog
│   ├── generateDepsFiles.py
│   └── pkg-version
├── build_packages.py
├── check_spec_errors.sh
├── check_ui_code_errors.sh
├── config.py.in
├── config.rpath
├── configure.ac
├── contrib/
│   ├── DEBIAN/
│   │   ├── Makefile.am
│   │   └── control.in
│   ├── Makefile.am
│   ├── check_i18n.py
│   ├── kimchi.spec.fedora.in
│   ├── kimchi.spec.suse.in
│   ├── kimchid.service.debian
│   ├── kimchid.service.fedora
│   └── make-deb.sh.in
├── control/
│   ├── Makefile.am
│   ├── __init__.py
│   ├── cpuinfo.py
│   ├── groups.py
│   ├── host.py
│   ├── interfaces.py
│   ├── networks.py
│   ├── ovsbridges.py
│   ├── storagepools.py
│   ├── storageservers.py
│   ├── storagevolumes.py
│   ├── templates.py
│   ├── users.py
│   ├── vm/
│   │   ├── Makefile.am
│   │   ├── __init__.py
│   │   ├── hostdevs.py
│   │   ├── ifaces.py
│   │   ├── snapshots.py
│   │   └── storages.py
│   └── vms.py
├── dependencies.yaml
├── disks.py
├── distroloader.py
├── distros.d/
│   ├── Makefile.am
│   ├── debian.json
│   ├── fedora.json
│   ├── gentoo.json
│   ├── opensuse.json
│   └── ubuntu.json
├── docs/
│   ├── API.md
│   ├── CI.md
│   ├── Makefile.am
│   ├── README.md
│   └── README.md.tmpl
├── i18n.py
├── imageinfo.py
├── iscsi.py
├── isoinfo.py
├── kimchi.conf
├── kvmusertests.py
├── m4/
│   ├── ac_python_module.m4
│   ├── gettext.m4
│   ├── iconv.m4
│   ├── intlmacosx.m4
│   ├── lib-ld.m4
│   ├── lib-link.m4
│   ├── lib-prefix.m4
│   ├── nls.m4
│   ├── po.m4
│   └── progtest.m4
├── mockmodel.py
├── model/
│   ├── Makefile.am
│   ├── __init__.py
│   ├── cpuinfo.py
│   ├── diskutils.py
│   ├── featuretests.py
│   ├── groups.py
│   ├── host.py
│   ├── hostdev.py
│   ├── interfaces.py
│   ├── libvirtconnection.py
│   ├── libvirtevents.py
│   ├── libvirtstoragepool.py
│   ├── model.py
│   ├── networks.py
│   ├── ovsbridges.py
│   ├── storagepools.py
│   ├── storageservers.py
│   ├── storagetargets.py
│   ├── storagevolumes.py
│   ├── templates.py
│   ├── users.py
│   ├── utils.py
│   ├── virtviewerfile.py
│   ├── vmhostdevs.py
│   ├── vmifaces.py
│   ├── vms.py
│   ├── vmsnapshots.py
│   └── vmstorages.py
├── network.py
├── osinfo.py
├── po/
│   ├── LINGUAS
│   ├── Makefile.in.in
│   ├── Makevars
│   ├── POTFILES.in
│   ├── de_DE.po
│   ├── en_US.po
│   ├── es_ES.po
│   ├── fr_FR.po
│   ├── gen-pot.in
│   ├── it_IT.po
│   ├── ja_JP.po
│   ├── kimchi.pot
│   ├── ko_KR.po
│   ├── pt_BR.po
│   ├── ru_RU.po
│   ├── zh_CN.po
│   └── zh_TW.po
├── requirements-FEDORA.txt
├── requirements-OPENSUSE-LEAP.txt
├── requirements-UBUNTU.txt
├── requirements-dev.txt
├── root.py
├── scan.py
├── screenshot.py
├── serialconsole.py
├── setup.cfg
├── template.conf
├── tests/
│   ├── Makefile.am
│   ├── iso_gen.py
│   ├── run_tests.sh.in
│   ├── test_authorization.py
│   ├── test_config.py.in
│   ├── test_disks.py
│   ├── test_host.py
│   ├── test_livemigration.py
│   ├── test_mock_network.py
│   ├── test_mock_storagepool.py
│   ├── test_mock_storagevolume.py
│   ├── test_mockmodel.py
│   ├── test_model.py
│   ├── test_model_libvirtevents.py
│   ├── test_model_network.py
│   ├── test_model_storagepool.py
│   ├── test_model_storagevolume.py
│   ├── test_networkxml.py
│   ├── test_osinfo.py
│   ├── test_rest.py
│   ├── test_storagepoolxml.py
│   ├── test_template.py
│   └── test_vmtemplate.py
├── ui/
│   ├── Makefile.am
│   ├── config/
│   │   ├── Makefile.am
│   │   └── tab-ext.xml
│   ├── css/
│   │   ├── Makefile.am
│   │   ├── kimchi.css
│   │   └── src/
│   │       ├── kimchi.scss
│   │       └── modules/
│   │           ├── _edit-guests.scss
│   │           ├── _guests.scss
│   │           ├── _iso-list.scss
│   │           ├── _network.scss
│   │           ├── _storage.scss
│   │           └── _templates.scss
│   ├── images/
│   │   └── Makefile.am
│   ├── js/
│   │   ├── Makefile.am
│   │   └── src/
│   │       ├── kimchi.api.js
│   │       ├── kimchi.guest_add_main.js
│   │       ├── kimchi.guest_edit_main.js
│   │       ├── kimchi.guest_livemigration.js
│   │       ├── kimchi.guest_main.js
│   │       ├── kimchi.guest_media_main.js
│   │       ├── kimchi.guest_storage_add.main.js
│   │       ├── kimchi.main.js
│   │       ├── kimchi.network.js
│   │       ├── kimchi.network_add_main.js
│   │       ├── kimchi.network_edit_main.js
│   │       ├── kimchi.storage_main.js
│   │       ├── kimchi.storagepool_add_main.js
│   │       ├── kimchi.storagepool_add_volume_main.js
│   │       ├── kimchi.storagepool_resize_volume_main.js
│   │       ├── kimchi.template_add_main.js
│   │       ├── kimchi.template_edit_main.js
│   │       └── kimchi.template_main.js
│   ├── pages/
│   │   ├── Makefile.am
│   │   ├── guest-add.html.tmpl
│   │   ├── guest-clone.html.tmpl
│   │   ├── guest-edit.html.tmpl
│   │   ├── guest-migration.html.tmpl
│   │   ├── guest-storage-add.html.tmpl
│   │   ├── guest.html.tmpl
│   │   ├── help/
│   │   │   ├── Makefile.am
│   │   │   ├── de_DE/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── dita-help.xsl
│   │   │   ├── en_US/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── es_ES/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── fr_FR/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── it_IT/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── ja_JP/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── kimchi.css
│   │   │   ├── ko_KR/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── pt_BR/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── ru_RU/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   ├── zh_CN/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── guests.dita
│   │   │   │   ├── network.dita
│   │   │   │   ├── storage.dita
│   │   │   │   └── templates.dita
│   │   │   └── zh_TW/
│   │   │       ├── Makefile.am
│   │   │       ├── guests.dita
│   │   │       ├── network.dita
│   │   │       ├── storage.dita
│   │   │       └── templates.dita
│   │   ├── i18n.json.tmpl
│   │   ├── network-add.html.tmpl
│   │   ├── network-edit.html.tmpl
│   │   ├── storagepool-add-volume.html.tmpl
│   │   ├── storagepool-add.html.tmpl
│   │   ├── storagepool-resize-volume.html.tmpl
│   │   ├── tabs/
│   │   │   ├── Makefile.am
│   │   │   ├── guests.html.tmpl
│   │   │   ├── network.html.tmpl
│   │   │   ├── storage.html.tmpl
│   │   │   └── templates.html.tmpl
│   │   ├── template-add.html.tmpl
│   │   └── template-edit.html.tmpl
│   ├── robots.txt
│   ├── serial/
│   │   ├── Makefile.am
│   │   ├── html/
│   │   │   ├── Makefile.am
│   │   │   └── serial.html
│   │   └── libs/
│   │       ├── Makefile.am
│   │       └── term.js
│   ├── spice-html5/
│   │   ├── Makefile.am
│   │   ├── atKeynames.js
│   │   ├── bitmap.js
│   │   ├── css/
│   │   │   ├── Makefile.am
│   │   │   └── spice.css
│   │   ├── cursor.js
│   │   ├── display.js
│   │   ├── enums.js
│   │   ├── inputs.js
│   │   ├── lz.js
│   │   ├── main.js
│   │   ├── pages/
│   │   │   ├── Makefile.am
│   │   │   └── spice_auto.html
│   │   ├── playback.js
│   │   ├── png.js
│   │   ├── quic.js
│   │   ├── resize.js
│   │   ├── simulatecursor.js
│   │   ├── spicearraybuffer.js
│   │   ├── spiceconn.js
│   │   ├── spicedataview.js
│   │   ├── spicemsg.js
│   │   ├── spicetype.js
│   │   ├── thirdparty/
│   │   │   ├── Makefile.am
│   │   │   ├── jsbn.js
│   │   │   ├── prng4.js
│   │   │   ├── rng.js
│   │   │   ├── rsa.js
│   │   │   └── sha1.js
│   │   ├── ticket.js
│   │   ├── utils.js
│   │   ├── webm.js
│   │   └── wire.js
│   └── spice-web-client/
│       ├── LICENSE
│       ├── Makefile.am
│       ├── README.md
│       ├── application/
│       │   ├── Makefile.am
│       │   ├── WorkerProcess.js
│       │   ├── agent.js
│       │   ├── application.js
│       │   ├── clientgui.js
│       │   ├── imagecache.js
│       │   ├── inputmanager.js
│       │   ├── packetfactory.js
│       │   ├── packetfilter.js
│       │   ├── packetprocess.js
│       │   ├── rasteroperation.js
│       │   ├── spiceconnection.js
│       │   ├── stream.js
│       │   └── virtualmouse.js
│       ├── benchmark.html
│       ├── commit-stage.sh
│       ├── index.html
│       ├── keymaps/
│       │   ├── Makefile.am
│       │   ├── keymap.js
│       │   ├── keymapes.js
│       │   ├── keymapit.js
│       │   └── keymapus.js
│       ├── lib/
│       │   ├── AsyncConsumer.js
│       │   ├── AsyncWorker.js
│       │   ├── CollisionDetector.js
│       │   ├── DataLogger.js
│       │   ├── GenericObjectPool.js
│       │   ├── GlobalPool.js
│       │   ├── ImageUncompressor.js
│       │   ├── IntegrationBenchmark.js
│       │   ├── Makefile.am
│       │   ├── PacketWorkerIdentifier.js
│       │   ├── SyncAsyncHandler.js
│       │   ├── base64.js
│       │   ├── biginteger.js
│       │   ├── bowser.js
│       │   ├── displayRouter.js
│       │   ├── encrypt.js
│       │   ├── flipper.js
│       │   ├── graphic.js
│       │   ├── graphicdebug.js
│       │   ├── images/
│       │   │   ├── Makefile.am
│       │   │   ├── bitmap.js
│       │   │   ├── jsquic_family.js
│       │   │   ├── jsquic_rgba.js
│       │   │   ├── jsquic_uncompress.js
│       │   │   ├── lz.js
│       │   │   └── png.js
│       │   ├── jquery-2.0.3.js
│       │   ├── jquery-mousewheel.js
│       │   ├── jsbn.js
│       │   ├── jsbn2.js
│       │   ├── modernizr.js
│       │   ├── pixastic.js
│       │   ├── prettyprint.js
│       │   ├── prng4.js
│       │   ├── queue.js
│       │   ├── rasterEngine.js
│       │   ├── rng.js
│       │   ├── runqueue.js
│       │   ├── sha1.js
│       │   ├── stuckkeyshandler.js
│       │   ├── timelapsedetector.js
│       │   ├── utils.js
│       │   └── virtualjoystick.js
│       ├── network/
│       │   ├── Makefile.am
│       │   ├── busconnection.js
│       │   ├── clusternodechooser.js
│       │   ├── connectioncontrol.js
│       │   ├── packetcontroller.js
│       │   ├── packetextractor.js
│       │   ├── packetlinkfactory.js
│       │   ├── packetreassembler.js
│       │   ├── reassemblerfactory.js
│       │   ├── sizedefiner.js
│       │   ├── socket.js
│       │   ├── socketqueue.js
│       │   ├── spicechannel.js
│       │   └── websocketwrapper.js
│       ├── package.json
│       ├── process/
│       │   ├── Makefile.am
│       │   ├── busprocess.js
│       │   ├── cursorprocess.js
│       │   ├── displaypreprocess.js
│       │   ├── displayprocess.js
│       │   ├── inputprocess.js
│       │   ├── mainprocess.js
│       │   └── playbackprocess.js
│       ├── resources/
│       │   └── Makefile.am
│       ├── run.js
│       ├── sonar.properties
│       ├── spiceobjects/
│       │   ├── Makefile.am
│       │   ├── generated/
│       │   │   ├── Makefile.am
│       │   │   └── protocol.js
│       │   └── spiceobjects.js
│       ├── spiceproxy/
│       │   ├── .gitignore
│       │   ├── .npmignore
│       │   ├── Makefile.am
│       │   ├── concatenator.js
│       │   ├── filelist.js
│       │   ├── globalpool.js
│       │   ├── package.json
│       │   ├── socket.js
│       │   └── spicechannel.js
│       ├── swcanvas/
│       │   ├── Makefile.am
│       │   ├── benchmark.html
│       │   ├── swcanvas.js
│       │   └── test.html
│       └── unittest/
│           ├── application.test.js
│           ├── busconnection.test.js
│           ├── busprocess.test.js
│           ├── clientgui.test.js
│           ├── clusternodechooser.test.js
│           ├── collisiondetector.test.js
│           ├── connectioncontrol.test.js
│           ├── displayprocess.test.js
│           ├── displayrouter.test.js
│           ├── eventobject.test.js
│           ├── graphic.test.js
│           ├── graphictest.test.js
│           ├── graphictestfiles/
│           │   ├── SPICE_MSG_DISPLAY_DRAW_ALPHA_BLEND_login_page
│           │   ├── SPICE_MSG_DISPLAY_DRAW_BLACKNESS_login_page
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_-_JPEG_ALPHA
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_explorer_icon
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_start_button
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_user_icon_windows_menu
│           │   ├── SPICE_MSG_DISPLAY_DRAW_COPY_windows_menu
│           │   ├── SPICE_MSG_DISPLAY_DRAW_FILL
│           │   ├── SPICE_MSG_DISPLAY_DRAW_STROKE_libreoffice_tooltip
│           │   ├── SPICE_MSG_DISPLAY_DRAW_TEXT_login_page
│           │   └── uris.js
│           ├── imageuncompressor.test.js
│           ├── inputmanager.test.js
│           ├── keymap.test.js
│           ├── packetcontroller.test.js
│           ├── packetextractor.test.js
│           ├── packetfactory.test.js
│           ├── packetlinkfactory.test.js
│           ├── packetprocess.test.js
│           ├── packetreassembler.test.js
│           ├── queue.test.js
│           ├── reassemblerfactory.test.js
│           ├── runqueue.test.js
│           ├── sizedefiner.test.js
│           ├── socket.test.js
│           ├── socketqueue.test.js
│           ├── some.html
│           ├── spicechannel.test.js
│           ├── spiceconnection.test.js
│           ├── stuckkeyshandler.test.js
│           ├── syncasynchandler.test.js
│           ├── tests.js
│           ├── timelapsedetector.test.js
│           └── viewqueue.test.js
├── utils.py
├── vmtemplate.py
└── xmlutils/
    ├── Makefile.am
    ├── __init__.py
    ├── bootorder.py
    ├── cpu.py
    ├── disk.py
    ├── graphics.py
    ├── interface.py
    ├── network.py
    ├── qemucmdline.py
    ├── serial.py
    └── usb.py
Download .txt
SYMBOL INDEX (1650 symbols across 145 files)

FILE: build-aux/generateDepsFiles.py
  function generate_files (line 13) | def generate_files(os_distro):

FILE: build_packages.py
  function usage (line 55) | def usage():
  function run_cmd (line 88) | def run_cmd(command):
  function execute_cmd (line 101) | def execute_cmd(list, step):
  function run_build (line 112) | def run_build(list, dir):
  function curl_cmd (line 125) | def curl_cmd(repo, distro_name, distro, package_name, user, password, pa...
  function install_dependencies (line 150) | def install_dependencies(distro, pm):
  function main (line 177) | def main():

FILE: contrib/check_i18n.py
  function load_i18n_module (line 39) | def load_i18n_module(i18nfile):
  function check_string_formatting (line 44) | def check_string_formatting(messages):
  function check_obsolete_messages (line 52) | def check_obsolete_messages(path, messages):
  function main (line 74) | def main():

FILE: control/cpuinfo.py
  class CPUInfo (line 22) | class CPUInfo(Resource):
    method __init__ (line 23) | def __init__(self, model):
    method data (line 29) | def data(self):

FILE: control/groups.py
  class Groups (line 24) | class Groups(SimpleCollection):
    method __init__ (line 25) | def __init__(self, model):

FILE: control/host.py
  class Host (line 33) | class Host(Resource):
    method __init__ (line 34) | def __init__(self, model, id=None):
    method data (line 44) | def data(self):
  class VolumeGroups (line 48) | class VolumeGroups(Collection):
    method __init__ (line 49) | def __init__(self, model):
  class VolumeGroup (line 56) | class VolumeGroup(Resource):
    method __init__ (line 57) | def __init__(self, model, id=None):
    method data (line 63) | def data(self):
  class VMHolders (line 67) | class VMHolders(SimpleCollection):
    method __init__ (line 68) | def __init__(self, model, device_id):
  class Devices (line 73) | class Devices(Collection):
    method __init__ (line 74) | def __init__(self, model):
  class Device (line 79) | class Device(Resource):
    method __init__ (line 80) | def __init__(self, model, id):
    method data (line 85) | def data(self):
  class Partitions (line 89) | class Partitions(Collection):
    method __init__ (line 90) | def __init__(self, model):
    method _get_resources (line 97) | def _get_resources(self, flag_filter):
  class Partition (line 119) | class Partition(Resource):
    method __init__ (line 120) | def __init__(self, model, id):
    method data (line 125) | def data(self):

FILE: control/interfaces.py
  class Interfaces (line 25) | class Interfaces(Collection):
    method __init__ (line 26) | def __init__(self, model):
  class Interface (line 32) | class Interface(Resource):
    method __init__ (line 33) | def __init__(self, model, ident):
    method data (line 39) | def data(self):

FILE: control/networks.py
  class Networks (line 39) | class Networks(Collection):
    method __init__ (line 40) | def __init__(self, model):
  class Network (line 50) | class Network(Resource):
    method __init__ (line 51) | def __init__(self, model, ident):
    method data (line 61) | def data(self):

FILE: control/ovsbridges.py
  class OVSBridges (line 24) | class OVSBridges(SimpleCollection):
    method __init__ (line 25) | def __init__(self, model):

FILE: control/storagepools.py
  class StoragePools (line 41) | class StoragePools(Collection):
    method __init__ (line 42) | def __init__(self, model):
    method create (line 53) | def create(self, params, *args):
    method _get_resources (line 75) | def _get_resources(self, filter_params):
  class StoragePool (line 88) | class StoragePool(Resource):
    method __init__ (line 89) | def __init__(self, model, ident):
    method data (line 100) | def data(self):
  class IsoPool (line 123) | class IsoPool(Resource):
    method __init__ (line 124) | def __init__(self, model):
    method data (line 129) | def data(self):

FILE: control/storageservers.py
  class StorageServers (line 28) | class StorageServers(Collection):
    method __init__ (line 29) | def __init__(self, model):
  class StorageServer (line 35) | class StorageServer(Resource):
    method __init__ (line 36) | def __init__(self, model, ident):
    method data (line 42) | def data(self):
  class StorageTargets (line 46) | class StorageTargets(Collection):
    method __init__ (line 47) | def __init__(self, model, server):
    method get (line 54) | def get(self, filter_params):

FILE: control/storagevolumes.py
  class StorageVolumes (line 36) | class StorageVolumes(AsyncCollection):
    method __init__ (line 37) | def __init__(self, model, pool):
    method filter_data (line 47) | def filter_data(self, resources, fields_filter):
  class StorageVolume (line 53) | class StorageVolume(Resource):
    method __init__ (line 54) | def __init__(self, model, pool, ident):
    method data (line 71) | def data(self):
  class IsoVolumes (line 92) | class IsoVolumes(Collection):
    method __init__ (line 93) | def __init__(self, model, pool):
    method get (line 97) | def get(self, filter_params):

FILE: control/templates.py
  class Templates (line 40) | class Templates(Collection):
    method __init__ (line 41) | def __init__(self, model):
  class Template (line 51) | class Template(Resource):
    method __init__ (line 52) | def __init__(self, model, ident):
    method data (line 60) | def data(self):

FILE: control/users.py
  class Users (line 27) | class Users(SimpleCollection):
    method __init__ (line 28) | def __init__(self, model):
    method get (line 31) | def get(self, filter_params):

FILE: control/vm/hostdevs.py
  class VMHostDevs (line 30) | class VMHostDevs(AsyncCollection):
    method __init__ (line 31) | def __init__(self, model, vmid):
  class VMHostDev (line 44) | class VMHostDev(AsyncResource):
    method __init__ (line 45) | def __init__(self, model, vmid, ident):
    method data (line 56) | def data(self):

FILE: control/vm/ifaces.py
  class VMIfaces (line 33) | class VMIfaces(Collection):
    method __init__ (line 34) | def __init__(self, model, vm):
  class VMIface (line 46) | class VMIface(Resource):
    method __init__ (line 47) | def __init__(self, model, vm, ident):
    method data (line 60) | def data(self):

FILE: control/vm/snapshots.py
  class VMSnapshots (line 33) | class VMSnapshots(AsyncCollection):
    method __init__ (line 34) | def __init__(self, model, vm):
  class VMSnapshot (line 47) | class VMSnapshot(Resource):
    method __init__ (line 48) | def __init__(self, model, vm, ident):
    method data (line 61) | def data(self):
  class CurrentVMSnapshot (line 65) | class CurrentVMSnapshot(Resource):
    method __init__ (line 66) | def __init__(self, model, vm):
    method data (line 73) | def data(self):

FILE: control/vm/storages.py
  class VMStorages (line 33) | class VMStorages(Collection):
    method __init__ (line 34) | def __init__(self, model, vm):
  class VMStorage (line 47) | class VMStorage(Resource):
    method __init__ (line 48) | def __init__(self, model, vm, ident):
    method data (line 61) | def data(self):

FILE: control/vms.py
  class VMs (line 51) | class VMs(AsyncCollection):
    method __init__ (line 52) | def __init__(self, model):
  class VM (line 62) | class VM(Resource):
    method __init__ (line 63) | def __init__(self, model, ident):
    method data (line 93) | def data(self):
  class VMScreenShot (line 97) | class VMScreenShot(Resource):
    method __init__ (line 98) | def __init__(self, model, ident):
    method get (line 101) | def get(self):
  class VMVirtViewerFile (line 107) | class VMVirtViewerFile(Resource):
    method __init__ (line 108) | def __init__(self, model, ident):
    method data (line 112) | def data(self):

FILE: disks.py
  function _get_dev_node_path (line 33) | def _get_dev_node_path(maj_min):
  function _get_lsblk_devs (line 51) | def _get_lsblk_devs(keys, devs=None):
  function _get_dev_major_min (line 65) | def _get_dev_major_min(name):
  function _is_dev_leaf (line 84) | def _is_dev_leaf(devNodePath, name=None, devs=None, devtype=None):
  function _is_dev_extended_partition (line 103) | def _is_dev_extended_partition(devType, devNodePath):
  function _parse_lsblk_output (line 143) | def _parse_lsblk_output(output, keys):
  function _is_available (line 160) | def _is_available(name, devtype, fstype, mountpoint, majmin, devs=None):
  function get_partitions_names (line 182) | def get_partitions_names(check=False):
  function get_partition_details (line 200) | def get_partition_details(name):
  function vgs (line 225) | def vgs():
  function lvs (line 259) | def lvs(vgname=None):
  function pvs (line 299) | def pvs(vgname=None):

FILE: distroloader.py
  class DistroLoader (line 37) | class DistroLoader(object):
    method __init__ (line 39) | def __init__(self, location=None):
    method _get_json_info (line 42) | def _get_json_info(self, fname):
    method get (line 57) | def get(self):

FILE: imageinfo.py
  function probe_img_info (line 30) | def probe_img_info(path):
  function probe_image (line 45) | def probe_image(image_path):

FILE: iscsi.py
  class TargetClient (line 24) | class TargetClient(object):
    method __init__ (line 25) | def __init__(self, target, host, port=None, auth=None):
    method _update_db (line 32) | def _update_db(self, Name, Value):
    method _update_auth (line 35) | def _update_auth(self):
    method _run_cmd (line 47) | def _run_cmd(self, cmd):
    method _discover (line 57) | def _discover(self):
    method _run_op (line 68) | def _run_op(self, op):
    method login (line 71) | def login(self):
    method logout (line 76) | def logout(self):
    method validate (line 79) | def validate(self):

FILE: isoinfo.py
  class IsoImage (line 170) | class IsoImage(object):
    method __init__ (line 193) | def __init__(self, path):
    method _is_iso_remote (line 200) | def _is_iso_remote(self):
    method probe (line 211) | def probe(self):
    method _unpack (line 231) | def _unpack(self, s, data):
    method _scan_el_torito (line 234) | def _scan_el_torito(self, data):
    method _scan_ppc (line 288) | def _scan_ppc(self):
    method _scan_s390x (line 447) | def _scan_s390x(self):
    method _scan_primary_vol (line 455) | def _scan_primary_vol(self, data):
    method _get_volume_set_id (line 475) | def _get_volume_set_id(self, data):
    method _get_iso_data (line 479) | def _get_iso_data(self, offset, size):
    method _scan (line 496) | def _scan(self):
  class Matcher (line 512) | class Matcher(object):
    method __init__ (line 518) | def __init__(self, matchstring):
    method search (line 521) | def search(self, regex):
    method group (line 525) | def group(self, num):
  function probe_iso (line 529) | def probe_iso(status_helper, params):
  function updater (line 570) | def updater(iso_info):

FILE: kvmusertests.py
  class UserTests (line 29) | class UserTests(object):
    method probe_user (line 48) | def probe_user(cls):

FILE: mockmodel.py
  class MockModel (line 69) | class MockModel(Model):
    method __init__ (line 76) | def __init__(self, objstore_loc=None):
    method _create_virt_viewer_tmp_file (line 142) | def _create_virt_viewer_tmp_file(self):
    method virtviewertmpfile_cleanup (line 153) | def virtviewertmpfile_cleanup(self):
    method reset (line 157) | def reset(self):
    method get_topo_capabilities (line 189) | def get_topo_capabilities(conn):
    method domainXMLDesc (line 195) | def domainXMLDesc(dom, flags=0):
    method undefineDomain (line 214) | def undefineDomain(dom):
    method attachDeviceFlags (line 221) | def attachDeviceFlags(dom, xml, flags=0):
    method _get_device_node (line 234) | def _get_device_node(dom, xml):
    method detachDeviceFlags (line 255) | def detachDeviceFlags(dom, xml, flags=0):
    method updateDeviceFlags (line 262) | def updateDeviceFlags(dom, xml, flags=0):
    method volResize (line 270) | def volResize(vol, size, flags=0):
    method volWipePattern (line 277) | def volWipePattern(vol, algorithm, flags=0):
    method getDHCPLeases (line 284) | def getDHCPLeases(net, mac):
    method _probe_image (line 299) | def _probe_image(self, path):
    method _get_volume_path (line 302) | def _get_volume_path(self, pool_uri, vol):
    method _check_lvm (line 310) | def _check_lvm(self, name, from_vg):
    method _pool_used_by_template (line 314) | def _pool_used_by_template(self, pool_name):
    method _update_lvm_disks (line 317) | def _update_lvm_disks(self, pool_name, disks):
    method _mock_storagevolumes_create (line 331) | def _mock_storagevolumes_create(self, pool, params):
    method _mock_storagevolumes_get_list (line 344) | def _mock_storagevolumes_get_list(self, pool):
    method _mock_storagevolume_lookup (line 351) | def _mock_storagevolume_lookup(self, pool, vol):
    method _mock_storagevolume_doUpload (line 358) | def _mock_storagevolume_doUpload(self, cb, vol, offset, data, data_size):
    method _mock_devices_get_list (line 378) | def _mock_devices_get_list(
    method _mock_device_get_iommu_groups (line 397) | def _mock_device_get_iommu_groups(self):
    method _mock_device_is_device_3D_controller (line 404) | def _mock_device_is_device_3D_controller(self, info):
    method _mock_device_lookup (line 409) | def _mock_device_lookup(self, dev_name):
    method _mock_partitions_get_list (line 412) | def _mock_partitions_get_list(self):
    method _mock_partition_lookup (line 415) | def _mock_partition_lookup(self, name):
    method _mock_volumegroups_get_list (line 418) | def _mock_volumegroups_get_list(self):
    method _mock_volumegroup_lookup (line 421) | def _mock_volumegroup_lookup(self, name):
    method _mock_vm_clone (line 424) | def _mock_vm_clone(self, name):
    method _mock_vm_migrate (line 430) | def _mock_vm_migrate(
    method _vmmigrate_create_task (line 445) | def _vmmigrate_create_task(self, cb, params):
    method _mock_vmvirtviewerfile_lookup (line 448) | def _mock_vmvirtviewerfile_lookup(self, vm_name):
    method _mock_vmsnapshots_create (line 454) | def _mock_vmsnapshots_create(self, vm_name, params):
    method _vmsnapshots_create_task (line 464) | def _vmsnapshots_create_task(self, cb, params):
    method _mock_vmsnapshots_get_list (line 480) | def _mock_vmsnapshots_get_list(self, vm_name):
    method _mock_currentvmsnapshot_lookup (line 484) | def _mock_currentvmsnapshot_lookup(self, vm_name):
    method _mock_vmsnapshot_lookup (line 489) | def _mock_vmsnapshot_lookup(self, vm_name, name):
    method _mock_vmsnapshot_delete (line 496) | def _mock_vmsnapshot_delete(self, vm_name, name):
    method _mock_vmsnapshot_revert (line 504) | def _mock_vmsnapshot_revert(self, vm_name, name):
    method _attach_device (line 514) | def _attach_device(self, vm_name, xmlstr):
    method _validate_pci (line 517) | def _validate_pci(self):
    method _get_pci_device_xml (line 520) | def _get_pci_device_xml(self, dev_info, slot, is_multifunction):
  class MockStorageVolumes (line 565) | class MockStorageVolumes(object):
    method __init__ (line 566) | def __init__(self):
  class MockVolumeGroups (line 592) | class MockVolumeGroups(object):
    method __init__ (line 593) | def __init__(self):
  class MockPartitions (line 612) | class MockPartitions(object):
    method __init__ (line 613) | def __init__(self):
  class MockDevices (line 636) | class MockDevices(object):
    method __init__ (line 637) | def __init__(self):
  class MockVMSnapshot (line 824) | class MockVMSnapshot(object):
    method __init__ (line 825) | def __init__(self, name, params=None):

FILE: model/cpuinfo.py
  function get_topo_capabilities (line 32) | def get_topo_capabilities(connect):
  class CPUInfoModel (line 43) | class CPUInfoModel(object):
    method __init__ (line 49) | def __init__(self, **kargs):
    method lookup (line 99) | def lookup(self, ident):
    method check_cpu_info (line 109) | def check_cpu_info(self, cpu_info):
    method get_host_max_vcpus (line 149) | def get_host_max_vcpus(self):

FILE: model/diskutils.py
  function get_disk_used_by (line 31) | def get_disk_used_by(conn, path):

FILE: model/featuretests.py
  class FeatureTests (line 106) | class FeatureTests(object):
    method disable_libvirt_error_logging (line 108) | def disable_libvirt_error_logging():
    method enable_libvirt_error_logging (line 120) | def enable_libvirt_error_logging():
    method libvirt_supports_iso_stream (line 128) | def libvirt_supports_iso_stream(conn, protocol):
    method libvirt_support_nfs_probe (line 151) | def libvirt_support_nfs_probe(conn):
    method qemu_supports_iso_stream (line 173) | def qemu_supports_iso_stream():
    method libvirt_support_fc_host (line 188) | def libvirt_support_fc_host(conn):
    method kernel_support_vfio (line 204) | def kernel_support_vfio():
    method is_nm_running (line 212) | def is_nm_running():
    method has_mem_hotplug_support (line 222) | def has_mem_hotplug_support(conn):

FILE: model/groups.py
  class GroupsModel (line 24) | class GroupsModel(object):
    method __init__ (line 25) | def __init__(self, **args):
    method get_list (line 31) | def get_list(self, **args):
    method validate (line 37) | def validate(self, gid):
  class PAMGroupsModel (line 41) | class PAMGroupsModel(GroupsModel):
    method __init__ (line 44) | def __init__(self, **kargs):
    method _get_list (line 47) | def _get_list(self):
    method _validate (line 51) | def _validate(self, gid):
  class LDAPGroupsModel (line 59) | class LDAPGroupsModel(GroupsModel):
    method __init__ (line 62) | def __init__(self, **kargs):
    method _validate (line 65) | def _validate(self, gid):

FILE: model/host.py
  class DevicesModel (line 34) | class DevicesModel(object):
    method __init__ (line 35) | def __init__(self, **kargs):
    method _get_unavailable_devices (line 56) | def _get_unavailable_devices(self):
    method get_list (line 76) | def get_list(
    method _get_devices_with_capability (line 110) | def _get_devices_with_capability(self, cap):
    method _get_passthrough_affected_devs (line 120) | def _get_passthrough_affected_devs(self, dev_name):
    method _get_devices_fc_host (line 126) | def _get_devices_fc_host(self):
  class DeviceModel (line 147) | class DeviceModel(object):
    method __init__ (line 148) | def __init__(self, **kargs):
    method get_iommu_groups (line 152) | def get_iommu_groups(self):
    method lookup (line 172) | def lookup(self, nodedev_name):
    method is_multifunction_pci (line 184) | def is_multifunction_pci(self, info):
    method is_device_3D_controller (line 190) | def is_device_3D_controller(self, info):
    method _toint (line 204) | def _toint(num_str):
    method deduce_dev_name (line 213) | def deduce_dev_name(e, conn):
    method _deduce_dev_name_pci (line 223) | def _deduce_dev_name_pci(e):
    method _deduce_dev_name_scsi (line 230) | def _deduce_dev_name_scsi(e):
    method _deduce_dev_name_usb (line 240) | def _deduce_dev_name_usb(e, conn):
  class PartitionsModel (line 277) | class PartitionsModel(object):
    method __init__ (line 278) | def __init__(self, **kargs):
    method get_list (line 281) | def get_list(self):
  class PartitionModel (line 286) | class PartitionModel(object):
    method __init__ (line 287) | def __init__(self, **kargs):
    method lookup (line 290) | def lookup(self, name):
  class VolumeGroupsModel (line 294) | class VolumeGroupsModel(object):
    method __init__ (line 295) | def __init__(self, **kargs):
    method get_list (line 298) | def get_list(self):
  class VolumeGroupModel (line 302) | class VolumeGroupModel(object):
    method __init__ (line 303) | def __init__(self, **kargs):
    method lookup (line 306) | def lookup(self, name):

FILE: model/hostdev.py
  function _get_all_host_dev_infos (line 28) | def _get_all_host_dev_infos(libvirt_conn):
  function _get_dev_info_tree (line 33) | def _get_dev_info_tree(dev_infos):
  function _is_pci_qualified (line 60) | def _is_pci_qualified(pci_dev):
  function get_passthrough_dev_infos (line 75) | def get_passthrough_dev_infos(libvirt_conn):
  function _get_same_iommugroup_devices (line 88) | def _get_same_iommugroup_devices(dev_infos, device_info):
  function _get_children_devices (line 133) | def _get_children_devices(dev_infos, device_info):
  function get_affected_passthrough_devices (line 157) | def get_affected_passthrough_devices(libvirt_conn, passthrough_dev):
  function get_dev_info (line 169) | def get_dev_info(node_dev):
  function _get_net_dev_info (line 200) | def _get_net_dev_info(info):
  function _get_pci_dev_info (line 209) | def _get_pci_dev_info(info):
  function _get_scsi_host_dev_info (line 246) | def _get_scsi_host_dev_info(info):
  function _get_storage_dev_info (line 267) | def _get_storage_dev_info(info):
  function _get_usb_device_dev_info (line 285) | def _get_usb_device_dev_info(info):
  function _print_host_dev_tree (line 296) | def _print_host_dev_tree(libvirt_conn):
  function _format_dev_node (line 306) | def _format_dev_node(node):

FILE: model/interfaces.py
  class InterfacesModel (line 28) | class InterfacesModel(object):
    method __init__ (line 29) | def __init__(self, **kargs):
    method get_list (line 33) | def get_list(self, _inuse=None):
  class InterfaceModel (line 56) | class InterfaceModel(object):
    method __init__ (line 57) | def __init__(self, **kargs):
    method lookup (line 60) | def lookup(self, name):

FILE: model/libvirtconnection.py
  class LibvirtConnection (line 30) | class LibvirtConnection(object):
    method __init__ (line 34) | def __init__(self, uri):
    method get_wrappable_objects (line 41) | def get_wrappable_objects(self):
    method get (line 67) | def get(self, conn_id=0):
    method _get_new_connection (line 137) | def _get_new_connection(self):
    method isQemuURI (line 159) | def isQemuURI(self):

FILE: model/libvirtevents.py
  class LibvirtEvents (line 29) | class LibvirtEvents(object):
    method __init__ (line 30) | def __init__(self):
    method _event_loop_run (line 50) | def _event_loop_run(self):
    method is_event_loop_alive (line 55) | def is_event_loop_alive(self):
    method _kimchi_EventTimeout (line 59) | def _kimchi_EventTimeout(self, timer, opaque):
    method event_enospc_cb (line 62) | def event_enospc_cb(self, conn, dom, path, dev, action, reason, args):
    method handleEnospc (line 69) | def handleEnospc(self, conn):
    method registerAttachDevicesEvent (line 87) | def registerAttachDevicesEvent(self, conn, cb, arg):
    method registerDetachDevicesEvent (line 99) | def registerDetachDevicesEvent(self, conn, cb, arg):
    method registerPoolEvents (line 111) | def registerPoolEvents(self, conn, cb, arg):
    method registerNetworkEvents (line 129) | def registerNetworkEvents(self, conn, cb, arg):
    method registerDomainEvents (line 147) | def registerDomainEvents(self, conn, cb, arg):

FILE: model/libvirtstoragepool.py
  class StoragePoolDef (line 35) | class StoragePoolDef(object):
    method create (line 37) | def create(cls, poolArgs):
    method __init__ (line 43) | def __init__(self, poolArgs):
    method prepare (line 46) | def prepare(self, conn):
    method xml (line 53) | def xml(self):
  class DirPoolDef (line 62) | class DirPoolDef(StoragePoolDef):
    method xml (line 66) | def xml(self):
  class NetfsPoolDef (line 73) | class NetfsPoolDef(StoragePoolDef):
    method __init__ (line 76) | def __init__(self, poolArgs):
    method prepare (line 80) | def prepare(self, conn):
    method xml (line 118) | def xml(self):
  class LogicalPoolDef (line 131) | class LogicalPoolDef(StoragePoolDef):
    method __init__ (line 134) | def __init__(self, poolArgs):
    method xml (line 139) | def xml(self):
  class ScsiPoolDef (line 153) | class ScsiPoolDef(StoragePoolDef):
    method prepare (line 156) | def prepare(self, conn=None):
    method xml (line 174) | def xml(self):
  class IscsiPoolDef (line 188) | class IscsiPoolDef(StoragePoolDef):
    method prepare (line 191) | def prepare(self, conn):
    method _prepare_auth (line 198) | def _prepare_auth(self, conn):
    method xml (line 225) | def xml(self):

FILE: model/model.py
  class Model (line 29) | class Model(BaseModel):
    method __init__ (line 30) | def __init__(self, libvirt_uri=None, objstore_loc=None):
    method _events_handler (line 57) | def _events_handler(self, api):

FILE: model/networks.py
  class NetworksModel (line 47) | class NetworksModel(object):
    method __init__ (line 48) | def __init__(self, **kargs):
    method _check_default_networks (line 54) | def _check_default_networks(self):
    method create (line 83) | def create(self, params):
    method get_list (line 119) | def get_list(self):
    method _get_available_address (line 124) | def _get_available_address(self, addr_pools=None):
    method _set_network_subnet (line 137) | def _set_network_subnet(self, params):
    method _ensure_iface_up (line 160) | def _ensure_iface_up(self, iface):
    method _check_network_interface (line 174) | def _check_network_interface(self, params):
    method _set_network_macvtap (line 190) | def _set_network_macvtap(self, params):
    method _set_network_multiple_interfaces (line 200) | def _set_network_multiple_interfaces(self, params):
    method _set_network_bridge (line 210) | def _set_network_bridge(self, params):
    method get_all_networks_interfaces (line 246) | def get_all_networks_interfaces(self):
    method _create_bridge (line 264) | def _create_bridge(self, name, xml):
    method _create_linux_bridge (line 280) | def _create_linux_bridge(self, interface):
    method _create_vlan_tagged_bridge (line 319) | def _create_vlan_tagged_bridge(self, interface, vlan_id):
    method _get_interface_desc_xml (line 329) | def _get_interface_desc_xml(self, name):
    method _redefine_iface_no_network (line 340) | def _redefine_iface_no_network(self, name, iface_xml):
  class NetworkModel (line 355) | class NetworkModel(object):
    method __init__ (line 356) | def __init__(self, **kargs):
    method lookup (line 361) | def lookup(self, name):
    method _is_network_in_use (line 407) | def _is_network_in_use(self, name):
    method _is_network_used_by_template (line 419) | def _is_network_used_by_template(self, network):
    method _get_vms_attach_to_a_network (line 430) | def _get_vms_attach_to_a_network(self, network, filter='all'):
    method _vm_get_networks (line 449) | def _vm_get_networks(self, dom):
    method activate (line 454) | def activate(self, name):
    method deactivate (line 462) | def deactivate(self, name):
    method delete (line 474) | def delete(self, name):
    method get_network (line 491) | def get_network(conn, name):
    method get_network_from_xml (line 498) | def get_network_from_xml(xml):
    method _remove_bridge (line 528) | def _remove_bridge(self, network):
    method update (line 540) | def update(self, name, params):

FILE: model/ovsbridges.py
  class OVSBridgesModel (line 22) | class OVSBridgesModel(object):
    method get_list (line 24) | def get_list(self):

FILE: model/storagepools.py
  class StoragePoolsModel (line 69) | class StoragePoolsModel(object):
    method __init__ (line 70) | def __init__(self, **kargs):
    method _check_default_pools (line 82) | def _check_default_pools(self):
    method get_list (line 150) | def get_list(self):
    method _check_lvm (line 160) | def _check_lvm(self, name, from_vg):
    method create (line 176) | def create(self, params):
    method _clean_scan (line 249) | def _clean_scan(self, pool_name):
    method _do_deep_scan (line 259) | def _do_deep_scan(self, params):
  class StoragePoolModel (line 291) | class StoragePoolModel(object):
    method __init__ (line 292) | def __init__(self, **kargs):
    method get_storagepool (line 297) | def get_storagepool(name, conn):
    method _get_storagepool_vols_num (line 307) | def _get_storagepool_vols_num(self, pool):
    method _get_storage_source (line 319) | def _get_storage_source(self, pool_type, pool_xml):
    method _nfs_status_online (line 334) | def _nfs_status_online(self, pool, poolArgs=None):
    method lookup (line 352) | def lookup(self, name):
    method _update_lvm_disks (line 402) | def _update_lvm_disks(self, pool_name, disks):
    method update (line 430) | def update(self, name, params):
    method activate (line 448) | def activate(self, name):
    method _pool_used_by_template (line 468) | def _pool_used_by_template(self, pool_name):
    method deactivate (line 480) | def deactivate(self, name):
    method delete (line 508) | def delete(self, name):
    method _get_vms_attach_to_storagepool (line 527) | def _get_vms_attach_to_storagepool(self, storagepool):
  class IsoPoolModel (line 545) | class IsoPoolModel(object):
    method __init__ (line 546) | def __init__(self, **kargs):
    method lookup (line 549) | def lookup(self, name):

FILE: model/storageservers.py
  class StorageServersModel (line 27) | class StorageServersModel(object):
    method __init__ (line 28) | def __init__(self, **kargs):
    method get_list (line 33) | def get_list(self, _target_type=None):
  class StorageServerModel (line 56) | class StorageServerModel(object):
    method __init__ (line 57) | def __init__(self, **kargs):
    method lookup (line 61) | def lookup(self, server):

FILE: model/storagetargets.py
  class StorageTargetsModel (line 29) | class StorageTargetsModel(object):
    method __init__ (line 30) | def __init__(self, **kargs):
    method get_list (line 34) | def get_list(self, storage_server, _target_type=None, _server_port=None):
    method _get_storage_server_spec (line 92) | def _get_storage_server_spec(self, **kwargs):
    method _parse_target_source_result (line 112) | def _parse_target_source_result(self, target_type, xml_str):

FILE: model/storagevolumes.py
  class StorageVolumesModel (line 59) | class StorageVolumesModel(object):
    method __init__ (line 60) | def __init__(self, **kargs):
    method create (line 65) | def create(self, pool_name, params):
    method _create_volume_with_capacity (line 130) | def _create_volume_with_capacity(self, cb, params):
    method _create_volume_with_url (line 182) | def _create_volume_with_url(self, cb, params):
    method get_list (line 269) | def get_list(self, pool_name):
  class StorageVolumeModel (line 280) | class StorageVolumeModel(object):
    method __init__ (line 281) | def __init__(self, **kargs):
    method get_storagevolume (line 293) | def get_storagevolume(poolname, name, conn):
    method lookup (line 306) | def lookup(self, pool, name):
    method wipe (line 395) | def wipe(self, pool, name):
    method delete (line 404) | def delete(self, pool, name):
    method resize (line 428) | def resize(self, pool, name, size):
    method clone (line 448) | def clone(self, pool, name, new_pool=None, new_name=None):
    method _clone_task (line 486) | def _clone_task(self, cb, params):
    method doUpload (line 542) | def doUpload(self, cb, vol, offset, data, data_size):
    method update (line 559) | def update(self, pool, name, params):
  class IsoVolumesModel (line 593) | class IsoVolumesModel(object):
    method __init__ (line 594) | def __init__(self, **kargs):
    method get_list (line 598) | def get_list(self):

FILE: model/templates.py
  class TemplatesModel (line 52) | class TemplatesModel(object):
    method __init__ (line 53) | def __init__(self, **kargs):
    method create (line 57) | def create(self, params):
    method save_template (line 131) | def save_template(self, params):
    method get_list (line 166) | def get_list(self):
    method template_volume_validate (line 173) | def template_volume_validate(self, volume, pool):
  class TemplateModel (line 192) | class TemplateModel(object):
    method __init__ (line 193) | def __init__(self, **kargs):
    method get_template (line 199) | def get_template(name, objstore, conn, overrides=None):
    method lookup (line 212) | def lookup(self, name):
    method clone (line 216) | def clone(self, name):
    method delete (line 235) | def delete(self, name):
    method update (line 244) | def update(self, name, params):
  function validate_interfaces (line 317) | def validate_interfaces(interfaces):
  function validate_memory (line 327) | def validate_memory(memory):
  class LibvirtVMTemplate (line 376) | class LibvirtVMTemplate(VMTemplate):
    method __init__ (line 377) | def __init__(self, args, scan=False, conn=None):
    method _validate_memory (line 383) | def _validate_memory(self):
    method cpuinfo_validate (line 386) | def cpuinfo_validate(self):
    method _get_storage_pool (line 392) | def _get_storage_pool(self, pool_uri):
    method _get_all_networks_name (line 405) | def _get_all_networks_name(self):
    method _get_all_storagepools_name (line 409) | def _get_all_storagepools_name(self):
    method _get_active_storagepools_name (line 414) | def _get_active_storagepools_name(self):
    method _network_validate (line 419) | def _network_validate(self):
    method _get_storage_path (line 435) | def _get_storage_path(self, pool_uri=None):
    method _get_storage_type (line 445) | def _get_storage_type(self, pool_uri=None):
    method _get_volume_path (line 454) | def _get_volume_path(self, pool, vol):
    method fork_vm_storage (line 461) | def fork_vm_storage(self, vm_uuid):
    method set_cpu_info (line 483) | def set_cpu_info(self):

FILE: model/users.py
  class UsersModel (line 26) | class UsersModel(object):
    method __init__ (line 27) | def __init__(self, **args):
    method get_list (line 33) | def get_list(self, **args):
    method validate (line 36) | def validate(self, user):
  class PAMUsersModel (line 40) | class PAMUsersModel(UsersModel):
    method __init__ (line 43) | def __init__(self, **kargs):
    method _get_list (line 46) | def _get_list(self):
    method _validate (line 50) | def _validate(self, user):
  class LDAPUsersModel (line 57) | class LDAPUsersModel(UsersModel):
    method __init__ (line 60) | def __init__(self, **kargs):
    method _get_list (line 63) | def _get_list(self, _user_id=''):
    method _validate (line 66) | def _validate(self, user):
    method _get_user (line 73) | def _get_user(self, _user_id):

FILE: model/utils.py
  function get_vm_name (line 31) | def get_vm_name(vm_name, t_name, name_list):
  function get_ascii_nonascii_name (line 42) | def get_ascii_nonascii_name(name):
  function get_vm_config_flag (line 53) | def get_vm_config_flag(dom, mode='persistent'):
  function update_node (line 69) | def update_node(root, node):
  function get_kimchi_metadata_node (line 75) | def get_kimchi_metadata_node(dom, mode='current'):
  function set_kimchi_metadata_node (line 89) | def set_kimchi_metadata_node(dom, metadata, mode='all'):
  function set_metadata_node (line 103) | def set_metadata_node(dom, nodes, mode='all'):
  function remove_metadata_node (line 113) | def remove_metadata_node(dom, tag, mode='all'):
  function get_metadata_node (line 122) | def get_metadata_node(dom, tag, mode='current'):
  function metadata_exists (line 131) | def metadata_exists(dom):
  function has_cpu_numa (line 140) | def has_cpu_numa(dom):
  function set_numa_memory (line 149) | def set_numa_memory(mem, root):

FILE: model/virtviewerfile.py
  function write_virt_viewer_file (line 32) | def write_virt_viewer_file(params):
  function _get_request_host (line 51) | def _get_request_host():
  function create_virt_viewer_file (line 57) | def create_virt_viewer_file(vm_name, graphics_info):
  class VMVirtViewerFileModel (line 82) | class VMVirtViewerFileModel(object):
    method __init__ (line 83) | def __init__(self, **kargs):
    method cleanup (line 89) | def cleanup(self):
    method _check_if_vm_running (line 96) | def _check_if_vm_running(self, name):
    method event_vmshutdown_cb (line 102) | def event_vmshutdown_cb(self, conn, dom, event, detail, *args):
    method handleVMShutdownPowerOff (line 110) | def handleVMShutdownPowerOff(self, vm_name):
    method lookup (line 128) | def lookup(self, name):
  class FirewallManager (line 141) | class FirewallManager(object):
    method check_if_firewall_cmd_enabled (line 143) | def check_if_firewall_cmd_enabled():
    method check_if_ufw_enabled (line 148) | def check_if_ufw_enabled():
    method __init__ (line 152) | def __init__(self):
    method add_vm_graphics_port (line 163) | def add_vm_graphics_port(self, vm_name, port):
    method remove_vm_graphics_port (line 167) | def remove_vm_graphics_port(self, vm_name):
    method remove_all_vms_ports (line 172) | def remove_all_vms_ports(self):
  class FirewallCMDProvider (line 179) | class FirewallCMDProvider(object):
    method enable_tcp_port (line 181) | def enable_tcp_port(port):
    method disable_tcp_port (line 188) | def disable_tcp_port(port):
  class UFWProvider (line 195) | class UFWProvider(object):
    method enable_tcp_port (line 197) | def enable_tcp_port(port):
    method disable_tcp_port (line 203) | def disable_tcp_port(port):
  class IPTablesProvider (line 209) | class IPTablesProvider(object):
    method enable_tcp_port (line 211) | def enable_tcp_port(port):
    method disable_tcp_port (line 219) | def disable_tcp_port(port):

FILE: model/vmhostdevs.py
  class VMHostDevsModel (line 66) | class VMHostDevsModel(object):
    method __init__ (line 67) | def __init__(self, **kargs):
    method get_list (line 79) | def get_list(self, vmid):
    method _passthrough_device_validate (line 90) | def _passthrough_device_validate(self, dev_name):
    method _event_devices (line 95) | def _event_devices(self, conn, dom, alias, opaque):
    method create (line 106) | def create(self, vmid, params):
    method _get_pci_devices_xml (line 139) | def _get_pci_devices_xml(self, pci_infos, slot, driver):
    method have_usb_controller (line 151) | def have_usb_controller(self, vmid):
    method _get_pci_device_xml (line 172) | def _get_pci_device_xml(self, dev_info, slot, is_multifunction):
    method _validate_pci_passthrough_env (line 218) | def _validate_pci_passthrough_env():
    method _available_slot (line 234) | def _available_slot(self, dom):
    method _attach_pci_device (line 257) | def _attach_pci_device(self, cb, params):
    method _attach_multifunction_devices (line 329) | def _attach_multifunction_devices(self, dom, pci_infos, driver, vmid):
    method _attach_all_devices (line 384) | def _attach_all_devices(self, pci_infos):
    method _count_3D_devices_attached (line 403) | def _count_3D_devices_attached(self, dom):
    method update_mmio_guest (line 424) | def update_mmio_guest(self, vmid, is_attaching):
    method _update_win_memory_size (line 453) | def _update_win_memory_size(self, dom, counter, wnd_size):
    method _add_win_memory_size (line 476) | def _add_win_memory_size(self, dom, wnd_size):
    method _get_scsi_device_xml (line 498) | def _get_scsi_device_xml(self, dev_info):
    method _attach_scsi_device (line 511) | def _attach_scsi_device(self, cb, params):
    method _get_usb_device_xml (line 556) | def _get_usb_device_xml(self, dev_info):
    method _attach_usb_device (line 568) | def _attach_usb_device(self, cb, params):
  class VMHostDevModel (line 613) | class VMHostDevModel(object):
    method __init__ (line 614) | def __init__(self, **kargs):
    method lookup (line 625) | def lookup(self, vmid, dev_name):
    method delete (line 651) | def delete(self, vmid, dev_name):
    method _event_devices (line 677) | def _event_devices(self, conn, dom, alias, opaque):
    method _detach_device (line 705) | def _detach_device(self, cb, params):
    method get_devices_same_addr (line 764) | def get_devices_same_addr(self, hostdevs, device_elem):
    method is_hostdev_multifunction (line 802) | def is_hostdev_multifunction(self, dev_elem):
    method unplug_multifunction_pci (line 818) | def unplug_multifunction_pci(self, dom, hostdevs, dev_elem):
    method _delete_affected_pci_devices (line 832) | def _delete_affected_pci_devices(self, dom, dev_name, pci_devs):
  class VMHoldersModel (line 850) | class VMHoldersModel(object):
    method __init__ (line 851) | def __init__(self, **kargs):
    method get_list (line 854) | def get_list(self, device_id):

FILE: model/vmifaces.py
  class VMIfacesModel (line 35) | class VMIfacesModel(object):
    method __init__ (line 36) | def __init__(self, **kargs):
    method get_list (line 40) | def get_list(self, vm):
    method create (line 46) | def create(self, vm, params):
    method get_vmifaces (line 122) | def get_vmifaces(vm, conn):
    method random_mac (line 130) | def random_mac():
  class VMIfaceModel (line 142) | class VMIfaceModel(object):
    method __init__ (line 143) | def __init__(self, **kargs):
    method _get_vmiface (line 146) | def _get_vmiface(self, vm, mac):
    method lookup (line 154) | def lookup(self, vm, mac):
    method _get_ips (line 186) | def _get_ips(self, vm, mac, network):
    method delete (line 217) | def delete(self, vm, mac):
    method update (line 232) | def update(self, vm, mac, params):

FILE: model/vms.py
  class VMsModel (line 158) | class VMsModel(object):
    method __init__ (line 159) | def __init__(self, **kargs):
    method create (line 165) | def create(self, params):
    method _create_task (line 197) | def _create_task(self, cb, params):
    method get_list (line 267) | def get_list(self):
    method get_vms (line 271) | def get_vms(conn):
  class VMModel (line 286) | class VMModel(object):
    method __init__ (line 287) | def __init__(self, **kargs):
    method has_topology (line 311) | def has_topology(self, dom):
    method update (line 318) | def update(self, name, params):
    method clone (line 375) | def clone(self, name):
    method _clone_task (line 431) | def _clone_task(self, cb, params):
    method _clone_update_mac_addresses (line 491) | def _clone_update_mac_addresses(xml):
    method _clone_update_disks (line 523) | def _clone_update_disks(self, xml, rollback):
    method _clone_update_objstore (line 625) | def _clone_update_objstore(self, old_uuid, new_uuid, rollback):
    method _build_access_elem (line 657) | def _build_access_elem(self, dom, users, groups):
    method _vm_update_access_metadata (line 699) | def _vm_update_access_metadata(self, dom, params):
    method _get_access_info (line 718) | def _get_access_info(self, dom):
    method vm_get_os_metadata (line 739) | def vm_get_os_metadata(dom):
    method _update_graphics (line 744) | def _update_graphics(self, dom, params):
    method _backup_snapshots (line 784) | def _backup_snapshots(self, snap, all_info):
    method _redefine_snapshots (line 801) | def _redefine_snapshots(self, dom, all_info):
    method _update_metadata_name (line 825) | def _update_metadata_name(self, dom, nonascii_name):
    method _update_bootorder (line 831) | def _update_bootorder(self, xml, params):
    method _update_s390x_console (line 856) | def _update_s390x_console(self, xml, params):
    method _update_title (line 870) | def _update_title(self, new_xml, title):
    method _update_description (line 881) | def _update_description(self, new_xml, description):
    method _update_topology (line 893) | def _update_topology(self, dom, new_xml, topology):
    method _static_vm_update (line 911) | def _static_vm_update(self, vm_name, dom, params):
    method _get_new_memory (line 999) | def _get_new_memory(self, root, newMem, oldMem, memDevs):
    method _set_max_memory (line 1023) | def _set_max_memory(self, root, newMem, newMaxMem, maxMemTag):
    method _update_memory_config (line 1046) | def _update_memory_config(self, xml, params, dom):
    method get_vm_cpu_cores (line 1123) | def get_vm_cpu_cores(self, vm_xml):
    method get_vm_cpu_sockets (line 1126) | def get_vm_cpu_sockets(self, vm_xml):
    method get_vm_cpu_threads (line 1129) | def get_vm_cpu_threads(self, vm_xml):
    method get_vm_cpu_topology (line 1132) | def get_vm_cpu_topology(self, dom):
    method _update_cpu_info (line 1143) | def _update_cpu_info(self, new_xml, dom, new_info):
    method _live_vm_update (line 1161) | def _live_vm_update(self, dom, params):
    method cpu_hotplug_precheck (line 1171) | def cpu_hotplug_precheck(self, dom, params):
    method update_cpu_live (line 1187) | def update_cpu_live(self, dom, vcpus):
    method _get_mem_dev_total_size (line 1194) | def _get_mem_dev_total_size(self, xml):
    method _update_memory_live (line 1201) | def _update_memory_live(self, dom, params):
    method _has_video (line 1252) | def _has_video(self, dom):
    method _update_guest_stats (line 1256) | def _update_guest_stats(self, name):
    method _get_percentage_cpu_usage (line 1285) | def _get_percentage_cpu_usage(self, vm_uuid, info, seconds):
    method _get_percentage_mem_usage (line 1296) | def _get_percentage_mem_usage(self, vm_uuid, dom, seconds):
    method _get_network_io_rate (line 1311) | def _get_network_io_rate(self, vm_uuid, dom, seconds):
    method _get_disk_io_rate (line 1344) | def _get_disk_io_rate(self, vm_uuid, dom, seconds):
    method lookup (line 1377) | def lookup(self, name):
    method _vm_get_disk_paths (line 1508) | def _vm_get_disk_paths(self, dom):
    method get_vm (line 1514) | def get_vm(name, conn):
    method delete (line 1538) | def delete(self, name):
    method start (line 1601) | def start(self, name):
    method poweroff (line 1625) | def poweroff(self, name):
    method shutdown (line 1639) | def shutdown(self, name):
    method reset (line 1653) | def reset(self, name):
    method _vm_check_serial (line 1667) | def _vm_check_serial(self, name):
    method get_graphics (line 1683) | def get_graphics(name, conn):
    method serial (line 1719) | def serial(self, name):
    method connect (line 1753) | def connect(self, name):
    method _vmscreenshot_delete (line 1761) | def _vmscreenshot_delete(self, vm_uuid):
    method suspend (line 1775) | def suspend(self, name):
    method resume (line 1794) | def resume(self, name):
    method _check_if_host_not_localhost (line 1814) | def _check_if_host_not_localhost(self, remote_host):
    method _check_if_migrating_same_arch_hypervisor (line 1820) | def _check_if_migrating_same_arch_hypervisor(self, remote_host, user='...
    method _check_ppc64_subcores_per_core (line 1849) | def _check_ppc64_subcores_per_core(self, remote_host, user):
    method _check_if_password_less_login_enabled (line 1890) | def _check_if_password_less_login_enabled(self, remote_host, user, pas...
    method _set_password_less_login (line 1908) | def _set_password_less_login(self, remote_host, user, passwd):
    method _check_remote_libvirt_conn (line 1992) | def _check_remote_libvirt_conn(self, remote_host, user='root', transpo...
    method _get_remote_libvirt_conn (line 2008) | def _get_remote_libvirt_conn(self, remote_host, user='root', transport...
    method migration_pre_check (line 2013) | def migration_pre_check(self, remote_host, user, password):
    method _check_if_path_exists_in_remote_host (line 2022) | def _check_if_path_exists_in_remote_host(self, path, remote_host, user):
    method _get_vm_devices_infos (line 2029) | def _get_vm_devices_infos(self, vm_name):
    method _check_if_nonshared_migration (line 2036) | def _check_if_nonshared_migration(self, vm_name, remote_host, user):
    method _create_remote_path (line 2045) | def _create_remote_path(self, path, remote_host, user):
    method _get_img_size (line 2055) | def _get_img_size(self, disk_path):
    method _create_remote_disk (line 2064) | def _create_remote_disk(self, disk_info, remote_host, user):
    method _create_vm_remote_paths (line 2088) | def _create_vm_remote_paths(self, vm_name, remote_host, user):
    method migrate (line 2099) | def migrate(self, name, remote_host, user=None, password=None, enable_...
    method _migrate_task (line 2129) | def _migrate_task(self, cb, params):
  class VMScreenshotModel (line 2171) | class VMScreenshotModel(object):
    method __init__ (line 2172) | def __init__(self, **kargs):
    method lookup (line 2176) | def lookup(self, name):
    method get_screenshot (line 2201) | def get_screenshot(vm_uuid, objstore, conn):
  class LibvirtVMScreenshot (line 2222) | class LibvirtVMScreenshot(VMScreenshot):
    method __init__ (line 2223) | def __init__(self, vm_uuid, conn):
    method _generate_scratch (line 2227) | def _generate_scratch(self, thumbnail):

FILE: model/vmsnapshots.py
  class VMSnapshotsModel (line 36) | class VMSnapshotsModel(object):
    method __init__ (line 37) | def __init__(self, **kargs):
    method create (line 44) | def create(self, vm_name, params=None):
    method _create_task (line 83) | def _create_task(self, cb, params):
    method get_list (line 112) | def get_list(self, vm_name):
  class VMSnapshotModel (line 123) | class VMSnapshotModel(object):
    method __init__ (line 124) | def __init__(self, **kargs):
    method lookup (line 127) | def lookup(self, vm_name, name):
    method delete (line 151) | def delete(self, vm_name, name):
    method revert (line 160) | def revert(self, vm_name, name):
    method get_vmsnapshot (line 175) | def get_vmsnapshot(self, vm_name, name):
  class CurrentVMSnapshotModel (line 192) | class CurrentVMSnapshotModel(object):
    method __init__ (line 193) | def __init__(self, **kargs):
    method lookup (line 197) | def lookup(self, vm_name):

FILE: model/vmstorages.py
  function _get_device_bus (line 46) | def _get_device_bus(dev_type, dom):
  class VMStoragesModel (line 54) | class VMStoragesModel(object):
    method __init__ (line 55) | def __init__(self, **kargs):
    method _get_available_bus_address (line 60) | def _get_available_bus_address(self, bus_type, vm_name):
    method create (line 89) | def create(self, vm_name, params):
    method get_list (line 160) | def get_list(self, vm_name):
    method _get_vol_info (line 164) | def _get_vol_info(self, params):
  class VMStorageModel (line 201) | class VMStorageModel(object):
    method __init__ (line 202) | def __init__(self, **kargs):
    method lookup (line 207) | def lookup(self, vm_name, dev_name):
    method delete (line 212) | def delete(self, vm_name, dev_name):
    method update (line 252) | def update(self, vm_name, dev_name, params):

FILE: network.py
  function wlans (line 50) | def wlans():
  function nics (line 60) | def nics():
  function is_nic (line 74) | def is_nic(iface):
  function bondings (line 87) | def bondings():
  function is_bonding (line 97) | def is_bonding(iface):
  function vlans (line 110) | def vlans():
  function is_vlan (line 123) | def is_vlan(iface):
  function bridges (line 136) | def bridges():
  function is_bridge (line 147) | def is_bridge(iface):
  function is_openvswitch_running (line 160) | def is_openvswitch_running():
  function ovs_bridges (line 172) | def ovs_bridges():
  function is_ovs_bridge (line 200) | def is_ovs_bridge(iface):
  function ovs_bridge_ports (line 218) | def ovs_bridge_ports(ovsbr):
  function all_interfaces (line 249) | def all_interfaces():
  function slaves (line 259) | def slaves(bonding):
  function ports (line 274) | def ports(bridge):
  function is_brport (line 290) | def is_brport(nic):
  function is_bondlave (line 308) | def is_bondlave(nic):
  function operstate (line 321) | def operstate(dev):
  function get_vlan_device (line 335) | def get_vlan_device(vlan):
  function get_bridge_port_device (line 356) | def get_bridge_port_device(bridge):
  function aggregated_bridges (line 384) | def aggregated_bridges():
  function bare_nics (line 395) | def bare_nics():
  function is_bare_nic (line 408) | def is_bare_nic(iface):
  function all_favored_interfaces (line 424) | def all_favored_interfaces():
  function get_interface_type (line 438) | def get_interface_type(iface):
  function get_dev_macaddr (line 465) | def get_dev_macaddr(dev):
  function get_dev_netaddr (line 470) | def get_dev_netaddr(dev):
  function get_dev_netaddrs (line 476) | def get_dev_netaddrs():
  function get_one_free_network (line 486) | def get_one_free_network(used_nets, nets_pool=None):

FILE: osinfo.py
  function _get_arch (line 147) | def _get_arch():
  function _get_default_template_mem (line 153) | def _get_default_template_mem():
  function _get_tmpl_defaults (line 162) | def _get_tmpl_defaults():
  function get_template_default (line 328) | def get_template_default(template_type, field):
  function lookup (line 338) | def lookup(distro, version):

FILE: root.py
  class Kimchi (line 36) | class Kimchi(WokRoot):
    method __init__ (line 37) | def __init__(self, wok_options):
    method get_custom_conf (line 93) | def get_custom_conf(self):

FILE: scan.py
  class Scanner (line 35) | class Scanner(object):
    method __init__ (line 38) | def __init__(self, record_clean_cb):
    method delete (line 41) | def delete(self):
    method clean_stale (line 44) | def clean_stale(self, window=SCAN_TTL):
    method scan_dir_prepare (line 62) | def scan_dir_prepare(self, name):
    method start_scan (line 67) | def start_scan(self, cb, params):

FILE: screenshot.py
  class VMScreenshot (line 42) | class VMScreenshot(object):
    method __init__ (line 48) | def __init__(self, args):
    method get_stream_test_result (line 57) | def get_stream_test_result():
    method lookup (line 60) | def lookup(self):
    method _clean_extra (line 73) | def _clean_extra(self, window=-1):
    method delete (line 89) | def delete(self):
    method _generate_scratch (line 92) | def _generate_scratch(self, thumbnail):
    method _create_black_image (line 99) | def _create_black_image(self, thumbnail):
    method _watch_stream_creation (line 103) | def _watch_stream_creation(self, thumbnail):
    method _get_test_result (line 142) | def _get_test_result(self):
    method _generate_thumbnail (line 155) | def _generate_thumbnail(self):

FILE: serialconsole.py
  class SocketServer (line 38) | class SocketServer(Process):
    method __init__ (line 59) | def __init__(self, guest_name, URI):
    method run (line 80) | def run(self):
    method _is_vm_listening_serial (line 85) | def _is_vm_listening_serial(self, console):
    method _send_to_client (line 113) | def _send_to_client(self, stream, event, opaque):
    method libvirt_event_loop (line 132) | def libvirt_event_loop(self, guest, client):
    method listen (line 143) | def listen(self):
    method _listen (line 203) | def _listen(self, guest, console):
  class LibvirtGuest (line 269) | class LibvirtGuest(object):
    method __init__ (line 270) | def __init__(self, guest_name, uri, process_name):
    method is_running (line 291) | def is_running(self):
    method get_console (line 300) | def get_console(self):
    method close (line 334) | def close(self):
  function main (line 343) | def main(guest_name, URI='qemu:///system'):

FILE: tests/iso_gen.py
  class FakeIsoImage (line 73) | class FakeIsoImage(object):
    method _build_iso (line 74) | def _build_iso(self, fd, iso_volid, bootable):
    method _build_powerpc_bootable_iso (line 80) | def _build_powerpc_bootable_iso(self, fd, iso_volid):
    method _build_intel_iso (line 84) | def _build_intel_iso(self, fd, iso_volid, bootable):
    method _build_prim_vol (line 90) | def _build_prim_vol(self, fd, iso_volid):
    method _add_sector_padding (line 104) | def _add_sector_padding(self, fd, s):
    method _build_el_torito (line 110) | def _build_el_torito(self, fd):
    method _build_el_boot (line 123) | def _build_el_boot(self, fd, bootable):
    method _build_bootable_ppc_path_table (line 154) | def _build_bootable_ppc_path_table(self, fd):
  function construct_fake_iso (line 203) | def construct_fake_iso(path, bootable, version, distro):

FILE: tests/test_authorization.py
  function setUpModule (line 38) | def setUpModule():
  function tearDownModule (line 49) | def tearDownModule():
  class AuthorizationTests (line 54) | class AuthorizationTests(unittest.TestCase):
    method setUp (line 55) | def setUp(self):
    method test_nonroot_access (line 60) | def test_nonroot_access(self, validate_users):

FILE: tests/test_disks.py
  class DiskTests (line 29) | class DiskTests(unittest.TestCase):
    method test_lsblk_returns_404_when_device_not_found (line 32) | def test_lsblk_returns_404_when_device_not_found(self, mock_run_command):
    method test_lsblk_returns_500_when_unknown_error_occurs (line 43) | def test_lsblk_returns_500_when_unknown_error_occurs(

FILE: tests/test_host.py
  function setUpModule (line 32) | def setUpModule():
  function tearDownModule (line 39) | def tearDownModule():
  class HostTests (line 43) | class HostTests(unittest.TestCase):
    method setUp (line 44) | def setUp(self):
    method test_host_devices (line 47) | def test_host_devices(self):
    method test_get_available_passthrough_devices (line 96) | def test_get_available_passthrough_devices(self):
    method test_host_partitions (line 107) | def test_host_partitions(self):

FILE: tests/test_livemigration.py
  function setUpModule (line 49) | def setUpModule():
  function tearDownModule (line 62) | def tearDownModule():
  function remoteserver_environment_defined (line 66) | def remoteserver_environment_defined():
  function running_root_and_remoteserver_defined (line 72) | def running_root_and_remoteserver_defined():
  function check_if_vm_migration_test_possible (line 76) | def check_if_vm_migration_test_possible():
  class LiveMigrationTests (line 90) | class LiveMigrationTests(unittest.TestCase):
    method setUp (line 91) | def setUp(self):
    method tearDown (line 110) | def tearDown(self):
    method create_vm_test (line 116) | def create_vm_test(self, non_shared_storage=False):
    method test_vm_migrate_fails_if_remote_is_localhost (line 130) | def test_vm_migrate_fails_if_remote_is_localhost(self):
    method test_vm_migrate_fails_if_remotehost_unreachable (line 151) | def test_vm_migrate_fails_if_remotehost_unreachable(self):
    method test_vm_migrate_fails_if_not_passwordless_login (line 165) | def test_vm_migrate_fails_if_not_passwordless_login(self):
    method test_vm_migrate_fails_different_remote_hypervisor (line 180) | def test_vm_migrate_fails_different_remote_hypervisor(self, mock_get_r...
    method test_vm_migrate_fails_different_remote_arch (line 204) | def test_vm_migrate_fails_different_remote_arch(self, mock_get_remote_...
    method get_remote_conn (line 230) | def get_remote_conn(self):
    method get_remote_vm_list (line 236) | def get_remote_vm_list(self):
    method test_vm_livemigrate_persistent (line 245) | def test_vm_livemigrate_persistent(self):
    method test_vm_livemigrate_transient (line 283) | def test_vm_livemigrate_transient(self):
    method test_vm_coldmigrate (line 330) | def test_vm_coldmigrate(self):
    method _erase_remote_file (line 362) | def _erase_remote_file(self, path):
    method test_vm_livemigrate_persistent_nonshared (line 373) | def test_vm_livemigrate_persistent_nonshared(self):
    method _task_lookup (line 412) | def _task_lookup(self, taskid):
    method test_vm_livemigrate_persistent_API (line 418) | def test_vm_livemigrate_persistent_API(self):
    method test_set_passwordless_login (line 474) | def test_set_passwordless_login(
    method test_vm_livemigrate_RDMA (line 487) | def test_vm_livemigrate_RDMA(self, mock_migrate, mock_remote_conn, moc...

FILE: tests/test_mock_network.py
  function setUpModule (line 37) | def setUpModule():
  function tearDownModule (line 45) | def tearDownModule():
  class MockNetworkTests (line 49) | class MockNetworkTests(unittest.TestCase):
    method setUp (line 50) | def setUp(self):
    method test_vlan_tag_bridge (line 58) | def test_vlan_tag_bridge(self):

FILE: tests/test_mock_storagepool.py
  function setUpModule (line 35) | def setUpModule():
  function tearDownModule (line 43) | def tearDownModule():
  class MockStoragepoolTests (line 47) | class MockStoragepoolTests(unittest.TestCase):
    method setUp (line 48) | def setUp(self):
    method _task_lookup (line 52) | def _task_lookup(self, taskid):
    method test_storagepool (line 55) | def test_storagepool(self):

FILE: tests/test_mock_storagevolume.py
  function setUpModule (line 37) | def setUpModule():
  function tearDownModule (line 45) | def tearDownModule():
  class MockStorageVolumeTests (line 49) | class MockStorageVolumeTests(unittest.TestCase):
    method setUp (line 50) | def setUp(self):
    method test_storagevolume (line 53) | def test_storagevolume(self):

FILE: tests/test_mockmodel.py
  function setUpModule (line 39) | def setUpModule():
  function tearDownModule (line 49) | def tearDownModule():
  class MockModelTests (line 54) | class MockModelTests(unittest.TestCase):
    method setUp (line 55) | def setUp(self):
    method test_screenshot_refresh (line 58) | def test_screenshot_refresh(self):
    method test_vm_list_sorted (line 93) | def test_vm_list_sorted(self):
    method test_memory_window_changes (line 117) | def test_memory_window_changes(self):
    method test_hotplug_3D_card (line 131) | def test_hotplug_3D_card(self):
    method test_vm_info (line 153) | def test_vm_info(self):

FILE: tests/test_model.py
  function setUpModule (line 85) | def setUpModule():
  function tearDownModule (line 100) | def tearDownModule():
  function get_remote_iso_path (line 104) | def get_remote_iso_path():
  function _setDiskPoolDefault (line 125) | def _setDiskPoolDefault():
  function _setDiskPoolDefaultTest (line 131) | def _setDiskPoolDefaultTest():
  class ModelTests (line 137) | class ModelTests(unittest.TestCase):
    method setUp (line 138) | def setUp(self):
    method tearDown (line 141) | def tearDown(self):
    method test_vm_info (line 149) | def test_vm_info(self):
    method test_vm_lifecycle (line 206) | def test_vm_lifecycle(self):
    method test_image_based_template (line 343) | def test_image_based_template(self):
    method test_vm_graphics (line 403) | def test_vm_graphics(self):
    method test_vm_virtviewerfile_vmnotrunning (line 432) | def test_vm_virtviewerfile_vmnotrunning(self):
    method test_vm_virtviewerfile_vnc (line 468) | def test_vm_virtviewerfile_vnc(
    method test_vm_virtviewerfile_spice_passwd (line 516) | def test_vm_virtviewerfile_spice_passwd(
    method test_firewall_provider_firewallcmd (line 553) | def test_firewall_provider_firewallcmd(self, mock_run_cmd):
    method test_firewall_provider_ufw (line 572) | def test_firewall_provider_ufw(self, mock_run_cmd):
    method test_firewall_provider_iptables (line 593) | def test_firewall_provider_iptables(self, mock_run_cmd):
    method test_vm_virtviewerfile_vmlifecycle (line 649) | def test_vm_virtviewerfile_vmlifecycle(self, mock_add_port, mock_remov...
    method test_vm_serial (line 687) | def test_vm_serial(self):
    method test_vm_ifaces (line 710) | def test_vm_ifaces(self):
    method test_vm_netboot (line 812) | def test_vm_netboot(self):
    method test_vm_disk (line 847) | def test_vm_disk(self):
    method test_vm_cdrom (line 966) | def test_vm_cdrom(self):
    method test_vm_storage_provisioning (line 1062) | def test_vm_storage_provisioning(self):
    method _create_template_conf_with_disk_format (line 1094) | def _create_template_conf_with_disk_format(self, vol_format):
    method _restore_template_conf_file (line 1117) | def _restore_template_conf_file(self):
    method _get_disk_format_from_vm (line 1124) | def _get_disk_format_from_vm(self, vm, conn):
    method test_template_get_default_vol_format_from_conf (line 1131) | def test_template_get_default_vol_format_from_conf(self):
    method test_template_creates_user_defined_vol_format_instead_default (line 1162) | def test_template_creates_user_defined_vol_format_instead_default(self):
    method test_template_uses_qcow2_format_if_no_user_or_default_defined (line 1197) | def test_template_uses_qcow2_format_if_no_user_or_default_defined(self):
    method test_vm_memory_hotplug (line 1227) | def test_vm_memory_hotplug(self):
    method test_non_numa_vm_memory_hotplug (line 1339) | def test_non_numa_vm_memory_hotplug(self):
    method test_vm_edit (line 1387) | def test_vm_edit(self):
    method test_get_vm_cpu_cores (line 1631) | def test_get_vm_cpu_cores(self):
    method test_get_vm_cpu_sockets (line 1638) | def test_get_vm_cpu_sockets(self):
    method test_get_vm_cpu_threads (line 1645) | def test_get_vm_cpu_threads(self):
    method test_get_vm_cpu_topology (line 1653) | def test_get_vm_cpu_topology(self, mock_has_topology):
    method test_get_vm_cpu_topology_blank (line 1671) | def test_get_vm_cpu_topology_blank(self, mock_has_topology):
    method test_vm_cpu_hotplug_invalidparam_fail (line 1686) | def test_vm_cpu_hotplug_invalidparam_fail(self):
    method test_vm_cpu_hotplug_abovemax_fail (line 1694) | def test_vm_cpu_hotplug_abovemax_fail(self, mock_has_topology):
    method test_vm_cpu_hotplug_topology_mismatch_fail (line 1713) | def test_vm_cpu_hotplug_topology_mismatch_fail(
    method test_vm_cpu_hotplug_error (line 1734) | def test_vm_cpu_hotplug_error(self):
    method test_get_interfaces (line 1749) | def test_get_interfaces(self):
    method test_async_tasks (line 1762) | def test_async_tasks(self):
    method test_delete_running_vm (line 1816) | def test_delete_running_vm(self):
    method test_vm_list_sorted (line 1849) | def test_vm_list_sorted(self):
    method test_vm_clone (line 1871) | def test_vm_clone(self):
    method test_use_test_host (line 1923) | def test_use_test_host(self):
    method test_get_distros (line 1951) | def test_get_distros(self):
    method test_deep_scan (line 1963) | def test_deep_scan(self):
    method _host_is_power (line 1989) | def _host_is_power():
    method test_pci_hotplug_requires_usb_controller (line 1993) | def test_pci_hotplug_requires_usb_controller(self):
    method get_hostdevs_xml (line 2013) | def get_hostdevs_xml(self):
    method get_hostdev_multifunction_xml (line 2068) | def get_hostdev_multifunction_xml(self):
    method get_hostdev_nomultifunction_xml (line 2081) | def get_hostdev_nomultifunction_xml(self):
    method test_vmhostdev_is_hostdev_multifunction (line 2093) | def test_vmhostdev_is_hostdev_multifunction(self):
    method test_vmhostdev_get_devices_same_addr (line 2107) | def test_vmhostdev_get_devices_same_addr(self):
    method test_vmhostdev_unplug_multifunction_pci (line 2142) | def test_vmhostdev_unplug_multifunction_pci(self, mock_conf_flag):
  class BaseModelTests (line 2172) | class BaseModelTests(unittest.TestCase):
    class FoosModel (line 2173) | class FoosModel(object):
      method __init__ (line 2174) | def __init__(self):
      method create (line 2177) | def create(self, params):
      method get_list (line 2180) | def get_list(self):
    class TestModel (line 2183) | class TestModel(wok.basemodel.BaseModel):
      method __init__ (line 2184) | def __init__(self):
    method test_root_model (line 2188) | def test_root_model(self):

FILE: tests/test_model_libvirtevents.py
  function setUpModule (line 41) | def setUpModule():
  function tearDownModule (line 52) | def tearDownModule():
  function _get_next_event_id (line 60) | def _get_next_event_id():
  function _get_event_id (line 66) | def _get_event_id():
  function _store_event (line 71) | def _store_event(data):
  function _get_event (line 77) | def _get_event(id):
  class LibvirtEventsTests (line 86) | class LibvirtEventsTests(unittest.TestCase):
    method setUp (line 87) | def setUp(self):
    method tearDown (line 90) | def tearDown(self):
    method domain_event_lifecycle_cb (line 93) | def domain_event_lifecycle_cb(self, conn, dom, event, detail, *args):
    method test_events_vm_lifecycle (line 147) | def test_events_vm_lifecycle(self):

FILE: tests/test_model_network.py
  function setUpModule (line 43) | def setUpModule(func):
  function tearDownModule (line 52) | def tearDownModule():
  function _do_network_test (line 57) | def _do_network_test(self, model, params):
  class NetworkTests (line 112) | class NetworkTests(unittest.TestCase):
    method setUp (line 113) | def setUp(self):
    method test_get_networks (line 116) | def test_get_networks(self):
    method test_network_lifecycle (line 161) | def test_network_lifecycle(self):
    method test_macvtap_network_create_fails_more_than_one_interface (line 198) | def test_macvtap_network_create_fails_more_than_one_interface(self):
    method test_bridge_network_create_fails_more_than_one_interface (line 211) | def test_bridge_network_create_fails_more_than_one_interface(self):

FILE: tests/test_model_storagepool.py
  function setUpModule (line 42) | def setUpModule(func):
  function tearDownModule (line 51) | def tearDownModule():
  class StoragepoolTests (line 56) | class StoragepoolTests(unittest.TestCase):
    method setUp (line 57) | def setUp(self):
    method test_get_storagepools (line 60) | def test_get_storagepools(self):

FILE: tests/test_model_storagevolume.py
  function setUpModule (line 50) | def setUpModule(func):
  function tearDownModule (line 59) | def tearDownModule():
  function _do_volume_test (line 64) | def _do_volume_test(self, model, pool_name):
  class StorageVolumeTests (line 278) | class StorageVolumeTests(unittest.TestCase):
    method setUp (line 279) | def setUp(self):
    method test_get_storagevolume (line 282) | def test_get_storagevolume(self):
    method test_storagevolume_action (line 309) | def test_storagevolume_action(self):

FILE: tests/test_networkxml.py
  function normalize_xml (line 27) | def normalize_xml(xml_str):
  class NetworkXmlTests (line 32) | class NetworkXmlTests(unittest.TestCase):
    method test_dhcp_xml (line 33) | def test_dhcp_xml(self):
    method test_ip_xml (line 65) | def test_ip_xml(self):
    method test_forward_xml (line 96) | def test_forward_xml(self):
    method test_network_xml (line 113) | def test_network_xml(self):
    method test_vepa_network_singledev_xml (line 162) | def test_vepa_network_singledev_xml(self):
    method test_vepa_network_multipledevs_xml (line 177) | def test_vepa_network_multipledevs_xml(self):
    method test_passthrough_network_singledev_xml (line 201) | def test_passthrough_network_singledev_xml(self):
    method test_passthrough_network_multipledevs_xml (line 216) | def test_passthrough_network_multipledevs_xml(self):
  class InterfaceXmlTests (line 241) | class InterfaceXmlTests(unittest.TestCase):
    method test_vlan_tagged_bridge_no_ip (line 242) | def test_vlan_tagged_bridge_no_ip(self):
    method test_linux_bridge_no_ip (line 258) | def test_linux_bridge_no_ip(self):

FILE: tests/test_osinfo.py
  class OSInfoTests (line 28) | class OSInfoTests(unittest.TestCase):
    method test_default_lookup (line 29) | def test_default_lookup(self):
    method test_old_distros (line 36) | def test_old_distros(self):
    method test_modern_bases (line 53) | def test_modern_bases(self):
    method test_modern_distros (line 66) | def test_modern_distros(self):
    method test_lookup_unknown_distro_version_returns_old_distro (line 84) | def test_lookup_unknown_distro_version_returns_old_distro(self):

FILE: tests/test_rest.py
  function setUpModule (line 54) | def setUpModule():
  function tearDownModule (line 68) | def tearDownModule():
  class RestTests (line 74) | class RestTests(unittest.TestCase):
    method _async_op (line 75) | def _async_op(self, cb, opaque):
    method _except_op (line 79) | def _except_op(self, cb, opaque):
    method _intermid_op (line 86) | def _intermid_op(self, cb, opaque):
    method setUp (line 90) | def setUp(self):
    method assertHTTPStatus (line 94) | def assertHTTPStatus(self, code, *args):
    method test_get_vms (line 98) | def test_get_vms(self):
    method test_edit_vm_cpuhotplug (line 138) | def test_edit_vm_cpuhotplug(self):
    method test_edit_vm (line 171) | def test_edit_vm(self):
    method test_vm_lifecycle (line 367) | def test_vm_lifecycle(self):
    method test_vm_netboot (line 637) | def test_vm_netboot(self):
    method test_vm_graphics (line 696) | def test_vm_graphics(self):
    method test_vm_storage_devices (line 811) | def test_vm_storage_devices(self):
    method test_vm_iface (line 1033) | def test_vm_iface(self):
    method test_vm_customise_storage (line 1236) | def test_vm_customise_storage(self):
    method test_scsi_fc_storage (line 1300) | def test_scsi_fc_storage(self):
    method test_unnamed_vms (line 1370) | def test_unnamed_vms(self):
    method test_create_vm_without_template (line 1390) | def test_create_vm_without_template(self):
    method test_create_vm_with_bad_template_uri (line 1397) | def test_create_vm_with_bad_template_uri(self):
    method test_vm_migrate (line 1405) | def test_vm_migrate(self):
    method test_create_vm_with_img_based_template (line 1461) | def test_create_vm_with_img_based_template(self):
    method _create_pool (line 1492) | def _create_pool(self, name):
    method _delete_pool (line 1512) | def _delete_pool(self, name):
    method test_iso_scan_shallow (line 1518) | def test_iso_scan_shallow(self):
    method test_screenshot_refresh (line 1593) | def test_screenshot_refresh(self):
    method test_interfaces (line 1646) | def test_interfaces(self):
    method _task_lookup (line 1653) | def _task_lookup(self, taskid):
    method test_tasks (line 1656) | def test_tasks(self):
    method test_config (line 1683) | def test_config(self):
    method test_capabilities (line 1689) | def test_capabilities(self):
    method test_distros (line 1705) | def test_distros(self):
    method test_ovsbridges (line 1748) | def test_ovsbridges(self):
  class HttpsRestTests (line 1753) | class HttpsRestTests(RestTests):
    method setUp (line 1758) | def setUp(self):

FILE: tests/test_storagepoolxml.py
  class StoragepoolXMLTests (line 25) | class StoragepoolXMLTests(unittest.TestCase):
    method test_get_storagepool_xml (line 26) | def test_get_storagepool_xml(self):

FILE: tests/test_template.py
  function setUpModule (line 43) | def setUpModule():
  function tearDownModule (line 52) | def tearDownModule():
  class TemplateTests (line 56) | class TemplateTests(unittest.TestCase):
    method setUp (line 57) | def setUp(self):
    method test_tmpl_lifecycle (line 61) | def test_tmpl_lifecycle(self):
    method test_customized_tmpl (line 195) | def test_customized_tmpl(self):
    method test_customized_network (line 403) | def test_customized_network(self):
    method test_customized_storagepool (line 452) | def test_customized_storagepool(self):
    method test_tmpl_integrity (line 584) | def test_tmpl_integrity(self):

FILE: tests/test_vmtemplate.py
  class VMTemplateTests (line 46) | class VMTemplateTests(unittest.TestCase):
    method setUp (line 47) | def setUp(self):
    method tearDown (line 51) | def tearDown(self):
    method test_minimal_construct (line 54) | def test_minimal_construct(self):
    method test_construct_overrides (line 78) | def test_construct_overrides(self):
    method test_specified_graphics (line 86) | def test_specified_graphics(self):
    method test_mem_dev_slots (line 107) | def test_mem_dev_slots(self):
    method test_to_xml (line 121) | def test_to_xml(self):
    method test_arg_merging (line 160) | def test_arg_merging(self):
    method test_netboot_vmtemplate (line 185) | def test_netboot_vmtemplate(self):

FILE: ui/js/src/kimchi.api.js
  function monitorTask (line 492) | function monitorTask() {

FILE: ui/js/src/kimchi.guest_add_main.js
  function validateForm (line 64) | function validateForm() {

FILE: ui/js/src/kimchi.guest_storage_add.main.js
  function monitorTask (line 432) | function monitorTask() {

FILE: ui/serial/libs/term.js
  function EventEmitter (line 59) | function EventEmitter() {
  function on (line 91) | function on() {
  function Stream (line 121) | function Stream() {
  function unbind (line 133) | function unbind() {
  function Terminal (line 182) | function Terminal(options) {
  function out (line 396) | function out(r, g, b) {
  function hex (line 400) | function hex(c) {
  function sendButton (line 890) | function sendButton(ev) {
  function sendMove (line 922) | function sendMove(ev) {
  function encode (line 938) | function encode(data, ch) {
  function sendEvent (line 961) | function sendEvent(button, pos) {
  function getButton (line 1039) | function getButton(ev) {
  function getCoords (line 1102) | function getCoords(ev) {
  function on (line 5823) | function on(el, type, handler, capture) {
  function off (line 5827) | function off(el, type, handler, capture) {
  function cancel (line 5831) | function cancel(ev) {
  function inherits (line 5839) | function inherits(child, parent) {
  function isBoldBroken (line 5849) | function isBoldBroken(document) {
  function indexOf (line 5870) | function indexOf(obj, el) {
  function isWide (line 5878) | function isWide(ch) {
  function matchColor (line 5889) | function matchColor(r1, g1, b1) {
  function each (line 5936) | function each(obj, iter, con) {
  function keys (line 5943) | function keys(obj) {

FILE: ui/spice-html5/bitmap.js
  function convert_spice_bitmap_to_web (line 26) | function convert_spice_bitmap_to_web(context, spice_bitmap)

FILE: ui/spice-html5/cursor.js
  function SpiceCursorConn (line 26) | function SpiceCursorConn()

FILE: ui/spice-html5/display.js
  function putImageDataWithAlpha (line 29) | function putImageDataWithAlpha(context, d, x, y)
  function stripAlpha (line 46) | function stripAlpha(d)
  function SpiceDisplayConn (line 57) | function SpiceDisplayConn()
  function handle_mouseover (line 728) | function handle_mouseover(e)
  function handle_mouseout (line 733) | function handle_mouseout(e)
  function handle_draw_jpeg_onload (line 740) | function handle_draw_jpeg_onload()

FILE: ui/spice-html5/inputs.js
  function SpiceInputsConn (line 35) | function SpiceInputsConn()
  function handle_mousemove (line 75) | function handle_mousemove(e)
  function handle_mousedown (line 112) | function handle_mousedown(e)
  function handle_contextmenu (line 123) | function handle_contextmenu(e)
  function handle_mouseup (line 129) | function handle_mouseup(e)
  function handle_mousewheel (line 140) | function handle_mousewheel(e)
  function handle_keydown (line 163) | function handle_keydown(e)
  function handle_keyup (line 175) | function handle_keyup(e)
  function sendCtrlAltDel (line 187) | function sendCtrlAltDel()
  function update_modifier (line 207) | function update_modifier(state, code, sc)
  function check_and_update_modifiers (line 226) | function check_and_update_modifiers(e, code, sc)

FILE: ui/spice-html5/lz.js
  function lz_rgb32_decompress (line 27) | function lz_rgb32_decompress(in_buf, at, out_buf, type, default_alpha)
  function convert_spice_lz_to_web (line 144) | function convert_spice_lz_to_web(context, lz_image)

FILE: ui/spice-html5/main.js
  function SpiceMainConn (line 51) | function SpiceMainConn()

FILE: ui/spice-html5/playback.js
  function SpicePlaybackConn (line 25) | function SpicePlaybackConn()
  function handle_source_open (line 212) | function handle_source_open(e)
  function handle_source_ended (line 236) | function handle_source_ended(e)
  function handle_source_closed (line 242) | function handle_source_closed(e)
  function handle_append_buffer_done (line 248) | function handle_append_buffer_done(b)
  function handle_sourcebuffer_error (line 261) | function handle_sourcebuffer_error(e)
  function playback_append_buffer (line 267) | function playback_append_buffer(p, b)

FILE: ui/spice-html5/png.js
  function rfc2083_make_crc_table (line 28) | function rfc2083_make_crc_table()
  function rfc2083_update_crc (line 53) | function rfc2083_update_crc(crc, u8buf, at, len)
  function rfc2083_crc (line 69) | function rfc2083_crc(u8buf, at, len)
  function crc32 (line 74) | function crc32(mb, at, len)
  function PngIHDR (line 80) | function PngIHDR(width, height)
  function adler (line 120) | function adler()
  function PngIDAT (line 134) | function PngIDAT(width, height, bytes)
  function PngIEND (line 205) | function PngIEND()
  function create_rgba_png (line 232) | function create_rgba_png(width, height, bytes)

FILE: ui/spice-html5/quic.js
  function ceil_log_2 (line 139) | function ceil_log_2(val)
  function family_init (line 152) | function family_init(family, bpc, limit)
  function quic_image_bpc (line 191) | function quic_image_bpc(type)
  function cnt_l_zeroes (line 211) | function cnt_l_zeroes(bits)
  function golomb_decoding_8bpc (line 224) | function golomb_decoding_8bpc(l, bits)
  function golomb_code_len_8bpc (line 243) | function golomb_code_len_8bpc(n, l)
  function QuicModel (line 252) | function QuicModel(bpc)
  function QuicBucket (line 326) | function QuicBucket()
  function QuicFamilyStat (line 366) | function QuicFamilyStat()
  function QuicChannel (line 413) | function QuicChannel(model_8bpc, model_5bpc)
  function CommonState (line 455) | function CommonState()
  function QuicEncoder (line 501) | function QuicEncoder()
  function SpiceQuic (line 1267) | function SpiceQuic()
  function convert_spice_quic_to_web (line 1292) | function convert_spice_quic_to_web(context, spice_quic)

FILE: ui/spice-html5/resize.js
  function resize_helper (line 33) | function resize_helper(sc)
  function handle_resize (line 59) | function handle_resize(e)

FILE: ui/spice-html5/spicearraybuffer.js
  function SpiceArrayBufferSlice (line 26) | function SpiceArrayBufferSlice(start, end)

FILE: ui/spice-html5/spiceconn.js
  function SpiceConn (line 29) | function SpiceConn(o)
  function spiceconn_timeout (line 457) | function spiceconn_timeout(sc)

FILE: ui/spice-html5/spicedataview.js
  function SpiceDataView (line 28) | function SpiceDataView(buffer, byteOffset, byteLength)

FILE: ui/spice-html5/spicemsg.js
  function SpiceLinkHeader (line 27) | function SpiceLinkHeader(a, at)
  function SpiceLinkMess (line 71) | function SpiceLinkMess(a, at)
  function SpiceLinkReply (line 141) | function SpiceLinkReply(a, at)
  function SpiceLinkAuthTicket (line 184) | function SpiceLinkAuthTicket(a, at)
  function SpiceLinkAuthReply (line 213) | function SpiceLinkAuthReply(a, at)
  function SpiceMiniData (line 234) | function SpiceMiniData(a, at)
  function SpiceMsgChannels (line 288) | function SpiceMsgChannels(a, at)
  function SpiceMsgMainInit (line 313) | function SpiceMsgMainInit(a, at)
  function SpiceMsgMainMouseMode (line 335) | function SpiceMsgMainMouseMode(a, at)
  function SpiceMsgSetAck (line 351) | function SpiceMsgSetAck(a, at)
  function SpiceMsgcAckSync (line 367) | function SpiceMsgcAckSync(ack)
  function SpiceMsgcMainMouseModeRequest (line 386) | function SpiceMsgcMainMouseModeRequest(mode)
  function SpiceMsgcMainAgentStart (line 405) | function SpiceMsgcMainAgentStart(num_tokens)
  function SpiceMsgcMainAgentData (line 424) | function SpiceMsgcMainAgentData(type, data)
  function VDAgentMonitorsConfig (line 451) | function VDAgentMonitorsConfig(flags, width, height, depth, x, y)
  function SpiceMsgNotify (line 482) | function SpiceMsgNotify(a, at)
  function SpiceMsgcDisplayInit (line 508) | function SpiceMsgcDisplayInit()
  function SpiceMsgDisplayBase (line 533) | function SpiceMsgDisplayBase()
  function SpiceMsgDisplayDrawCopy (line 549) | function SpiceMsgDisplayDrawCopy(a, at)
  function SpiceMsgDisplayDrawFill (line 567) | function SpiceMsgDisplayDrawFill(a, at)
  function SpiceMsgDisplayCopyBits (line 585) | function SpiceMsgDisplayCopyBits(a, at)
  function SpiceMsgSurfaceCreate (line 604) | function SpiceMsgSurfaceCreate(a, at)
  function SpiceMsgSurfaceDestroy (line 620) | function SpiceMsgSurfaceDestroy(a, at)
  function SpiceMsgInputsInit (line 635) | function SpiceMsgInputsInit(a, at)
  function SpiceMsgInputsKeyModifiers (line 651) | function SpiceMsgInputsKeyModifiers(a, at)
  function SpiceMsgCursorInit (line 667) | function SpiceMsgCursorInit(a, at)
  function SpiceMsgPlaybackData (line 688) | function SpiceMsgPlaybackData(a, at)
  function SpiceMsgPlaybackMode (line 709) | function SpiceMsgPlaybackMode(a, at)
  function SpiceMsgPlaybackStart (line 731) | function SpiceMsgPlaybackStart(a, at)
  function SpiceMsgCursorSet (line 752) | function SpiceMsgCursorSet(a, at)
  function SpiceMsgcMousePosition (line 772) | function SpiceMsgcMousePosition(sc, e)
  function SpiceMsgcMouseMotion (line 811) | function SpiceMsgcMouseMotion(sc, e)
  function SpiceMsgcMousePress (line 839) | function SpiceMsgcMousePress(sc, e)
  function SpiceMsgcMouseRelease (line 870) | function SpiceMsgcMouseRelease(sc, e)
  function SpiceMsgcKeyDown (line 890) | function SpiceMsgcKeyDown(e)
  function SpiceMsgcKeyUp (line 917) | function SpiceMsgcKeyUp(e)
  function SpiceMsgDisplayStreamCreate (line 933) | function SpiceMsgDisplayStreamCreate(a, at)
  function SpiceStreamDataHeader (line 961) | function SpiceStreamDataHeader(a, at)
  function SpiceMsgDisplayStreamData (line 975) | function SpiceMsgDisplayStreamData(a, at)
  function SpiceMsgDisplayStreamClip (line 993) | function SpiceMsgDisplayStreamClip(a, at)
  function SpiceMsgDisplayStreamDestroy (line 1010) | function SpiceMsgDisplayStreamDestroy(a, at)
  function SpiceMsgDisplayInvalList (line 1025) | function SpiceMsgDisplayInvalList(a, at)

FILE: ui/spice-html5/spicetype.js
  function SpiceChannelId (line 28) | function SpiceChannelId()
  function SpiceRect (line 41) | function SpiceRect()
  function SpiceClipRects (line 65) | function SpiceClipRects()
  function SpiceClip (line 86) | function SpiceClip()
  function SpiceImageDescriptor (line 104) | function SpiceImageDescriptor()
  function SpicePalette (line 121) | function SpicePalette()
  function SpiceBitmap (line 141) | function SpiceBitmap()
  function SpiceImage (line 177) | function SpiceImage()
  function SpiceQMask (line 273) | function SpiceQMask()
  function SpicePattern (line 297) | function SpicePattern()
  function SpiceBrush (line 321) | function SpiceBrush()
  function SpiceFill (line 343) | function SpiceFill()
  function SpiceCopy (line 360) | function SpiceCopy()
  function SpicePoint16 (line 387) | function SpicePoint16()
  function SpicePoint (line 401) | function SpicePoint()
  function SpiceCursorHeader (line 415) | function SpiceCursorHeader()
  function SpiceCursor (line 433) | function SpiceCursor()
  function SpiceSurface (line 455) | function SpiceSurface()

FILE: ui/spice-html5/thirdparty/jsbn.js
  function BigInteger (line 45) | function BigInteger(a,b,c) {
  function nbi (line 53) | function nbi() { return new BigInteger(null); }
  function am1 (line 63) | function am1(i,x,w,j,c,n) {
  function am2 (line 74) | function am2(i,x,w,j,c,n) {
  function am3 (line 88) | function am3(i,x,w,j,c,n) {
  function int2char (line 133) | function int2char(n) { return BI_RM.charAt(n); }
  function intAt (line 134) | function intAt(s,i) {
  function bnpCopyTo (line 140) | function bnpCopyTo(r) {
  function bnpFromInt (line 147) | function bnpFromInt(x) {
  function nbv (line 156) | function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
  function bnpFromString (line 159) | function bnpFromString(s,b) {
  function bnpClamp (line 198) | function bnpClamp() {
  function bnToString (line 204) | function bnToString(b) {
  function bnNegate (line 234) | function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); retu...
  function bnAbs (line 237) | function bnAbs() { return (this.s<0)?this.negate():this; }
  function bnCompareTo (line 240) | function bnCompareTo(a) {
  function nbits (line 251) | function nbits(x) {
  function bnBitLength (line 262) | function bnBitLength() {
  function bnpDLShiftTo (line 268) | function bnpDLShiftTo(n,r) {
  function bnpDRShiftTo (line 277) | function bnpDRShiftTo(n,r) {
  function bnpLShiftTo (line 284) | function bnpLShiftTo(n,r) {
  function bnpRShiftTo (line 301) | function bnpRShiftTo(n,r) {
  function bnpSubTo (line 319) | function bnpSubTo(a,r) {
  function bnpMultiplyTo (line 353) | function bnpMultiplyTo(a,r) {
  function bnpSquareTo (line 365) | function bnpSquareTo(r) {
  function bnpDivRemTo (line 383) | function bnpDivRemTo(m,q,r) {
  function bnMod (line 431) | function bnMod(a) {
  function Classic (line 439) | function Classic(m) { this.m = m; }
  function cConvert (line 440) | function cConvert(x) {
  function cRevert (line 444) | function cRevert(x) { return x; }
  function cReduce (line 445) | function cReduce(x) { x.divRemTo(this.m,null,x); }
  function cMulTo (line 446) | function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
  function cSqrTo (line 447) | function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
  function bnpInvDigit (line 465) | function bnpInvDigit() {
  function Montgomery (line 481) | function Montgomery(m) {
  function montConvert (line 491) | function montConvert(x) {
  function montRevert (line 500) | function montRevert(x) {
  function montReduce (line 508) | function montReduce(x) {
  function montSqrTo (line 527) | function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
  function montMulTo (line 530) | function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
  function bnpIsEven (line 539) | function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
  function bnpExp (line 542) | function bnpExp(e,z) {
  function bnModPowInt (line 555) | function bnModPowInt(e,m) {

FILE: ui/spice-html5/thirdparty/prng4.js
  function Arcfour (line 37) | function Arcfour() {
  function ARC4init (line 44) | function ARC4init(key) {
  function ARC4next (line 59) | function ARC4next() {
  function prng_newstate (line 73) | function prng_newstate() {

FILE: ui/spice-html5/thirdparty/rng.js
  function rng_seed_int (line 46) | function rng_seed_int(x) {
  function rng_seed_time (line 55) | function rng_seed_time() {
  function rng_get_byte (line 81) | function rng_get_byte() {
  function rng_get_bytes (line 95) | function rng_get_bytes(ba) {
  function SecureRandom (line 100) | function SecureRandom() {}

FILE: ui/spice-html5/thirdparty/rsa.js
  function parseBigInt (line 40) | function parseBigInt(str,r) {
  function linebrk (line 44) | function linebrk(s,n) {
  function byte2Hex (line 54) | function byte2Hex(b) {
  function pkcs1pad2 (line 62) | function pkcs1pad2(s,n) {
  function RSAKey (line 98) | function RSAKey() {
  function RSASetPublic (line 110) | function RSASetPublic(N,E) {
  function RSADoPublic (line 120) | function RSADoPublic(x) {
  function RSAEncrypt (line 125) | function RSAEncrypt(text) {

FILE: ui/spice-html5/thirdparty/sha1.js
  function hex_sha1 (line 37) | function hex_sha1(s)    { return rstr2hex(rstr_sha1(str2rstr_utf8(s))); }
  function b64_sha1 (line 38) | function b64_sha1(s)    { return rstr2b64(rstr_sha1(str2rstr_utf8(s))); }
  function any_sha1 (line 39) | function any_sha1(s, e) { return rstr2any(rstr_sha1(str2rstr_utf8(s)), e...
  function hex_hmac_sha1 (line 40) | function hex_hmac_sha1(k, d)
  function b64_hmac_sha1 (line 42) | function b64_hmac_sha1(k, d)
  function any_hmac_sha1 (line 44) | function any_hmac_sha1(k, d, e)
  function sha1_vm_test (line 50) | function sha1_vm_test()
  function rstr_sha1 (line 58) | function rstr_sha1(s)
  function rstr_hmac_sha1 (line 66) | function rstr_hmac_sha1(key, data)
  function rstr2hex (line 85) | function rstr2hex(input)
  function rstr2b64 (line 103) | function rstr2b64(input)
  function rstr2any (line 126) | function rstr2any(input, encoding)
  function str2rstr_utf8 (line 179) | function str2rstr_utf8(input)
  function str2rstr_utf16le (line 218) | function str2rstr_utf16le(input)
  function str2rstr_utf16be (line 227) | function str2rstr_utf16be(input)
  function rstr2binb (line 240) | function rstr2binb(input)
  function binb2rstr (line 253) | function binb2rstr(input)
  function binb_sha1 (line 264) | function binb_sha1(x, len)
  function sha1_ft (line 312) | function sha1_ft(t, b, c, d)
  function sha1_kt (line 323) | function sha1_kt(t)
  function safe_add (line 333) | function safe_add(x, y)
  function bit_rol (line 343) | function bit_rol(num, cnt)

FILE: ui/spice-html5/ticket.js
  function MGF1 (line 32) | function MGF1(mask, seed)
  function RSA_padding_add_PKCS1_OAEP (line 55) | function RSA_padding_add_PKCS1_OAEP(tolen, from, param)
  function asn_get_length (line 111) | function asn_get_length(u8, at)
  function find_sequence (line 127) | function find_sequence(u8, at)
  function create_rsa_from_mb (line 146) | function create_rsa_from_mb(mb, at)
  function rsa_encrypt (line 230) | function rsa_encrypt(rsa, str)

FILE: ui/spice-html5/utils.js
  function combine_array_buffers (line 34) | function combine_array_buffers(a1, a2)
  function hexdump_buffer (line 53) | function hexdump_buffer(a)
  function get_scancode (line 225) | function get_scancode(code)
  function keycode_to_start_scan (line 238) | function keycode_to_start_scan(code)
  function keycode_to_end_scan (line 254) | function keycode_to_end_scan(code)

FILE: ui/spice-html5/webm.js
  function EBML_write_u1_data_len (line 89) | function EBML_write_u1_data_len(len, dv, at)
  function EBML_write_u8_value (line 96) | function EBML_write_u8_value(id, val, dv, at)
  function EBML_write_u32_value (line 104) | function EBML_write_u32_value(id, val, dv, at)
  function EBML_write_u16_value (line 112) | function EBML_write_u16_value(id, val, dv, at)
  function EBML_write_float_value (line 120) | function EBML_write_float_value(id, val, dv, at)
  function EBML_write_u64_data_len (line 130) | function EBML_write_u64_data_len(len, dv, at)
  function EBML_write_array (line 144) | function EBML_write_array(arr, dv, at)
  function EBML_write_string (line 151) | function EBML_write_string(str, dv, at)
  function EBML_write_data (line 158) | function EBML_write_data(id, data, dv, at)
  function EBMLHeader (line 176) | function EBMLHeader()
  function webm_Segment (line 213) | function webm_Segment()
  function webm_SegmentInformation (line 235) | function webm_SegmentInformation()
  function webm_Audio (line 267) | function webm_Audio(frequency)
  function webm_Seek (line 298) | function webm_Seek(seekid, pos)
  function webm_SeekHead (line 326) | function webm_SeekHead(info_pos, track_pos)
  function webm_TrackEntry (line 359) | function webm_TrackEntry()
  function webm_Tracks (line 434) | function webm_Tracks(entry)
  function webm_Cluster (line 458) | function webm_Cluster(timecode, data)
  function webm_SimpleBlock (line 483) | function webm_SimpleBlock(timecode, data, keyframe)
  function webm_Header (line 518) | function webm_Header()

FILE: ui/spice-html5/wire.js
  function SpiceWireReader (line 27) | function SpiceWireReader(sc, callback)
  function wire_blob_catcher (line 118) | function wire_blob_catcher(e)

FILE: ui/spice-web-client/application/WorkerProcess.js
  function dispatch (line 49) | function dispatch(arr, useMessage) {
  function bytesToURI (line 110) | function bytesToURI(data, type) {
  function bytesToInt16 (line 138) | function bytesToInt16(bytes) {
  function bytesToInt32 (line 145) | function bytesToInt32(bytes) {
  function wdi_quic_QuicFamily (line 154) | function wdi_quic_QuicFamily() {
  function wdi_quic_s_bucket (line 163) | function wdi_quic_s_bucket() {
  function wdi_quic_CommonState (line 168) | function wdi_quic_CommonState() {
  function wdi_quic_FamilyStat (line 184) | function wdi_quic_FamilyStat() {
  function wdi_quic_Channel (line 190) | function wdi_quic_Channel() {
  function wdi_quic_Encoder (line 853) | function wdi_quic_Encoder(data) {
  function cnt_l_zeroes (line 964) | function cnt_l_zeroes(bits) {
  function golomb_code_len (line 985) | function golomb_code_len(n, l) {
  function golomb_decoding (line 993) | function golomb_decoding(l, bits, bppmask, notGRprefixmask, notGRcwlen, ...
  function real_update_model (line 1009) | function real_update_model(state, bucket, curval, bpp, wm_trigger) {
  function UPDATE_MODEL (line 1036) | function UPDATE_MODEL(index, encoder, bpp, correlate_row_r, correlate_ro...
  function find_bucket (line 1045) | function find_bucket(channel, val) {
  function QUIC_UNCOMPRESS_RGBA (line 1060) | function QUIC_UNCOMPRESS_RGBA(encoder, channels, bpc, type) {
  function quic_four_uncompress_row (line 1073) | function quic_four_uncompress_row(encoder, channel, bpc, type) {
  function uncompress_four_row_seg (line 1113) | function uncompress_four_row_seg(encoder, channel, i, end, bpc, bpc_mask...
  function quic_four_uncompress_row0 (line 1236) | function quic_four_uncompress_row0(encoder, channel, bpc, type) {
  function uncompress_four_row0_seg (line 1278) | function uncompress_four_row0_seg(encoder, channel, i, end, waitmask, bp...
  function SAME_PIXEL_A (line 1313) | function SAME_PIXEL_A(i, result) {
  function RLE_PRED_A (line 1320) | function RLE_PRED_A(i, encoder, run_index, width, rows_completed) {
  function UNCOMPRESS_ONE_0_A (line 1333) | function UNCOMPRESS_ONE_0_A(channel, encoder, bpc_mask, offset) {
  function UNCOMPRESS_ONE_A (line 1348) | function UNCOMPRESS_ONE_A(channel, i, bpc_mask, encoder, correlate_row, ...
  function UNCOMPRESS_ONE_ROW0_0_A (line 1362) | function UNCOMPRESS_ONE_ROW0_0_A(channel) {
  function UNCOMPRESS_ONE_ROW0_A (line 1372) | function UNCOMPRESS_ONE_ROW0_A(channel, i, bpc_mask, encoder, correlate_...
  function CORELATE_0_A (line 1382) | function CORELATE_0_A(encoder, channel, curr, bpc_mask, correlate_row) {
  function PIXEL_A_A (line 1386) | function PIXEL_A_A(encoder) {
  function QUIC_UNCOMPRESS_RGB (line 1398) | function QUIC_UNCOMPRESS_RGB(encoder, channels, bpc, type) {
  function quic_uncompress_row (line 1449) | function quic_uncompress_row(encoder, channels, bpc, type, rgb_state, co...
  function quic_uncompress_row_a (line 1562) | function quic_uncompress_row_a(encoder, channels, bpc, type, rgb_state) {
  function SAME_PIXEL_RGB_A (line 1602) | function SAME_PIXEL_RGB_A(i, result) {
  function SAME_PIXEL (line 1610) | function SAME_PIXEL(i, result) {
  function RLE_PRED_RGB_A (line 1618) | function RLE_PRED_RGB_A(i, encoder, offset, currentOffset, run_index) {
  function RLE_PRED (line 1630) | function RLE_PRED(i, encoder, offset, currentOffset, run_index) {
  function uncompress_row_seg (line 1642) | function uncompress_row_seg(encoder, i, end, bpc, bpc_mask, type, rgb_st...
  function uncompress_row_seg_a (line 2258) | function uncompress_row_seg_a(encoder, i, end, bpc, bpc_mask, type, rgb_...
  function quic_uncompress_row0 (line 2699) | function quic_uncompress_row0(encoder, channels, bpc, type) {
  function uncompress_row0_seg (line 2739) | function uncompress_row0_seg(encoder, i, end, waitmask, bpc, bpc_mask, t...
  function UNCOMPRESS_ONE_0 (line 2791) | function UNCOMPRESS_ONE_0(channel, encoder, bpc_mask, offset) {
  function UNCOMPRESS_ONE (line 2805) | function UNCOMPRESS_ONE(channel, i, i_1, i_4, bpc_mask, encoder, correla...
  function UNCOMPRESS_ONE_ROW0_0 (line 2822) | function UNCOMPRESS_ONE_ROW0_0(channel) {
  function UNCOMPRESS_ONE_ROW0 (line 2833) | function UNCOMPRESS_ONE_ROW0(channel, i, bpc_mask, encoder, correlate_ro...
  function CORELATE_0 (line 2843) | function CORELATE_0(encoder, channel, curr, bpc_mask, correlate_row, pre...
  function PIXEL_A (line 2847) | function PIXEL_A(encoder) {
  function PIXEL_B (line 2851) | function PIXEL_B(channel, encoder, pos, offset) {

FILE: ui/spice-web-client/lib/biginteger.js
  function BigInteger (line 97) | function BigInteger(n, s) {
  function expandExponential (line 333) | function expandExponential(str) {
  function addOne (line 610) | function addOne(n, sign) {
  function subtractOne (line 628) | function subtractOne(n, sign) {
  function makeUnary (line 1574) | function makeUnary(fn) {
  function makeBinary (line 1580) | function makeBinary(fn) {
  function makeTrinary (line 1586) | function makeTrinary(fn) {

FILE: ui/spice-web-client/lib/bowser.js
  function detect (line 29) | function detect(ua) {

FILE: ui/spice-web-client/lib/encrypt.js
  function pack (line 3) | function pack(source)
  function char2hex (line 20) | function char2hex(source)
  function xor (line 58) | function xor(a, b)
  function mgf1 (line 90) | function mgf1(mgfSeed, maskLen)
  function rsa_oaep_encrypt (line 115) | function rsa_oaep_encrypt(message, n, e) {
  function RSA_public_encrypt (line 159) | function RSA_public_encrypt(password, pub_key) {

FILE: ui/spice-web-client/lib/graphic.js
  function callback (line 317) | function callback(data) {

FILE: ui/spice-web-client/lib/images/jsquic_family.js
  function golomb_code_len (line 1) | function golomb_code_len(n, l) {
  function golomb_decoding (line 9) | function golomb_decoding(l, bits, bppmask) {
  function real_update_model (line 24) | function real_update_model(state, bucket, curval, bpp) {
  function UPDATE_MODEL (line 51) | function UPDATE_MODEL(index, encoder, bpp, correlate_row_r, correlate_ro...
  function find_bucket (line 60) | function find_bucket(channel, val) {

FILE: ui/spice-web-client/lib/images/jsquic_rgba.js
  function QUIC_UNCOMPRESS_RGBA (line 1) | function QUIC_UNCOMPRESS_RGBA(encoder, channels, bpc, type) {
  function quic_four_uncompress_row (line 14) | function quic_four_uncompress_row(encoder, channel, bpc, type) {
  function uncompress_four_row_seg (line 54) | function uncompress_four_row_seg(encoder, channel, i, end, bpc, bpc_mask...
  function quic_four_uncompress_row0 (line 172) | function quic_four_uncompress_row0(encoder, channel, bpc, type) {
  function uncompress_four_row0_seg (line 214) | function uncompress_four_row0_seg(encoder, channel, i, end, waitmask, bp...
  function SAME_PIXEL_A (line 249) | function SAME_PIXEL_A(i, result) {
  function RLE_PRED_A (line 256) | function RLE_PRED_A(i, encoder, run_index, width, rows_completed) {
  function UNCOMPRESS_ONE_0_A (line 269) | function UNCOMPRESS_ONE_0_A(channel, encoder, bpc_mask, offset) {
  function UNCOMPRESS_ONE_A (line 284) | function UNCOMPRESS_ONE_A(channel, i, bpc_mask, encoder, correlate_row, ...
  function UNCOMPRESS_ONE_ROW0_0_A (line 298) | function UNCOMPRESS_ONE_ROW0_0_A(channel) {
  function UNCOMPRESS_ONE_ROW0_A (line 308) | function UNCOMPRESS_ONE_ROW0_A(channel, i, bpc_mask, encoder, correlate_...
  function CORELATE_0_A (line 318) | function CORELATE_0_A(encoder, channel, curr, bpc_mask, correlate_row) {
  function PIXEL_A_A (line 322) | function PIXEL_A_A(encoder) {

FILE: ui/spice-web-client/lib/images/jsquic_uncompress.js
  function QUIC_UNCOMPRESS_RGB (line 1) | function QUIC_UNCOMPRESS_RGB(encoder, channels, bpc, type) {
  function quic_uncompress_row (line 13) | function quic_uncompress_row(encoder, channels, bpc, type, rgb_state) {
  function SAME_PIXEL (line 53) | function SAME_PIXEL(i, result) {
  function RLE_PRED (line 61) | function RLE_PRED(i, encoder, offset, currentOffset, run_index) {
  function uncompress_row_seg (line 73) | function uncompress_row_seg(encoder, i, end, bpc, bpc_mask, type, rgb_st...
  function quic_uncompress_row0 (line 355) | function quic_uncompress_row0(encoder, channels, bpc, type) {
  function uncompress_row0_seg (line 395) | function uncompress_row0_seg(encoder, i, end, waitmask, bpc, bpc_mask, t...
  function UNCOMPRESS_ONE_0 (line 447) | function UNCOMPRESS_ONE_0(channel, encoder, bpc_mask, offset) {
  function UNCOMPRESS_ONE (line 461) | function UNCOMPRESS_ONE(channel, i, i_1, i_4, bpc_mask, encoder, correla...
  function UNCOMPRESS_ONE_ROW0_0 (line 480) | function UNCOMPRESS_ONE_ROW0_0(channel) {
  function UNCOMPRESS_ONE_ROW0 (line 491) | function UNCOMPRESS_ONE_ROW0(channel, i, bpc_mask, encoder, correlate_ro...
  function CORELATE_0 (line 501) | function CORELATE_0(encoder, channel, curr, bpc_mask, correlate_row, pre...
  function PIXEL_A (line 505) | function PIXEL_A(encoder) {
  function PIXEL_B (line 509) | function PIXEL_B(channel, encoder, pos, offset) {

FILE: ui/spice-web-client/lib/images/png.js
  function rfc2083_make_crc_table (line 28) | function rfc2083_make_crc_table()
  function rfc2083_update_crc (line 53) | function rfc2083_update_crc(crc, u8buf, at, len)
  function rfc2083_crc (line 69) | function rfc2083_crc(u8buf, at, len)
  function crc32 (line 74) | function crc32(mb, at, len)
  function PngIHDR (line 80) | function PngIHDR(width, height)
  function adler (line 120) | function adler()
  function PngIDAT (line 134) | function PngIDAT(width, height, bytes)
  function PngIEND (line 205) | function PngIEND()
  function create_rgba_png (line 232) | function create_rgba_png(width, height, bytes)

FILE: ui/spice-web-client/lib/jquery-2.0.3.js
  function isArraylike (line 848) | function isArraylike( obj ) {
  function Sizzle (line 1048) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 1163) | function createCache() {
  function markFunction (line 1181) | function markFunction( fn ) {
  function assert (line 1190) | function assert( fn ) {
  function addHandle (line 1212) | function addHandle( attrs, handler ) {
  function siblingCheck (line 1227) | function siblingCheck( a, b ) {
  function createInputPseudo (line 1254) | function createInputPseudo( type ) {
  function createButtonPseudo (line 1265) | function createButtonPseudo( type ) {
  function createPositionalPseudo (line 1276) | function createPositionalPseudo( fn ) {
  function setFilters (line 2259) | function setFilters() {}
  function tokenize (line 2263) | function tokenize( selector, parseOnly ) {
  function toSelector (line 2330) | function toSelector( tokens ) {
  function addCombinator (line 2340) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2390) | function elementMatcher( matchers ) {
  function condense (line 2404) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2425) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2518) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2573) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function multipleContexts (line 2701) | function multipleContexts( selector, contexts, results ) {
  function select (line 2710) | function select( selector, context, results, seed ) {
  function createOptions (line 2850) | function createOptions( options ) {
  function Data (line 3312) | function Data() {
  function dataAttr (line 3625) | function dataAttr( elem, key, data ) {
  function returnTrue (line 4305) | function returnTrue() {
  function returnFalse (line 4309) | function returnFalse() {
  function safeActiveElement (line 4313) | function safeActiveElement() {
  function sibling (line 5268) | function sibling( cur, dir ) {
  function winnow (line 5384) | function winnow( elements, qualifier, not ) {
  function manipulationTarget (line 5893) | function manipulationTarget( elem, content ) {
  function disableScript (line 5903) | function disableScript( elem ) {
  function restoreScript (line 5907) | function restoreScript( elem ) {
  function setGlobalEval (line 5920) | function setGlobalEval( elems, refElements ) {
  function cloneCopyEvent (line 5931) | function cloneCopyEvent( src, dest ) {
  function getAll (line 5966) | function getAll( context, tag ) {
  function fixInput (line 5977) | function fixInput( src, dest ) {
  function vendorPropName (line 6078) | function vendorPropName( style, name ) {
  function isHidden (line 6100) | function isHidden( elem, el ) {
  function getStyles (line 6109) | function getStyles( elem ) {
  function showHide (line 6113) | function showHide( elements, show ) {
  function setPositiveNumber (line 6384) | function setPositiveNumber( elem, value, subtract ) {
  function augmentWidthOrHeight (line 6392) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  function getWidthOrHeight (line 6431) | function getWidthOrHeight( elem, name, extra ) {
  function css_defaultDisplay (line 6475) | function css_defaultDisplay( nodeName ) {
  function actualDisplay (line 6507) | function actualDisplay( name, doc ) {
  function buildParams (line 6693) | function buildParams( prefix, obj, traditional, add ) {
  function addToPrefiltersOrTransports (line 6809) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 6841) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 6868) | function ajaxExtend( target, src ) {
  function done (line 7314) | function done( status, nativeStatusText, responses, headers ) {
  function ajaxHandleResponses (line 7461) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 7517) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function createFxNow (line 7912) | function createFxNow() {
  function createTween (line 7919) | function createTween( value, prop, animation ) {
  function Animation (line 7933) | function Animation( elem, properties, options ) {
  function propFilter (line 8037) | function propFilter( props, specialEasing ) {
  function defaultPrefilter (line 8104) | function defaultPrefilter( elem, props, opts ) {
  function Tween (line 8227) | function Tween( elem, options, prop, end, easing ) {
  function genFx (line 8451) | function genFx( type, includeWidth ) {
  function getWindow (line 8749) | function getWindow( elem ) {

FILE: ui/spice-web-client/lib/jquery-mousewheel.js
  function handler (line 56) | function handler(event) {

FILE: ui/spice-web-client/lib/jsbn.js
  function encryptionBigInteger (line 15) | function encryptionBigInteger(a,b,c) {
  function nbi (line 23) | function nbi() { return new encryptionBigInteger(null); }
  function am1 (line 33) | function am1(i,x,w,j,c,n) {
  function am2 (line 44) | function am2(i,x,w,j,c,n) {
  function am3 (line 58) | function am3(i,x,w,j,c,n) {
  function int2char (line 103) | function int2char(n) { return BI_RM.charAt(n); }
  function intAt (line 104) | function intAt(s,i) {
  function bnpCopyTo (line 110) | function bnpCopyTo(r) {
  function bnpFromInt (line 117) | function bnpFromInt(x) {
  function nbv (line 126) | function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
  function bnpFromString (line 129) | function bnpFromString(s,b) {
  function bnpClamp (line 168) | function bnpClamp() {
  function bnToString (line 174) | function bnToString(b) {
  function bnNegate (line 204) | function bnNegate() { var r = nbi(); encryptionBigInteger.ZERO.subTo(thi...
  function bnAbs (line 207) | function bnAbs() { return (this.s<0)?this.negate():this; }
  function bnCompareTo (line 210) | function bnCompareTo(a) {
  function nbits (line 221) | function nbits(x) {
  function bnBitLength (line 232) | function bnBitLength() {
  function bnpDLShiftTo (line 238) | function bnpDLShiftTo(n,r) {
  function bnpDRShiftTo (line 247) | function bnpDRShiftTo(n,r) {
  function bnpLShiftTo (line 254) | function bnpLShiftTo(n,r) {
  function bnpRShiftTo (line 271) | function bnpRShiftTo(n,r) {
  function bnpSubTo (line 289) | function bnpSubTo(a,r) {
  function bnpMultiplyTo (line 323) | function bnpMultiplyTo(a,r) {
  function bnpSquareTo (line 335) | function bnpSquareTo(r) {
  function bnpDivRemTo (line 353) | function bnpDivRemTo(m,q,r) {
  function bnMod (line 401) | function bnMod(a) {
  function Classic (line 409) | function Classic(m) { this.m = m; }
  function cConvert (line 410) | function cConvert(x) {
  function cRevert (line 414) | function cRevert(x) { return x; }
  function cReduce (line 415) | function cReduce(x) { x.divRemTo(this.m,null,x); }
  function cMulTo (line 416) | function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
  function cSqrTo (line 417) | function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
  function bnpInvDigit (line 435) | function bnpInvDigit() {
  function Montgomery (line 451) | function Montgomery(m) {
  function montConvert (line 461) | function montConvert(x) {
  function montRevert (line 470) | function montRevert(x) {
  function montReduce (line 478) | function montReduce(x) {
  function montSqrTo (line 497) | function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
  function montMulTo (line 500) | function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
  function bnpIsEven (line 509) | function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
  function bnpExp (line 512) | function bnpExp(e,z) {
  function bnModPowInt (line 525) | function bnModPowInt(e,m) {

FILE: ui/spice-web-client/lib/jsbn2.js
  function bnClone (line 11) | function bnClone() { var r = nbi(); this.copyTo(r); return r; }
  function bnIntValue (line 14) | function bnIntValue() {
  function bnByteValue (line 26) | function bnByteValue() { return (this.t==0)?this.s:(this[0]<<24)>>24; }
  function bnShortValue (line 29) | function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; }
  function bnpChunkSize (line 32) | function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r...
  function bnSigNum (line 35) | function bnSigNum() {
  function bnpToRadix (line 42) | function bnpToRadix(b) {
  function bnpFromRadix (line 57) | function bnpFromRadix(s,b) {
  function bnpFromNumber (line 84) | function bnpFromNumber(a,b,c) {
  function bnToByteArray (line 110) | function bnToByteArray() {
  function bnEquals (line 134) | function bnEquals(a) { return(this.compareTo(a)==0); }
  function bnMin (line 135) | function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
  function bnMax (line 136) | function bnMax(a) { return(this.compareTo(a)>0)?this:a; }
  function bnpBitwiseTo (line 139) | function bnpBitwiseTo(a,op,r) {
  function op_and (line 157) | function op_and(x,y) { return x&y; }
  function bnAnd (line 158) | function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }
  function op_or (line 161) | function op_or(x,y) { return x|y; }
  function bnOr (line 162) | function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }
  function op_xor (line 165) | function op_xor(x,y) { return x^y; }
  function bnXor (line 166) | function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }
  function op_andnot (line 169) | function op_andnot(x,y) { return x&~y; }
  function bnAndNot (line 170) | function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); ret...
  function bnNot (line 173) | function bnNot() {
  function bnShiftLeft (line 182) | function bnShiftLeft(n) {
  function bnShiftRight (line 189) | function bnShiftRight(n) {
  function lbit (line 196) | function lbit(x) {
  function bnGetLowestSetBit (line 208) | function bnGetLowestSetBit() {
  function cbit (line 216) | function cbit(x) {
  function bnBitCount (line 223) | function bnBitCount() {
  function bnTestBit (line 230) | function bnTestBit(n) {
  function bnpChangeBit (line 237) | function bnpChangeBit(n,op) {
  function bnSetBit (line 244) | function bnSetBit(n) { return this.changeBit(n,op_or); }
  function bnClearBit (line 247) | function bnClearBit(n) { return this.changeBit(n,op_andnot); }
  function bnFlipBit (line 250) | function bnFlipBit(n) { return this.changeBit(n,op_xor); }
  function bnpAddTo (line 253) | function bnpAddTo(a,r) {
  function bnAdd (line 286) | function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }
  function bnSubtract (line 289) | function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }
  function bnMultiply (line 292) | function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }
  function bnSquare (line 295) | function bnSquare() { var r = nbi(); this.squareTo(r); return r; }
  function bnDivide (line 298) | function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }
  function bnRemainder (line 301) | function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return...
  function bnDivideAndRemainder (line 304) | function bnDivideAndRemainder(a) {
  function bnpDMultiply (line 311) | function bnpDMultiply(n) {
  function bnpDAddOffset (line 318) | function bnpDAddOffset(n,w) {
  function NullExp (line 330) | function NullExp() {}
  function nNop (line 331) | function nNop(x) { return x; }
  function nMulTo (line 332) | function nMulTo(x,y,r) { x.multiplyTo(y,r); }
  function nSqrTo (line 333) | function nSqrTo(x,r) { x.squareTo(r); }
  function bnPow (line 341) | function bnPow(e) { return this.exp(e,new NullExp()); }
  function bnpMultiplyLowerTo (line 345) | function bnpMultiplyLowerTo(a,n,r) {
  function bnpMultiplyUpperTo (line 358) | function bnpMultiplyUpperTo(a,n,r) {
  function Barrett (line 370) | function Barrett(m) {
  function barrettConvert (line 379) | function barrettConvert(x) {
  function barrettRevert (line 385) | function barrettRevert(x) { return x; }
  function barrettReduce (line 388) | function barrettReduce(x) {
  function barrettSqrTo (line 399) | function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
  function barrettMulTo (line 402) | function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
  function bnModPow (line 411) | function bnModPow(e,m) {
  function bnGCD (line 470) | function bnGCD(a) {
  function bnpModInt (line 498) | function bnpModInt(n) {
  function bnModInverse (line 508) | function bnModInverse(m) {
  function bnIsProbablePrime (line 553) | function bnIsProbablePrime(t) {
  function bnpMillerRabin (line 572) | function bnpMillerRabin(t) {

FILE: ui/spice-web-client/lib/modernizr.js
  function z (line 4) | function z(a){j.cssText=a}
  function A (line 4) | function A(a,b){return z(m.join(a+";")+(b||""))}
  function B (line 4) | function B(a,b){return typeof a===b}
  function C (line 4) | function C(a,b){return!!~(""+a).indexOf(b)}
  function D (line 4) | function D(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a...
  function k (line 4) | function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("hea...
  function l (line 4) | function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}
  function m (line 4) | function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}
  function n (line 4) | function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));va...
  function o (line 4) | function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a...
  function p (line 4) | function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.crea...
  function q (line 4) | function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.ha...
  function d (line 4) | function d(a){return o.call(a)=="[object Function]"}
  function e (line 4) | function e(a){return typeof a=="string"}
  function f (line 4) | function f(){}
  function g (line 4) | function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}
  function h (line 4) | function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCs...
  function i (line 4) | function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1...
  function j (line 4) | function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++...
  function k (line 4) | function k(){var a=B;return a.loader={load:j,i:0},a}
  function b (line 4) | function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:...
  function g (line 4) | function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop()...
  function i (line 4) | function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[]....

FILE: ui/spice-web-client/lib/pixastic.js
  function addEvent (line 10) | function addEvent(el, event, handler) {
  function onready (line 17) | function onready(handler) {
  function init (line 38) | function init() {
  function getElementsByClass (line 96) | function getElementsByClass(searchClass,node,tag) {
  function writeDebug (line 117) | function writeDebug(text, level) {

FILE: ui/spice-web-client/lib/prng4.js
  function Arcfour (line 3) | function Arcfour() {
  function ARC4init (line 10) | function ARC4init(key) {
  function ARC4next (line 25) | function ARC4next() {
  function prng_newstate (line 39) | function prng_newstate() {

FILE: ui/spice-web-client/lib/rng.js
  function rng_seed_int (line 12) | function rng_seed_int(x) {
  function rng_seed_time (line 21) | function rng_seed_time() {
  function rng_get_byte (line 47) | function rng_get_byte() {
  function rng_get_bytes (line 61) | function rng_get_bytes(ba) {
  function SecureRandom (line 66) | function SecureRandom() {}

FILE: ui/spice-web-client/lib/sha1.js
  function sha1Hash (line 5) | function sha1Hash(msg)
  function f (line 76) | function f(s, x, y, z)
  function ROTL (line 89) | function ROTL(x, n)

FILE: ui/spice-web-client/run.js
  function getURLParameter (line 32) | function getURLParameter (name) {
  function start (line 48) | function start () {
  function startBenchmark (line 243) | function startBenchmark () {
  function closeIntegrationBenchmark (line 251) | function closeIntegrationBenchmark () {

FILE: ui/spice-web-client/unittest/application.test.js
  function testObjectFiringEventCallsExternalCallbackWithError (line 71) | function testObjectFiringEventCallsExternalCallbackWithError(self, objec...

FILE: ui/spice-web-client/unittest/busconnection.test.js
  function getConfigWithNumberOfBusClusterNodes (line 38) | function getConfigWithNumberOfBusClusterNodes(config, numberOfBusNodes) {
  function getConfigWithBusHostAndBusPort (line 51) | function getConfigWithBusHostAndBusPort(config) {

FILE: ui/spice-web-client/unittest/clientgui.test.js
  function execute (line 105) | function execute () {

FILE: ui/spice-web-client/unittest/clusternodechooser.test.js
  function addListWithNumberOfNodesToSut (line 9) | function addListWithNumberOfNodesToSut(sut, n) {

FILE: ui/spice-web-client/unittest/graphic.test.js
  function testCheckingImageUncompressorIsCalled (line 27) | function testCheckingImageUncompressorIsCalled (method, self) {
  function testFunctionsReturnsImageData (line 50) | function testFunctionsReturnsImageData(method, self) {
  function testFlip (line 84) | function testFlip (self, processResult) {

FILE: ui/spice-web-client/unittest/imageuncompressor.test.js
  function stubDemarshall (line 64) | function stubDemarshall(self) {
  function stubSyncAsync (line 72) | function stubSyncAsync(self) {
  function quicTestOpaque (line 128) | function quicTestOpaque (opaque, self) {

FILE: ui/spice-web-client/unittest/socket.test.js
  function execute (line 32) | function execute () {

FILE: ui/spice-web-client/unittest/stuckkeyshandler.test.js
  function getExpectedEvent (line 11) | function getExpectedEvent (keycode) {
  function getFakeJqueryEvent (line 21) | function getFakeJqueryEvent (type, keycode) {
  function getFunctionToTestHandleStuckKeysWhenPressing (line 28) | function getFunctionToTestHandleStuckKeysWhenPressing (keyCode) {
  function getFunctionToTestHandleStuckKeysWhenReleasing (line 47) | function getFunctionToTestHandleStuckKeysWhenReleasing (keyCode) {
  function execute (line 97) | function execute (event, keyCode) {
  function createKeyupEvent (line 133) | function createKeyupEvent (keyCode) {

FILE: ui/spice-web-client/unittest/tests.js
  function fakeWorkerProcess (line 14) | function fakeWorkerProcess() {

FILE: utils.py
  function _uri_to_name (line 43) | def _uri_to_name(collection, uri):
  function template_name_from_uri (line 51) | def template_name_from_uri(uri):
  function pool_name_from_uri (line 55) | def pool_name_from_uri(uri):
  function check_url_path (line 59) | def check_url_path(path, redirected=0):
  function upgrade_objectstore_data (line 92) | def upgrade_objectstore_data(item, old_uri, new_uri):
  function upgrade_objectstore_template_disks (line 127) | def upgrade_objectstore_template_disks(libv_conn):
  function upgrade_objectstore_memory (line 171) | def upgrade_objectstore_memory():
  function get_next_clone_name (line 215) | def get_next_clone_name(all_names, basename, name_suffix='', ts=False):
  function is_libvirtd_up (line 264) | def is_libvirtd_up():
  function is_s390x (line 279) | def is_s390x():
  function create_disk_image (line 290) | def create_disk_image(format_type, path, capacity):

FILE: vmtemplate.py
  class VMTemplate (line 49) | class VMTemplate(object):
    method __init__ (line 50) | def __init__(self, args, scan=False, netboot=False):
    method _get_os_info (line 182) | def _get_os_info(self, args, scan):
    method _gen_name (line 213) | def _gen_name(self, distro, version):
    method get_iso_info (line 220) | def get_iso_info(self, iso):
    method _get_cdrom_xml (line 230) | def _get_cdrom_xml(self, libvirt_stream_protocols):
    method _get_disks_xml (line 259) | def _get_disks_xml(self, vm_uuid):
    method to_volume_list (line 302) | def to_volume_list(self, vm_uuid):
    method _get_networks_xml (line 362) | def _get_networks_xml(self):
    method _get_interfaces_xml (line 378) | def _get_interfaces_xml(self):
    method _get_usb_controller (line 399) | def _get_usb_controller(self):
    method _get_input_output_xml (line 406) | def _get_input_output_xml(self):
    method _get_cpu_xml (line 441) | def _get_cpu_xml(self):
    method to_vm_xml (line 446) | def to_vm_xml(self, vm_name, vm_uuid, **kwargs):
    method validate (line 564) | def validate(self):
    method cpuinfo_validate (line 574) | def cpuinfo_validate(self):
    method _iso_validate (line 577) | def _iso_validate(self):
    method _network_validate (line 580) | def _network_validate(self):
    method _get_storage_pool (line 583) | def _get_storage_pool(self):
    method fork_vm_storage (line 586) | def fork_vm_storage(self, vm_uuid):
    method _get_storage_path (line 589) | def _get_storage_path(self, pool_uri=None):
    method _get_storage_type (line 592) | def _get_storage_type(self, pool=None):
    method _get_volume_path (line 595) | def _get_volume_path(self):
    method _get_all_networks_name (line 598) | def _get_all_networks_name(self):
    method _get_all_storagepools_name (line 601) | def _get_all_storagepools_name(self):
    method _get_active_storagepools_name (line 604) | def _get_active_storagepools_name(self):
    method validate_integrity (line 607) | def validate_integrity(self):

FILE: xmlutils/bootorder.py
  function get_bootorder_node (line 23) | def get_bootorder_node(boot_order=None):
  function get_bootorder_xml (line 34) | def get_bootorder_xml(boot_order=None):
  function get_bootmenu_node (line 51) | def get_bootmenu_node():

FILE: xmlutils/cpu.py
  function get_numa_xml (line 24) | def get_numa_xml(cpus, memory):
  function get_topology_xml (line 38) | def get_topology_xml(cpu_topo):
  function get_cpu_xml (line 48) | def get_cpu_xml(cpus, memory, cpu_topo=None):

FILE: xmlutils/disk.py
  function get_disk_xml (line 38) | def get_disk_xml(params):
  function _get_disk_type (line 124) | def _get_disk_type(path):
  function get_device_node (line 142) | def get_device_node(dom, dev_name):
  function get_vm_disk_info (line 156) | def get_vm_disk_info(dom, dev_name):
  function get_vm_disks (line 190) | def get_vm_disks(dom):

FILE: xmlutils/graphics.py
  function get_graphics_xml (line 23) | def get_graphics_xml(params):

FILE: xmlutils/interface.py
  function get_iface_xml (line 24) | def get_iface_xml(params, arch=None, os_distro=None, os_version=None):
  function get_iface_network_xml (line 33) | def get_iface_network_xml(params, arch=None, os_distro=None, os_version=...
  function get_iface_macvtap_xml (line 74) | def get_iface_macvtap_xml(params, arch=None):
  function get_iface_ovs_xml (line 103) | def get_iface_ovs_xml(params, arch=None):

FILE: xmlutils/network.py
  function _get_dhcp_elem (line 26) | def _get_dhcp_elem(**kwargs):
  function _get_ip_elem (line 48) | def _get_ip_elem(**kwargs):
  function _get_forward_elem (line 70) | def _get_forward_elem(**kwargs):
  function to_network_xml (line 99) | def to_network_xml(**kwargs):
  function create_vlan_tagged_bridge_xml (line 122) | def create_vlan_tagged_bridge_xml(bridge, interface, vlan_id):
  function create_linux_bridge_xml (line 135) | def create_linux_bridge_xml(bridge, interface, iface_xml):
  function get_no_network_config_xml (line 151) | def get_no_network_config_xml(iface_xml):

FILE: xmlutils/qemucmdline.py
  function get_qemucmdline_xml (line 25) | def get_qemucmdline_xml(args):

FILE: xmlutils/serial.py
  function get_serial_xml (line 23) | def get_serial_xml(params):

FILE: xmlutils/usb.py
  function get_usb_controller_xml (line 23) | def get_usb_controller_xml(model):
Copy disabled (too large) Download .json
Condensed preview — 491 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (13,464K chars).
[
  {
    "path": ".flake8",
    "chars": 130,
    "preview": "[flake8]\nignore = E203, E266, E501, W503, W504, E741, C901\nmax-line-length = 88\nmax-complexity = 18\nselect = B,C,E,F,W,T"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 699,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the b"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 595,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your fea"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 1265,
    "preview": "# Pull Request Template\n\n## Description\n\nPlease, include a summary of the patch and why it should be accepted.\nLink it t"
  },
  {
    "path": ".github/scripts/setup_instance.sh",
    "chars": 1612,
    "preview": "#!/bin/bash\n\nset -euxo pipefail\n\nDISKS=\"gcloud compute disks\"\nIMAGES=\"gcloud compute images\"\nINSTANCES=\"gcloud compute i"
  },
  {
    "path": ".github/scripts/setup_kimchi_ubuntu.sh",
    "chars": 623,
    "preview": "#!/bin/bash\n\nset -euxo pipefail\n\nfunction get_deps() {\n    echo $(python3 -c \"import yaml;print(' '.join(yaml.load(open("
  },
  {
    "path": ".github/workflows/CI.yml",
    "chars": 1987,
    "preview": "name: kimchi-CI\non: [\"push\"]\n\nenv:\n  VM_NAME: ubuntu-${{ github.sha }}\n  ZONE: us-central1-a\n  PROJECT_ID: ${{ secrets.G"
  },
  {
    "path": ".gitignore",
    "chars": 533,
    "preview": "*.pyc\n*~\n*.list\ni18n/mo/*\nlog\ndata\nmo\nautom4te.cache\nMakefile\nMakefile.in\naclocal.m4\nm4/pkg.m4\nbuild-aux/compile\nbuild-a"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 910,
    "preview": "# Pre-commit git hooks, run locally before every commit\n# Init with\n# $ pip install -r requirements-dev.txt\n# $ pre-comm"
  },
  {
    "path": "ABOUT-NLS",
    "chars": 93786,
    "preview": "1 Notes on the Free Translation Project\n***************************************\n\nFree software is going international!  "
  },
  {
    "path": "API.json",
    "chars": 38671,
    "preview": "{\n    \"$schema\": \"http://json-schema.org/draft-03/schema#\",\n    \"title\": \"Kimchi API\",\n    \"description\": \"Json schema f"
  },
  {
    "path": "AUTHORS",
    "chars": 2291,
    "preview": "Adam King <rak@linux.vnet.ibm.com>\nAdam Litke <adam.litke@gmail.com>\nAdam <rak@linux.vnet.ibm.com>\nAdriano Botega <abote"
  },
  {
    "path": "CONTRIBUTE.md",
    "chars": 653,
    "preview": "How to Contribute\n=================\n\nAll development discussion happens on the mailing list.  All development is done\nus"
  },
  {
    "path": "COPYING",
    "chars": 1246,
    "preview": "Kimchi is distributed pursuant to the terms of two different licenses.\n\nThe user interface (located in ui/ in this distr"
  },
  {
    "path": "COPYING.ASL2",
    "chars": 11358,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "COPYING.LGPL",
    "chars": 26530,
    "preview": "                  GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 2.1, February 1999\n\n Copyright (C) 19"
  },
  {
    "path": "ChangeLog",
    "chars": 320471,
    "preview": "CHANGELOG\n=========\n\n#### [3.0.0] ####\n * [a6574995] Update remote ISOs URLs                                            "
  },
  {
    "path": "INSTALL",
    "chars": 15743,
    "preview": "Installation Instructions\n*************************\n\nCopyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundat"
  },
  {
    "path": "Makefile.am",
    "chars": 6992,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "VERSION",
    "chars": 6,
    "preview": "3.0.0\n"
  },
  {
    "path": "__init__.py",
    "chars": 844,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "autogen.sh",
    "chars": 1183,
    "preview": "#!/bin/bash\n\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribut"
  },
  {
    "path": "build-aux/config.rpath",
    "chars": 18442,
    "preview": "#! /bin/sh\n# Output a system dependent set of variables, describing how to set the\n# run time search path of shared libr"
  },
  {
    "path": "build-aux/genChangelog",
    "chars": 772,
    "preview": "#!/bin/bash\n\n# This script is based on code from the Kandan project:\n# https://github.com/kandanapp/kandan/blob/master/g"
  },
  {
    "path": "build-aux/generateDepsFiles.py",
    "chars": 1644,
    "preview": "#!/usr/bin/env python3\nimport os\nimport sys\n\nimport yaml\n\nDOC_HEADER = \"\"\"# File auto-generated on build process. Do not"
  },
  {
    "path": "build-aux/pkg-version",
    "chars": 1981,
    "preview": "#!/bin/sh\n#\n# Copyright 2008-2012 Red Hat, Inc.\n#\n# This program is free software; you can redistribute it and/or modify"
  },
  {
    "path": "build_packages.py",
    "chars": 7570,
    "preview": "import argparse\nimport yaml\nimport shutil\nimport sys\nimport subprocess\nfrom subprocess import check_call, check_output, "
  },
  {
    "path": "check_spec_errors.sh",
    "chars": 1143,
    "preview": "#!/bin/bash\n\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2016\n#\n# Code derived from Wok Project\n#\n# This library is free "
  },
  {
    "path": "check_ui_code_errors.sh",
    "chars": 1183,
    "preview": "#!/bin/bash\n\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribut"
  },
  {
    "path": "config.py.in",
    "chars": 6664,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "config.rpath",
    "chars": 18442,
    "preview": "#! /bin/sh\n# Output a system dependent set of variables, describing how to set the\n# run time search path of shared libr"
  },
  {
    "path": "configure.ac",
    "chars": 5079,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "contrib/DEBIAN/Makefile.am",
    "chars": 784,
    "preview": "# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify it under the "
  },
  {
    "path": "contrib/DEBIAN/control.in",
    "chars": 202,
    "preview": "Package: @PACKAGE_NAME@\nVersion: @PACKAGE_VERSION@\nSection: base\nPriority: optional\nArchitecture: all\n@UBUNTU_DEPS@\nMain"
  },
  {
    "path": "contrib/Makefile.am",
    "chars": 1273,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2015\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "contrib/check_i18n.py",
    "chars": 2805,
    "preview": "#!/usr/bin/env python3\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2014-2016\n#\n# This library is free software; you can r"
  },
  {
    "path": "contrib/kimchi.spec.fedora.in",
    "chars": 1429,
    "preview": "Name:\t\tkimchi\nVersion:\t@PACKAGE_VERSION@\nRelease:\t@PACKAGE_RELEASE@%{?dist}\nSummary:\tKimchi server application\nBuildRoot"
  },
  {
    "path": "contrib/kimchi.spec.suse.in",
    "chars": 1376,
    "preview": "Name:\t\tkimchi\nVersion:\t@PACKAGE_VERSION@\nRelease:\t@PACKAGE_RELEASE@%{?dist}\nSummary:\tKimchi server application\nBuildRoot"
  },
  {
    "path": "contrib/kimchid.service.debian",
    "chars": 120,
    "preview": "[Unit]\nRequires=wokd.service\nWants=libvirtd.service\nAfter=libvirtd.service wokd.service\n\n[Service]\nNice=0\nPrivateTmp=no\n"
  },
  {
    "path": "contrib/kimchid.service.fedora",
    "chars": 120,
    "preview": "[Unit]\nRequires=wokd.service\nWants=libvirtd.service\nAfter=libvirtd.service wokd.service\n\n[Service]\nNice=0\nPrivateTmp=no\n"
  },
  {
    "path": "contrib/make-deb.sh.in",
    "chars": 1011,
    "preview": "#!/bin/bash\n\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribut"
  },
  {
    "path": "control/Makefile.am",
    "chars": 923,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "control/__init__.py",
    "chars": 910,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/cpuinfo.py",
    "chars": 1295,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/groups.py",
    "chars": 1006,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/host.py",
    "chars": 4133,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/interfaces.py",
    "chars": 1373,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/networks.py",
    "chars": 2517,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/ovsbridges.py",
    "chars": 1013,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2016\n#\n# This library is free software; you can redistribute it and/or\n# modi"
  },
  {
    "path": "control/storagepools.py",
    "chars": 4559,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/storageservers.py",
    "chars": 2061,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/storagevolumes.py",
    "chars": 3754,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/templates.py",
    "chars": 2640,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/users.py",
    "chars": 1360,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/vm/Makefile.am",
    "chars": 898,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "control/vm/__init__.py",
    "chars": 910,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/vm/hostdevs.py",
    "chars": 2017,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/vm/ifaces.py",
    "chars": 2046,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/vm/snapshots.py",
    "chars": 2471,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/vm/storages.py",
    "chars": 2096,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "control/vms.py",
    "chars": 4140,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "dependencies.yaml",
    "chars": 1679,
    "preview": "development-deps:\n  common:\n    - gcc\n    - make\n    - autoconf\n    - automake\n    - git\n    - python3-pip\n    - python3"
  },
  {
    "path": "disks.py",
    "chars": 10293,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# Code derived from Ginger Base project\n#\n# This library is free "
  },
  {
    "path": "distroloader.py",
    "chars": 2356,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "distros.d/Makefile.am",
    "chars": 849,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "distros.d/debian.json",
    "chars": 239,
    "preview": "[\n    {\n        \"name\": \"Debian 10\",\n        \"os_distro\": \"debian\",\n        \"os_arch\": \"x86_64\",\n        \"os_version\": \""
  },
  {
    "path": "distros.d/fedora.json",
    "chars": 527,
    "preview": "[\n    {\n        \"name\": \"Fedora 30\",\n        \"os_distro\": \"fedora\",\n        \"os_arch\": \"x86_64\",\n        \"os_version\": \""
  },
  {
    "path": "distros.d/gentoo.json",
    "chars": 274,
    "preview": "[\n    {\n        \"name\": \"gentoo-20140826\",\n        \"os_distro\": \"gentoo\",\n        \"os_arch\": \"x86_64\",\n        \"os_versi"
  },
  {
    "path": "distros.d/opensuse.json",
    "chars": 255,
    "preview": "[\n    {\n        \"name\": \"OpenSUSE LEAP 15.1\",\n        \"os_distro\": \"opensuse\",\n        \"os_arch\": \"x86_64\",\n        \"os_"
  },
  {
    "path": "distros.d/ubuntu.json",
    "chars": 441,
    "preview": "[\n    {\n        \"name\": \"Ubuntu 19.04\",\n        \"os_distro\": \"ubuntu\",\n        \"os_arch\": \"x86_64\",\n        \"os_version\""
  },
  {
    "path": "docs/API.md",
    "chars": 51905,
    "preview": "## Project Kimchi REST API Specification\n\nThe Kimchi API provides all functionality to the application and may be used\nd"
  },
  {
    "path": "docs/CI.md",
    "chars": 1645,
    "preview": "# How to setup Kimchi CI\n\nDue to nested virtualization requirements, most of CI tools does not offer the minimum require"
  },
  {
    "path": "docs/Makefile.am",
    "chars": 1757,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "docs/README.md",
    "chars": 8292,
    "preview": "* [What is Kimchi?](#what-is-kimchi)\n* [Browser Support](https://github.com/kimchi-project/wok/#browser-support)\n    * ["
  },
  {
    "path": "docs/README.md.tmpl",
    "chars": 6999,
    "preview": "* [What is Kimchi?](#what-is-kimchi)\n* [Browser Support](https://github.com/kimchi-project/wok/#browser-support)\n    * ["
  },
  {
    "path": "i18n.py",
    "chars": 33432,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "imageinfo.py",
    "chars": 2489,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "iscsi.py",
    "chars": 3059,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "isoinfo.py",
    "chars": 22260,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "kimchi.conf",
    "chars": 307,
    "preview": "[wok]\n# Enable Kimchi plugin on Wok server (values: True|False)\nenable = True\n\n[kimchi]\n# Automatically create ISO pool "
  },
  {
    "path": "kvmusertests.py",
    "chars": 2655,
    "preview": "# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n# m"
  },
  {
    "path": "m4/ac_python_module.m4",
    "chars": 647,
    "preview": "dnl @synopsis AC_PYTHON_MODULE(modname[, fatal])\ndnl\ndnl Checks for Python module.\ndnl\ndnl If fatal is non-empty then ab"
  },
  {
    "path": "m4/gettext.m4",
    "chars": 14938,
    "preview": "# gettext.m4 serial 63 (gettext-0.18)\ndnl Copyright (C) 1995-2010 Free Software Foundation, Inc.\ndnl This file is free s"
  },
  {
    "path": "m4/iconv.m4",
    "chars": 7519,
    "preview": "# iconv.m4 serial 11 (gettext-0.18.1)\ndnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc.\ndnl This fil"
  },
  {
    "path": "m4/intlmacosx.m4",
    "chars": 2429,
    "preview": "# intlmacosx.m4 serial 3 (gettext-0.18)\ndnl Copyright (C) 2004-2010 Free Software Foundation, Inc.\ndnl This file is free"
  },
  {
    "path": "m4/lib-ld.m4",
    "chars": 3459,
    "preview": "# lib-ld.m4 serial 4 (gettext-0.18)\ndnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc.\ndnl This file "
  },
  {
    "path": "m4/lib-link.m4",
    "chars": 32898,
    "preview": "# lib-link.m4 serial 21 (gettext-0.18)\ndnl Copyright (C) 2001-2010 Free Software Foundation, Inc.\ndnl This file is free "
  },
  {
    "path": "m4/lib-prefix.m4",
    "chars": 8466,
    "preview": "# lib-prefix.m4 serial 7 (gettext-0.18)\ndnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc.\ndnl This f"
  },
  {
    "path": "m4/nls.m4",
    "chars": 1229,
    "preview": "# nls.m4 serial 5 (gettext-0.18)\ndnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation,\ndnl Inc.\ndn"
  },
  {
    "path": "m4/po.m4",
    "chars": 18830,
    "preview": "# po.m4 serial 17 (gettext-0.18)\ndnl Copyright (C) 1995-2010 Free Software Foundation, Inc.\ndnl This file is free softwa"
  },
  {
    "path": "m4/progtest.m4",
    "chars": 2939,
    "preview": "# progtest.m4 serial 6 (gettext-0.18)\ndnl Copyright (C) 1996-2003, 2005, 2008-2010 Free Software Foundation, Inc.\ndnl Th"
  },
  {
    "path": "mockmodel.py",
    "chars": 29802,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/Makefile.am",
    "chars": 901,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "model/__init__.py",
    "chars": 782,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/cpuinfo.py",
    "chars": 5955,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/diskutils.py",
    "chars": 1530,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/featuretests.py",
    "chars": 7870,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/groups.py",
    "chars": 1838,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/host.py",
    "chars": 11115,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/hostdev.py",
    "chars": 10168,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "model/interfaces.py",
    "chars": 3016,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/libvirtconnection.py",
    "chars": 6337,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/libvirtevents.py",
    "chars": 6097,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2016-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/libvirtstoragepool.py",
    "chars": 8936,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/model.py",
    "chars": 2539,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/networks.py",
    "chars": 21783,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/ovsbridges.py",
    "chars": 988,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2016-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/storagepools.py",
    "chars": 20663,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/storageservers.py",
    "chars": 2977,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/storagetargets.py",
    "chars": 4853,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/storagevolumes.py",
    "chars": 22273,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/templates.py",
    "chars": 17373,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/users.py",
    "chars": 2815,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/utils.py",
    "chars": 4621,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/virtviewerfile.py",
    "chars": 7490,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2016-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/vmhostdevs.py",
    "chars": 30519,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/vmifaces.py",
    "chars": 9388,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/vms.py",
    "chars": 84339,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/vmsnapshots.py",
    "chars": 7351,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "model/vmstorages.py",
    "chars": 11012,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "network.py",
    "chars": 12576,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "osinfo.py",
    "chars": 12630,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "po/LINGUAS",
    "chars": 66,
    "preview": "en_US\npt_BR\nzh_CN\nde_DE\nes_ES\nfr_FR\nit_IT\nja_JP\nko_KR\nru_RU\nzh_TW\n"
  },
  {
    "path": "po/Makefile.in.in",
    "chars": 13780,
    "preview": "# Makefile for PO directory in any package using GNU gettext.\n# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich "
  },
  {
    "path": "po/Makevars",
    "chars": 1803,
    "preview": "# Makefile variables for PO directory in any package using GNU gettext.\n\n# Usually the message domain is the same as the"
  },
  {
    "path": "po/POTFILES.in",
    "chars": 104,
    "preview": "# List of source files which contain translatable strings.\ni18n.py\nui/pages/*.tmpl\nui/pages/tabs/*.tmpl\n"
  },
  {
    "path": "po/de_DE.po",
    "chars": 69403,
    "preview": "# German translations for kimchi package.\n# Copyright IBM Corp, 2014-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n#\nmsgid \""
  },
  {
    "path": "po/en_US.po",
    "chars": 50391,
    "preview": "# English translations for kimchi package.\n# Copyright IBM Corp, 2013-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n#\nmsgid "
  },
  {
    "path": "po/es_ES.po",
    "chars": 69771,
    "preview": "# Spanish translations for kimchi package.\n# Copyright IBM Corp, 2014-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n#\nmsgid "
  },
  {
    "path": "po/fr_FR.po",
    "chars": 69400,
    "preview": "# Frensh translations for kimchi package.\n# Copyright IBM Corp, 2014-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n#\nmsgid \""
  },
  {
    "path": "po/gen-pot.in",
    "chars": 899,
    "preview": "#!/bin/bash\n\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribut"
  },
  {
    "path": "po/it_IT.po",
    "chars": 68397,
    "preview": "# Italian translations for kimchi package.\n# Copyright IBM Corp, 2014-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n#\nmsgid "
  },
  {
    "path": "po/ja_JP.po",
    "chars": 71918,
    "preview": "# Japonese translations for kimchi package.\n# Copyright IBM Corp, 2014-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n#\nmsgid"
  },
  {
    "path": "po/kimchi.pot",
    "chars": 50394,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same "
  },
  {
    "path": "po/ko_KR.po",
    "chars": 60253,
    "preview": "# Korean translations for kimchi package.\n# Copyright IBM Corp, 2014-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n#\nmsgid \""
  },
  {
    "path": "po/pt_BR.po",
    "chars": 68481,
    "preview": "# Portuguese translations for kimchi package.\n# Copyright IBM Corp, 2013-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n#\nmsg"
  },
  {
    "path": "po/ru_RU.po",
    "chars": 66631,
    "preview": "# Russian translations for kimchi package.\n# Copyright IBM Corp, 2014-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n#\nmsgid "
  },
  {
    "path": "po/zh_CN.po",
    "chars": 63551,
    "preview": "# Chinese (zh_CN) translations for kimchi package.\n# Copyright IBM Corp, 2013-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n"
  },
  {
    "path": "po/zh_TW.po",
    "chars": 64223,
    "preview": "# Chinese (zh_TW) translations for kimchi package.\n# Copyright IBM Corp, 2014-2017\n# Adam Litke <agl@us.ibm.com>, 2013.\n"
  },
  {
    "path": "requirements-FEDORA.txt",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "requirements-OPENSUSE-LEAP.txt",
    "chars": 9,
    "preview": "pyparted\n"
  },
  {
    "path": "requirements-UBUNTU.txt",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "requirements-dev.txt",
    "chars": 26,
    "preview": "cython\nlibsass\npre-commit\n"
  },
  {
    "path": "root.py",
    "chars": 3687,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "scan.py",
    "chars": 3065,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "screenshot.py",
    "chars": 5793,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "serialconsole.py",
    "chars": 11579,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2016\n#\n# This library is free software; you can redistribute it and/or\n# modi"
  },
  {
    "path": "setup.cfg",
    "chars": 73,
    "preview": "[pycodestyle]\nignore = E226,E302,E41,W503,W504,E741\nmax-line-length = 88\n"
  },
  {
    "path": "template.conf",
    "chars": 1296,
    "preview": "#\n# Configuration file for Kimchi Templates\n#\n\n[main]\n# List of networks separated by comma\n# Represents the virtual net"
  },
  {
    "path": "tests/Makefile.am",
    "chars": 1612,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "tests/iso_gen.py",
    "chars": 7373,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "tests/run_tests.sh.in",
    "chars": 2847,
    "preview": "#!/bin/bash\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute"
  },
  {
    "path": "tests/test_authorization.py",
    "chars": 5916,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2014-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "tests/test_config.py.in",
    "chars": 7096,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2014-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "tests/test_disks.py",
    "chars": 1994,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2017\n#\n# Code derived from Ginger Base\n#\n# This library is free software; you"
  },
  {
    "path": "tests/test_host.py",
    "chars": 4493,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_livemigration.py",
    "chars": 19687,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "tests/test_mock_network.py",
    "chars": 2302,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_mock_storagepool.py",
    "chars": 5605,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_mock_storagevolume.py",
    "chars": 3486,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_mockmodel.py",
    "chars": 7231,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2017\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "tests/test_model.py",
    "chars": 84241,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_model_libvirtevents.py",
    "chars": 7146,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2016\n#\n# This library is free software; you can redis"
  },
  {
    "path": "tests/test_model_network.py",
    "chars": 7745,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_model_storagepool.py",
    "chars": 4876,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_model_storagevolume.py",
    "chars": 11869,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_networkxml.py",
    "chars": 10176,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute it and/or\n# modify "
  },
  {
    "path": "tests/test_osinfo.py",
    "chars": 3463,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "tests/test_rest.py",
    "chars": 68779,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_storagepoolxml.py",
    "chars": 6640,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "tests/test_template.py",
    "chars": 24681,
    "preview": "# -*- coding: utf-8 -*-\n#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2015-2017\n#\n# This library is free software; you can "
  },
  {
    "path": "tests/test_vmtemplate.py",
    "chars": 7863,
    "preview": "#\n# Project Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# This library is free software; you can redistribute it and/or\n#"
  },
  {
    "path": "ui/Makefile.am",
    "chars": 707,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "ui/config/Makefile.am",
    "chars": 684,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2015-2016\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "ui/config/tab-ext.xml",
    "chars": 1042,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<tabs-ext>\n    <functionality colorTab1=\"#59930c\" colorTab2=\"#8cc63f\">Virtualizat"
  },
  {
    "path": "ui/css/Makefile.am",
    "chars": 766,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "ui/css/kimchi.css",
    "chars": 97757,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2015-2016\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/css/src/kimchi.scss",
    "chars": 1769,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2015-2016\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/css/src/modules/_edit-guests.scss",
    "chars": 13889,
    "preview": "//\n// Project Kimchi\n//\n// Copyright IBM Corp, 2015-2017\n//\n// Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/css/src/modules/_guests.scss",
    "chars": 20663,
    "preview": "//\n// Project Kimchi\n//\n// Copyright IBM Corp, 2015-2016\n//\n// Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/css/src/modules/_iso-list.scss",
    "chars": 4688,
    "preview": "//\n// Project Kimchi\n//\n// Copyright IBM Corp, 2015-2016\n//\n// Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/css/src/modules/_network.scss",
    "chars": 2462,
    "preview": "//\n// Project Kimchi\n//\n// Copyright IBM Corp, 2015-2017\n//\n// Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/css/src/modules/_storage.scss",
    "chars": 19416,
    "preview": "//\n// Project Kimchi\n//\n// Copyright IBM Corp, 2015-2017\n//\n// Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/css/src/modules/_templates.scss",
    "chars": 16750,
    "preview": "//\n// Project Kimchi\n//\n// Copyright IBM Corp, 2015-2016\n//\n// Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/images/Makefile.am",
    "chars": 674,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "ui/js/Makefile.am",
    "chars": 846,
    "preview": "#\n# Kimchi\n#\n# Copyright IBM Corp, 2013-2016\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
  },
  {
    "path": "ui/js/src/kimchi.api.js",
    "chars": 44205,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2013-2017\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.guest_add_main.js",
    "chars": 3605,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2013-2016\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.guest_edit_main.js",
    "chars": 59563,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2013-2017\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.guest_livemigration.js",
    "chars": 4912,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2016-2017\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.guest_main.js",
    "chars": 37746,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2013-2017\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.guest_media_main.js",
    "chars": 1921,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2014-2016\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.guest_storage_add.main.js",
    "chars": 25192,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2014-2016\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.main.js",
    "chars": 1095,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2013-2017\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.network.js",
    "chars": 10964,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2013-2017\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.network_add_main.js",
    "chars": 8081,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2015-2017\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.network_edit_main.js",
    "chars": 7703,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2016-2017\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.storage_main.js",
    "chars": 38707,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2013-2017\n *\n * Licensed under the Apache License, Version 2.0 (the 'Lice"
  },
  {
    "path": "ui/js/src/kimchi.storagepool_add_main.js",
    "chars": 19637,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2013-2016\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "ui/js/src/kimchi.storagepool_add_volume_main.js",
    "chars": 5961,
    "preview": "/*\n * Project Kimchi\n *\n * Copyright IBM Corp, 2014-2016\n *\n * Licensed under the Apache License, Version 2.0 (the 'Lice"
  }
]

// ... and 291 more files (download for full content)

About this extraction

This page contains the full source code of the kimchi-project/kimchi GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 491 files (12.3 MB), approximately 3.2M tokens, and a symbol index with 1650 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!