Giter VIP home page Giter VIP logo

kimchi's People

Contributors

adamkingit avatar alinefm avatar alisonjenkins avatar apporc avatar atreyeemukhopadhyay avatar baude avatar cbosdo avatar cd1 avatar clnperez avatar danielhb avatar edusf avatar edwardbadboy avatar frediz avatar gouzongmei avatar laptop006 avatar lvroyce avatar overcookedtofu avatar peterpennings avatar pgurenko avatar potula-chandra avatar pradeepkumars avatar rajatgupta21 avatar ravanelli avatar samhenri avatar sstoppler avatar sureshab avatar truja avatar wenwang1989 avatar xinding avatar yuxinhuo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kimchi's Issues

Can not request VMs and storagepools resource when a vm is running on SLES

Test kimchi on SUSE11 SP2, just one VM on the host:
Start the VM using virsh and start the kimchi:
PYTHONPATH=./src/burnet python bin/bunetd

If the VM is running, on UI the VM list is empty.
Using REST request, the GET request for /vms and /storagepools will wait for a long while and return 0.

If shut-off the VM before kimchi start, the UI will show it and vms and storagepools request will return expected result.

we don't look in all of the right places for the qemu binary

Environment
IBM RH6 Open Client

Recreate steps

PYTHONPATH=./src python bin/burnetd --test

Expected Result:

  • server starts in testmode

Actual result

  • server will not start
  • mockmodel init fails
cmd = "qemu-system-%s"  % platform.machine() 

does not find qemu which is at

sudo virsh capabilities  | grep emulator
      <emulator>/usr/libexec/qemu-kvm</emulator>
        <emulator>/usr/libexec/qemu-kvm</emulator>
      .....
sudo PYTHONPATH=./src python bin/burnetd --test
Traceback (most recent call last):
  File "bin/burnetd", line 57, in <module>
    sys.exit(main(sys.argv[1:]))
  File "bin/burnetd", line 54, in main
    burnet.server.main(options)
  File "/home/rak/development/burnet/src/burnet/server.py", line 97, in main
    srv = Server(options)
  File "/home/rak/development/burnet/src/burnet/server.py", line 84, in __init__
    model_instance = mockmodel.get_mock_environment()
  File "/home/rak/development/burnet/src/burnet/mockmodel.py", line 288, in get_mock_environment
    model = MockModel()
  File "/home/rak/development/burnet/src/burnet/mockmodel.py", line 37, in __init__
    p = subprocess.Popen(args, close_fds=True)
  File "/usr/lib64/python2.6/subprocess.py", line 639, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.6/subprocess.py", line 1228, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Can not connect to the guest VM VNC display by noVNC on RHEL6.3

On RHEL6.3, can not show the display of guest VM by noVNC.
The noVNC viewer(firefox) stopped on "starting VNC handshake".

The burnet log:

WebSocket server settings:
  - Listen on :38982
  - Flash security policy server
  - No SSL/TLS support (no cert file)
  - proxying from :38982 to localhost:5900

