trouble while executing make check
by Rohan Gupta
hello sir,
hope this is the right place to ask queries,
i tried to install kimchi on centos 7 and when i run make check-local, i
ran into a error.
# make check-local
contrib/check_i18n.py ./i18n.py
Checking for invalid i18n string...
Checking for invalid i18n string successfully
/bin/pep8 --version
1.4.6
/bin/pep8 --filename '*.py,*.py.in'
--exclude="*config.py,*i18n.py,*tests/test_config.py" .
./model/vms.py:1376:24: E127 continuation line over-indented for visual
indent
make: *** [check-local] Error 1
will i get a possible solution for this.
thank you
Rohan Raj Gupta
7 years, 10 months
[RFC] [Wok] #147 Block authentication request after too many failures
by Ramon Medeiros
Propose: make adjustments at login page to make difficult brute force
attack.
Today, an intruder can make login tries without any action from Wok.
Possible measures:
Record source port and ip. After 3 tries, block user for 30 seconds and
increase the time by each more try. Using source port and ip will avoid
errors for connections from NAT networks.
Example:
1) ip 192.168.1.1 tries to login as root 3 times and fail
2) A timeout of 30 seconds will be set
3) After that, for 5 minutes, each try will add 30 seconds + x times the
trial (60 seconds, 90 seconds. ..)
4) After 5 minutes of the last try, the counter will be reset.
--
Ramon Nunes Medeiros
Kimchi Developer
Linux Technology Center Brazil
IBM Systems & Technology Group
Phone : +55 19 2132 7878
ramonn(a)br.ibm.com
7 years, 11 months
[PATCH] [Wok] Always install firewalld conf for all distributions
by Lucio Correia
Even if firewalld is not installed, Wok should install
specific wokd.xml for it, for the case firewalld is
installed afterwards.
This patch does that by removing checks for existing
firewalld directory and removing all build and runtime
dependencies on firewalld, since it's not required to
run Wok.
Also, by always installing config for firealld, it
fixes issues #27 and #185 another way.
Signed-off-by: Lucio Correia <luciojhc(a)linux.vnet.ibm.com>
---
Makefile.am | 14 +++++++-------
contrib/wok.spec.fedora.in | 4 +---
contrib/wok.spec.suse.in | 2 +-
docs/fedora-deps.md | 2 +-
docs/opensuse-deps.md | 2 +-
5 files changed, 11 insertions(+), 13 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 72ffb50..7b34dca 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -98,6 +98,9 @@ install-deb: install
$(DESTDIR)/etc/init/wokd.conf; \
fi
$(MKDIR_P) $(DESTDIR)/$(localstatedir)/lib/wok/
+ $(MKDIR_P) $(DESTDIR)/usr/lib/firewalld/services
+ cp -R $(top_srcdir)/src/firewalld.xml \
+ $(DESTDIR)/usr/lib/firewalld/services/wokd.xml
deb: contrib/make-deb.sh
@@ -143,10 +146,8 @@ install-data-local:
$(INSTALL_DATA) contrib/wokd.sysvinit $(DESTDIR)/etc/init.d/wokd; \
chmod +x $(DESTDIR)/etc/init.d/wokd; \
fi; \
- if test -d /usr/lib/firewalld/services/; then \
- mkdir -p $(DESTDIR)/usr/lib/firewalld/services/; \
- $(INSTALL_DATA) src/firewalld.xml $(DESTDIR)/usr/lib/firewalld/services/wokd.xml; \
- fi; \
+ mkdir -p $(DESTDIR)/usr/lib/firewalld/services/;
+ $(INSTALL_DATA) src/firewalld.xml $(DESTDIR)/usr/lib/firewalld/services/wokd.xml;
mkdir -p $(DESTDIR)/$(localstatedir)/lib/wok/
mkdir -p $(DESTDIR)/$(localstatedir)/log/wok/
touch $(DESTDIR)/$(localstatedir)/log/wok/wok-access.log
@@ -165,9 +166,8 @@ uninstall-local:
$(RM) $(DESTDIR)/etc/init.d/wokd; \
$(RM) $(DESTDIR)/etc/init/wok.conf; \
fi; \
- if test -d /usr/lib/firewalld/services/; then \
- $(RM) $(DESTDIR)/usr/lib/firewalld/services/wokd.xml; \
- fi; \
+ $(RM) $(DESTDIR)/usr/lib/firewalld/services/wokd.xml
+ rmdir $(DESTDIR)/usr/lib/firewalld/services && rmdir $(DESTDIR)/usr/lib/firewalld || :
$(RM) -rf $(DESTDIR)/$(localstatedir)/lib/wok
$(RM) -rf $(DESTDIR)/$(localstatedir)/log/wok
$(RM) -rf $(DESTDIR)/etc/wok
diff --git a/contrib/wok.spec.fedora.in b/contrib/wok.spec.fedora.in
index 0119381..fcada13 100644
--- a/contrib/wok.spec.fedora.in
+++ b/contrib/wok.spec.fedora.in
@@ -21,7 +21,6 @@ Requires: fontawesome-fonts
Requires: open-sans-fonts
Requires: logrotate
Requires: openssl
-BuildRequires: firewalld
BuildRequires: gettext-devel
BuildRequires: libxslt
BuildRequires: openssl
@@ -39,7 +38,6 @@ BuildRequires: python-unittest2
%if 0%{?with_systemd}
Requires: systemd
-Requires: firewalld
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
@@ -115,6 +113,7 @@ rm -rf $RPM_BUILD_ROOT
%{python_sitelib}/wok/plugins/*.py*
%{python_sitelib}/wok/
%{_prefix}/share/locale/*/LC_MESSAGES/wok.mo
+%{_prefix}/lib/firewalld/services/wokd.xml
%{_datadir}/wok/ui/
%{_datadir}/wok
%{_sysconfdir}/wok/wok.conf
@@ -128,7 +127,6 @@ rm -rf $RPM_BUILD_ROOT
%{_localstatedir}/log/wok/*
%{_localstatedir}/log/wok/
%{_unitdir}/wokd.service
-%{_prefix}/lib/firewalld/services/wokd.xml
%endif
%if 0%{?rhel} == 6
/etc/init/wokd.conf
diff --git a/contrib/wok.spec.suse.in b/contrib/wok.spec.suse.in
index 8bed37a..ea2e708 100644
--- a/contrib/wok.spec.suse.in
+++ b/contrib/wok.spec.suse.in
@@ -22,7 +22,6 @@ Requires: fontawesome-fonts
Requires: google-opensans-fonts
Requires: logrotate
Requires: openssl
-BuildRequires: firewalld
BuildRequires: gettext-tools
BuildRequires: libxslt-tools
BuildRequires: openssl
@@ -110,6 +109,7 @@ rm -rf $RPM_BUILD_ROOT
%{_localstatedir}/log/wok/*
%{_localstatedir}/log/wok/
%{_mandir}/man8/wokd.8.gz
+%{_prefix}/lib/firewalld/services/wokd.xml
%if 0%{?with_systemd}
%{_unitdir}/wokd.service
diff --git a/docs/fedora-deps.md b/docs/fedora-deps.md
index fa99f30..260390e 100644
--- a/docs/fedora-deps.md
+++ b/docs/fedora-deps.md
@@ -20,7 +20,7 @@ Build Dependencies
--------------------
$ sudo yum install gcc make autoconf automake gettext-devel git rpm-build \
- libxslt firewalld
+ libxslt
Runtime Dependencies
--------------------
diff --git a/docs/opensuse-deps.md b/docs/opensuse-deps.md
index ad4ed92..7fe1763 100644
--- a/docs/opensuse-deps.md
+++ b/docs/opensuse-deps.md
@@ -10,7 +10,7 @@ Build Dependencies
--------------------
$ sudo zypper install gcc make autoconf automake gettext-tools git \
- rpm-build libxslt-tools firewalld
+ rpm-build libxslt-tools
Runtime Dependencies
--------------------
--
2.7.4
7 years, 11 months
[PATCH] [Wok] Fix typo in settings.css
by Lucio Correia
Signed-off-by: Lucio Correia <luciojhc(a)linux.vnet.ibm.com>
---
ui/css/settings.css | 2 +-
ui/css/src/modules/_wok-accordion.scss | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/ui/css/settings.css b/ui/css/settings.css
index 641b805..ec3c086 100644
--- a/ui/css/settings.css
+++ b/ui/css/settings.css
@@ -37,7 +37,7 @@
clear: both;
}
-#wok-root-container .accordion:first-chld {
+#wok-root-container .accordion:first-child {
margin-top: 24px;
}
diff --git a/ui/css/src/modules/_wok-accordion.scss b/ui/css/src/modules/_wok-accordion.scss
index 1d86ddd..ee91709 100644
--- a/ui/css/src/modules/_wok-accordion.scss
+++ b/ui/css/src/modules/_wok-accordion.scss
@@ -22,7 +22,7 @@
border-bottom: 1px solid $table-border-color;
overflow: visible;
clear: both;
- &:first-chld {
+ &:first-child {
margin-top: 24px;
}
> h3 {
@@ -65,4 +65,4 @@
}
}
}
-}
\ No newline at end of file
+}
--
2.7.4
7 years, 11 months
[PATCH] [Wok] Remove execution permission from css files
by Lucio Correia
Debian build system has detected unnecessary execution
permission bits in some files. Fix them.
Signed-off-by: Lucio Correia <luciojhc(a)linux.vnet.ibm.com>
---
ui/css/src/vendor/compass-mixins/lib/compass/functions/_display.scss | 0
ui/css/src/wok.scss | 0
2 files changed, 0 insertions(+), 0 deletions(-)
mode change 100755 => 100644 ui/css/src/vendor/compass-mixins/lib/compass/functions/_display.scss
mode change 100755 => 100644 ui/css/src/wok.scss
diff --git a/ui/css/src/vendor/compass-mixins/lib/compass/functions/_display.scss b/ui/css/src/vendor/compass-mixins/lib/compass/functions/_display.scss
old mode 100755
new mode 100644
diff --git a/ui/css/src/wok.scss b/ui/css/src/wok.scss
old mode 100755
new mode 100644
--
2.7.4
7 years, 11 months
[PATCH] [Kimchi] Bug fix #1073: Re-attach device to host when detaching it from guest
by Aline Manera
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
model/vmhostdevs.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/model/vmhostdevs.py b/model/vmhostdevs.py
index 1f893f2..6b02f4d 100644
--- a/model/vmhostdevs.py
+++ b/model/vmhostdevs.py
@@ -636,6 +636,13 @@ class VMHostDevModel(object):
return
wok_log.info("Device %s removed successfuly" % alias)
+ # Re-attach device to host
+ try:
+ dev = conn.get().nodeDeviceLookupByName(alias)
+ dev.reAttach()
+ except libvirt.libvirtError, e:
+ wok_log.error("Unable to attach device %s back to host. Error: %s",
+ alias, e.message)
opaque._cb('OK', True)
def _detach_device(self, cb, params):
--
2.7.4
7 years, 11 months
[PATCH v2] [Kimchi] Issue# 979 - Change boot order UI
by bianca@linux.vnet.ibm.com
From: Socorro <socorro(a)linux.vnet.ibm.com>
This patch adds the UI portion for supporting changing the guest boot order
via edit guest panel. This was based off of what Samuel had prototyped.
Issue found in backend during test:
When updating the VM even with just changing the name, the bootorder gets reset to 'hd' only.
I tested this using the curl command and confirmed that indeed it does get reset to one entry only.
Issue written to address this: https://github.com/kimchi-project/kimchi/issues/1012
Signed-off-by: Socorro <socorro(a)linux.vnet.ibm.com>
---
ui/css/kimchi.css | 55 +++++++++++++++++++++++++++++
ui/css/src/modules/_edit-guests.scss | 54 ++++++++++++++++++++++++++++
ui/js/src/kimchi.guest_edit_main.js | 68 ++++++++++++++++++++++++++++++++++--
ui/pages/guest-edit.html.tmpl | 18 ++++++++--
4 files changed, 191 insertions(+), 4 deletions(-)
diff --git a/ui/css/kimchi.css b/ui/css/kimchi.css
index fff3279..ae5e37b 100644
--- a/ui/css/kimchi.css
+++ b/ui/css/kimchi.css
@@ -1557,6 +1557,61 @@ body.wok-gallery {
overflow: visible;
}
+ul {
+ cursor: default;
+}
+
+.boot-order {
+ display: block;
+ width: 85%;
+ font-size: 14px;
+ line-height: 1.42857;
+ color: #444;
+ overflow: hidden;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+}
+
+.boot-order:focus,
+.boot-order.focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+
+.boot-order > li {
+ cursor: move;
+ /* fallback if grab cursor is unsupported */
+ cursor: grab;
+ cursor: -moz-grab;
+ cursor: -webkit-grab;
+ border-left: 0;
+ border-right: 0;
+}
+
+.boot-order > li:first-child {
+ border-top: 0;
+}
+
+.boot-order > li:last-child {
+ border-bottom: 0;
+}
+
+.boot-order > li.ui-sortable-helper {
+ cursor: grabbing;
+ cursor: -moz-grabbing;
+ cursor: -webkit-grabbing;
+ border: 1px solid #ccc !important;
+}
+
/* Add Template Modal Window */
.templates-modal .modal-dialog {
width: 1100px;
diff --git a/ui/css/src/modules/_edit-guests.scss b/ui/css/src/modules/_edit-guests.scss
index 25d4d65..ea3ee9d 100644
--- a/ui/css/src/modules/_edit-guests.scss
+++ b/ui/css/src/modules/_edit-guests.scss
@@ -429,3 +429,57 @@
#form-guest-storage-add .form-section .field {
overflow: visible;
}
+
+ul {
+ cursor: default;
+}
+
+.boot-order {
+ display: block;
+ width: 85%;
+ font-size: 14px;
+ line-height: 1.42857;
+ color: #444;
+ overflow: hidden;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+}
+
+.boot-order:focus,
+.boot-order.focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+
+.boot-order > li {
+ cursor: move; /* fallback if grab cursor is unsupported */
+ cursor: grab;
+ cursor: -moz-grab;
+ cursor: -webkit-grab;
+ border-left: 0;
+ border-right: 0;
+}
+
+.boot-order > li:first-child {
+ border-top: 0;
+}
+
+.boot-order > li:last-child {
+ border-bottom: 0;
+}
+
+.boot-order > li.ui-sortable-helper {
+ cursor: grabbing;
+ cursor: -moz-grabbing;
+ cursor: -webkit-grabbing;
+ border: 1px solid #ccc !important;
+}
diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js
index bb82077..12c0770 100644
--- a/ui/js/src/kimchi.guest_edit_main.js
+++ b/ui/js/src/kimchi.guest_edit_main.js
@@ -26,6 +26,7 @@ kimchi.guest_edit_main = function() {
var networkOptions = "";
clearTimeout(kimchi.vmTimeout);
+ var bootOrderOptions = [];
$('#modalWindow').on('hidden.bs.modal', function() {
kimchi.setListVMAutoTimeout();
@@ -45,11 +46,12 @@ kimchi.guest_edit_main = function() {
var submitForm = function(event) {
- // tap map, "general": 0, "storage": 1, "interface": 2, "permission": 3, "password": 4
+ // tap map, "general": 0, "storage": 1, "interface": 2, "permission": 3, "pci": 4, "snapshot": 5, "processor": 6, "bootOrder": 7
var submit_map = {
0: generalSubmit,
3: permissionSubmit,
- 6: processorSubmit
+ 6: processorSubmit,
+ 7: bootOrderSubmit
};
var currentTab = $('#guest-edit-window li.active a[data-toggle="tab"]').data('id');
var toSubmit = parseInt($('#'+currentTab).index());
@@ -967,6 +969,42 @@ kimchi.guest_edit_main = function() {
}
};
+ var setupBootOrder = function(guest) {
+ var guestBootOrder = guest['bootorder'];
+ $("#myList").empty();
+ $.each(guestBootOrder, function(index, value) {
+ var itemNode = $.parseHTML("<li class='list-group-item' " + "data-value=" + value + ">" + value + "</li>");
+ $("#myList").append(itemNode);
+ });
+
+ $('.boot-order').sortable({
+ items: 'li',
+ cursor: 'move',
+ opacity: 0.6,
+ containment: "parent",
+ start: function(event, ui) {
+ $(this).addClass('focus');
+ },
+ stop: function(event, ui) {
+ $(this).removeClass('focus');
+ },
+ change: function(event, ui) {
+ // callback once started changing order
+ },
+ update: function(event, ui) {
+ // callback once finished order
+ $(saveButton).prop('disabled', false);
+ bootOrderOptions = [];
+ $("#myList li").each(function() {
+ bootOrderOptions.push($(this).text())
+ });
+ bootOrderOptions.forEach(function(entry) {
+ console.log(entry);
+ });
+ }
+ });
+ };
+
var initContent = function(guest) {
guest['icon'] = guest['icon'] || 'plugins/kimchi/images/icon-vm.png';
$('#form-guest-edit-general').fillWithObject(guest);
@@ -1032,6 +1070,7 @@ kimchi.guest_edit_main = function() {
setupPermission();
setupPCIDevice();
setupSnapshot();
+ setupBootOrder(guest);
kimchi.init_processor_tab(guest.cpu_info, $(saveButton));
if ((kimchi.thisVMState === "running") || (kimchi.thisVMState === "paused")) {
@@ -1221,4 +1260,29 @@ kimchi.guest_edit_main = function() {
if(kimchi.hostarch === s390xArch){
$('#guest-edit-window ul li a[data-id="form-guest-edit-pci"],a[data-id="form-guest-edit-snapshot"]').parent().hide();
}
+
+ var bootOrderSubmit = function(event) {
+ //Format the strings to go in the array before passing in to the API
+ //"hd", "network", "cdrom"
+ var formattedBootOrderOptions = [];
+ for (var i=0; i<bootOrderOptions.length; i++) {
+ var str = bootOrderOptions[i].trim();
+ str = str.toLowerCase();
+ if (str === "hdd") {
+ str = "hd";
+ } else if (str === "cd-rom") {
+ str = "cdrom";
+ }
+ formattedBootOrderOptions.push(str);
+ }
+ var data = {
+ bootorder: formattedBootOrderOptions
+ };
+ kimchi.updateVM(kimchi.selectedGuest, data, function() {
+ wok.window.close();
+ }, function(err) {
+ wok.message.error(err.responseJSON.reason,'#alert-modal-container');
+ });
+ };
+
};
diff --git a/ui/pages/guest-edit.html.tmpl b/ui/pages/guest-edit.html.tmpl
index d8a482c..5424250 100644
--- a/ui/pages/guest-edit.html.tmpl
+++ b/ui/pages/guest-edit.html.tmpl
@@ -30,7 +30,7 @@
</div>
<div class="modal-body">
<span id="alert-modal-container"></span>
-<ul class="nav nav-tabs" role="tablist">
+ <ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#form-guest-edit-general" aria-controls="form-guest-edit-general" role="tab" data-id="form-guest-edit-general" data-toggle="tab">$_("General")</a></li>
<li role="presentation"><a href="#form-guest-edit-storage" aria-controls="form-guest-edit-storage" role="tab" data-id="form-guest-edit-storage" data-toggle="tab">$_("Storage")</a></li>
<li role="presentation"><a href="#form-guest-edit-interface" aria-controls="form-guest-edit-interface" role="tab" data-id="form-guest-edit-interface" data-toggle="tab">$_("Interface")</a></li>
@@ -38,6 +38,7 @@
<li role="presentation"><a href="#form-guest-edit-pci" aria-controls="form-guest-edit-pci" role="form-guest-edit-pci" data-id="form-guest-edit-pci" data-toggle="tab">$_("Pci")</a></li>
<li role="presentation"><a href="#form-guest-edit-snapshot" aria-controls="form-guest-edit-snapshot" role="tab" data-id="form-guest-edit-snapshot" data-toggle="tab">$_("Snapshot")</a></li>
<li role="presentation"><a href="#form-edit-processor" aria-controls="form-edit-processor" role="tab" data-id="form-edit-processor" data-toggle="tab">$_("Processor")</a></li>
+ <li role="presentation"><a href="#form-guest-edit-boot-order" aria-controls="form-guest-edit-boot-order" role="tab" data-id="form-guest-edit-boot-order" data-toggle="tab">Boot Order</a></li>
</ul>
<div class="tab-content" id="guest-edit-tabs">
<form role="tabpanel" class="tab-pane active" id="form-guest-edit-general">
@@ -197,7 +198,6 @@
$_("Current CPU must be equal or lower than the Maximum CPU value. If a topology is set, it must be also be a multiple of the 'threads' value.")
</p>
</div>
-
<div id="guest-max-processor-panel" class="form-group">
<label for="guest-edit-max-processor-textbox">$_("Max CPU")</label>
<p id="settings-readonly-help" class="hidden">$_("Unable to edit maximum CPU or CPU topology when editing a running or paused virtual machine.")</p>
@@ -231,6 +231,20 @@
</div>
</div>
</form>
+ <form role="tabpanel" class="tab-pane" id="form-guest-edit-boot-order">
+ <div class="form-group">
+ <div id="bootOrder">
+ <ul id="myList" class="list-group boot-order">
+ <li class="list-group-item" data-value="CD-ROM">CD-ROM</li>
+ <li class="list-group-item" data-value="HDD">HDD</li>
+ <li class="list-group-item" data-value="Network">Network</li>
+ </ul>
+ <p class="help-block">
+ <i class="fa fa-info-circle"></i> $_("Change the boot order by dragging the items on the list.")</p>
+ </p>
+ </div>
+ </div>
+ </form>
</div>
</div>
<div class="modal-footer">
--
2.9.3
7 years, 11 months
[PATCH] [Kimchi 0/4] Fix for Multi-culture UI issues for kimchi plugin.
by rajgupta@linux.vnet.ibm.com
From: Rajat Gupta <rajat.triumph(a)gmail.com>
Rajat Gupta (4):
Multi-culture UI issues for kimchi plugin template module
Corrected position of close icon for create a network pop up alert
Multi-culture UI issues for kimchi plugin Storage module
Multi-culture UI issues for kimchi plugin Guest module
ui/css/kimchi.css | 150 ++++++++++++++++++++++-----------
ui/css/src/modules/_edit-guests.scss | 29 ++++---
ui/css/src/modules/_guests.scss | 6 +-
ui/css/src/modules/_network.scss | 4 +
ui/css/src/modules/_storage.scss | 61 ++++++++++----
ui/css/src/modules/_templates.scss | 19 +++--
ui/js/src/kimchi.guest_edit_main.js | 28 +++---
ui/js/src/kimchi.template_edit_main.js | 6 +-
ui/pages/guest-edit.html.tmpl | 30 +++----
ui/pages/guest-storage-add.html.tmpl | 2 +-
ui/pages/i18n.json.tmpl | 10 +++
ui/pages/tabs/guests.html.tmpl | 14 +--
ui/pages/tabs/storage.html.tmpl | 34 ++++----
ui/pages/tabs/templates.html.tmpl | 24 +++---
ui/pages/template-edit.html.tmpl | 28 +++---
15 files changed, 281 insertions(+), 164 deletions(-)
--
2.1.0
8 years
Re: [Kimchi-devel] Kimchi/Wok
by Michael Cooper
Hello Guys,
Are there any plans to develop this to manage multiple KVM servers
from a centralized location? This is a great piece of software.
Thanks
Michael Cooper
Linux & VMWare
Certified Professionl
8 years