Any use WebVirtMgr with KVM ??


Recommended Posts

  • Replies 120
  • Created
  • Last Reply

Top Posters In This Topic

Yes, I was contemplating creating a plug-in. However I was having some server issues which I think I've fixed with some new memory. The only thing I need to figure out is how to run it as a daemon. I can give you what I have now to get it working.

Can you just run it as a background process by appending '&' to the command like emhttp is done in the go file?
Link to comment

Can you upload the plugin ? We might give some help.. This plugin would be nice to have :-)

Yeah,  let me finish the file declarations and a basic install.  I should have some time today.

Yes, I was contemplating creating a plug-in. However I was having some server issues which I think I've fixed with some new memory. The only thing I need to figure out is how to run it as a daemon. I can give you what I have now to get it working.

Can you just run it as a background process by appending '&' to the command like emhttp is done in the go file?

Starting it isn't the problem.  I was gonna look at python daemon to try and daemonize it so you could stop it nicely.  Otherwise it could keep your array from stopping if it were on your cache drive.

Link to comment

Hmm OK

 

so the interface should show up in the browser on selected port? but I go t the error A server error occurred.  Please contact the administrator

What is the settings for URL Base

//Peter

This is a full complete plugin.  After you run installplg. It installs a page in settings called KVM Manager.  You have to install it from there and then run it.  Then if you want access you have to create users with the  command.  INSTALLDIRECTORY/manage.py createsuperuser  This plugin just runs webvirtmgr as a python script similar to  sickbeard or sabnzbd.  I initially tried running it like the instructions on his github which he uses nginx to serve up the webpages.  Its just a lot more work and trouble and would be better suited for a docker.  This way was easier and only requires a small amount of dependencies.

Link to comment

I still have same error, and I have created a user and add this to the config settings.

 

starting this from command prompt like this

 

cd to install folder...

 

then ...

 sudo -H -u peter1  /usr/bin/python ./manage.py runserver 0:8000
Validating models...

0 errors found
August 29, 2014 - 18:47:26
Django version 1.5.5, using settings 'webvirtmgr.settings'
Development server is running at http://0:8000/
Quit the server with CONTROL-C.

 

acessing the UNRAIDIP:port i see this

 