::1 - - [17/Jun/2013:13:18:32] "GET /vms/vm-ubuntu HTTP/1.1" 200 215 "http://localhost:8000/dev-ui.html" "Mozilla/5.0 (X11; Linux x86_64; rv:10.0.5) Gecko/20120601 Firefox/10.0.5"
::1 - - [17/Jun/2013:13:18:32] "GET /vnc_auto.html?port=38982&logging=debug HTTP/1.1" 200 1638 "http://localhost:8000/dev-ui.html" "Mozilla/5.0 (X11; Linux x86_64; rv:10.0.5) Gecko/20120601 Firefox/10.0.5"
  1: 127.0.0.1: Plain non-SSL (ws://) WebSocket connection
  1: 127.0.0.1: Version hybi-08, base64: 'False'
  1: 127.0.0.1: Path: '/websockify'
  1: connecting to: localhost:5900

Enable SSL

Kimchi users will want to the capability to open an SSL encrypted port in addition to or instead of the unencrypted port we have today.

Kimchi can not works well on FC19 by following the README.

I do the the following step as README says:

Install Dependencies

$ sudo yum install python-cherrypy python-cheetah \
                   python-imaging python-polib

Build and Install

$ sudo python setup.py install

Run

$ sudo burnetd --host=0.0.0.0

When I connect my browser to localhost:8000, it does not display the screen as README shows.
It displays a warning:
"
Oops! It looks like I am running from a source tree and you forgot to build! Please run the following command and reload this page:
python setup.py build
"
Then
$ sudo python setup.py build

it still show this warning.

That's too bad, the warning misleads me.

Animate button clicks to provide user feedback

When a user clicks a button on a VM tile, the button does not provide any feedback that it has been clicked. In order to reassure the user that the click happened and the UI is working to satisfy the request, we should animate the button to show it has been pressed and released.

IE8 doesn't support property or method in burnet.min.js

Message: Object doesn't support this property or method
Line: 263
Char: 13
Code: 0
URI: http://9.181.129.157:8000/js/burnet.min.js

Message: Object doesn't support this property or method
Line: 263
Char: 13
Code: 0
URI: http://9.181.129.157:8000/js/burnet.min.js

Message: Object doesn't support this property or method
Line: 263
Char: 13
Code: 0
URI: http://9.181.129.157:8000/js/burnet.min.js

Message: Object doesn't support this property or method
Line: 263
Char: 13
Code: 0
URI: http://9.181.129.157:8000/js/burnet.min.js

Message: Object doesn't support this property or method
Line: 263
Char: 13
Code: 0
URI: http://9.181.129.157:8000/js/burnet.min.js

Message: Object doesn't support this property or method
Line: 263
Char: 13
Code: 0
URI: http://9.181.129.157:8000/js/burnet.min.js

Message: Object doesn't support this property or method
Line: 263
Char: 13
Code: 0
URI: http://9.181.129.157:8000/js/burnet.min.js

Message: Object doesn't support this property or method
Line: 263
Char: 13
Code: 0
URI: http://9.181.129.157:8000/js/burnet.min.js

Clean up whitespace in all source files

Currently the UI source code has poorly indented code with mixed tabs and spaces. The kimchi project policy is to have each indent level use 4 spaces. Tabs are not allowed at all. We need to go through all files and fix the whitespace issues. Unfortunately this is a disruptive activity since it will cause merge conflicts for other patches so we can defer it until the time is right.

Unable to create template on RHEL6.3

Steps to reproduce:

  1. Install kimchi on RHEL6.3
  2. Start kimchi serer
  3. Go to "Template" tab and click on "+" icon to add new template

Expected result:
A popup window will be shown to enter the template values

Actual result:
Any window is open

In the console I can see the following traceback:

Request Headers:
REFERER: http://192.168.122.74:8000/
HOST: 192.168.122.74:8000
CONNECTION: keep-alive
Remote-Addr: 192.168.122.1
ACCEPT: text/html, /; q=0.01
USER-AGENT: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0
X-REQUESTED-WITH: XMLHttpRequest
ACCEPT-LANGUAGE: en-us,en;q=0.5
ACCEPT-ENCODING: gzip, deflate
[03/Jul/2013:14:04:48] HTTP Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/cherrypy/_cprequest.py", line 656, in respond
response.body = self.handler()
File "/usr/lib/python2.6/site-packages/cherrypy/lib/encoding.py", line 188, in call
self.body = self.oldhandler(_args, *_kwargs)
File "/usr/lib/python2.6/site-packages/cherrypy/_cpdispatch.py", line 34, in call
return self.callable(_self.args, *_self.kwargs)
File "/root/kimchi/src/burnet/root.py", line 42, in default
return template.render(page, {'hostname': 'localhost'})
File "/root/kimchi/src/burnet/template.py", line 88, in render
return Template(file=filename, searchList=params).respond()
File "/usr/lib64/python2.6/site-packages/Cheetah/Template.py", line 1257, in init
self._compile(source, file, compilerSettings=compilerSettings)
File "/usr/lib64/python2.6/site-packages/Cheetah/Template.py", line 1551, in _compile
keepRefToGeneratedCode=True)
File "/usr/lib64/python2.6/site-packages/Cheetah/Template.py", line 737, in compile
settings=(compilerSettings or {}))
File "/usr/lib64/python2.6/site-packages/Cheetah/Compiler.py", line 1575, in init
source = unicode(source)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 2261: ordinal not in range(128)

