[PATCH v3] [Kimchi] Create new volume and attach to VM
by Socorro Stoppler
v3:
Default to 'qcow2' format for new disk
kimchi_isos removed from list of storage pools for new disk
v2:
Add ".img" to name of new volume being created
v1:
This is the initial checkin for creating a new volume and attaching to VM when editing
a guest. Not sure of all the supported cases, but tried default pool and qcow2 format
per the example provided in the back-end patch and it was successful.
Known issue - which currently exists in the code already in master - code is broken when VM
is running. This patch does not address that. It will get addressed separately.
Socorro Stoppler (1):
Create new volume and attach to VM Add ".img" to name of new
volume Default to 'qcow2' for new disk and not list kimchi_isos
in pool
ui/js/src/kimchi.guest_storage_add.main.js | 327 ++++++++++++++++++++++++-----
ui/pages/guest-storage-add.html.tmpl | 58 +++--
2 files changed, 322 insertions(+), 63 deletions(-)
--
1.9.1
8 years, 9 months
[RFC] VEPA network support
by Daniel Henrique Barboza
The first version of the feature was sent to the ML but, due to the proposed
changes in the reviews, I believe a RFC is required before sending a v2.
This would be the revised networks API:
### Collection: Networks
**URI:** /plugins/kimchi/networks
**Methods:**
* **GET**: Retrieve a summarized list of all defined Networks
* **POST**: Create a new Network
* name: The name of the Network
* connection: Specifies how this network should be connected to the
other
networks visible to this host.
* isolated: Create a private, isolated virtual network.
* nat: Outgoing traffic will be routed through the host.
* macvtap: All traffic on this network will be bridged through the
specified interface.
* bridge: All traffic on this network will be bridged through a
Linux
bridged, which is created upon specified interface in
case
it is not already a Linux bridge.
* vepa: All traffic will be forward to one or more physical devices
directly connected to a VEPA-enabled switch.
* subnet *(optional)*: Network segment in slash-separated format
with ip address and
prefix or netmask used to create nat network.
* interfaces *(optional)*: An array of network interfaces on the host.
For "macvtap" and "bridge" connections, the
interface can be a nic, bridge or bonding
device.
For "vepa" connections, at least one
physical device
must be declared
* vlan_id *(optional)*: VLAN tagging ID for the macvtap bridge network.
The changes are:
- a new mode called "vepa"
- 'interface' parameter renamed to 'interfaces', which is now an array.
This was made
to prevent the creation of a separated parameter for VEPA devices. Of
course, this will
change all the existing APIs for all the other networks, which would now
read 'interface[0]'
instead of 'interface'
No changes in the 'interface' API will be required.
Daniel
8 years, 9 months
[PATCH v2] [Kimchi 0/8] Web serial console
by Jose Ricardo Ziviani
v2:
- applied code review
- updated the build system
This is the initial version of a web serial console for kimchi/libvirt
VMs.
When a VM is turned on, a new action is displayed named "Connect
Serial", this will open a new tab with an interface like the existing
novnc.
That interface opens a websocket to kimchi webserver (nginx), then
it is redirected to websockify. Websockify will proxy that connection to
a local unix socket server to finally communicate with the guest
console.
I chose to create one server per guest because that's the way websockify
was designed (it was born inside novnc), so I could reuse the token
security plugin implemented in websockify. In order to avoid wasting
resources I decided to user unix socket, a local/lightweight/reliable
socket if compared with internet sockets, this uses files instead of
ports to accept connections.
When a connection is established no one else can get that console (I'm
not multiplexing it but it's possible in future). The serial console
will be available again if the current user does one of:
- type ctrl+q
- close the tab
- 2 min. timeout
Thanks
Jose Ricardo Ziviani (8):
Rename vnc.py to websocket.py
Implement the web serial console server
Implement the backend to support web serial console
Implement the web serial console front-end
Import term.js to Kimchi project
Implement the Kimchi front-end for the web serial console
Update the build system to make the serial console
Add test case for the socket server
Makefile.am | 4 +-
config.py.in | 6 +-
configure.ac | 2 +
control/vms.py | 3 +-
i18n.py | 3 +
model/vms.py | 43 +-
root.py | 6 +-
serialconsole.py | 315 +++
tests/test_model.py | 28 +-
ui/Makefile.am | 2 +-
ui/js/src/kimchi.api.js | 27 +
ui/js/src/kimchi.guest_main.js | 14 +-
ui/pages/guest.html.tmpl | 3 +-
ui/serial/Makefile.am | 23 +
ui/serial/images/Makefile.am | 21 +
ui/serial/images/favicon.ico | Bin 0 -> 15086 bytes
ui/serial/serial.html | 99 +
ui/serial/term.js | 5973 ++++++++++++++++++++++++++++++++++++++++
vnc.py | 92 -
websocket.py | 122 +
20 files changed, 6677 insertions(+), 109 deletions(-)
create mode 100644 serialconsole.py
create mode 100644 ui/serial/Makefile.am
create mode 100644 ui/serial/images/Makefile.am
create mode 100644 ui/serial/images/favicon.ico
create mode 100644 ui/serial/serial.html
create mode 100644 ui/serial/term.js
delete mode 100644 vnc.py
create mode 100644 websocket.py
--
1.9.1
8 years, 9 months
[PATCH] [Wok 0/6] Add script to verify IBM license header and copyright date
by Aline Manera
Aline Manera (6):
Remove legacy code under ui/js/widgets
Add script to verify IBM copyright date
Update IBM copyright according to check-IBM-license-header.sh script
Add missing license header
Verify IBM license header and copyright date on make check-local
Delete useless error message
IBM-license-blacklist | 97 +++++
Makefile.am | 30 +-
build-all.sh | 2 +-
check-IBM-license-header.sh | 41 ++
check_ui_code_errors.sh | 2 +-
contrib/DEBIAN/postinst | 2 +-
contrib/DEBIAN/postrm | 2 +-
contrib/check_i18n.py | 2 +-
contrib/make-deb.sh.in | 20 +
contrib/wokd-upstart.conf.debian | 2 +-
contrib/wokd-upstart.conf.fedora | 2 +-
contrib/wokd.sysvinit | 2 +-
po/de_DE.po | 4 +-
po/en_US.po | 4 +-
po/es_ES.po | 4 +-
po/fr_FR.po | 4 +-
po/gen-pot.in | 20 +
po/it_IT.po | 4 +-
po/ja_JP.po | 4 +-
po/ko_KR.po | 4 +-
po/pt_BR.po | 4 +-
po/ru_RU.po | 4 +-
po/zh_CN.po | 4 +-
po/zh_TW.po | 4 +-
src/nginx/wok.conf.in | 2 +-
src/wok/Makefile.am | 2 +-
src/wok/__init__.py | 2 +-
src/wok/asynctask.py | 2 +-
src/wok/auth.py | 2 +-
src/wok/basemodel.py | 2 +-
src/wok/cachebust.py | 2 +-
src/wok/config.py.in | 2 +-
src/wok/control/Makefile.am | 2 +-
src/wok/control/__init__.py | 2 +-
src/wok/control/base.py | 2 +-
src/wok/control/config.py | 2 +-
src/wok/control/plugins.py | 2 +-
src/wok/control/tasks.py | 2 +-
src/wok/control/utils.py | 2 +-
src/wok/exception.py | 2 +-
src/wok/i18n.py | 2 +-
src/wok/model/Makefile.am | 2 +-
src/wok/model/__init__.py | 2 +-
src/wok/model/config.py | 2 +-
src/wok/model/model.py | 2 +-
src/wok/model/plugins.py | 2 +-
src/wok/model/tasks.py | 2 +-
src/wok/objectstore.py | 2 +-
src/wok/plugins/Makefile.am | 2 +-
src/wok/plugins/__init__.py | 2 +-
src/wok/plugins/sample/Makefile.am | 2 +-
src/wok/plugins/sample/__init__.py | 2 +-
src/wok/plugins/sample/i18n.py | 2 +-
src/wok/plugins/sample/model.py | 2 +-
src/wok/plugins/sample/po/en_US.po | 6 +-
src/wok/plugins/sample/po/gen-pot | 19 +
src/wok/plugins/sample/po/pt_BR.po | 6 +-
src/wok/plugins/sample/po/zh_CN.po | 6 +-
src/wok/plugins/sample/ui/Makefile.am | 2 +-
src/wok/plugins/sample/ui/config/Makefile.am | 2 +-
src/wok/plugins/sample/ui/js/Makefile.am | 2 +-
src/wok/plugins/sample/ui/js/util.js | 2 +-
src/wok/plugins/sample/ui/pages/Makefile.am | 2 +-
src/wok/plugins/sample/ui/pages/i18n.json.tmpl | 2 +-
.../plugins/sample/ui/pages/sample-tab1.html.tmpl | 2 +-
.../plugins/sample/ui/pages/sample-tab2.html.tmpl | 2 +-
src/wok/proxy.py | 2 +-
src/wok/rollbackcontext.py | 2 +-
src/wok/root.py | 2 +-
src/wok/server.py | 2 +-
src/wok/sslcert.py | 2 +-
src/wok/template.py | 2 +-
src/wok/utils.py | 2 +-
src/wok/xmlutils/Makefile.am | 2 +-
src/wok/xmlutils/__init__.py | 2 +-
src/wok/xmlutils/utils.py | 2 +-
src/wokd.in | 2 +-
tests/Makefile.am | 2 +-
tests/__init__.py | 2 +-
tests/run_tests.sh.in | 2 +-
tests/test_api.py | 2 +-
tests/test_config.py.in | 2 +-
tests/test_exception.py | 2 +-
tests/test_objectstore.py | 2 +-
tests/test_plugin.py | 2 +-
tests/test_rollbackcontext.py | 2 +-
tests/test_server.py | 2 +-
tests/test_utils.py | 2 +-
tests/utils.py | 2 +-
ui/Makefile.am | 2 +-
ui/base64/Makefile.am | 2 +-
ui/css/Makefile.am | 2 +-
ui/css/bootstrap-select.custom.css | 2 +-
ui/css/bootstrap.custom.css | 2 +-
ui/css/fontawesome/Makefile.am | 2 +-
ui/css/jquery-ui.custom.css | 2 +-
ui/css/opensans/Makefile.am | 2 +-
ui/css/src/bootstrap-select.custom.scss | 2 +-
ui/css/src/bootstrap.custom.scss | 2 +-
ui/css/src/modules/_about.scss | 2 +-
ui/css/src/modules/_animation.scss | 2 +-
ui/css/src/modules/_base.scss | 2 +-
ui/css/src/modules/_buttons.scss | 2 +-
ui/css/src/modules/_datagrid.scss | 2 +-
ui/css/src/modules/_loaders.scss | 2 +-
ui/css/src/modules/_login.scss | 2 +-
ui/css/src/modules/_menu-flat.scss | 2 +-
ui/css/src/modules/_mixins.scss | 2 +-
ui/css/src/modules/_modal-flat.scss | 2 +-
ui/css/src/modules/_navbar-flat.scss | 2 +-
ui/css/src/modules/_tables-flat.scss | 2 +-
ui/css/src/modules/_toolbar.scss | 2 +-
ui/css/src/modules/_utils.scss | 2 +-
ui/css/src/modules/_validation.scss | 2 +-
ui/css/src/modules/_wok-confirm.scss | 2 +-
ui/css/src/modules/_wok-forms.scss | 2 +-
ui/css/src/modules/_wok-grid.scss | 2 +-
ui/css/src/modules/_wok-variables.scss | 2 +-
ui/css/src/wok.scss | 2 +-
ui/css/theme-default/about.css | 2 +-
ui/css/theme-default/base.css | 2 +-
ui/css/theme-default/button-flat.css | 2 +-
ui/css/theme-default/button.css | 2 +-
ui/css/theme-default/checkbox-flat.css | 2 +-
ui/css/theme-default/circleGauge.css | 2 +-
ui/css/theme-default/datagrid.css | 2 +-
ui/css/theme-default/dialog-flat.css | 2 +-
ui/css/theme-default/error.css | 2 +-
ui/css/theme-default/form.css | 2 +-
ui/css/theme-default/framework.css | 2 +-
ui/css/theme-default/gauge-flat.css | 2 +-
ui/css/theme-default/grid.css | 2 +-
ui/css/theme-default/jquery-ui.custom.css | 2 +-
ui/css/theme-default/line-chart.css | 2 +-
ui/css/theme-default/line.css | 2 +-
ui/css/theme-default/list-flat.css | 2 +-
ui/css/theme-default/login-window.css | 2 +-
ui/css/theme-default/menu-flat.css | 2 +-
ui/css/theme-default/message-flat.css | 2 +-
ui/css/theme-default/message.css | 2 +-
ui/css/theme-default/messagebar-flat.css | 2 +-
ui/css/theme-default/nav-tree.css | 2 +-
ui/css/theme-default/navbar.css | 2 +-
ui/css/theme-default/popover.css | 2 +-
ui/css/theme-default/radio-flat.css | 2 +-
ui/css/theme-default/reset.css | 2 +-
ui/css/theme-default/selectmenu-flat.css | 2 +-
ui/css/theme-default/tabs.css | 2 +-
ui/css/theme-default/textbox-flat.css | 2 +-
ui/css/theme-default/theme.css | 2 +-
ui/css/theme-default/tile-check.css | 2 +-
ui/css/theme-default/toolbar.css | 2 +-
ui/css/theme-default/topbar.css | 2 +-
ui/css/theme-default/window.css | 2 +-
ui/css/wok.css | 2 +-
ui/images/Makefile.am | 2 +-
ui/images/theme-default/Makefile.am | 2 +-
ui/js/Makefile.am | 6 +-
ui/js/src/wok.api.js | 2 +-
ui/js/src/wok.confirm.js | 2 +-
ui/js/src/wok.cookie.js | 2 +-
ui/js/src/wok.datagrid.js | 2 +-
ui/js/src/wok.form.js | 2 +-
ui/js/src/wok.grid.js | 2 +-
ui/js/src/wok.lang.js | 2 +-
ui/js/src/wok.line-chart.js | 2 +-
ui/js/src/wok.list.js | 2 +-
ui/js/src/wok.login.js | 2 +-
ui/js/src/wok.main.js | 2 +-
ui/js/src/wok.message.js | 2 +-
ui/js/src/wok.object.js | 2 +-
ui/js/src/wok.popable.js | 2 +-
ui/js/src/wok.select.js | 2 +-
ui/js/src/wok.string.js | 2 +-
ui/js/src/wok.substitute.js | 2 +-
ui/js/src/wok.topic.js | 2 +-
ui/js/src/wok.user.js | 2 +-
ui/js/src/wok.utils.js | 2 +-
ui/js/src/wok.window.js | 2 +-
ui/js/widgets/button-dropDown.js | 37 --
ui/js/widgets/button-flat.js | 421 ---------------------
ui/js/widgets/checkbox-flat.js | 88 -----
ui/js/widgets/circleGauge.js | 102 -----
ui/js/widgets/combobox.js | 129 -------
ui/js/widgets/dialog-flat.js | 122 ------
ui/js/widgets/filter-select.js | 138 -------
ui/js/widgets/gauge-flat.js | 128 -------
ui/js/widgets/line.js | 74 ----
ui/js/widgets/list-flat.js | 78 ----
ui/js/widgets/menu-flat.js | 116 ------
ui/js/widgets/message-flat.js | 99 -----
ui/js/widgets/messagebar-flat.js | 73 ----
ui/js/widgets/radio-flat.js | 88 -----
ui/js/widgets/samples/README.md | 1 -
ui/js/widgets/samples/dialog.html | 53 ---
ui/js/widgets/samples/gauge-flat.html | 55 ---
ui/js/widgets/samples/grid.html | 82 ----
ui/js/widgets/samples/line.html | 170 ---------
ui/js/widgets/samples/list.html | 48 ---
.../menu-button-radio-checkbox-text-select.html | 104 -----
ui/js/widgets/samples/message.html | 51 ---
ui/js/widgets/samples/messagebar-flat.html | 51 ---
ui/js/widgets/samples/tabs.html | 70 ----
ui/js/widgets/select-menu.js | 86 -----
ui/js/widgets/selectmenu-flat.js | 132 -------
ui/js/widgets/textbox-flat.js | 41 --
ui/libs/Makefile.am | 2 +-
ui/libs/bootstrap-editable/Makefile.am | 2 +-
ui/libs/bootstrap-editable/dist/Makefile.am | 2 +-
ui/libs/bootstrap-editable/dist/css/Makefile.am | 2 +-
ui/libs/bootstrap-editable/dist/js/Makefile.am | 2 +-
ui/libs/bootstrap-select/Makefile.am | 2 +-
ui/libs/bootstrap-select/dist/Makefile.am | 2 +-
ui/libs/bootstrap-select/dist/css/Makefile.am | 2 +-
ui/libs/bootstrap-select/dist/js/Makefile.am | 2 +-
ui/libs/bootstrap-switch/Makefile.am | 2 +-
ui/libs/bootstrap-switch/dist/Makefile.am | 2 +-
ui/libs/bootstrap-switch/dist/css/Makefile.am | 2 +-
ui/libs/bootstrap-switch/dist/js/Makefile.am | 2 +-
ui/libs/bootstrap/Makefile.am | 2 +-
ui/libs/es5-shim/Makefile.am | 2 +-
ui/libs/jquery-bootgrid/Makefile.am | 2 +-
ui/libs/jquery-bootgrid/dist/Makefile.am | 2 +-
ui/libs/jquery-bootgrid/dist/css/Makefile.am | 2 +-
ui/libs/jquery-bootgrid/dist/js/Makefile.am | 2 +-
ui/libs/jquery-i18n/Makefile.am | 2 +-
ui/libs/jquery-ui/Makefile.am | 2 +-
ui/libs/jquery-ui/themes/Makefile.am | 2 +-
ui/libs/jquery-ui/themes/base/Makefile.am | 2 +-
ui/libs/jquery-ui/themes/base/images/Makefile.am | 2 +-
ui/libs/jquery/Makefile.am | 2 +-
ui/libs/list-js/Makefile.am | 2 +-
ui/libs/typeahead/Makefile.am | 2 +-
ui/pages/Makefile.am | 2 +-
ui/pages/error.html.tmpl | 2 +-
ui/pages/i18n.json.tmpl | 3 +-
ui/pages/login.html.tmpl | 2 +-
ui/pages/wok-ui.html.tmpl | 2 +-
238 files changed, 437 insertions(+), 2876 deletions(-)
create mode 100644 IBM-license-blacklist
create mode 100755 check-IBM-license-header.sh
delete mode 100644 ui/js/widgets/button-dropDown.js
delete mode 100755 ui/js/widgets/button-flat.js
delete mode 100644 ui/js/widgets/checkbox-flat.js
delete mode 100644 ui/js/widgets/circleGauge.js
delete mode 100644 ui/js/widgets/combobox.js
delete mode 100644 ui/js/widgets/dialog-flat.js
delete mode 100644 ui/js/widgets/filter-select.js
delete mode 100755 ui/js/widgets/gauge-flat.js
delete mode 100644 ui/js/widgets/line.js
delete mode 100644 ui/js/widgets/list-flat.js
delete mode 100644 ui/js/widgets/menu-flat.js
delete mode 100644 ui/js/widgets/message-flat.js
delete mode 100644 ui/js/widgets/messagebar-flat.js
delete mode 100644 ui/js/widgets/radio-flat.js
delete mode 100644 ui/js/widgets/samples/README.md
delete mode 100644 ui/js/widgets/samples/dialog.html
delete mode 100644 ui/js/widgets/samples/gauge-flat.html
delete mode 100644 ui/js/widgets/samples/grid.html
delete mode 100644 ui/js/widgets/samples/line.html
delete mode 100644 ui/js/widgets/samples/list.html
delete mode 100644 ui/js/widgets/samples/menu-button-radio-checkbox-text-select.html
delete mode 100644 ui/js/widgets/samples/message.html
delete mode 100644 ui/js/widgets/samples/messagebar-flat.html
delete mode 100644 ui/js/widgets/samples/tabs.html
delete mode 100644 ui/js/widgets/select-menu.js
delete mode 100644 ui/js/widgets/selectmenu-flat.js
delete mode 100644 ui/js/widgets/textbox-flat.js
--
2.5.0
8 years, 9 months
[PATCH] [Wok] Make sure to use absolute path when doing a server redirection
by Aline Manera
When supporting plugins, the format URI does not correspond to the full
URI path. So fix it to avoid problems when doing server redirection.
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
src/wok/control/base.py | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/wok/control/base.py b/src/wok/control/base.py
index e1591b5..327e494 100644
--- a/src/wok/control/base.py
+++ b/src/wok/control/base.py
@@ -60,18 +60,20 @@ class Resource(object):
self.admin_methods = []
def _redirect(self, action_result, code=303):
+ uri_params = []
if isinstance(action_result, list):
- uri_params = []
for arg in action_result:
if arg is None:
arg = ''
uri_params.append(urllib2.quote(arg.encode('utf-8'), safe=""))
- raise cherrypy.HTTPRedirect(self.uri_fmt % tuple(uri_params), code)
elif action_result is not None and action_result != self.ident:
uri_params = list(self.model_args[:-1])
uri_params += [urllib2.quote(action_result.encode('utf-8'),
safe="")]
- raise cherrypy.HTTPRedirect(self.uri_fmt % tuple(uri_params), code)
+
+ if uri_params:
+ base_uri = cherrypy.request.app.script_name + self.uri_fmt
+ raise cherrypy.HTTPRedirect(base_uri % tuple(uri_params), code)
def generate_action_handler(self, action_name, action_args=None,
destructive=False):
--
2.5.0
8 years, 9 months
[PATCH] [Kimchi] New UI for adding network bridges V3
by peterpnns@gmail.com
From: peterpennings <peterpnns(a)gmail.com>
This patch adds Linux and OVS bridges. netinfo.py had to be updated to show OVS bridges in order to reflect the changes made in the UI.
V2:
* Fixed error messages
* Fixed function name
* Form validations
V3:
* Fixed submit function to send the name of interface instead of type.
peterpennings (1):
Issue #791: New UI for adding network bridges
netinfo.py | 3 +-
ui/js/src/kimchi.network.js | 2 +
ui/js/src/kimchi.network_add_main.js | 152 ++++++++++++++++++++---------------
ui/pages/network-add.html.tmpl | 5 +-
4 files changed, 95 insertions(+), 67 deletions(-)
--
2.5.0
8 years, 9 months
[PATCH v2] [Kimchi] Create new volume and attach to VM
by Socorro Stoppler
V2:
Add ".img" to name of new volume being created
V1:
This is the initial checkin for creating a new volume and attaching to VM when editing
a guest. Not sure of all the supported cases, but tried default pool and qcow2 format
per the example provided in the back-end patch and it was successful.
Known issue - which currently exists in the code already in master - code is broken when VM
is running. This patch does not address that. It will get addressed separately.
Socorro Stoppler (1):
Create new volume and attach to VM
Add ".img" to name of new volume
ui/js/src/kimchi.guest_storage_add.main.js | 320 ++++++++++++++++++++++++-----
ui/pages/guest-storage-add.html.tmpl | 58 ++++--
2 files changed, 315 insertions(+), 63 deletions(-)
--
1.9.1
8 years, 9 months
kimchi-2.0.0-0.el7.noarch.rpm is does not work
by Hibiki Uehara
Hi
Not found /etc/systemd/system/multi-user.target.wants/kimchid.service
Please fix it
[root@localhost src]# yum install kimchi-2.0.0-0.el7.noarch.rpm
[root@localhost src]# systemctl start kimchid.service
Failed to start kimchid.service: Unit kimchid.service failed to load: No
such file or directory.
[root@localhost src]# find / -name kimchi
/etc/kimchi
/var/lib/kimchi
/usr/lib/python2.7/site-packages/wok/plugins/kimchi
/usr/share/wok/plugins/kimchi
/usr/share/kimchi
8 years, 9 months
[PATCH] [Kimchi 0/3] Add maxvcpus support in backend
by Lucio Correia
This patchset depends on "[Wok] Add function for removing XML element"
Lucio Correia (3):
Add maxvcpus attribute to templates
Add maxvcpus attribute to guests
Update tests
API.json | 19 ++++++
control/templates.py | 3 +-
docs/API.md | 41 +++++++++++--
i18n.py | 11 ++--
model/cpuinfo.py | 59 +++++++++++++-----
model/templates.py | 67 +++++++++++----------
model/vms.py | 151 +++++++++++++++++++++++++----------------------
tests/test_mockmodel.py | 5 +-
tests/test_model.py | 5 +-
tests/test_rest.py | 2 +-
tests/test_template.py | 11 +++-
tests/test_vmtemplate.py | 5 +-
vmtemplate.py | 36 ++++-------
13 files changed, 253 insertions(+), 162 deletions(-)
--
1.9.1
8 years, 9 months
[PATCH V3] [Kimchi 0/4] Add backend support to set maxvcpus
by Lucio Correia
V2 -> V3:
Updated tests (changes only to patch 4)
Lucio Correia (4):
Add maxvcpus attribute to templates
Add maxvcpus attribute to guests
Do not break web UI
Update tests
API.json | 34 +++---
control/templates.py | 3 +-
docs/API.md | 66 ++++++++---
i18n.py | 10 +-
model/cpuinfo.py | 63 ++++++++---
model/templates.py | 79 ++++++++------
model/vms.py | 194 +++++++++++++++++----------------
osinfo.py | 13 ++-
template.conf | 7 +-
tests/test_mockmodel.py | 7 +-
tests/test_model.py | 65 +++++++++--
tests/test_rest.py | 14 ++-
tests/test_template.py | 43 ++++----
tests/test_vmtemplate.py | 17 +--
ui/js/src/kimchi.guest_edit_main.js | 8 +-
ui/js/src/kimchi.template_edit_main.js | 15 ++-
ui/pages/guest-edit.html.tmpl | 2 +-
ui/pages/template-edit.html.tmpl | 4 +-
vmtemplate.py | 43 +++-----
xmlutils/cpu.py | 6 +-
20 files changed, 416 insertions(+), 277 deletions(-)
--
1.9.1
8 years, 9 months