Traceback (most recent call last):
  File "/usr/lib64/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/usr/lib64/python2.7/site-packages/django/core/handlers/wsgi.py", line 255, in __call__
    response = self.get_response(request)
  File "/usr/lib64/python2.7/site-packages/django/core/handlers/base.py", line 178, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/usr/lib64/python2.7/site-packages/django/core/handlers/base.py", line 224, in handle_uncaught_exception
    return callback(request, **param_dict)
  File "/usr/lib64/python2.7/site-packages/django/utils/decorators.py", line 91, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/django/views/defaults.py", line 41, in server_error
    return http.HttpResponseServerError(template.render(Context({})))
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 140, in render
    return self._render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 134, in _render
    return self.nodelist.render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 830, in render
    bit = self.render_node(node, context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 844, in render_node
    return node.render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/loader_tags.py", line 124, in render
    return compiled_parent._render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 134, in _render
    return self.nodelist.render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 830, in render
    bit = self.render_node(node, context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 844, in render_node
    return node.render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/defaulttags.py", line 413, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 496, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 382, in _reverse_with_prefix
    possibilities = self.reverse_dict.getlist(lookup_view)
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 297, in reverse_dict
    self._populate()
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 286, in _populate
    lookups.appendlist(pattern.callback, (bits, p_pattern, pattern.default_args))
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 230, in callback
    self._callback = get_callable(self._callback_str)
  File "/usr/lib64/python2.7/site-packages/django/utils/functional.py", line 31, in wrapper
    result = func(*args)
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 97, in get_callable
    mod = import_module(mod_name)
  File "/usr/lib64/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/mnt/cache/appdata/webvirtmgr/instance/views.py", line 13, in <module>
    from vrtManager.instance import wvmInstances, wvmInstance
  File "/mnt/cache/appdata/webvirtmgr/vrtManager/instance.py", line 6, in <module>
    from libvirt import libvirtError, VIR_DOMAIN_XML_SECURE, VIR_MIGRATE_LIVE, VIR_MIGRATE_UNSAFE
ImportError: No module named libvirt

 

Link to comment

I still have same error, and I have created a user and add this to the config settings.

 

starting this from command prompt like this

 

cd to install folder...

 

then ...

 sudo -H -u peter1  /usr/bin/python ./manage.py runserver 0:8000
Validating models...

0 errors found
August 29, 2014 - 18:47:26
Django version 1.5.5, using settings 'webvirtmgr.settings'
Development server is running at http://0:8000/
Quit the server with CONTROL-C.

 

acessing the UNRAIDIP:port i see this

 

Traceback (most recent call last):
  File "/usr/lib64/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/usr/lib64/python2.7/site-packages/django/core/handlers/wsgi.py", line 255, in __call__
    response = self.get_response(request)
  File "/usr/lib64/python2.7/site-packages/django/core/handlers/base.py", line 178, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/usr/lib64/python2.7/site-packages/django/core/handlers/base.py", line 224, in handle_uncaught_exception
    return callback(request, **param_dict)
  File "/usr/lib64/python2.7/site-packages/django/utils/decorators.py", line 91, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/django/views/defaults.py", line 41, in server_error
    return http.HttpResponseServerError(template.render(Context({})))
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 140, in render
    return self._render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 134, in _render
    return self.nodelist.render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 830, in render
    bit = self.render_node(node, context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 844, in render_node
    return node.render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/loader_tags.py", line 124, in render
    return compiled_parent._render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 134, in _render
    return self.nodelist.render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 830, in render
    bit = self.render_node(node, context)
  File "/usr/lib64/python2.7/site-packages/django/template/base.py", line 844, in render_node
    return node.render(context)
  File "/usr/lib64/python2.7/site-packages/django/template/defaulttags.py", line 413, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 496, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 382, in _reverse_with_prefix
    possibilities = self.reverse_dict.getlist(lookup_view)
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 297, in reverse_dict
    self._populate()
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 286, in _populate
    lookups.appendlist(pattern.callback, (bits, p_pattern, pattern.default_args))
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 230, in callback
    self._callback = get_callable(self._callback_str)
  File "/usr/lib64/python2.7/site-packages/django/utils/functional.py", line 31, in wrapper
    result = func(*args)
  File "/usr/lib64/python2.7/site-packages/django/core/urlresolvers.py", line 97, in get_callable
    mod = import_module(mod_name)
  File "/usr/lib64/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/mnt/cache/appdata/webvirtmgr/instance/views.py", line 13, in <module>
    from vrtManager.instance import wvmInstances, wvmInstance
  File "/mnt/cache/appdata/webvirtmgr/vrtManager/instance.py", line 6, in <module>
    from libvirt import libvirtError, VIR_DOMAIN_XML_SECURE, VIR_MIGRATE_LIVE, VIR_MIGRATE_UNSAFE
ImportError: No module named libvirt

Were you installing the plugin or  trying to run it manually?  There's a few things you have to do if it's manual.

 

To  do it manually you have to

sudo pip install  -r /mnt/cache/appdata/webvirtmgr/requirements.txt

 

And then

 

      # Create local settings file because the default settings has a specific timezone
       cp -f /mnt/cache/appdata/webvirtmgr/local/local_settings.py.example /mnt/cache/appdata/webvirtmgr/local/local_settings.py

       # This syncs the msqlite db and will ask you to create db user on first run
        /usr/bin/python /mnt/cache/appdata/webvirtmgr/manage.py syncdb 

       # Moves static files otherwise webpages are messed up
/usr/bin/python /mnt/cache/appdata/webvirtmgr/manage.py collectstatic 
       
       # Also to create more users
       /usr/bin/python /mnt/cache/appdata/webvirtmgr/manage.py createsuperuser

 

EDIT I just restarted unraid and its not working I'll have to see what its missing.

Link to comment

One line did not work, is this

 

cp -f /mnt/cache/appdata/webvirtmgr/local/local_settings.py.example /mnt/cache/appdata/webvirtmgr/local/local_settings.py

 

root@Tower:/mnt/cache/appdata/webvirtmgr# ls -l
total 64
-rw-rw-rw- 1 peter1 users   720 Aug 29 17:10 MANIFEST.in
-rw-rw-rw- 1 peter1 users  2097 Aug 29 17:10 README.rst
drwxrwxrwx 1 peter1 users     6 Aug 29 17:10 _/
drwxrwxrwx 1 peter1 users     0 Aug 29 17:18 cache/
drwxrwxrwx 1 peter1 users   112 Aug 29 17:10 conf/
drwxrwxrwx 1 peter1 users    18 Aug 29 17:08 config/
drwxrwxrwx 1 peter1 users   102 Aug 29 17:10 console/
drwxrwxrwx 1 peter1 users   148 Aug 29 17:10 create/
drwxrwxrwx 1 peter1 users    12 Aug 29 17:10 deploy/
-rw-rw-rw- 1 peter1 users    85 Aug 29 17:10 dev-requirements.txt
drwxrwxrwx 1 peter1 users    54 Aug 29 17:10 hostdetail/
drwxrwxrwx 1 peter1 users    18 Aug 29 17:10 images/
drwxrwxrwx 1 peter1 users   158 Aug 29 17:12 instance/
drwxrwxrwx 1 peter1 users    70 Aug 29 17:10 interfaces/
drwxrwxrwx 1 peter1 users    14 Aug 29 17:10 locale/
drwxrwxrwx 1 peter1 users     0 Aug 29 17:18 log/
-rwxrwxrwx 1 peter1 users   253 Aug 29 17:10 manage.py*
drwxrwxrwx 1 peter1 users    70 Aug 29 17:10 networks/
-rw------- 1 peter1 users     0 Aug 29 19:36 nohup.out
-rw-rw-rw- 1 peter1 users   147 Aug 29 17:10 requirements.txt
drwxrwxrwx 1 peter1 users    70 Aug 29 17:10 secrets/
drwxrwxrwx 1 peter1 users    72 Aug 29 17:10 serverlog/
drwxrwxrwx 1 peter1 users   168 Aug 29 17:12 servers/
-rw-rw-rw- 1 peter1 users  2263 Aug 29 17:10 setup.py
drwxrwxrwx 1 peter1 users    26 Aug 29 17:10 static/
drwxrwxrwx 1 peter1 users    70 Aug 29 17:10 storages/
drwxrwxrwx 1 peter1 users   518 Aug 29 17:10 templates/
drwxrwxrwx 1 peter1 users   350 Aug 29 17:12 vrtManager/
drwxrwxrwx 1 peter1 users   222 Aug 29 17:12 webvirtmgr/
-rw-r--r-- 1 peter1 users 38912 Aug 29 21:21 webvirtmgr.sqlite3

 

root@Tower:/mnt/cache/appdata/webvirtmgr# ls locale/
ru/  zh_CN/

 

but I have a subfolder also named webvirtmgron folder webvirtmgr

 

root@Tower:/mnt/cache/appdata/webvirtmgr# ls webvirtmgr
__init__.py  __init__.pyc  local/  settings.py  settings.pyc  settings_jenkins.py  static/  urls.py  urls.pyc  utils/  wsgi.py  wsgi.pyc

Link to comment

One line did not work, is this

 

cp -f /mnt/cache/appdata/webvirtmgr/local/local_settings.py.example /mnt/cache/appdata/webvirtmgr/local/local_settings.py

 

root@Tower:/mnt/cache/appdata/webvirtmgr# ls -l
total 64
-rw-rw-rw- 1 peter1 users   720 Aug 29 17:10 MANIFEST.in
-rw-rw-rw- 1 peter1 users  2097 Aug 29 17:10 README.rst
drwxrwxrwx 1 peter1 users     6 Aug 29 17:10 _/
drwxrwxrwx 1 peter1 users     0 Aug 29 17:18 cache/
drwxrwxrwx 1 peter1 users   112 Aug 29 17:10 conf/
drwxrwxrwx 1 peter1 users    18 Aug 29 17:08 config/
drwxrwxrwx 1 peter1 users   102 Aug 29 17:10 console/
drwxrwxrwx 1 peter1 users   148 Aug 29 17:10 create/
drwxrwxrwx 1 peter1 users    12 Aug 29 17:10 deploy/
-rw-rw-rw- 1 peter1 users    85 Aug 29 17:10 dev-requirements.txt
drwxrwxrwx 1 peter1 users    54 Aug 29 17:10 hostdetail/
drwxrwxrwx 1 peter1 users    18 Aug 29 17:10 images/
drwxrwxrwx 1 peter1 users   158 Aug 29 17:12 instance/
drwxrwxrwx 1 peter1 users    70 Aug 29 17:10 interfaces/
drwxrwxrwx 1 peter1 users    14 Aug 29 17:10 locale/
drwxrwxrwx 1 peter1 users     0 Aug 29 17:18 log/
-rwxrwxrwx 1 peter1 users   253 Aug 29 17:10 manage.py*
drwxrwxrwx 1 peter1 users    70 Aug 29 17:10 networks/
-rw------- 1 peter1 users     0 Aug 29 19:36 nohup.out
-rw-rw-rw- 1 peter1 users   147 Aug 29 17:10 requirements.txt
drwxrwxrwx 1 peter1 users    70 Aug 29 17:10 secrets/
drwxrwxrwx 1 peter1 users    72 Aug 29 17:10 serverlog/
drwxrwxrwx 1 peter1 users   168 Aug 29 17:12 servers/
-rw-rw-rw- 1 peter1 users  2263 Aug 29 17:10 setup.py
drwxrwxrwx 1 peter1 users    26 Aug 29 17:10 static/
drwxrwxrwx 1 peter1 users    70 Aug 29 17:10 storages/
drwxrwxrwx 1 peter1 users   518 Aug 29 17:10 templates/
drwxrwxrwx 1 peter1 users   350 Aug 29 17:12 vrtManager/
drwxrwxrwx 1 peter1 users   222 Aug 29 17:12 webvirtmgr/
-rw-r--r-- 1 peter1 users 38912 Aug 29 21:21 webvirtmgr.sqlite3

 

root@Tower:/mnt/cache/appdata/webvirtmgr# ls locale/
ru/  zh_CN/

 

but I have a subfolder also named webvirtmgron folder webvirtmgr

 

root@Tower:/mnt/cache/appdata/webvirtmgr# ls webvirtmgr
__init__.py  __init__.pyc  local/  settings.py  settings.pyc  settings_jenkins.py  static/  urls.py  urls.pyc  utils/  wsgi.py  wsgi.pyc

 

 

Sorry I really need to setup a virtual unraid.  I updated  the plg with a newer version of python-libvirt 1.2.6.

Link to comment

I also removed libvirt package from the plugin, it's newer in unraid b7

 

//Peter

I think the python-libvirt 1.2.6 didnt work on 6b6 so I used 1.2.0. I saw that 6b7 uses libvirt 1.2.7 and I think thats why I was installing different python-libvirt packages.  But the python-libvirt 1.2.6 seems to work with libvirt 1.2.7 that's in 6b7 

 

Edit: I'm gonna finish removing the bloat from the plugin thats not needed

Link to comment

It's OK now!

 

Good work, now I need to see how to add a connection ???

 

//Peter

I removed all the leftovers from the headphones template and fix a few things. It should be completely functional now. It would be nice to add a DB user from the webgui.  Not sure how to get vnc console to work.  It works fine with virt manager but not web virt.

 

Link to comment

It's OK now!

 

Good work, now I need to see how to add a connection ???

 

//Peter

I removed all the leftovers from the headphones template and fix a few things. It should be completely functional now. It would be nice to add a DB user from the webgui.  Not sure how to get vnc console to work.  It works fine with virt manager but not web virt.

 

I think I have a solution to add user from the GUI!

 

But I need assistance how to make a connection! I have try TCP and SSH , but cant get it to work, how do you do it ?

 

EDIT

 

TCP connection is fixed, updated libvirtd.conf

 

//Peter

 

Link to comment

2 more things to solve ...

 

Networks : give this messages this function is not supported by the connection driver: virConnectNumOfNetworks

Interfaces: give this messages this function is not supported by the connection driver: virConnectNumOfInterfaces

 

Any solution to get this working ?

 

//Peter

Link to comment

 

 

It's OK now!

 

Good work, now I need to see how to add a connection ???

 

//Peter

I removed all the leftovers from the headphones template and fix a few things. It should be completely functional now. It would be nice to add a DB user from the webgui.  Not sure how to get vnc console to work.  It works fine with virt manager but not web virt.

 

I think I have a solution to add user from the GUI!

 

But I need assistance how to make a connection! I have try TCP and SSH , but cant get it to work, how do you do it ?

 

EDIT

 

TCP connection is fixed, updated libvirtd.conf

 

//Peter

 

I was thinking a popup console or  separate entries for username,  email and password that were passed to createsuperuser

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.