Re: [et-mgmt-tools] [patch] virt-image / ImageParser disk signature verification function
Joey Boggs wrote: Cole Robinson wrote: Joey Boggs wrote: This adds a new function to the virtinst.ImageParser.Disk class to verify disk signatures and runs by default when using virt-image. The next patch will wrap up loose ends in the ImageParser.Disk class to weed out unsupported checksum types. For now, if the checksum type is not matched it skips the check process. diff -r db5d9aeca590 virt-image --- a/virt-imageFri Oct 10 10:32:50 2008 -0400 +++ b/virt-imageTue Oct 14 22:25:21 2008 -0400 @@ -197,6 +197,8 @@ get_graphics(image.domain, options.vnc, options.vncport, options.nographics, options.sdl, options.keymap, guest) +checksum = virtinst.ImageParser.Disk +checksum.check_disk_signature(image) I don't really like this interface of having a method of the Disk class that receives an Image object and pulls disks from that. Doesn't really fit the whole class dichotomy. The way to do it is to have the Disk method calculate the checksum for that particular disk. Then you can add a convenience method to the Image class that will calculate the checksums for every Disk object associated with that Image. Made all the corrections. I understand calculating for just one disk, which will be more reusable for other code than just this case, but why create separate method to check all the disks as well? It's certainly not required, it would just be a convenience function. I'm not attached to the idea if you want to skip it. Not sure if you intended to or not, but the patch wasn't attached to this email. Thanks, Cole ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Re: [et-mgmt-tools] [patch] virt-image / ImageParser disk signature verification function
Better integrated into the Disk class and runs when a Disk object is created Cole Robinson wrote: Joey Boggs wrote: Cole Robinson wrote: Joey Boggs wrote: This adds a new function to the virtinst.ImageParser.Disk class to verify disk signatures and runs by default when using virt-image. The next patch will wrap up loose ends in the ImageParser.Disk class to weed out unsupported checksum types. For now, if the checksum type is not matched it skips the check process. diff -r db5d9aeca590 virt-image --- a/virt-imageFri Oct 10 10:32:50 2008 -0400 +++ b/virt-imageTue Oct 14 22:25:21 2008 -0400 @@ -197,6 +197,8 @@ get_graphics(image.domain, options.vnc, options.vncport, options.nographics, options.sdl, options.keymap, guest) +checksum = virtinst.ImageParser.Disk +checksum.check_disk_signature(image) I don't really like this interface of having a method of the Disk class that receives an Image object and pulls disks from that. Doesn't really fit the whole class dichotomy. The way to do it is to have the Disk method calculate the checksum for that particular disk. Then you can add a convenience method to the Image class that will calculate the checksums for every Disk object associated with that Image. Made all the corrections. I understand calculating for just one disk, which will be more reusable for other code than just this case, but why create separate method to check all the disks as well? It's certainly not required, it would just be a convenience function. I'm not attached to the idea if you want to skip it. Not sure if you intended to or not, but the patch wasn't attached to this email. Thanks, Cole diff -r db5d9aeca590 virtinst/ImageParser.py --- a/virtinst/ImageParser.py Fri Oct 10 10:32:50 2008 -0400 +++ b/virtinst/ImageParser.py Thu Oct 16 09:41:22 2008 -0400 @@ -23,6 +23,8 @@ import libxml2 import CapabilitiesParser from virtinst import _virtinst as _ +import logging +import urlgrabber.progress as progress class ParserException(Exception): def __init__(self, msg): @@ -207,6 +209,7 @@ self.csum = {} if not node is None: self.parseXML(node) +self.check_disk_signature() def parseXML(self, node): self.file = xpathString(node, @file) @@ -224,6 +227,47 @@ _(The format for disk %s must be one of %s) % (self.file, ,.join(formats))) +def check_disk_signature(self): +try: +import hashlib +has_hashlib = True +except: +import sha +has_hashlib = False + +meter_ct = 0 +m = None +disk_size = os.path.getsize(self.file) +meter = progress.TextMeter() +meter.start(size=disk_size, text=_(Checking disk signature for %s % self.file)) + +if has_hashlib is True: +if self.csum.has_key(sha256): +csumvalue = self.csum[sha256] +m = hashlib.sha256() +elif self.csum.has_key(sha1): +csumvalue = self.csum[sha1] +m = hashlib.sha1() +else: +if self.csum.has_key(sha1): +csumvalue = self.csum[sha1] +m = sha.new() +if not m: +return +f = open(self.file,r) +while 1: +chunk = f.read(65536) +if not chunk: +break +meter.update(meter_ct) +meter_ct = meter_ct + 65536 +m.update(chunk) +checksum = m.hexdigest() +if checksum != csumvalue: + logging.debug(_(Disk signature for %s does not match Expected: %s Received: %s + % (self.file,csumvalue,checksum))) + raise ValueError (_(Disk signature for %s does not match % self.file)) + def validate(cond, msg): if not cond: raise ParserException(msg) ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Re: [et-mgmt-tools] [RFC]Re:[libvirt][RFC][PATCH]virt-managercallsmigration API
Hi, Dan and Cole I know you are very busy. But would you give me a comment on this patch? Thanks Atsushi SAKAI S.Sakamoto [EMAIL PROTECTED] wrote: Hi, As a result of migration test in my environment that applied this patch, there is not a problem. If not comment, please apply this patch. Thanks, Shigeki Sakamoto. Hi, Shigeki When you plan to post commit ready patch? Thanks Atsushi SAKAI S.Sakamoto [EMAIL PROTECTED] wrote: Hi, I make the prototype patch. This patch is displayed destination host in a sub-menu, as follows. right-click | +- Run Pause Shutdown Migrate host1.example.com host2.example.com host3.example.com The item that display in a sub-menu is the host which is a state of ACTIVE or INACTIVE besides the source host. When the host which is a state of ACTIVE or INACTIVE besides a source host doesn't exist, (None) that is insensitive is displayed, as follows. right-click | +- Run Pause Shutdown Migrate (None) domain.py |6 engine.py | 36 manager.py | 78 ++--- 3 files changed, 117 insertions(+), 3 deletions(-) Thanks, Shigeki Sakamoto. Hi, Daniel Sorry for delaying response. Thank you for your suggestions. I understand. I will make the prototype patch! Thanks Shigeki Sakamoto. On Fri, Sep 19, 2008 at 06:43:37PM +0900, S.Sakamoto wrote: You probably want to send this to et-mgmt-list, which is where virt-manager development happens, OK. For this, I tried to hear in et-mgmt-list. I'm sorry to be pressing, but would you give me a comment on this patch for going on the next step to migrate from virt-manager ? I attached screenshots this patch shows. I think rather than having it popup a new window with a list of hosts to migrate to, you could just have a sub-menu where you choose the destination host directly. eg, right-click | +- Run Pause Shutdown Migrate host1.example.com host2.example.com host3.example.com ...etc... When the user selects one of these hosts, it'd popup a confirmation window, and do the neccessary migration checks, and then allow the admin to confirm to start the migration. I sent an e-mail last month with proposals for doing this within libvirt. I put up all of the information I have in the libvirt wiki here: http://wiki.libvirt.org/page/TodoPreMigrationChecks Thank you for your information. I see above libvirt wiki and I have a few idea adding checks within libvirt. These point of view are Guest and Host sanity in BASIC CHECKS. How about this points ? 1)Guest sanity is checking whether already existing or not on the destination. Otherwise the uniqueness of the domain(UUID, name) are lost. * I think that it is right to check this in libvirt. How do you think this ? Yes, checking for name/uuid uniqueness has to be done inside libvirt by each hypervisor driver according to their own rules. 2)Host sanity is checking whether a migration flag is ON at each virtualization. virt-manager will need to check the kind of things on the TodoPreMigrationChecks wiki page. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools ___
Re: [et-mgmt-tools] [patch] virt-image / ImageParser disk signature verification function
Joey Boggs wrote: Better integrated into the Disk class and runs when a Disk object is created diff -r db5d9aeca590 virtinst/ImageParser.py --- a/virtinst/ImageParser.py Fri Oct 10 10:32:50 2008 -0400 +++ b/virtinst/ImageParser.py Thu Oct 16 09:41:22 2008 -0400 @@ -23,6 +23,8 @@ import libxml2 import CapabilitiesParser from virtinst import _virtinst as _ +import logging +import urlgrabber.progress as progress class ParserException(Exception): def __init__(self, msg): @@ -207,6 +209,7 @@ self.csum = {} if not node is None: self.parseXML(node) +self.check_disk_signature() Do we really want this at init time? That doesn't provide the API user any way to prevent the csum checks from running. We should really make this optional from an API standpoint, but still make it the default in virt-image. Just dropping the above should solve that. That's really my only gripe, so I can fix it when I commit if it's okay with you. Thanks, Cole ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Re: [et-mgmt-tools] [patch] virt-image / ImageParser disk signature verification function
Cole, That's fine I'll take a look after it's commited and write that down for future reference. Cole Robinson wrote: Joey Boggs wrote: Better integrated into the Disk class and runs when a Disk object is created diff -r db5d9aeca590 virtinst/ImageParser.py --- a/virtinst/ImageParser.py Fri Oct 10 10:32:50 2008 -0400 +++ b/virtinst/ImageParser.py Thu Oct 16 09:41:22 2008 -0400 @@ -23,6 +23,8 @@ import libxml2 import CapabilitiesParser from virtinst import _virtinst as _ +import logging +import urlgrabber.progress as progress class ParserException(Exception): def __init__(self, msg): @@ -207,6 +209,7 @@ self.csum = {} if not node is None: self.parseXML(node) +self.check_disk_signature() Do we really want this at init time? That doesn't provide the API user any way to prevent the csum checks from running. We should really make this optional from an API standpoint, but still make it the default in virt-image. Just dropping the above should solve that. That's really my only gripe, so I can fix it when I commit if it's okay with you. Thanks, Cole ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Re: [et-mgmt-tools] [RFC]Re: [libvirt] [RFC][PATCH] virt-managercallsmigration API
S.Sakamoto wrote: Hi, I make the prototype patch. This patch is displayed destination host in a sub-menu, as follows. right-click | +- Run Pause Shutdown Migrate host1.example.com host2.example.com host3.example.com The item that display in a sub-menu is the host which is a state of ACTIVE or INACTIVE besides the source host. When the host which is a state of ACTIVE or INACTIVE besides a source host doesn't exist, (None) that is insensitive is displayed, as follows. right-click | +- Run Pause Shutdown Migrate (None) domain.py |6 engine.py | 36 manager.py | 78 ++--- 3 files changed, 117 insertions(+), 3 deletions(-) Thanks, Shigeki Sakamoto. Hi, patch generally looks good. One issue though: how does this handle connections using different hypervisors? Say a local xen and a remote qemu. Obviously we shouldn't be able to migrate between the two but I think this code would allow it. Maybe have the connection list look something like: migrate - hostname1 (qemu) - hostname2 (xen) If the hypervisors don't match the entry would be disabled. Also, having the migrate option only available as a right click menu item doesn't seem too transparent. Maybe also list it as an option under the 'Virtual Machine' menu in the individual VM view. If you go this route, you'll want to offload most of the logic to engine.py like is done for shutdown, pause, etc. diff -r 270e1697b81a src/virtManager/domain.py --- a/src/virtManager/domain.pyMon Oct 06 13:21:06 2008 -0400 +++ b/src/virtManager/domain.pyWed Oct 08 16:38:05 2008 +0900 @@ -972,4 +972,10 @@ class vmmDomain(gobject.GObject): # Invalidate cached xml self.xml = None +def migrate(self, dictcon): +flags = 0 +if self.lastStatus == libvirt.VIR_DOMAIN_RUNNING: +flags = libvirt.VIR_MIGRATE_LIVE +self.vm.migrate(self.connection.vmm, flags, None, dictcon.get_short_hostname(), 0) + gobject.type_register(vmmDomain) diff -r 270e1697b81a src/virtManager/engine.py --- a/src/virtManager/engine.pyMon Oct 06 13:21:06 2008 -0400 +++ b/src/virtManager/engine.pyWed Oct 08 16:38:05 2008 +0900 @@ -202,6 +202,8 @@ class vmmEngine(gobject.GObject): self.shutdown_domain(src, uri, uuid) def _do_reboot_domain(self, src, uri, uuid): self.reboot_domain(src, uri, uuid) +def _do_migrate_domain(self, src, uri, uuid, desturi): +self.migrate_domain(uri, uuid, desturi) def _do_exit_app(self, src): self.exit_app() @@ -296,6 +298,7 @@ class vmmEngine(gobject.GObject): self.windowManager.connect(action-shutdown-domain, self._do_shutdown_domain) self.windowManager.connect(action-reboot-domain, self._do_reboot_domain) self.windowManager.connect(action-destroy-domain, self._do_destroy_domain) +self.windowManager.connect(action-migrate-domain, self._do_migrate_domain) self.windowManager.connect(action-show-console, self._do_show_console) self.windowManager.connect(action-show-details, self._do_show_details) self.windowManager.connect(action-show-preferences, self._do_show_preferences) @@ -528,6 +531,39 @@ class vmmEngine(gobject.GObject): else: logging.warning(Reboot requested, but machine is already shutting down / shutoff) +def migrate_domain(self, uri, uuid, desturi): +conn = self.get_connection(uri, False) +vm = conn.get_vm(uuid) +destconn = self.get_connection(desturi, False) +migrate_progress = None +try: +# show progress dialog +migrate_progress = self.get_migrate_progress(vm.get_name(), conn.get_short_hostname(), destconn.get_short_hostname()) +migrate_progress.show() +while gtk.events_pending(): +gtk.main_iteration() +# call virDomainMigrate +vm.migrate(destconn) +# close progress dialog +migrate_progress.destroy() +except Exception, e: +migrate_progress.destroy() +self.err.show_err(_(Error migrating domain: %s) % str(e), + .join(traceback.format_exc())) + +self.windowManager.conn_refresh_resources(conn) +self.windowManager.conn_refresh_resources(destconn) + +def get_migrate_progress(self, vmname, hostname, desthostname): +migrate_progress = None +migrate_progress = gtk.MessageDialog(None, \ + gtk.DIALOG_DESTROY_WITH_PARENT, \ +
Re: [et-mgmt-tools] libvirt munin plugins
On Thu, Oct 16, 2008 at 05:38:57PM +0200, Guido G?nther wrote: Hi, just in case somebody monitors VMs with munin[1]. I've put to simple plugins for net and block I/O monitoring here: http://honk.sigxcpu.org/projects/libvirt/monitor/ Nice idea ! Rich Jones did a similar thing for collectd, and Nagios. We should link to all 3 of these plugins from the libvirt applications page on the website http://libvirt.org/apps.html Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Re: [et-mgmt-tools] [patch] virt-image / ImageParser disk signature verification function
Joey Boggs wrote: Cole, That's fine I'll take a look after it's commited and write that down for future reference. Thanks, committed now: http://hg.et.redhat.com/virt/applications/virtinst--devel?cs=9f45a36d8242 - Cole ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Re: [et-mgmt-tools] libvirt munin plugins
On Thu, Oct 16, 2008 at 04:41:22PM +0100, Daniel P. Berrange wrote: On Thu, Oct 16, 2008 at 05:38:57PM +0200, Guido G?nther wrote: Hi, just in case somebody monitors VMs with munin[1]. I've put to simple plugins for net and block I/O monitoring here: http://honk.sigxcpu.org/projects/libvirt/monitor/ Nice idea ! Rich Jones did a similar thing for collectd, and Nagios. We should link to all 3 of these plugins from the libvirt applications page on the website http://libvirt.org/apps.html Makes sense ! Attached patch adds the 3 plugins in a new section of the application page, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ [EMAIL PROTECTED] | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ Index: docs/apps.html.in === RCS file: /data/cvs/libxen/docs/apps.html.in,v retrieving revision 1.2 diff -u -p -r1.2 apps.html.in --- docs/apps.html.in 15 May 2008 06:12:32 - 1.2 +++ docs/apps.html.in 16 Oct 2008 16:33:40 - @@ -103,6 +103,31 @@ /dd /dl +h2Monitoring plugins/h2 +dl + dta href=http://honk.sigxcpu.org/projects/libvirt/monitor/;for munin/a/dt + dd + The two plugins provided by Guido Günther allows to monitor network and +block I/O with a href=http://munin.projects.linpro.no/;Munin/a. + /dd + dta href=http://collectd.org/plugins/libvirt.shtml;for collectd/a/dt + dd + The libvirt-plugin is part of a href=http://collectd.org/;collectd/a +and gather statistics about virtualized guests on a system. This +way, you can collect CPU, network interface and block device usage +for each guest without installing collectd on the guest systems. +or a full description of available please refer to the libvirt section +in the collectd.conf(5) manual page. + /dd + dta href=http://et.redhat.com/~rjones/nagios-virt/;nagios-virt/a/dt + dd + Nagios-virt is a configuration tool for adding monitoring of your + virtualised domains to a href=http://www.nagios.org/;Nagios/a. +You can use this tool to either set up a new Nagios installation for +your Xen or QEMU/KVM guests, or to integrate with your existing Nagios +installation. + /dd +/dl /body /html ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Re: [et-mgmt-tools] [patch] virt-image / ImageParser disk signature verification function
On Thu, 2008-10-16 at 11:49 -0400, Cole Robinson wrote: Joey Boggs wrote: Cole, That's fine I'll take a look after it's commited and write that down for future reference. Thanks, committed now: http://hg.et.redhat.com/virt/applications/virtinst--devel?cs=9f45a36d8242 One gripe I have with that is that check_disk_signature always runs a TextMeter .. shouldn't the meter be passed in as an argument (and default to None), so that checksums can be computed completely queitly ? David ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Re: [et-mgmt-tools] [patch] virt-image / ImageParser disk signature verification function
David Lutterkort wrote: On Thu, 2008-10-16 at 11:49 -0400, Cole Robinson wrote: Joey Boggs wrote: Cole, That's fine I'll take a look after it's commited and write that down for future reference. Thanks, committed now: http://hg.et.redhat.com/virt/applications/virtinst--devel?cs=9f45a36d8242 One gripe I have with that is that check_disk_signature always runs a TextMeter .. shouldn't the meter be passed in as an argument (and default to None), so that checksums can be computed completely queitly ? David Yes, good call, I forgot about that. It should be handled similar to how we handle allocating disks. I'll commit a fix for that. Thanks, Cole ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Re: [et-mgmt-tools] Try to use cft ...
On Fri, 2008-10-10 at 09:55 +1300, Martial Paupe wrote: I'm trying to use cft but I've got that error when I begin a session. # cft begin httpd /usr/lib/ruby/site_ruby/1.8/puppet/parameter.rb:403:in `unsafe_validate': Invalid 'failovermethod' value priorit. Valid values are absent. Valid values match (?-mix:roundrobin|priority). It seems that you havea yumrepo on that machine with a failovermethod that is neither 'roundrobin' nor 'priority' - the only valid values according to yum.conf(5) David ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools
[et-mgmt-tools] virt-instal with silent install
Hi All, I've made a original distribution that is automatic installation without any prompt (= silent install). When I run following on Dom0, it looks running well. /usr/sbin/virt-install -n fc6 -r 1024 -f /disk/xen/fc6.img -s 40 -m 00:16:3e:00:10:10 -b xenbr0 -c /tmp/auto_fc6.iso -v --vnc --noautoconsole And here is the configuration of /etc/xen/fc6. on_poweroff = destroy on_reboot = restart on_crash = restart The problem is that after installed OS, the installer try to reboot itself. But, the session is going to down. it just looks like on_reboot = destroy It is a bug? any ideas please! Regards ___ et-mgmt-tools mailing list et-mgmt-tools@redhat.com https://www.redhat.com/mailman/listinfo/et-mgmt-tools