ui: dev-ui create vm from template dispay abnormal

usecase:
in mock backend

  • Access the development UI: http://:/dev-ui.html
  • create vm from template
  • a new vm add to the Virtual Machines colomn with a blank slot in the column

expected:

  • vm arranged next to each other

actual:
blank slot in the column

Integrate websockify into cherrypy

noVNC is supported in Kimchi by launching an external program (websockify.py) to wrap an existing qemu vnc connection with web sockets (needed by noVNC). This works but has a number of disadvantages:

  • Requires a range of ports to be opened through the firewall (to support multiple connections)
  • Need to manage and clean up the spawned websockify processes.
  • Complex

Anthony proposed an idea to support websocket proxying directly from the cherrypy server on its given port. The noVNC code would be directed to a URL such as: ws://:8000/vms/vm-1/vnc. Cherrypy would switch to a websockets handler to service connections at this URL.

object store threaded test case failed randomly

When the unit tests were launched by ./run_test.sh, the following error happened randomly. while in most times, the test case result was good.

FAIL: test_object_store_threaded (ModelTests.ModelTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/tmp/burnet-debugreports/tests/ModelTests.py", line 232, in test_object_store_threaded
    self.assertEquals(10, len(store._connections.keys()))
AssertionError: 10 != 7

[BUG] GUEST "VNC" do not work which graphic type is "spice"

1 start a virtual client
2 Click the VNC button when the windows screen shows
3 browser :http://localhost:8000/vms/Virtual_Client_for_Linux_Windows_7-KVM/connect 500 Internal Server Error

File "/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 656, in respond
response.body = self.handler()
File "/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 188, in call
self.body = self.oldhandler(_args, *_kwargs)
File "/usr/lib/python2.7/site-packages/cherrypy/_cpdispatch.py", line 34, in call
return self.callable(_self.args, *_self.kwargs)
File "/home/zhonghg/git/2122/src/burnet/controller.py", line 94, in wrapper
raise cherrypy.HTTPError(500, "Operation Failed: '%s'" % msg)
HTTPError: (500, "Operation Failed: 'Unable to find VNC port in Virtual_Client_for_Linux_Windows_7-KVM'"

IE8 can not access Kimchi web interface properly

When IE8 was used to access my Kimchi server, the following errors were displayed. However, Firefox 17 can access the same server properly.


406 Not Acceptable
URI not available in preferred format.

Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 656, in respond
response.body = self.handler()
File "/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 188, in call
self.body = self.oldhandler(_args, *_kwargs)
File "/usr/lib/python2.7/site-packages/cherrypy/_cpdispatch.py", line 34, in call
return self.callable(_self.args, *_self.kwargs)
File "/home/tmp/kimchi-origin/src/burnet/controller.py", line 140, in index
return self.get()
File "/home/tmp/kimchi-origin/src/burnet/root.py", line 37, in get
return self.default('burnet-ui.html')
File "/home/tmp/kimchi-origin/src/burnet/root.py", line 42, in default
return template.render(page, {'hostname': 'localhost'})
File "/home/tmp/kimchi-origin/src/burnet/template.py", line 95, in render
raise cherrypy.HTTPError(406)
HTTPError: (406, None)
Powered by CherryPy 3.2.2

UI: Add a language selector to the top of the page

We currently have an internationalized web application but no way for users to change the language :) In the Development UI we just use a select box populated with the available languages. We should consider adding such a box to the Main UI as well.

Forms Validation

Need to restrict user's input by validating forms before submitting it.

  1. Check restrictions of KVM
    VM name (length, allowed characters)
    Template name, CPU, Memory, ISO path(length, allowed characters)
  2. Create scripts to validate form fields.

No unit2 module in RHEL6.4

cd kimchi/tests

[tmp@rhels64-burnet tests]$ ./run_tests_RHEL6.sh

./run_tests_RHEL6.sh: line 24: unit2: command not found

Tried to install unit2 module with easy_install and yum repositories.

tmp@rhels64-burnet tests]$ sudo easy_install install unittest2
Reading http://pypi.python.org/simple/install/
Download error: [Errno -3] Temporary failure in name resolution -- Some packages may not be found!
tmp@rhels64-burnet tests]$ sudo yum install python-unittest2
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
No package python-unittest2 available.
Error: Nothing to do
[tmp@rhels64-burnet tests]$

