[PATCH] Bug fix: Github #354
by Daniel Henrique Barboza
The following patch fixes the issue described in Github #354:
"storage: used nfs source path need to be filtered out in creation page"
https://github.com/kimchi-project/kimchi/issues/354
Daniel Henrique Barboza (1):
model/storagetargets: filtering used nfs paths
src/kimchi/model/storagetargets.py | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
--
1.8.3.1
10 years, 4 months
[PATCH] Add hover description to template type icons
by Crístian Viana
The small icons on each template indicate whether they are local or
remote but that may not be obvious to everyone.
Show a description when the user hovers the mouse over the template icons
indicating what they mean: local or remote template. Also, the same
descriptive text will be shown in the icon's place if the browser is not
able to load images.
Signed-off-by: Crístian Viana <vianac(a)linux.vnet.ibm.com>
---
ui/js/src/kimchi.template_main.js | 2 ++
ui/pages/i18n.json.tmpl | 2 ++
ui/pages/tabs/templates.html.tmpl | 2 +-
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/ui/js/src/kimchi.template_main.js b/ui/js/src/kimchi.template_main.js
index 3c8421d..ae3f290 100644
--- a/ui/js/src/kimchi.template_main.js
+++ b/ui/js/src/kimchi.template_main.js
@@ -25,8 +25,10 @@ kimchi.doListTemplates = function() {
var isLocal = /^\//.test(value['cdrom']);
if(isLocal){
value.location = "images/theme-default/icon-local.png";
+ value.iconDescription = i18n['KCHTMPL6004M'];
}else{
value.location = "images/theme-default/icon-remote.png";
+ value.iconDescription = i18n['KCHTMPL6005M'];
}
listHtml += kimchi.substitute(templateHtml, value);
});
diff --git a/ui/pages/i18n.json.tmpl b/ui/pages/i18n.json.tmpl
index f1478a7..8e6fcd6 100644
--- a/ui/pages/i18n.json.tmpl
+++ b/ui/pages/i18n.json.tmpl
@@ -61,6 +61,8 @@
"KCHTMPL6002M": "$_("It will take long time. Do you want to continue?")",
"KCHTMPL6003M": "$_("This will permanently delete the template. Would you like to continue?")",
+ "KCHTMPL6004M": "$_("Local template")",
+ "KCHTMPL6005M": "$_("Remote template")",
"KCHHOST6001E": "$_("Unable to shut down system as there are some virtual machines running!")",
diff --git a/ui/pages/tabs/templates.html.tmpl b/ui/pages/tabs/templates.html.tmpl
index 7cf7fcd..4fe1d73 100644
--- a/ui/pages/tabs/templates.html.tmpl
+++ b/ui/pages/tabs/templates.html.tmpl
@@ -50,7 +50,7 @@
<div class="template-icon template-icon-position">
<img alt="" src="{icon}">
- <img alt="" src="{location}" class="template-type-icon-position">
+ <img alt="{iconDescription}" title="{iconDescription}" src="{location}" class="template-type-icon-position">
</div>
<div class="template-general template-title template-title-position">
<h2 class="title" title="{name}">{name}</h2>
--
1.9.3
10 years, 4 months
[RFC] Mock for Authorization: Allow admin user change permission settings when VM is running
by Wen Wang
Hi all,
Here is the new design of the "Edit" function. We are going to enable
user viewing VM details when VMs are running and "Permission" is always
available whether a VM is running or not.
Here's the detail of the design:
1) Enable "Edit" in "Action" whether VM is running or not.
2) Delete "Manage Media" button and move it to a tab in "Edit"
3) Enable "Permission" & "Manage Media" and provide read-only privilege
of "General", "Storage", "Interface" when a VM is running.
4) Enable "General", "Storage", "Interface", "Permission" and provide
read-only privilege of "Manage Media"when a VM is not running.
Mocks are added below:
Delete "Manage Media" and enable "Edit" all the time.
When a VM is running, tabs are presented:
When a VM is not running, tabs are presented all like what is right now
only with a new tab of "Manage Media" read-only:
Any comment is welcomed
Best Regards
Wang Wen
10 years, 4 months
RFC: Asynchronous event notify
by Wen Wang
Hi all,
Back-end:
STOMP <http://stomp.github.com/> is a simple text-orientated messaging
protocol, based on which, we can accomplish the "TCP for the web".
What we need is a message server and a client that communicate with the
server. We can send messages to server using this protocol and receive
messages from server, which needs a subscription to the server first and
then server gives the callback.
Here are the possible STOMP servers:
Apache ActiveMQ the most popular and powerful open source
messaging and Integration Patterns server
Apache Apollo a redesigned version of ActiveMQ
CoilMQ a lightweight pure Python STOMP broker
inspired by StompServer
Gozirra a lightweight Java STOMP broker
HornetQ puts the buzz in messaging
MorbidQ a STOMP publish/subscribe server with
absolutely no potential to cluster
RabbitMQ an Erlang-based, multi-protocol broker
with full support for STOMP via a plugin
Sprinkle written in Python and runs on Unix
type platforms
Stampy a Java implementation of the STOMP 1.2
specification
StompConnect provides a bridge to any other JMS provider
StompServer a lightweight pure Ruby STOMP server
And the client:
pyactivemq module for communicating with the ActiveMQ message broker
stomper a client implementation of the STOMP protocol
stompest a full-featured STOMP implementation for Python
including both synchronous and asynchronous clients
stompy implementation of the STOMP protocol in Python
stomp.py a Python client library which can also be run as a
standalone, command-line client for testing.
Front-end:
As I mentioned before. Front-end only change the way that the long time
task communicate with the back-end. UI should look just the same with a
more enhanced display. Also, more function will be enabled according to
this like we can enable actions when generating a debug report, etc.
Best Regards
Wang Wen
10 years, 4 months
[RFC] Create template from VM
by Rodrigo Trujillo
Complementing what Aline has already pointed (thanks Aline)
=== Create template from VM ===
This will use the same backing storage mechanism used to create a
template from a IMG file.
POST /templates {'name': <template-name>, 'vm': <vm-name>}
** change 'create' in src/kimchi/models/template.py:
- check if template is based on ISO or VM
- fetch VM information
- create new LibvirtVMTemplate
** change api.json
- Documentation
** New error messages
UI:
1) When creating a template:
Add an option "From guest"; then list all guests to user choose one
or multiples and do the requests
** Add the new option in /ui/pages/template-add.html.tmpl
<a id="iso-local" class="local">$_("Local ISO
Image")</a> ...
<a id="iso-remote" class="remote">$_("Remote ISO
Image")</a>
---> <a id="guest-template" class="guest">$_("From
Guest")</a> <------- NEW
** List VMs and allow select more then one. (use same behaviour like in
multiple local or remote isos )
10 years, 4 months
[PATCH v2 0/1] UI-set-ticket-password
by Simon Jin
V2-V1:
- Put new password input box on 'general' tab instead of being a
sperate tab.
- Rename the input label as 'Console password'.
Simon Jin (1):
UI: set ticket password
ui/css/theme-default/guest-edit.css | 10 +++++-----
ui/js/src/kimchi.guest_edit_main.js | 4 ++++
ui/pages/guest-edit.html.tmpl | 13 +++++++++++++
3 files changed, 22 insertions(+), 5 deletions(-)
--
1.8.5.3
10 years, 4 months
Kimchi 1.3 Sprint 2 Overview
by Aline Manera
Hi all,
As agreed in the last scrum meeting
(http://kimchi-project.github.io/kimchi/meetings/kimchi.scrum.2014-08-13-1...),
I am sending to you an overview about the sprint 2 tasks.
That way everyone can be aware of what is expected in each task and we
don't block the UI development.
Just to make clear, this is my view on each task!
Maybe you - the task owner - have a different view on that. In this
case, share your ideas with us.
And *don't forget to send a RFC, V1 patch, UI mockup *or something
related to your task by *next Monday (08/18)*
This email is just a summary to motivate you! ;-)
*ISO pool: Support to download ISO from URL (vianac)*
The idea here is to provide a way to user download a ISO from URL to the
OOTB pool (ISO pool)
POST /storagepools/ISO/storagevolumes/ {'name': <vol-name>, 'url':
<http|https|ftp://url>}
- name can be optional. We can generate one automatically based on ISO
path when any name is provided by user.
- url is required.
Questions:
- Which protocols will we support? http, https, ftp? Any other?
- About the UI, how do we show this feature to user?
Basically we have 2 options:
1) In the storage tab:
Add an option "Add ISO" to the ISO pool (or any pool ?); get the
URL and display a progress bar.
2) While creating a template:
Add an option "Download ISO"; get the URL and display a progress bar.
When the download is completed, we create a template using the new
ISO.
I prefer the first option (storage tab) as it can also be used for
upload ISO (see below)
*ISO pool: Support to upload ISO*
This has a similar idea from downloading ISO from URL, but instead of
providing a URL the user will select a local file on client side.
POST /storagepools/ISO/storagevolumes/ {'name': <vol-name>, 'filepath':
filepath}
For the UI we also have the same 2 options from downloading ISO from URL
feature
I prefer the first one (storage tab) as we can use the same UI for both
cases, download and upload.
While selection "Add ISO" option, a new dialog will be displayed with a
radio box: a browser input box (for upload) and a simple input box for
URL (for download). The user can only select one option and confirm the
operation.
*Create template from VM (rotru)*
This will use the same backing storage mechanism used to create a
template from a IMG file.
POST /templates {'name': <template-name>, 'vm': <vm-name>}
About the UI:
We have 2 options:
1) When creating a template:
Add an option "From guest"; then list all guests to user choose one
(or multiples ? ) and do the requests
2) On guests Actions menu
Add an option "Create template" and do the request
I prefer the first option (while creating a template)
*Discover Kimchi peers(alinefm)*
This will use openSLP to register and discover Kimchi peers in the same
network.
GET /peers will return the Kimchi peers
[{server: "https://1.2.3.4:8001"}, {server: "https://1.2.3.5:8001"}...]
I think this feature should be optional, ie, we will have a config file
entry that can be enabled/disabled - as this feature is not critical for
virtualization and requires additional software installation (openSLP)
and configuration.
federation = enable|disable
When enabled, the kimchi server will be register in the openSLP tool and
when requesting /peers we will search for peers
When disabled, /peers will return an empty list. Maybe it would be good
to also display a message on UI "Federation feature is disabled for your
Kimchi server."
To display that message, we need to update /config/capabilities to also
return this info.
GET /config/capabilities
{ ...
federation: enable|disable
}
*Migration(Simon Jin)*
This task was added after we have finished the 1.3 Plan. So it would be
difficult to accommodate the UI for it in out current plan.
So I'd say I only expect to have the backend done for 1.3 release.
POST /vms/<name>/migrate {server: <other-kimchi-server-ip>}
*Asynchronous event notify(Sheldon Feng/Zhengsheng Zhou)[backend]*
*Asynchronous event notify(WenWang)[UI]*
This is an important and big task. But I am not sure we will be able to
finish it on time for 1.3 release.
We have already started some discussion on ML "[Kimchi-devel] [RFC]
Improve task management for kimchi"
(http://lists.ovirt.org/pipermail/kimchi-devel/2014-June/006230.html)
*Authorization: Allow admin user change permission settings when VM is
running (WenWang)
*The idea is display the same "Edit" dialog view when vm is running or not.
And when vm is running only enable the information that can be updated
with running vm for editing.
That way we eliminate the "Manage Media" option and keep the UI
consistent. And also provide a way to user checks the vm configuration
(https://github.com/kimchi-project/kimchi/issues/387)
*VM ticket: update novnc/spice code (sheldon)*
POST /vms/<name>/connect will automatically set a random console
password for the VM and sets its expiration time to 10 seconds later.
When accessing the console URL, we need to pass the password as a
parameter (password=...) so noVNC/Spice can do the connection to the
guest console.
*Display iSCSI targets when iSCSI server is provided (backend done in
3c6c5c) (Yu Xin)*
It is similar to what we did for NFS servers. But in this case we will
list the iSCSI targets for a given server.
GET /storageservers?_target_type=iscsi
[
{ "host":"127.0.0.1"
"port":"3260"
}
]
GET
/storageservers/<server>/storagetargets?_target_type=iscsi&_server_port=<port>
[
{
"host":"127.0.0.1",
"target":"iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.edb1a004dc57",
"target_type":"iscsi"
}
]
-----------
And thanks for your patience if you were reading this line now! :-)
I know it is a big email but it could not be different based on the
tasks we have for sprint 2.
Feel free to use it as base for your RFC email.
I am looking forward to see all that done.
Regards,
Aline Manera
10 years, 4 months