View source for svm

{{anchor href="top"}}
Hits :  **{{hits}}**

== simple (lib)virt manage ==

{{ToC from="h2" to="h4"}}

This page is reserved for testing GObject Introspection in python

https://live.gnome.org/PyGObject

and testing python binding for libvirt.

http://libvirt.org/html/libvirt-libvirt.html

=== libvirt ===

%%(python)

#!/usr/bin/python2

import libvirt

conn = libvirt.openReadOnly("qemu:///system") or die("Failed to open connection to the hypervisor")

# List of attributes
## print dir ( conn )

print ( conn.numOfDefinedDomains() )

%%

((#top))
-----------

=== ~PyGObject ===

==== # v 0.0.11 ====

%%(python)
#!/usr/bin/env python
# Copyright (c) Evaggelos Balaskas (2011+)
# v 0.0.11

from gi.repository import Gtk
from configparser import ConfigParser
import webbrowser
import os

def quit( data = None ):
	Gtk.main_quit()

def about(data = None):
	ad = Gtk.AboutDialog()
	ad.set_name("About")
	ad.set_program_name("simple virt manager")
	ad.set_authors(["Evaggelos Balaskas <ebalaskas@ebalaskas.gr>"])
	ad.set_website("https://balaskas.gr")
	ad.set_website_label("https://balaskas.gr")
	ad.run()
	ad.destroy()

def config_file( hc = 'qemu:///system', vc = 'vncviewer' , button = None):
	fileconf = os.environ['HOME'] + '/.svm.prefs'
	config = ConfigParser()
	if not button:
		if config.read(fileconf):
			hc = config['Default']['hypervisor']
			vc = config['Default']['vncclient']
	config['Default'] = {'hypervisor': hc, 'vncclient': vc }
	with open(fileconf, 'w') as configfile:
		config.write(configfile)
	return config
	
def reset_clicked( button, var, entry ):
	config = config_file()
	var.set_text( config['Default'][entry] )
	
def help_clicked( button ):
	webbrowser.open("help.html")

def save_clicked( button, hc, vc, window ):
	config_file( hc=hc.get_text(), vc = vc.get_text(), button = 1 )
	window.destroy()

def Pref(button):

	config = config_file()
	
	window = Gtk.Window()
	window.set_size_request(300, 100)
	window.set_title("Preferences")

	label = Gtk.Label("Plz provide")

	hclabel = Gtk.Label("Hypervisor Connection:  ")
	hc = Gtk.Entry()
	hc.set_text( config['Default']['hypervisor'] )
	hcreset = Gtk.Button("Reset")

	vclabel = Gtk.Label("VNC Client:")
	vc = Gtk.Entry()
	vc.set_text( config['Default']['vncclient'] )
	vcreset = Gtk.Button("Reset")

	help  = Gtk.Button("Help")
	save  = Gtk.Button("Save")

	hcreset.connect ("clicked", reset_clicked, hc, 'hypervisor' )
	vcreset.connect ("clicked", reset_clicked, vc, 'vncclient' )
	
	help.connect ("clicked", help_clicked)
	save.connect ("clicked", save_clicked, hc, vc, window )

	vbox = Gtk.VBox()
	
	vbox.add(label)

	grid = Gtk.Grid()

	grid.attach(hclabel, 0, 0, 1 ,1)
	grid.attach(hc,      1, 0, 1, 1)
	grid.attach(hcreset, 2, 0, 1, 1)

	grid.attach(vclabel, 0, 1, 1 ,1)
	grid.attach(vc,      1, 1, 1, 1)
	grid.attach(vcreset, 2, 1, 1, 1)

	vbox.add(grid)

	hbox2 = Gtk.HBox()
	hbox2.add(help)
	hbox2.add(save)

	vbox.add(hbox2)

	window.add(vbox)

	window.show_all()

def right_click_event( icon, button, time, menu ):
	menu.show_all()
	menu.popup(None, None, icon.position_menu, icon, button, time)

def left_click_event( icon, menu ):
	menu.show_all()
	menu.popup(None, None, icon.position_menu, icon, 1, Gtk.get_current_event_time())

left_click_menu = Gtk.Menu()

menuItemQuit = Gtk.MenuItem('Quit')
menuItemQuit.connect('activate', quit)
left_click_menu.append(menuItemQuit)

right_click_menu = Gtk.Menu()

menuItemPref = Gtk.MenuItem('Preferences')
menuItemPref.connect("activate", Pref)
right_click_menu.append(menuItemPref)

menuItemAbout = Gtk.MenuItem('About')
menuItemAbout.connect("activate", about)
right_click_menu.append(menuItemAbout)

menuItemQuit = Gtk.MenuItem('Quit')
menuItemQuit.connect('activate', quit)
right_click_menu.append(menuItemQuit)

si = Gtk.StatusIcon()
# si.set_from_stock(Gtk.STOCK_HOME)
si.set_from_file("libvirt.png")
si.set_tooltip_text("simple virt manager")

si.connect("activate",   left_click_event,  left_click_menu )
si.connect("popup-menu", right_click_event, right_click_menu)

# print ( dir ( si ) )
Gtk.main()

%%

((#top))
-----------