mockmodel: noVNC Failed to connect to server (code: 1006)

When we read the src/burnet/mockmodel.py code.
We find a bug in the commit:

$ git show 19be36fc40daa09641a948f077d64979067494bf
"Open vnc port in MockModel"

it can reproduce 100% by the follow step on Fedora:

  • start a qemu-system_x86-64 running with a vnc port manually.
    $ qemu-system-x86_64 -vnc : 0
  • start burnet with test mode.
    $ sudo PYTHONPATH=src ./bin/burnetd --host "0.0.0.0" --port 8000 --test
  • open the url http://localhost:8000 by client browser.
  • start a VM.
  • display this VM
    novnc will report this error.
    Failed to connect to server (code: 1006)

make rpm package failed on SLES11 SP2

When 'make redhat' or 'make suse' rpm package, error report:

Building for target noarch
error: Failed build dependencies:
    python-polib is needed by burnet-0.0.1-1.el6.noarch
make: *** [redhat_rpm] Error 1

but no python-polib package for RHEL6.3 and SLES11can be found, but I have installed the polib package by python setup tool.

The dependencies should be moved into setup.py instead of the spec file ?

[Chrome] Can't Create a VM with Chinese Name

  1. Click "+" Button.
  2. Input VM name: "虚拟机-CentOS".
  3. Select a template.
  4. Click "Create" Button.

Expected:
A new VM named "虚拟机-CentOS" created.

Executed:
Error occurred: Failed to create vm.

Request Payload:
name: "虚拟机-CentOS"
template: "/templates/CentOS-6.4-x86_64"

Response:
Status Code:500 Internal Server Error:

Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/_cprequest.py", line 656, in respond
response.body = self.handler()
File "/usr/lib/python2.7/site-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/lib/encoding.py", line 188, in call
self.body = self.oldhandler(_args, *_kwargs)
File "/usr/lib/python2.7/site-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/_cpdispatch.py", line 34, in call
return self.callable(_self.args, *_self.kwargs)
File "/usr/lib/python2.7/site-packages/burnet/controller.py", line 232, in index
return self.create(_args)
File "/usr/lib/python2.7/site-packages/burnet/controller.py", line 192, in create
name = create(_args)
File "/usr/lib/python2.7/site-packages/burnet/model.py", line 218, in vms_create
pool.createXML(v['xml'], 0)
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 2261, in createXML
ret = libvirtmod.virStorageVolCreateXML(self._o, xmldesc, flags)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 42-44: ordinal not in range(128)

RHEL6.3: Import error on objectstore.py

There is a extra import statement in objectstore.py outside the try/expect block.

from collections import OrderedDict
try:
from collections import OrderedDict
except ImportError:
from ordereddict import OrderedDict

Complete rename from Burnet to Kimchi

The code still contains many references to the incubator project name 'burnet'. This work includes:

  • Rename modules
  • Rename data directories and files
  • Remove references to burnet from code and user messages
  • Rename software packages from burnet to kimchi

report error when double click the start/stop button in design ui

The designed UI display that VM is shutdown.
I double click the button to start VM, it reports an error "Failed to create VM"
but not report the reason of failed. I check the burnet.log, it tells me "domain is already running"

I check the /var/log/burnet/burnet.log

[14/Jun/2013:18:30:59] HTTP
Request Headers:
REFERER: http://fsh-kimchi-ubuntu12.10:8000/
Remote-Addr: 10.8.0.2
Content-Length: 0
USER-AGENT: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 
Firefox/13.0
CONNECTION: keep-alive
PRAGMA: no-cache
X-REQUESTED-WITH: XMLHttpRequest
DNT: 1
HOST: fsh-kimchi-ubuntu12.10:8000
CACHE-CONTROL: no-cache
ACCEPT: application/json, text/javascript, */*; q=0.01
ACCEPT-LANGUAGE: zh-cn,en-us;q=0.7,en;q=0.3
Content-Type: application/json
ACCEPT-ENCODING: gzip, deflate
[14/Jun/2013:18:30:59] HTTP
Request Headers:
REFERER: http://fsh-kimchi-ubuntu12.10:8000/
Remote-Addr: 10.8.0.2
Content-Length: 0
USER-AGENT: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 
Firefox/13.0
CONNECTION: keep-alive
PRAGMA: no-cache
X-REQUESTED-WITH: XMLHttpRequest
DNT: 1
HOST: fsh-kimchi-ubuntu12.10:8000
CACHE-CONTROL: no-cache
ACCEPT: application/json, text/javascript, */*; q=0.01
ACCEPT-LANGUAGE: zh-cn,en-us;q=0.7,en;q=0.3
Content-Type: application/json
ACCEPT-ENCODING: gzip, deflate
[14/Jun/2013:18:30:59] HTTP Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/cherrypy/_cprequest.py", line 
656, in respond
response.body = self.handler()
File "/usr/lib/python2.7/dist-packages/cherrypy/lib/encoding.py", line 
188, in __call__
self.body = self.oldhandler(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/cherrypy/_cpdispatch.py", line 
34, in __call__
return self.callable(*self.args, **self.kwargs)
File "/usr/lib/python2.7/dist-packages/burnet/controller.py", line 75, 
in wrapper
f(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/burnet/controller.py", line 241, 
in start
getattr(self.model, model_fn(self, 'start'))(self.ident)
File "/usr/lib/python2.7/dist-packages/burnet/model.py", line 221, in 
vm_start
dom.create()
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 620, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Requested operation is not valid: domain is already running

[14/Jun/2013:18:30:59] HTTP Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/cherrypy/_cprequest.py", line 
656, in respond
response.body = self.handler()
File "/usr/lib/python2.7/dist-packages/cherrypy/lib/encoding.py", line 
188, in __call__
self.body = self.oldhandler(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/cherrypy/_cpdispatch.py", line 
34, in __call__
return self.callable(*self.args, **self.kwargs)
File "/usr/lib/python2.7/dist-packages/burnet/controller.py", line 75, 
in wrapper
f(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/burnet/controller.py", line 241, 
in start
getattr(self.model, model_fn(self, 'start'))(self.ident)
File "/usr/lib/python2.7/dist-packages/burnet/model.py", line 221, in 
vm_start
dom.create()
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 620, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Requested operation is not valid: domain is already running

ui: guest list unordered

Scenario:

  • Load Kimchi UI with a number of guests

Expected result:

  • List of guests appears in sorted order

Actual result:

  • List is in some arbitrary order

Variation:

  • Create a new guest "testGuest"
  • Note its position in the list
  • Delete "testGuest"
  • Create another new guest "testGuest"
  • Note it is inserted into the list in a different position

Fix screenshot transitions

Because it may take some time for a web browser to download the screenshot images sometimes a VM tile is rendered with a partial screenshot. Additionally, when the image is refreshed, it does not appear smooth. To fix this we must load the screenshot images in the background and display them via a callback after they have been fully downloaded. Fixing this properly will require us to change the way VM tiles are refreshed. Instead of deleting all tiles and rebuilding them on each refresh, we will need to update the existing tiles (deleting any that should no longer appear and adding any new VMs since the last refresh).

The messageField should show more failed information.

when create a VM failed, Design UI just report "Failed to create VM".
No other more information.
So we need to check the burnet log. It tell us the detail
it is better that messageField show the detail failure.
So the design UI users can easily find the reason of failure.

Adam suggested as follow:
We need to do a better job with error reporting.

When a REST operation fails, we will return a 4xx-5xx status code. The
body of the response is an error message and stack trace. You could
write a wrapper function in the REST API that wraps all API calls and
checks for errors. When one is found, display the first line of the
response body in the error bar of the browser.

UI report error when press Enter key to confirm to create a VM

How to reproduce:

  1. click "+" to create a VM
  2. choose a Template
  3. input Virtual Machine Name
  4. press Enter key

the log of browser:
Unexpected query string parameters: name, template

Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 656, in respond
response.body = self.handler()
File "/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 188, in call
self.body = self.oldhandler(_args, *_kwargs)
File "/usr/lib/python2.7/site-packages/cherrypy/_cpdispatch.py", line 40, in call
raise sys.exc_info()[1]
HTTPError: (404, 'Unexpected query string parameters: name, template')

the log of server:

10.8.0.2 - - [10/Jul/2013:08:16:01] "GET /?name=ubuntu13.10&template=%2Ftemplates%2Fmyubuntu HTTP/1.1" 404 1220 "http://192.168.123.56:8000/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1"
10.8.0.2 - - [10/Jul/2013:08:16:03] "GET /favicon.ico HTTP/1.1" 200 1406 "" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1"

[Bug] UI:Add Template contains js errors

1 From the Template page
2 click the "Add Template " button
3 Select "Select a specific ISO to create a template"
4 Open the "fire bug "panel
5 "ReferenceError:init_iso_directory_box is not defined"

ui: Disable create button on create guest without required input

Scenario:

  • Load UI
  • Select "+" to create a new guest
  • Enter a guest name
  • Do not select a template
  • Select "Create" button

Expected result:

  • Required fields identified
  • Create button disabled

Actual result:

  • Required fields not noted.
  • Create button enabled.
  • Message asking the user to "Please choose a template!" displayed at browser top for ~2s

Cannot delete a VM that is powered on

Due to libvirt limitations, attempting to delete a VM that is running will fail. To resolve this we should take one of two actions:

  1. Update the backend so that the vm_delete operation calls libvirt's destroy and undefine operations together.

  2. Grey out the delete button in the UI when the VM is powered on AND add a useful error to the REST API if delete is attempted on a running VM.

Check for 'default' Storage Pool and network

Burnet assumes that the host has an active 'default' Storage Pool and an active 'default' network. Without these, virtual machines cannot be created. We need to check for these resources and if they are absent, handle the problem automatically.

[BUG]create template "vmtemplate.py" line 49: "TypeError: 'NoneType' object is not iterable"

1 Create template page
2 give a exsit iso path
3 click Create
4 ERROR:cherrypy.error.27310224:[05/Jul/2013:16:35:45] HTTP Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 656, in respond
response.body = self.handler()
File "/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 188, in call
self.body = self.oldhandler(_args, *_kwargs)
File "/usr/lib/python2.7/site-packages/cherrypy/_cpdispatch.py", line 34, in call
return self.callable(_self.args, *_self.kwargs)
File "/home/zhonghg/git/2122/src/burnet/controller.py", line 232, in index
return self.create(_args)
File "/home/zhonghg/git/2122/src/burnet/controller.py", line 192, in create
name = create(_args)
File "/home/zhonghg/git/2122/src/burnet/model.py", line 269, in templates_create
t = vmtemplate.VMTemplate(params, scan=True)
File "/home/zhonghg/git/2122/src/burnet/vmtemplate.py", line 49, in init
iso_distro, iso_version = isoinfo.probe_one(iso)
TypeError: 'NoneType' object is not iterable

in the console

[bug] UI always display a mini-line.

always a grey mini-line with 2px height display on the top left of the UI.
.mini-line {
background: none repeat scroll 0 0 #EEEEEE;
height: 2px;
left: 29px;
position: absolute;
top: 8px;
width: 19px;
z-index: 2147483647;
}

It looks uncomforting.

Authenticate Kimchi users

Direct all requests for Kimchi resources to an authentication screen
Authenticate the user id with PAM confirming the user is authorized to log into the server
Establish a server session with a user object (future authorization enhancement)

This should allow Kimchi to authenticate to any user repository than the Linux distribution supports such as LDAP

Image libraries appear to be in PIL (Fedora 19/Python 2.7.5)

To get kimchi to run on Fedora 19 I had to change the imports for the Image and ImageDraw classes to specify the PIL package like so:

from PIL import Image
from PIL import ImageDraw

Such a modification was required in these two files:

  • /usr/lib/python2.7/site-packages/burnet/screenshot.py
  • /usr/lib/python2.7/site-packages/burnet/mockmodel.py

using autotools build system instead of disutils

Python's distutils build and installation system is very limited. While great for pure python modules, it breaks down when doing complex tasks such as building and distributing data files and handling differences between Linux distributions. Autotools has some nice macros for building and distributing python programs and can also handle gettext i18n, distro package building and other tasks.

For an example of another python program that uses autotools, see: https://github.com/oVirt/vdsm

test mode: fail to list vm

start kimchi with test mode, when listing vms from design-ui,
it raises error and fail to list vms, error mesg list bellow

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.