import changes

This commit is contained in:
Alexander Pavlenko 2013-04-12 12:25:44 +04:00
parent d74ba017ec
commit 20503d05f2
51 changed files with 294 additions and 594 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.idea
*.gem

View File

@ -10,12 +10,9 @@ Gem::Specification.new do |s|
s.authors = ['Mike Scherbakov']
s.email = ['mscherbakov@mirantis.com']
s.add_dependency 'mcollective-client', '> 2.0.0'
s.add_dependency 'symboltable', '>= 1.0.2'
s.add_dependency 'activesupport', '~> 3.0.10'
s.add_development_dependency 'rspec'
s.add_development_dependency 'mocha'
s.add_dependency 'activesupport', '3.0.10'
s.add_dependency 'mcollective-client', '2.3.1'
s.add_dependency 'symboltable', '1.0.2'
s.files = Dir.glob("{bin,lib,spec}/**/*")
s.executables = ['astute']

View File

@ -1,474 +0,0 @@
2013-01-23T09:24:16 info: 09:23:58,565 INFO : kernel command line: initrd=/images/centos63-x86_64/initrd.img ksdevice=bootif lang= locale=en_US text priority=critical kssendmac ks=http://10.0.168.2/cblr/svc/op/ks/system/slave-1 BOOT_IMAGE=/images/centos63-x86_64/vmlinuz BOOTIF=01-52-54-00-9a-db-f8
2013-01-23T09:24:16 info:
2013-01-23T09:24:16 info: 09:23:58,565 INFO : text mode forced from cmdline
2013-01-23T09:24:16 debug: 09:23:58,565 DEBUG : readNetInfo /tmp/s390net not found, early return
2013-01-23T09:24:16 info: 09:23:58,565 INFO : anaconda version 13.21.176 on x86_64 starting
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module ipv6
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module iscsi_ibft
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module iscsi_boot_sysfs
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module pcspkr
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module edd
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module floppy
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module iscsi_tcp
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module libiscsi_tcp
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module libiscsi
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module scsi_transport_iscsi
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module squashfs
2013-01-23T09:24:16 debug: 09:23:58,729 DEBUG : Saving module cramfs
2013-01-23T09:24:16 debug: 09:23:58,730 DEBUG : probing buses
2013-01-23T09:24:16 debug: 09:23:58,863 DEBUG : waiting for hardware to initialize
2013-01-23T09:24:16 debug: 09:24:01,290 DEBUG : probing buses
2013-01-23T09:24:16 debug: 09:24:01,412 DEBUG : waiting for hardware to initialize
2013-01-23T09:24:16 info: 09:24:04,507 INFO : getting kickstart file
2013-01-23T09:24:16 info: 09:24:04,530 INFO : doing kickstart... setting it up
2013-01-23T09:24:16 debug: 09:24:04,531 DEBUG : activating device eth0
2013-01-23T09:24:16 info: 09:24:10,548 INFO : wait_for_iface_activation (2309): device eth0 activated
2013-01-23T09:24:16 info: 09:24:10,550 INFO : file location: http://10.0.168.2/cblr/svc/op/ks/system/slave-1
2013-01-23T09:24:16 info: 09:24:10,551 INFO : transferring http://10.0.168.2/cblr/svc/op/ks/system/slave-1
2013-01-23T09:24:16 info: 09:24:11,511 INFO : setting up kickstart
2013-01-23T09:24:16 info: 09:24:11,511 INFO : kickstart forcing text mode
2013-01-23T09:24:16 info: 09:24:11,511 INFO : kickstartFromUrl
2013-01-23T09:24:16 info: 09:24:11,511 INFO : results of url ks, url http://10.0.168.2:8080/centos/6.3/nailgun/x86_64
2013-01-23T09:24:16 err: 09:24:11,512 ERROR : got to setupCdrom without a CD device
2013-01-23T09:24:16 info: 09:24:11,512 INFO : no stage2= given, assuming http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/images/install.img
2013-01-23T09:24:16 debug: 09:24:11,512 DEBUG : going to set language to en_US.UTF-8
2013-01-23T09:24:16 info: 09:24:11,512 INFO : setting language to en_US.UTF-8
2013-01-23T09:24:16 info: 09:24:11,551 INFO : starting STEP_METHOD
2013-01-23T09:24:16 debug: 09:24:11,551 DEBUG : loaderData->method is set, adding skipMethodDialog
2013-01-23T09:24:16 debug: 09:24:11,551 DEBUG : skipMethodDialog is set
2013-01-23T09:24:16 info: 09:24:11,560 INFO : starting STEP_STAGE2
2013-01-23T09:24:16 info: 09:24:11,560 INFO : URL_STAGE_MAIN: url is http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/images/install.img
2013-01-23T09:24:16 info: 09:24:11,560 INFO : transferring http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/images/updates.img
2013-01-23T09:24:16 err: 09:24:11,563 ERROR : Error downloading http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/images/updates.img: HTTP response code said error
2013-01-23T09:24:16 info: 09:24:11,565 INFO : transferring http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/images/product.img
2013-01-23T09:24:16 err: 09:24:11,568 ERROR : Error downloading http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/images/product.img: HTTP response code said error
2013-01-23T09:24:16 info: 09:24:11,569 INFO : transferring http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/images/install.img
2013-01-23T09:24:16 info: 09:24:12,077 INFO : mounted loopback device /mnt/runtime on /dev/loop0 as /tmp/install.img
2013-01-23T09:24:16 info: 09:24:12,078 INFO : got stage2 at url http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/images/install.img
2013-01-23T09:24:16 info: 09:24:12,133 INFO : Loading SELinux policy
2013-01-23T09:24:16 info: 09:24:13,072 INFO : getting ready to spawn shell now
2013-01-23T09:24:16 info: 09:24:13,436 INFO : Running anaconda script /usr/bin/anaconda
2013-01-23T09:24:16 info: 09:24:16,109 INFO : CentOS Linux is the highest priority installclass, using it
2013-01-23T09:24:16 warning: 09:24:16,164 WARNING : /usr/lib/python2.6/site-packages/pykickstart/parser.py:713: DeprecationWarning: Script does not end with %end. This syntax has been deprecated. It may be removed from future releases, which will result in a fatal error from kickstart. Please modify your kickstart file to use this updated syntax.
2013-01-23T09:24:17 info: warnings.warn(_("%s does not end with %%end. This syntax has been deprecated. It may be removed from future releases, which will result in a fatal error from kickstart. Please modify your kickstart file to use this updated syntax.") % _("Script"), DeprecationWarning)
2013-01-23T09:24:17 info:
2013-01-23T09:24:17 info: 09:24:16,164 INFO : Running kickstart %%pre script(s)
2013-01-23T09:24:17 warning: 09:24:16,165 WARNING : '/bin/sh' specified as full path
2013-01-23T09:24:17 info: 09:24:17,369 INFO : All kickstart %%pre script(s) have been run
2013-01-23T09:24:17 info: 09:24:17,441 INFO : ISCSID is /usr/sbin/iscsid
2013-01-23T09:24:17 info: 09:24:17,442 INFO : no initiator set
2013-01-23T09:24:17 warning: 09:24:17,646 WARNING : '/usr/libexec/fcoe/fcoe_edd.sh' specified as full path
2013-01-23T09:24:18 info: 09:24:17,674 INFO : No FCoE EDD info found: No FCoE boot disk information is found in EDD!
2013-01-23T09:24:18 info:
2013-01-23T09:24:18 info: 09:24:17,674 INFO : no /etc/zfcp.conf; not configuring zfcp
2013-01-23T09:24:18 info: 09:24:17,776 INFO : created new libuser.conf at /tmp/libuser.JtvFQd with instPath="/mnt/sysimage"
2013-01-23T09:24:18 info: 09:24:17,777 INFO : anaconda called with cmdline = ['/usr/bin/anaconda', '--stage2', 'http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/images/install.img', '--kickstart', '/tmp/ks.cfg', '-T', '--selinux', '--lang', 'en_US.UTF-8', '--keymap', 'us', '--repo', 'http://10.0.168.2:8080/centos/6.3/nailgun/x86_64']
2013-01-23T09:24:18 info: 09:24:17,777 INFO : Display mode = t
2013-01-23T09:24:18 info: 09:24:17,777 INFO : Default encoding = utf-8
2013-01-23T09:24:18 info: 09:24:17,898 INFO : Detected 752M of memory
2013-01-23T09:24:18 info: 09:24:17,899 INFO : Swap attempt of 1504M
2013-01-23T09:24:18 info: 09:24:18,372 INFO : ISCSID is /usr/sbin/iscsid
2013-01-23T09:24:18 info: 09:24:18,373 INFO : no initiator set
2013-01-23T09:24:19 warning: 09:24:18,893 WARNING : Timezone UTC set in kickstart is not valid.
2013-01-23T09:24:19 info: 09:24:19,012 INFO : Detected 752M of memory
2013-01-23T09:24:19 info: 09:24:19,012 INFO : Swap attempt of 1504M
2013-01-23T09:24:19 info: 09:24:19,064 INFO : setting installation environment hostname to slave-1.mirantis.com
2013-01-23T09:24:19 warning: 09:24:19,076 WARNING : step installtype does not exist
2013-01-23T09:24:19 warning: 09:24:19,076 WARNING : step confirminstall does not exist
2013-01-23T09:24:19 warning: 09:24:19,077 WARNING : step complete does not exist
2013-01-23T09:24:19 warning: 09:24:19,077 WARNING : step complete does not exist
2013-01-23T09:24:19 warning: 09:24:19,077 WARNING : step complete does not exist
2013-01-23T09:24:19 warning: 09:24:19,077 WARNING : step complete does not exist
2013-01-23T09:24:19 warning: 09:24:19,078 WARNING : step complete does not exist
2013-01-23T09:24:19 warning: 09:24:19,078 WARNING : step complete does not exist
2013-01-23T09:24:19 warning: 09:24:19,078 WARNING : step complete does not exist
2013-01-23T09:24:19 warning: 09:24:19,078 WARNING : step complete does not exist
2013-01-23T09:24:19 warning: 09:24:19,079 WARNING : step complete does not exist
2013-01-23T09:24:19 warning: 09:24:19,079 WARNING : step complete does not exist
2013-01-23T09:24:19 info: 09:24:19,080 INFO : moving (1) to step setuptime
2013-01-23T09:24:19 debug: 09:24:19,081 DEBUG : setuptime is a direct step
2013-01-23T09:24:19 warning: 09:24:19,081 WARNING : '/usr/sbin/hwclock' specified as full path
2013-01-23T09:24:20 info: 09:24:20,002 INFO : leaving (1) step setuptime
2013-01-23T09:24:20 info: 09:24:20,003 INFO : moving (1) to step autopartitionexecute
2013-01-23T09:24:20 debug: 09:24:20,003 DEBUG : autopartitionexecute is a direct step
2013-01-23T09:24:20 info: 09:24:20,143 INFO : leaving (1) step autopartitionexecute
2013-01-23T09:24:20 info: 09:24:20,143 INFO : moving (1) to step storagedone
2013-01-23T09:24:20 debug: 09:24:20,144 DEBUG : storagedone is a direct step
2013-01-23T09:24:20 info: 09:24:20,144 INFO : leaving (1) step storagedone
2013-01-23T09:24:20 info: 09:24:20,144 INFO : moving (1) to step enablefilesystems
2013-01-23T09:24:20 debug: 09:24:20,144 DEBUG : enablefilesystems is a direct step
2013-01-23T09:25:01 debug: 09:25:00,646 DEBUG : notifying kernel of 'change' event on device /sys/class/block/vda1
2013-01-23T09:25:01 info: 09:25:01,684 INFO : failed to set SELinux context for /mnt/sysimage: [Errno 95] Operation not supported
2013-01-23T09:25:01 debug: 09:25:01,684 DEBUG : isys.py:mount()- going to mount /dev/vda1 on /mnt/sysimage as ext4 with options defaults
2013-01-23T09:25:01 debug: 09:25:01,704 DEBUG : isys.py:mount()- going to mount //dev on /mnt/sysimage/dev as bind with options defaults,bind
2013-01-23T09:25:01 debug: 09:25:01,715 DEBUG : isys.py:mount()- going to mount devpts on /mnt/sysimage/dev/pts as devpts with options gid=5,mode=620
2013-01-23T09:25:02 debug: 09:25:01,728 DEBUG : isys.py:mount()- going to mount tmpfs on /mnt/sysimage/dev/shm as tmpfs with options defaults
2013-01-23T09:25:02 info: 09:25:01,742 INFO : failed to get default SELinux context for /proc: [Errno 2] No such file or directory
2013-01-23T09:25:02 debug: 09:25:01,742 DEBUG : isys.py:mount()- going to mount proc on /mnt/sysimage/proc as proc with options defaults
2013-01-23T09:25:02 info: 09:25:01,746 INFO : failed to get default SELinux context for /proc: [Errno 2] No such file or directory
2013-01-23T09:25:02 debug: 09:25:01,755 DEBUG : isys.py:mount()- going to mount sysfs on /mnt/sysimage/sys as sysfs with options defaults
2013-01-23T09:25:02 info: 09:25:01,762 INFO : leaving (1) step enablefilesystems
2013-01-23T09:25:02 info: 09:25:01,762 INFO : moving (1) to step bootloadersetup
2013-01-23T09:25:02 debug: 09:25:01,762 DEBUG : bootloadersetup is a direct step
2013-01-23T09:25:02 info: 09:25:01,765 INFO : leaving (1) step bootloadersetup
2013-01-23T09:25:02 info: 09:25:01,765 INFO : moving (1) to step reposetup
2013-01-23T09:25:02 debug: 09:25:01,766 DEBUG : reposetup is a direct step
2013-01-23T09:25:02 err: 09:25:01,779 ERROR : Error downloading treeinfo file: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
2013-01-23T09:25:02 err: 09:25:01,917 ERROR : Error downloading treeinfo file: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
2013-01-23T09:25:02 err: 09:25:01,921 ERROR : Error downloading treeinfo file: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
2013-01-23T09:25:02 info: 09:25:01,922 INFO : added repository Nailgun with URL http://10.0.168.2:8080/centos/6.3/nailgun/x86_64
2013-01-23T09:25:02 debug: 09:25:01,930 DEBUG : Grabbing http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/repodata/repomd.xml
2013-01-23T09:25:02 debug: 09:25:01,937 DEBUG : Grabbing http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/repodata/primary.xml.gz
2013-01-23T09:25:02 debug: 09:25:01,944 DEBUG : Grabbing http://10.0.168.2:8080/centos/6.3/nailgun/x86_64/repodata/comps.xml
2013-01-23T09:25:04 info: 09:25:04,547 INFO : leaving (1) step reposetup
2013-01-23T09:25:04 info: 09:25:04,547 INFO : moving (1) to step basepkgsel
2013-01-23T09:25:04 debug: 09:25:04,547 DEBUG : basepkgsel is a direct step
2013-01-23T09:25:04 warning: 09:25:04,665 WARNING : not adding Base group
2013-01-23T09:25:05 info: 09:25:04,810 INFO : leaving (1) step basepkgsel
2013-01-23T09:25:05 info: 09:25:04,811 INFO : moving (1) to step postselection
2013-01-23T09:25:05 debug: 09:25:04,811 DEBUG : postselection is a direct step
2013-01-23T09:25:05 info: 09:25:04,814 INFO : selected kernel package for kernel
2013-01-23T09:25:05 debug: 09:25:05,546 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/fs/ext4/ext4.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,546 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/fs/mbcache.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,547 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/fs/jbd2/jbd2.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,547 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/fcoe/fcoe.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,547 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/fcoe/libfcoe.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,547 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/libfc/libfc.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,547 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/scsi_transport_fc.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,547 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/scsi_tgt.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,547 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/xts.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,547 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/lrw.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,547 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/gf128mul.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,548 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/sha256_generic.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,548 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/cbc.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,548 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/dm-crypt.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,548 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/dm-round-robin.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,548 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/dm-multipath.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,548 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/dm-snapshot.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,548 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/dm-mirror.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,548 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/dm-region-hash.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/dm-log.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/dm-zero.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/dm-mod.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/linear.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/raid10.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/raid456.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/async_tx/async_raid6_recov.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/async_tx/async_pq.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/lib/raid6/raid6_pq.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/async_tx/async_xor.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,549 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/xor.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/async_tx/async_memcpy.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/crypto/async_tx/async_tx.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/raid1.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/md/raid0.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/net/mlx4/mlx4_en.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/net/mlx4/mlx4_core.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/infiniband/ulp/ipoib/ib_ipoib.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/infiniband/core/ib_cm.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,550 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/infiniband/core/ib_sa.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/infiniband/core/ib_mad.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/infiniband/core/ib_core.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/block/virtio_blk.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/net/virtio_net.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/ata/pata_acpi.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/ata/ata_generic.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/ata/ata_piix.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/virtio_pci.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/virtio_ring.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/virtio.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/net/ipv6/ipv6.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,551 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/firmware/iscsi_ibft.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,552 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/iscsi_boot_sysfs.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,552 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/input/misc/pcspkr.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,552 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/firmware/edd.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,552 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/block/floppy.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,552 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/iscsi_tcp.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,552 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/libiscsi_tcp.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,552 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/libiscsi.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,552 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/scsi_transport_iscsi.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,553 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/fs/squashfs/squashfs.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,553 DEBUG : Checking for DUD module /lib/modules/2.6.32-279.el6.x86_64/kernel/fs/cramfs/cramfs.ko.gz
2013-01-23T09:25:05 debug: 09:25:05,553 DEBUG : selecting kernel-devel
2013-01-23T09:25:05 debug: 09:25:05,561 DEBUG : no package matching kernel-devel.x86_64
2013-01-23T09:25:05 debug: 09:25:05,571 DEBUG : no package matching authconfig
2013-01-23T09:25:05 debug: 09:25:05,580 DEBUG : no package matching system-config-firewall-base
2013-01-23T09:25:08 info: 09:25:08,036 INFO : leaving (1) step postselection
2013-01-23T09:25:08 info: 09:25:08,037 INFO : moving (1) to step install
2013-01-23T09:25:08 info: 09:25:08,039 INFO : leaving (1) step install
2013-01-23T09:25:08 info: 09:25:08,040 INFO : moving (1) to step preinstallconfig
2013-01-23T09:25:08 debug: 09:25:08,040 DEBUG : preinstallconfig is a direct step
2013-01-23T09:25:08 debug: 09:25:08,045 DEBUG : isys.py:mount()- going to mount /selinux on /mnt/sysimage/selinux as selinuxfs with options defaults
2013-01-23T09:25:08 debug: 09:25:08,055 DEBUG : isys.py:mount()- going to mount /proc/bus/usb on /mnt/sysimage/proc/bus/usb as usbfs with options defaults
2013-01-23T09:25:08 info: 09:25:08,069 INFO : copy_to_sysimage: source '/etc/multipath/wwids' does not exist.
2013-01-23T09:25:08 info: 09:25:08,069 INFO : copy_to_sysimage: source '/etc/multipath/bindings' does not exist.
2013-01-23T09:25:08 info: 09:25:08,081 INFO : copy_to_sysimage: source '/etc/multipath/wwids' does not exist.
2013-01-23T09:25:08 info: 09:25:08,081 INFO : copy_to_sysimage: source '/etc/multipath/bindings' does not exist.
2013-01-23T09:25:08 info: 09:25:08,086 INFO : leaving (1) step preinstallconfig
2013-01-23T09:25:08 info: 09:25:08,086 INFO : moving (1) to step installpackages
2013-01-23T09:25:08 debug: 09:25:08,086 DEBUG : installpackages is a direct step
2013-01-23T09:25:08 info: 09:25:08,087 INFO : Preparing to install packages
2013-01-23T09:25:10 info: Installing libgcc-4.4.6-4.el6.x86_64
2013-01-23T09:25:10 info: warning: libgcc-4.4.6-4.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
2013-01-23T09:25:10 info: Installing setup-2.8.14-16.el6.noarch
2013-01-23T09:25:10 info: Installing filesystem-2.4.30-3.el6.x86_64
2013-01-23T09:25:11 info: Installing basesystem-10.0-4.el6.noarch
2013-01-23T09:25:11 info: Installing kernel-headers-2.6.32-279.19.1.el6.centos.plus.x86_64
2013-01-23T09:25:11 info: Installing ca-certificates-2010.63-3.el6_1.5.noarch
2013-01-23T09:25:11 info: Installing ncurses-base-5.7-3.20090208.el6.x86_64
2013-01-23T09:25:12 info: Installing tzdata-2012i-2.el6.noarch
2013-01-23T09:25:13 info: Installing glibc-common-2.12-1.80.el6_3.6.x86_64
2013-01-23T09:25:25 info: Installing nss-softokn-freebl-3.12.9-11.el6.x86_64
2013-01-23T09:25:25 info: Installing glibc-2.12-1.80.el6_3.6.x86_64
2013-01-23T09:25:28 info: Installing ncurses-libs-5.7-3.20090208.el6.x86_64
2013-01-23T09:25:28 info: Installing bash-4.1.2-9.el6_2.x86_64
2013-01-23T09:25:28 info: Installing libattr-2.4.44-7.el6.x86_64
2013-01-23T09:25:29 info: Installing libcap-2.16-5.5.el6.x86_64
2013-01-23T09:25:29 info: Installing zlib-1.2.3-27.el6.x86_64
2013-01-23T09:25:29 info: Installing info-4.13a-8.el6.x86_64
2013-01-23T09:25:29 info: Installing db4-4.7.25-17.el6.x86_64
2013-01-23T09:25:29 info: Installing libacl-2.2.49-6.el6.x86_64
2013-01-23T09:25:29 info: Installing audit-libs-2.2-2.el6.x86_64
2013-01-23T09:25:29 info: Installing libcom_err-1.41.12-12.el6.x86_64
2013-01-23T09:25:29 info: Installing nspr-4.9.1-2.el6_3.x86_64
2013-01-23T09:25:29 info: Installing popt-1.13-7.el6.x86_64
2013-01-23T09:25:29 info: Installing chkconfig-1.3.49.3-2.el6.x86_64
2013-01-23T09:25:29 info: Installing nss-util-3.13.5-1.el6_3.x86_64
2013-01-23T09:25:30 info: Installing bzip2-libs-1.0.5-7.el6_0.x86_64
2013-01-23T09:25:30 info: Installing libsepol-2.0.41-4.el6.x86_64
2013-01-23T09:25:30 info: Installing libselinux-2.0.94-5.3.el6.x86_64
2013-01-23T09:25:30 info: Installing shadow-utils-4.1.4.2-13.el6.x86_64
2013-01-23T09:25:30 info: Installing sed-4.2.1-10.el6.x86_64
2013-01-23T09:25:30 info: Installing glib2-2.22.5-7.el6.x86_64
2013-01-23T09:25:30 info: Installing gamin-0.1.10-9.el6.x86_64
2013-01-23T09:25:31 info: Installing libstdc++-4.4.6-4.el6.x86_64
2013-01-23T09:25:31 info: Installing gmp-4.3.1-7.el6_2.2.x86_64
2013-01-23T09:25:31 info: Installing readline-6.0-4.el6.x86_64
2013-01-23T09:25:31 info: Installing sqlite-3.6.20-1.el6.x86_64
2013-01-23T09:25:31 info: Installing file-libs-5.04-13.el6.x86_64
2013-01-23T09:25:31 info: Installing dbus-libs-1.2.24-7.el6_3.x86_64
2013-01-23T09:25:32 info: Installing lua-5.1.4-4.1.el6.x86_64
2013-01-23T09:25:32 info: Installing pcre-7.8-4.el6.x86_64
2013-01-23T09:25:32 info: Installing grep-2.6.3-3.el6.x86_64
2013-01-23T09:25:32 info: Installing libidn-1.18-2.el6.x86_64
2013-01-23T09:25:32 info: Installing gawk-3.1.7-9.el6.x86_64
2013-01-23T09:25:32 info: Installing libuuid-2.17.2-12.7.el6_3.x86_64
2013-01-23T09:25:32 info: Installing libblkid-2.17.2-12.7.el6_3.x86_64
2013-01-23T09:25:32 info: Installing xz-libs-4.999.9-0.3.beta.20091007git.el6.x86_64
2013-01-23T09:25:32 info: Installing elfutils-libelf-0.152-1.el6.x86_64
2013-01-23T09:25:32 info: Installing gdbm-1.8.0-36.el6.x86_64
2013-01-23T09:25:32 info: Installing perl-Pod-Escapes-1.04-127.el6.x86_64
2013-01-23T09:25:32 info: Installing perl-libs-5.10.1-127.el6.x86_64
2013-01-23T09:25:32 info: Installing perl-Module-Pluggable-3.90-127.el6.x86_64
2013-01-23T09:25:32 info: Installing perl-version-0.77-127.el6.x86_64
2013-01-23T09:25:33 info: Installing perl-Pod-Simple-3.13-127.el6.x86_64
2013-01-23T09:25:33 info: Installing perl-5.10.1-127.el6.x86_64
2013-01-23T09:25:39 info: Installing libgpg-error-1.7-4.el6.x86_64
2013-01-23T09:25:39 info: Installing findutils-4.4.2-6.el6.x86_64
2013-01-23T09:25:39 info: Installing libselinux-utils-2.0.94-5.3.el6.x86_64
2013-01-23T09:25:39 info: Installing iptables-1.4.7-5.1.el6_2.x86_64
2013-01-23T09:25:39 info: Installing cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64
2013-01-23T09:25:39 info: Installing cpio-2.10-11.el6_3.x86_64
2013-01-23T09:25:39 info: Installing binutils-2.20.51.0.2-5.34.el6.x86_64
2013-01-23T09:25:40 info: Installing which-2.19-6.el6.x86_64
2013-01-23T09:25:40 info: Installing libedit-2.11-4.20080712cvs.1.el6.x86_64
2013-01-23T09:25:40 info: Installing sysvinit-tools-2.87-4.dsf.el6.x86_64
2013-01-23T09:25:40 info: Installing tcp_wrappers-libs-7.6-57.el6.x86_64
2013-01-23T09:25:40 info: Installing expat-2.0.1-11.el6_2.x86_64
2013-01-23T09:25:40 info: Installing pth-2.0.7-9.3.el6.x86_64
2013-01-23T09:25:41 info: Installing dbus-glib-0.86-5.el6.x86_64
2013-01-23T09:25:41 info: Installing iproute-2.6.32-20.el6.x86_64
2013-01-23T09:25:41 info: Installing libgcrypt-1.4.5-9.el6_2.2.x86_64
2013-01-23T09:25:41 info: Installing grubby-7.0.15-3.el6.x86_64
2013-01-23T09:25:41 info: Installing libnih-1.0.1-7.el6.x86_64
2013-01-23T09:25:41 info: Installing upstart-0.6.5-12.el6.x86_64
2013-01-23T09:25:41 info: Installing file-5.04-13.el6.x86_64
2013-01-23T09:25:41 info: Installing nss-softokn-3.12.9-11.el6.x86_64
2013-01-23T09:25:41 info: Installing ppl-0.10.2-11.el6.x86_64
2013-01-23T09:25:41 info: Installing cloog-ppl-0.15.7-1.2.el6.x86_64
2013-01-23T09:25:42 info: Installing mpfr-2.4.1-6.el6.x86_64
2013-01-23T09:25:42 info: Installing cpp-4.4.6-4.el6.x86_64
2013-01-23T09:25:43 info: Installing libusb-0.1.12-23.el6.x86_64
2013-01-23T09:25:43 info: Installing libutempter-1.1.5-4.1.el6.x86_64
2013-01-23T09:25:43 info: Installing MAKEDEV-3.24-6.el6.x86_64
2013-01-23T09:25:43 info: Installing vim-minimal-7.2.411-1.8.el6.x86_64
2013-01-23T09:25:43 info: Installing procps-3.2.8-23.el6.x86_64
2013-01-23T09:25:43 info: Installing psmisc-22.6-15.el6_0.1.x86_64
2013-01-23T09:25:43 info: Installing net-tools-1.60-110.el6_2.x86_64
2013-01-23T09:25:43 info: Installing checkpolicy-2.0.22-1.el6.x86_64
2013-01-23T09:25:44 info: Installing libselinux-ruby-2.0.94-5.3.el6.x86_64
2013-01-23T09:25:44 info: Installing augeas-libs-0.9.0-4.el6.x86_64
2013-01-23T09:25:44 info: Installing tar-1.23-7.el6.x86_64
2013-01-23T09:25:44 info: Installing bzip2-1.0.5-7.el6_0.x86_64
2013-01-23T09:25:44 info: Installing pinentry-0.7.6-6.el6.x86_64
2013-01-23T09:25:46 info: Installing libss-1.41.12-12.el6.x86_64
2013-01-23T09:25:46 info: Installing e2fsprogs-libs-1.41.12-12.el6.x86_64
2013-01-23T09:25:46 info: Installing db4-utils-4.7.25-17.el6.x86_64
2013-01-23T09:25:46 info: Installing libgomp-4.4.6-4.el6.x86_64
2013-01-23T09:25:46 info: Installing diffutils-2.8.1-28.el6.x86_64
2013-01-23T09:25:46 info: Installing libxml2-2.7.6-8.el6_3.3.x86_64
2013-01-23T09:25:47 info: Installing glibc-headers-2.12-1.80.el6_3.6.x86_64
2013-01-23T09:25:48 info: Installing glibc-devel-2.12-1.80.el6_3.6.x86_64
2013-01-23T09:25:49 info: Installing ncurses-5.7-3.20090208.el6.x86_64
2013-01-23T09:25:49 info: Installing groff-1.18.1.4-21.el6.x86_64
2013-01-23T09:25:50 info: Installing less-436-10.el6.x86_64
2013-01-23T09:25:50 info: Installing coreutils-libs-8.4-19.el6.x86_64
2013-01-23T09:25:50 info: Installing gzip-1.3.12-18.el6.x86_64
2013-01-23T09:25:50 info: Installing cracklib-2.8.16-4.el6.x86_64
2013-01-23T09:25:50 info: Installing cracklib-dicts-2.8.16-4.el6.x86_64
2013-01-23T09:25:51 info: Installing coreutils-8.4-19.el6.x86_64
2013-01-23T09:25:52 info: Installing pam-1.1.1-10.el6_2.1.x86_64
2013-01-23T09:25:54 info: Installing module-init-tools-3.9-20.el6.x86_64
2013-01-23T09:25:55 info: Installing hwdata-0.233-7.8.el6.noarch
2013-01-23T09:25:57 info: Installing redhat-logos-60.0.14-12.el6.centos.noarch
2013-01-23T09:25:59 info: Installing plymouth-scripts-0.8.3-24.el6.centos.x86_64
2013-01-23T09:25:59 info: Installing logrotate-3.7.8-15.el6.x86_64
2013-01-23T09:25:59 info: Installing nss-3.13.5-1.el6_3.x86_64
2013-01-23T09:25:59 info: Installing nss-sysinit-3.13.5-1.el6_3.x86_64
2013-01-23T09:25:59 info: Installing nss-tools-3.13.5-1.el6_3.x86_64
2013-01-23T09:26:00 info: Installing openldap-2.4.23-26.el6_3.2.x86_64
2013-01-23T09:26:00 info: Installing compat-readline5-5.2-17.1.el6.x86_64
2013-01-23T09:26:00 info: Installing libcap-ng-0.6.4-3.el6_0.1.x86_64
2013-01-23T09:26:00 info: Installing ethtool-2.6.33-0.3.el6.x86_64
2013-01-23T09:26:00 info: Installing mingetty-1.08-5.el6.x86_64
2013-01-23T09:26:00 info: Installing vconfig-1.9-8.1.el6.x86_64
2013-01-23T09:26:00 info: Installing dmidecode-2.11-2.el6.x86_64
2013-01-23T09:26:00 info: Installing keyutils-libs-1.4-4.el6.x86_64
2013-01-23T09:26:00 info: Installing krb5-libs-1.9-33.el6_3.3.x86_64
2013-01-23T09:26:01 info: Installing openssl-1.0.0-25.el6_3.1.x86_64
2013-01-23T09:26:01 info: Installing ruby-libs-1.8.7.352-7.el6_2.x86_64
2013-01-23T09:26:03 info: Installing ruby-1.8.7.352-7.el6_2.x86_64
2013-01-23T09:26:03 info: Installing libssh2-1.2.2-11.el6_3.x86_64
2013-01-23T09:26:03 info: Installing libcurl-7.19.7-26.el6_2.4.x86_64
2013-01-23T09:26:03 info: Installing curl-7.19.7-26.el6_2.4.x86_64
2013-01-23T09:26:03 info: Installing rpm-libs-4.8.0-27.el6.x86_64
2013-01-23T09:26:04 info: Installing rpm-4.8.0-27.el6.x86_64
2013-01-23T09:26:04 info: Installing gnupg2-2.0.14-4.el6.x86_64
2013-01-23T09:26:04 info: Installing gpgme-1.1.8-3.el6.x86_64
2013-01-23T09:26:05 info: Installing ruby-irb-1.8.7.352-7.el6_2.x86_64
2013-01-23T09:26:05 info: Installing ruby-rdoc-1.8.7.352-7.el6_2.x86_64
2013-01-23T09:26:06 info: Installing rubygems-1.3.7-1.el6.noarch
2013-01-23T09:26:06 info: Installing rubygem-stomp-1.1.8-1.el6.noarch
2013-01-23T09:26:06 info: warning: rubygem-stomp-1.1.8-1.el6.noarch: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
2013-01-23T09:26:06 info: Installing mcollective-common-2.2.2-1.el6.noarch
2013-01-23T09:26:06 info: warning: mcollective-common-2.2.2-1.el6.noarch: Header V4 RSA/SHA1 Signature, key ID 4bd6ec30: NOKEY
2013-01-23T09:26:07 info: Installing mcollective-2.2.2-1.el6.noarch
2013-01-23T09:26:07 info: Installing ruby-augeas-0.4.1-1.el6.x86_64
2013-01-23T09:26:07 info: Installing ruby-shadow-1.4.1-13.el6.x86_64
2013-01-23T09:26:07 info: Installing fipscheck-lib-1.2.0-7.el6.x86_64
2013-01-23T09:26:07 info: Installing fipscheck-1.2.0-7.el6.x86_64
2013-01-23T09:26:07 info: Installing ustr-1.0.4-9.1.el6.x86_64
2013-01-23T09:26:07 info: Installing libsemanage-2.0.43-4.1.el6.x86_64
2013-01-23T09:26:07 info: Installing libffi-3.0.5-3.2.el6.x86_64
2013-01-23T09:26:07 info: Installing python-libs-2.6.6-29.el6_3.3.x86_64
2013-01-23T09:26:08 info: Installing python-2.6.6-29.el6_3.3.x86_64
2013-01-23T09:26:12 info: Installing scapy-2.0.0.10-5.el6.noarch
2013-01-23T09:26:13 info: Installing yum-metadata-parser-1.1.2-16.el6.x86_64
2013-01-23T09:26:13 info: Installing pygpgme-0.1-18.20090824bzr68.el6.x86_64
2013-01-23T09:26:13 info: Installing rpm-python-4.8.0-27.el6.x86_64
2013-01-23T09:26:13 info: Installing python-iniparse-0.3.1-2.1.el6.noarch
2013-01-23T09:26:13 info: Installing python-pycurl-7.19.0-8.el6.x86_64
2013-01-23T09:26:13 info: Installing python-urlgrabber-3.9.1-8.el6.noarch
2013-01-23T09:26:13 info: Installing yum-plugin-fastestmirror-1.1.30-14.el6.noarch
2013-01-23T09:26:13 info: Installing yum-3.2.29-30.el6.centos.noarch
2013-01-23T09:26:13 info: Installing dash-0.5.5.1-3.1.el6.x86_64
2013-01-23T09:26:14 info: Installing pciutils-libs-3.1.4-11.el6.x86_64
2013-01-23T09:26:14 info: Installing pciutils-3.1.4-11.el6.x86_64
2013-01-23T09:26:14 info: Installing facter-1.6.17-1.el6.x86_64
2013-01-23T09:26:14 info: Installing plymouth-core-libs-0.8.3-24.el6.centos.x86_64
2013-01-23T09:26:14 info: Installing kbd-misc-1.15-11.el6.noarch
2013-01-23T09:26:14 info: Installing centos-release-6-3.el6.centos.9.x86_64
2013-01-23T09:26:14 info: Installing iputils-20071127-16.el6.x86_64
2013-01-23T09:26:14 info: Installing util-linux-ng-2.17.2-12.7.el6_3.x86_64
2013-01-23T09:26:15 info: Installing initscripts-9.03.31-2.el6.centos.1.x86_64
2013-01-23T09:26:16 info: Installing udev-147-2.42.el6.x86_64
2013-01-23T09:26:16 info: Installing openssh-5.3p1-81.el6_3.x86_64
2013-01-23T09:26:16 info: Installing kbd-1.15-11.el6.x86_64
2013-01-23T09:26:16 info: Installing rsyslog-5.8.10-2.el6.x86_64
2013-01-23T09:26:17 info: Installing exim-4.72-4.el6.x86_64
2013-01-23T09:26:17 info: Installing crontabs-1.10-33.el6.noarch
2013-01-23T09:26:17 info: Installing cronie-anacron-1.4.4-7.el6.x86_64
2013-01-23T09:26:17 info: Installing cronie-1.4.4-7.el6.x86_64
2013-01-23T09:26:17 info: Installing ntpdate-4.2.4p8-2.el6.centos.x86_64
2013-01-23T09:26:17 info: Installing dhcp-common-4.1.1-31.0.1.P1.el6.centos.1.x86_64
2013-01-23T09:26:17 info: Installing kernel-firmware-2.6.32-279.19.1.el6.centos.plus.noarch
2013-01-23T09:26:19 info: Installing libdrm-2.4.25-2.el6.x86_64
2013-01-23T09:26:19 info: Installing plymouth-0.8.3-24.el6.centos.x86_64
2013-01-23T09:26:19 info: Installing dracut-004-284.el6_3.1.noarch
2013-01-23T09:26:19 info: Installing dracut-kernel-004-284.el6_3.1.noarch
2013-01-23T09:26:19 info: Installing kernel-2.6.32-279.19.1.el6.centos.plus.x86_64
2013-01-23T09:26:27 info: Installing dhclient-4.1.1-31.0.1.P1.el6.centos.1.x86_64
2013-01-23T09:26:27 info: Installing ntp-4.2.4p8-2.el6.centos.x86_64
2013-01-23T09:26:27 info: Installing openssh-clients-5.3p1-81.el6_3.x86_64
2013-01-23T09:26:27 info: Installing openssh-server-5.3p1-81.el6_3.x86_64
2013-01-23T09:26:28 info: Installing puppet-2.7.19-1.el6.noarch
2013-01-23T09:26:30 info: Installing policycoreutils-2.0.83-19.24.el6.x86_64
2013-01-23T09:26:31 info: Installing nailgun-net-check-0.0.2-1.x86_64
2013-01-23T09:26:31 info: Installing grub-0.97-77.el6.x86_64
2013-01-23T09:26:31 info: Installing nailgun-mcagents-0.1.0-1.x86_64
2013-01-23T09:26:31 info: Installing ruby-devel-1.8.7.352-7.el6_2.x86_64
2013-01-23T09:26:31 info: Installing wget-1.12-1.4.el6.x86_64
2013-01-23T09:26:31 info: Installing sudo-1.7.4p5-13.el6_3.x86_64
2013-01-23T09:26:31 info: Installing nailgun-agent-0.1.0-1.x86_64
2013-01-23T09:26:31 info: Installing gcc-4.4.6-4.el6.x86_64
2013-01-23T09:26:35 info: Installing e2fsprogs-1.41.12-12.el6.x86_64
2013-01-23T09:26:35 info: Installing iptables-ipv6-1.4.7-5.1.el6_2.x86_64
2013-01-23T09:26:35 info: Installing acl-2.2.49-6.el6.x86_64
2013-01-23T09:26:35 info: Installing make-3.81-20.el6.x86_64
2013-01-23T09:26:35 info: Installing attr-2.4.44-7.el6.x86_64
2013-01-23T09:27:14 info: 09:27:14,602 INFO : leaving (1) step installpackages
2013-01-23T09:27:14 info: 09:27:14,603 INFO : moving (1) to step postinstallconfig
2013-01-23T09:27:14 debug: 09:27:14,604 DEBUG : postinstallconfig is a direct step
2013-01-23T09:27:14 info: 09:27:14,628 INFO : leaving (1) step postinstallconfig
2013-01-23T09:27:14 info: 09:27:14,628 INFO : moving (1) to step writeconfig
2013-01-23T09:27:14 debug: 09:27:14,629 DEBUG : writeconfig is a direct step
2013-01-23T09:27:14 info: 09:27:14,629 INFO : Writing main configuration
2013-01-23T09:27:14 warning: 09:27:14,638 WARNING : '/usr/sbin/authconfig' specified as full path
2013-01-23T09:27:14 err: 09:27:14,661 ERROR : Error running /usr/sbin/authconfig: No such file or directory
2013-01-23T09:27:14 err: 09:27:14,662 ERROR : Error running ['--update', '--nostart', '--enableshadow', '--passalgo=sha512']: Error running /usr/sbin/authconfig: No such file or directory
2013-01-23T09:27:14 warning: 09:27:14,665 WARNING : '/usr/sbin/lokkit' specified as full path
2013-01-23T09:27:14 err: 09:27:14,680 ERROR : Error running /usr/sbin/lokkit: No such file or directory
2013-01-23T09:27:14 err: 09:27:14,681 ERROR : lokkit run failed: Error running /usr/sbin/lokkit: No such file or directory
2013-01-23T09:27:14 warning: 09:27:14,681 WARNING : '/usr/sbin/lokkit' specified as full path
2013-01-23T09:27:14 err: 09:27:14,694 ERROR : Error running /usr/sbin/lokkit: No such file or directory
2013-01-23T09:27:14 err: 09:27:14,695 ERROR : lokkit run failed: Error running /usr/sbin/lokkit: No such file or directory
2013-01-23T09:27:14 info: 09:27:14,798 INFO : removing libuser.conf at /tmp/libuser.JtvFQd
2013-01-23T09:27:14 info: 09:27:14,799 INFO : created new libuser.conf at /tmp/libuser.JtvFQd with instPath="/mnt/sysimage"
2013-01-23T09:27:14 info: 09:27:14,821 INFO : leaving (1) step writeconfig
2013-01-23T09:27:14 info: 09:27:14,821 INFO : moving (1) to step firstboot
2013-01-23T09:27:14 debug: 09:27:14,821 DEBUG : firstboot is a direct step
2013-01-23T09:27:14 info: 09:27:14,821 INFO : leaving (1) step firstboot
2013-01-23T09:27:14 info: 09:27:14,822 INFO : moving (1) to step instbootloader
2013-01-23T09:27:14 debug: 09:27:14,822 DEBUG : instbootloader is a direct step
2013-01-23T09:27:14 info: *** FINISHED INSTALLING PACKAGES ***
2013-01-23T09:27:15 warning: 09:27:14,989 WARNING : '/sbin/grub-install' specified as full path
2013-01-23T09:27:15 warning: 09:27:15,038 WARNING : '/sbin/grub' specified as full path
2013-01-23T09:27:17 info: 09:27:17,176 INFO : leaving (1) step instbootloader
2013-01-23T09:27:17 info: 09:27:17,177 INFO : moving (1) to step reipl
2013-01-23T09:27:17 debug: 09:27:17,177 DEBUG : reipl is a direct step
2013-01-23T09:27:17 info: 09:27:17,177 INFO : leaving (1) step reipl
2013-01-23T09:27:17 info: 09:27:17,177 INFO : moving (1) to step writeksconfig
2013-01-23T09:27:17 debug: 09:27:17,177 DEBUG : writeksconfig is a direct step
2013-01-23T09:27:17 info: 09:27:17,177 INFO : Writing autokickstart file
2013-01-23T09:27:17 info: 09:27:17,183 INFO : leaving (1) step writeksconfig
2013-01-23T09:27:17 info: 09:27:17,183 INFO : moving (1) to step setfilecon
2013-01-23T09:27:17 debug: 09:27:17,183 DEBUG : setfilecon is a direct step
2013-01-23T09:27:17 info: 09:27:17,184 INFO : setting SELinux contexts for anaconda created files
2013-01-23T09:27:19 info: 09:27:18,940 INFO : leaving (1) step setfilecon
2013-01-23T09:27:19 info: 09:27:18,940 INFO : moving (1) to step copylogs
2013-01-23T09:27:19 debug: 09:27:18,941 DEBUG : copylogs is a direct step
2013-01-23T09:27:19 info: 09:27:18,941 INFO : Copying anaconda logs
2013-01-23T09:27:19 info: 09:27:18,943 INFO : leaving (1) step copylogs
2013-01-23T09:27:19 info: 09:27:18,943 INFO : moving (1) to step methodcomplete
2013-01-23T09:27:19 debug: 09:27:18,943 DEBUG : methodcomplete is a direct step
2013-01-23T09:27:19 info: 09:27:18,943 INFO : leaving (1) step methodcomplete
2013-01-23T09:27:19 info: 09:27:18,943 INFO : moving (1) to step postscripts
2013-01-23T09:27:19 debug: 09:27:18,944 DEBUG : postscripts is a direct step
2013-01-23T09:27:19 info: 09:27:18,944 INFO : Running kickstart %%post script(s)
2013-01-23T09:27:19 warning: 09:27:18,946 WARNING : '/bin/sh' specified as full path
2013-01-23T09:28:30 info: 09:28:30,453 INFO : All kickstart %%post script(s) have been run
2013-01-23T09:28:30 info: 09:28:30,454 INFO : leaving (1) step postscripts
2013-01-23T09:28:30 info: 09:28:30,454 INFO : moving (1) to step dopostaction
2013-01-23T09:28:30 debug: 09:28:30,455 DEBUG : dopostaction is a direct step
2013-01-23T09:28:30 info: 09:28:30,455 INFO : leaving (1) step dopostaction

View File

@ -1,57 +0,0 @@
#!/usr/bin/env rspec
require File.join(File.dirname(__FILE__), "..", "spec_helper")
describe "SimplePuppet DeploymentEngine" do
context "When deploy is called, " do
before(:each) do
@ctx = mock
@ctx.stubs(:task_id)
@ctx.stubs(:deploy_log_parser).returns(Astute::LogParser::NoParsing.new)
@reporter = mock('reporter')
@reporter.stub_everything
@ctx.stubs(:reporter).returns(Astute::ProxyReporter.new(@reporter))
@deploy_engine = Astute::DeploymentEngine::SimplePuppet.new(@ctx)
@env = YAML.load_file(File.join(File.dirname(__FILE__), "..", "..", "examples", "no_attrs.yaml"))
end
it "it should call valid method depends on attrs" do
nodes = [{'uid' => 1}]
attrs = {'deployment_mode' => 'ha_compute'}
@deploy_engine.expects(:attrs_ha_compute).never # It is not supported in SimplePuppet
@deploy_engine.expects(:deploy_ha_compute).with(nodes, attrs)
# All implementations of deploy_piece go to subclasses
@deploy_engine.respond_to?(:deploy_piece).should be_true
@deploy_engine.deploy(nodes, attrs)
end
it "it should raise an exception if deployment mode is unsupported" do
nodes = [{'uid' => 1}]
attrs = {'deployment_mode' => 'unknown'}
expect {@deploy_engine.deploy(nodes, attrs)}.to raise_exception(
/Method deploy_unknown is not implemented/)
end
it "multinode_compute deploy should not raise any exception" do
@env['attributes']['deployment_mode'] = "multinode_compute"
Astute::Metadata.expects(:publish_facts).never # It is not supported in SimplePuppet
# we got two calls, one for controller, and another for all computes
Astute::PuppetdDeployer.expects(:deploy).twice
@deploy_engine.deploy(@env['nodes'], @env['attributes'])
end
it "ha_compute deploy should not raise any exception" do
@env['attributes']['deployment_mode'] = "ha_compute"
Astute::Metadata.expects(:publish_facts).never
Astute::PuppetdDeployer.expects(:deploy).times(6)
@deploy_engine.deploy(@env['nodes'], @env['attributes'])
end
it "singlenode_compute deploy should not raise any exception" do
@env['attributes']['deployment_mode'] = "singlenode_compute"
@env['nodes'] = [@env['nodes'][0]] # We have only one node in singlenode
Astute::Metadata.expects(:publish_facts).never
Astute::PuppetdDeployer.expects(:deploy).once # one call for one node
@deploy_engine.deploy(@env['nodes'], @env['attributes'])
end
end
end

View File

@ -8,17 +8,17 @@ task_uuid: deployment_task
attributes:
# `deployment_mode' shows what type of installation you choose.
# Can be:
# `singlenode_compute' - means only one node will be deployed. It will
# `singlenode' - means only one node will be deployed. It will
# contain Controller and Compute components of OpenStack.
# `multinode_compute' - means one Controller node and some Compute nodes
# `multinode' - means one Controller node and some Compute nodes
# will be deployed.
# `ha_compute' - means at least three Controller nodes and some Compute
# `ha' - means at least three Controller nodes and some Compute
# nodes will be deployed in High Availability mode of Controller
# components.
# In last two cases Astute first of all deployes Contoller components,
# after that it deployes Compute components and finaly deployes other
# components if they exist.
deployment_mode: multinode_compute
deployment_mode: multinode
# `deployment_engine' - shows how you will handle attributes for Puppet
# manifests.
# `simplepuppet' - means you should manualy set up all necessary attributes

View File

@ -1,4 +1,5 @@
---
# This example environment config is used in unittest simplepuppet_deploy_spec.
---
nodes:
- status: provisioned
role: controller
@ -7,6 +8,6 @@ nodes:
role: compute
uid: devnailgun.mirantis.com
attributes:
deployment_mode: multinode_compute
deployment_mode: multinode
deployment_engine: simplepuppet
task_uuid: deployment_task

View File

@ -59,7 +59,7 @@ nodes:
uid: devnailgun.mirantis.com
mac: 52:54:00:50:91:DD
attributes:
deployment_mode: multinode_compute
deployment_mode: multinode
deployment_engine: nailyfact
glance:
db_password: glance

View File

@ -1,4 +1,4 @@
require 'rubygems'
require 'astute/ruby_removed_functions'
require 'json'
require 'logger'

View File

@ -12,7 +12,8 @@ module Astute
def deploy(nodes, attrs)
# See implementation in subclasses, this may be everriden
attrs['deployment_mode'] ||= 'multinode_compute' # simple multinode deployment is the default
attrs['deployment_mode'] ||= 'multinode' # simple multinode deployment is the default
attrs['use_cinder'] ||= nodes.any?{|n| n['role'] == 'cinder'}
@ctx.deploy_log_parser.deploy_type = attrs['deployment_mode']
Astute.logger.info "Deployment mode #{attrs['deployment_mode']}"
result = self.send("deploy_#{attrs['deployment_mode']}", nodes, attrs)
@ -23,7 +24,7 @@ module Astute
raise "Method #{method} is not implemented for #{self.class}"
end
def attrs_singlenode_compute(nodes, attrs)
def attrs_singlenode(nodes, attrs)
ctrl_management_ip = nodes[0]['network_data'].select {|nd| nd['name'] == 'management'}[0]['ip']
ctrl_public_ip = nodes[0]['network_data'].select {|nd| nd['name'] == 'public'}[0]['ip']
attrs['controller_node_address'] = ctrl_management_ip.split('/')[0]
@ -31,15 +32,15 @@ module Astute
attrs
end
def deploy_singlenode_compute(nodes, attrs)
def deploy_singlenode(nodes, attrs)
# TODO(mihgen) some real stuff is needed
Astute.logger.info "Starting deployment of single node OpenStack"
deploy_piece(nodes, attrs)
end
# we mix all attrs and prepare them for Puppet
# Works for multinode_compute deployment mode
def attrs_multinode_compute(nodes, attrs)
# Works for multinode deployment mode
def attrs_multinode(nodes, attrs)
ctrl_nodes = nodes.select {|n| n['role'] == 'controller'}
# TODO(mihgen): we should report error back if there are not enough metadata passed
ctrl_management_ips = []
@ -57,7 +58,7 @@ module Astute
# This method is called by Ruby metaprogramming magic from deploy method
# It should not contain any magic with attributes, and should not directly run any type of MC plugins
# It does only support of deployment sequence. See deploy_piece implementation in subclasses.
def deploy_multinode_compute(nodes, attrs)
def deploy_multinode(nodes, attrs)
ctrl_nodes = nodes.select {|n| n['role'] == 'controller'}
Astute.logger.info "Starting deployment of controllers"
deploy_piece(ctrl_nodes, attrs)
@ -72,7 +73,7 @@ module Astute
return
end
def attrs_ha_compute(nodes, attrs)
def attrs_ha(nodes, attrs)
# TODO(mihgen): we should report error back if there are not enough metadata passed
ctrl_nodes = nodes.select {|n| n['role'] == 'controller'}
ctrl_manag_addrs = {}
@ -93,7 +94,7 @@ module Astute
attrs
end
def deploy_ha_compute(nodes, attrs)
def deploy_ha(nodes, attrs)
ctrl_nodes = nodes.select {|n| n['role'] == 'controller'}
Astute.logger.info "Starting deployment of all controllers one by one, ignoring failure"
ctrl_nodes.each {|n| deploy_piece([n], attrs, retries=0, change_node_status=false)}
@ -121,6 +122,80 @@ module Astute
return
end
def deploy_ha_compact(nodes, attrs)
# Added for backward compatibility with FUEL.
# Should be used with `simplepuppet' engine only.
ctrl_nodes = nodes.select {|n| n['role'] == 'controller'}
compute_nodes = nodes.select {|n| n['role'] == 'compute'}
other_nodes = nodes - ctrl_nodes - compute_nodes
Astute.logger.info "Starting deployment of all controllers one by one, ignoring failure"
ctrl_nodes.each {|n| deploy_piece([n], attrs, retries=0, change_node_status=false)}
Astute.logger.info "Starting deployment of 1st controller again, ignoring failure"
deploy_piece(ctrl_nodes[0..0], attrs, retries=0, change_node_status=false)
Astute.logger.info "Starting deployment of controllers exclude first, ignoring failure"
deploy_piece(ctrl_nodes[1..-1], attrs, retries=0, change_node_status=false)
Astute.logger.info "Starting deployment of 1st controller again"
deploy_piece(ctrl_nodes[0..0], attrs, retries=0)
Astute.logger.info "Starting deployment of controllers exclude first"
deploy_piece(ctrl_nodes[1..-1], attrs, retries=0)
Astute.logger.info "Starting deployment of other nodes"
deploy_piece(other_nodes, attrs)
Astute.logger.info "Starting deployment of computes"
deploy_piece(compute_nodes, attrs)
return
end
def deploy_ha_full(nodes, attrs)
# Added for backward compatibility with FUEL.
# Should be used with `simplepuppet' engine only.
ctrl_nodes = nodes.select {|n| n['role'] == 'controller'}
compute_nodes = nodes.select {|n| n['role'] == 'compute'}
quantum_nodes = nodes.select {|n| n['role'] == 'quantum'}
storage_nodes = nodes.select {|n| n['role'] == 'storage'}
proxy_nodes = nodes.select {|n| n['role'] == 'swift-proxy'}
other_nodes = nodes - ctrl_nodes - compute_nodes - quantum_nodes - storage_nodes -proxy_nodes
Astute.logger.info "Starting deployment of all controllers one by one"
ctrl_nodes.each {|n| deploy_piece([n], attrs, retries=0)}
Astute.logger.info "Starting deployment of 1st controller again"
deploy_piece(ctrl_nodes[0..0], attrs, retries=0)
unless quantum_nodes.empty?
Astute.logger.info "Starting deployment of Quantum nodes"
deploy_piece(quantum_nodes, attrs, retries=0)
end
Astute.logger.info "Starting deployment of computes"
deploy_piece(compute_nodes, attrs)
Astute.logger.info "Starting deployment of storages, ignoring failure"
deploy_piece(storage_nodes, attrs, 2, change_node_status=false)
Astute.logger.info "Starting deployment of storages, ignoring failure"
deploy_piece(storage_nodes, attrs, 2, change_node_status=false)
Astute.logger.info "Starting deployment of all proxies one by one, ignoring failure"
proxy_nodes.each {|n| deploy_piece([n], attrs, retries=0, change_node_status=false)}
Astute.logger.info "Starting deployment of storages"
deploy_piece(storage_nodes, attrs)
Astute.logger.info "Starting deployment of proxies"
deploy_piece(proxy_nodes, attrs)
Astute.logger.info "Starting deployment of other nodes"
deploy_piece(other_nodes, attrs)
return
end
private
def nodes_status(nodes, status, data_to_merge)
{'nodes' => nodes.map { |n| {'uid' => n['uid'], 'status' => status}.merge(data_to_merge) }}

View File

@ -1,10 +1,10 @@
class Astute::DeploymentEngine::SimplePuppet < Astute::DeploymentEngine
# It is trivial puppet run. It's assumed that user has prepared site.pp
# with all required parameters for modules
def deploy_piece(nodes, *args)
def deploy_piece(nodes, attrs, retries=2, change_node_status=true)
return false unless validate_nodes(nodes)
@ctx.reporter.report nodes_status(nodes, 'deploying', {'progress' => 0})
Astute::PuppetdDeployer.deploy(@ctx, nodes)
Astute::PuppetdDeployer.deploy(@ctx, nodes, retries, change_node_status)
nodes_roles = nodes.map { |n| { n['uid'] => n['role'] } }
Astute.logger.info "#{@ctx.task_id}: Finished deployment of nodes => roles: #{nodes_roles.inspect}"
end

View File

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
module Astute
module LogParser
LOG_PORTION = 10000
@ -38,7 +39,7 @@ module Astute
node_pattern_spec = Marshal.load(Marshal.dump(@pattern_spec))
@nodes_states[uid] = node_pattern_spec
end
path = "#{@pattern_spec['path_prefix']}#{node['ip']}/#{@pattern_spec['filename']}"
path = "#{@pattern_spec['path_prefix']}#{node['fqdn']}/#{@pattern_spec['filename']}"
begin
progress = (get_log_progress(path, node_pattern_spec)*100).to_i # Return percent of progress
@ -101,7 +102,7 @@ module Astute
# Pattern example:
# pattern_spec = {...,
# 'endlog_patterns' => [{'pattern' => /Finished catalog run in [0-9]+\.[0-9]* seconds\n/, 'progress' => 1.0}],
# }
# }
endlog_patterns = pattern_spec['endlog_patterns']
return nil unless endlog_patterns
fo.pos = fo.stat.size

View File

@ -2,7 +2,7 @@ module Astute
module LogParser
class ParseDeployLogs <ParseNodeLogs
attr_reader :deploy_type
def initialize(deploy_type='multinode_compute')
def initialize(deploy_type='multinode')
@deploy_type = deploy_type
pattern_spec = Patterns::get_default_pattern(
"puppet-log-components-list-#{@deploy_type}-controller")
@ -153,4 +153,4 @@ module Astute
end
end
end
end
end

View File

@ -56,7 +56,7 @@ module Astute
'filename' => 'install/anaconda.log'
},
'puppet-log-components-list-ha_compute-controller' => # key for default HA deploy pattern
'puppet-log-components-list-ha-controller' => # key for default HA deploy pattern
{'type' => 'components-list',
'endlog_patterns' => [{'pattern' => /Finished catalog run in [0-9]+\.[0-9]* seconds\n/, 'progress' => 1.0}],
'chunk_size' => 40000,
@ -220,7 +220,7 @@ module Astute
]
},
'puppet-log-components-list-ha_compute-compute' =>
'puppet-log-components-list-ha-compute' =>
{'type' => 'components-list',
'endlog_patterns' => [{'pattern' => /Finished catalog run in [0-9]+\.[0-9]* seconds\n/, 'progress' => 1.0}],
'chunk_size' => 40000,
@ -272,7 +272,7 @@ module Astute
]
},
'puppet-log-components-list-singlenode_compute-controller' =>
'puppet-log-components-list-singlenode-controller' =>
{'type' => 'components-list',
'endlog_patterns' => [{'pattern' => /Finished catalog run in [0-9]+\.[0-9]* seconds\n/, 'progress' => 1.0}],
'chunk_size' => 40000,
@ -358,7 +358,7 @@ module Astute
]
},
'puppet-log-components-list-multinode_compute-controller' =>
'puppet-log-components-list-multinode-controller' =>
{'type' => 'components-list',
'endlog_patterns' => [{'pattern' => /Finished catalog run in [0-9]+\.[0-9]* seconds\n/, 'progress' => 1.0}],
'chunk_size' => 40000,
@ -444,7 +444,7 @@ module Astute
]
},
'puppet-log-components-list-multinode_compute-compute' =>
'puppet-log-components-list-multinode-compute' =>
{'type' => 'components-list',
'endlog_patterns' => [{'pattern' => /Finished catalog run in [0-9]+\.[0-9]* seconds\n/, 'progress' => 1.0}],
'chunk_size' => 40000,
@ -498,4 +498,4 @@ module Astute
}
end
end
end
end

View File

@ -0,0 +1,8 @@
class Date
def self.day_fraction_to_time(fr)
ss, fr = fr.divmod(Rational(1, 86400))
h, ss = ss.divmod(3600)
min, s = ss.divmod(60)
return h, min, s, fr
end
end

View File

@ -81,15 +81,47 @@ module MCollective
reply[:output] = "Currently #{reply[:status]}; last completed run #{reply[:runtime]} seconds ago"
end
def rm_file file
begin
File.unlink(file)
return true
rescue
return false
end
end
def puppet_daemon_status
err_msg = ""
alive = false
if File.exists?(@pidfile)
pid = File.read(@pidfile)
begin
::Process.kill(0, Integer(pid)) # check that pid is alive
alive = true
rescue
err_msg << "Pidfile is present but process not running. Trying to remove pidfile..."
err_msg << (rm_file(@pidfile) ? "ok. " : "failed. ")
end
end
locked = File.exists?(@lockfile)
disabled = locked && File::Stat.new(@lockfile).zero?
has_pid = File.exists?(@pidfile)
if locked && !disabled && !alive
err_msg << "Process not running but not empty lockfile is present. Trying to remove lockfile..."
err_msg << (rm_file(@lockfile) ? "ok." : "failed.")
end
return 'disabled' if disabled
return 'running' if locked && has_pid
return 'idling' if ! locked && has_pid
return 'stopped' if ! has_pid
reply[:err_msg] = err_msg if err_msg.any?
if disabled
'disabled'
elsif alive && locked
'running'
elsif alive && !locked
'idling'
elsif !alive
'stopped'
end
end
def runonce

View File

@ -112,7 +112,7 @@ describe LogParser do
Dir.mktmpdir do |dir|
# Create temp log files and structures.
pattern_spec['path_prefix'] = "#{dir}/"
path = "#{pattern_spec['path_prefix']}#{node['ip']}/#{pattern_spec['filename']}"
path = "#{pattern_spec['path_prefix']}#{node['fqdn']}/#{pattern_spec['filename']}"
Dir.mkdir(File.dirname(File.dirname(path)))
Dir.mkdir(File.dirname(path))
node['file'] = File.open(path, 'w')
@ -136,7 +136,7 @@ describe LogParser do
node['progress_table'] << {:date => node['now'], :progress => node_progress['progress']}
node['now'] += time_delta
end
nodes.each do |node|
node['statistics'] = get_statistics_variables(node['progress_table'])
end
@ -150,8 +150,8 @@ describe LogParser do
end
it "should be greather than 0.96" do
node = {'uid' => '1', 'ip' => '1.0.0.1', 'role' => 'controller', 'src_filename' => 'anaconda.log_',
'meta' => { 'disks' =>
node = {'uid' => '1', 'ip' => '1.0.0.1', 'fqdn' => 'slave-1.domain.tld', 'role' => 'controller', 'src_filename' => 'anaconda.log_',
'meta' => { 'disks' =>
[
{'name' => 'flash drive', 'removable' => true, 'size' => 1000},
{'name' => 'sda', 'removable'=> false, 'size' => 32*1000*1000*1000},
@ -181,7 +181,7 @@ describe LogParser do
# Create temp log files and structures.
pattern_spec['path_prefix'] = "#{dir}/"
nodes.each do |node|
path = "#{pattern_spec['path_prefix']}#{node['ip']}/#{pattern_spec['filename']}"
path = "#{pattern_spec['path_prefix']}#{node['fqdn']}/#{pattern_spec['filename']}"
Dir.mkdir(File.dirname(path))
node['file'] = File.open(path, 'w')
src_filename = File.join(File.dirname(__FILE__), "..", "example-logs", node['src_filename'])
@ -213,7 +213,7 @@ describe LogParser do
end
end
end
nodes.each do |node|
node['statistics'] = get_statistics_variables(node['progress_table'])
end
@ -230,11 +230,11 @@ describe LogParser do
it "should be greather than 0.85 for HA deployment" do
nodes = [
{'uid' => '1', 'ip' => '1.0.0.1', 'role' => 'controller', 'src_filename' => 'puppet-agent.log.ha.contr.2'},
{'uid' => '2', 'ip' => '1.0.0.2', 'role' => 'compute', 'src_filename' => 'puppet-agent.log.ha.compute'},
{'uid' => '1', 'ip' => '1.0.0.1', 'fqdn' => 'slave-1.domain.tld', 'role' => 'controller', 'src_filename' => 'puppet-agent.log.ha.contr.2'},
{'uid' => '2', 'ip' => '1.0.0.2', 'fqdn' => 'slave-2.domain.tld', 'role' => 'compute', 'src_filename' => 'puppet-agent.log.ha.compute'},
]
calculated_nodes = deployment_parser_wrapper('ha_compute', nodes)
calculated_nodes = deployment_parser_wrapper('ha', nodes)
calculated_nodes.each {|node| node['statistics']['pcc'].should > 0.85}
# For debug purposes.
@ -246,20 +246,20 @@ describe LogParser do
it "should be greather than 0.97 for singlenode deployment" do
nodes = [
{'uid' => '1', 'ip' => '1.0.0.1', 'role' => 'controller', 'src_filename' => 'puppet-agent.log.singlenode'},
{'uid' => '1', 'ip' => '1.0.0.1', 'fqdn' => 'slave-1.domain.tld', 'role' => 'controller', 'src_filename' => 'puppet-agent.log.singlenode'},
]
calculated_nodes = deployment_parser_wrapper('singlenode_compute', nodes)
calculated_nodes = deployment_parser_wrapper('singlenode', nodes)
calculated_nodes.each {|node| node['statistics']['pcc'].should > 0.97}
end
it "should be greather than 0.94 for multinode deployment" do
nodes = [
{'uid' => '1', 'ip' => '1.0.0.1', 'role' => 'controller', 'src_filename' => 'puppet-agent.log.multi.contr'},
{'uid' => '2', 'ip' => '1.0.0.2', 'role' => 'compute', 'src_filename' => 'puppet-agent.log.multi.compute'},
{'uid' => '1', 'ip' => '1.0.0.1', 'fqdn' => 'slave-1.domain.tld', 'role' => 'controller', 'src_filename' => 'puppet-agent.log.multi.contr'},
{'uid' => '2', 'ip' => '1.0.0.2', 'fqdn' => 'slave-2.domain.tld', 'role' => 'compute', 'src_filename' => 'puppet-agent.log.multi.compute'},
]
calculated_nodes = deployment_parser_wrapper('multinode_compute', nodes)
calculated_nodes = deployment_parser_wrapper('multinode', nodes)
calculated_nodes.each {|node| node['statistics']['pcc'].should > 0.94}
end

View File

@ -114,7 +114,7 @@ describe "NailyFact DeploymentEngine" do
"role" => "controller"}]
@data_ha = Marshal.load(Marshal.dump(@data))
@data_ha['args']['nodes'] = ha_nodes
@data_ha['args']['attributes']['deployment_mode'] = "ha_compute"
@data_ha['args']['attributes']['deployment_mode'] = "ha"
# VIPs are required for HA mode and should be passed from Nailgun (only in HA)
@data_ha['args']['attributes']['management_vip'] = "192.168.0.111"
@data_ha['args']['attributes']['public_vip'] = "240.0.1.111"
@ -122,11 +122,11 @@ describe "NailyFact DeploymentEngine" do
it "it should call valid method depends on attrs" do
nodes = [{'uid' => 1}]
attrs = {'deployment_mode' => 'ha_compute'}
attrs = {'deployment_mode' => 'ha'}
attrs_modified = attrs.merge({'some' => 'somea'})
@deploy_engine.expects(:attrs_ha_compute).with(nodes, attrs).returns(attrs_modified)
@deploy_engine.expects(:deploy_ha_compute).with(nodes, attrs_modified)
@deploy_engine.expects(:attrs_ha).with(nodes, attrs).returns(attrs_modified)
@deploy_engine.expects(:deploy_ha).with(nodes, attrs_modified)
# All implementations of deploy_piece go to subclasses
@deploy_engine.respond_to?(:deploy_piece).should be_true
@deploy_engine.deploy(nodes, attrs)
@ -138,8 +138,8 @@ describe "NailyFact DeploymentEngine" do
expect {@deploy_engine.deploy(nodes, attrs)}.to raise_exception(/Method attrs_unknown is not implemented/)
end
it "multinode_compute deploy should not raise any exception" do
@data['args']['attributes']['deployment_mode'] = "multinode_compute"
it "multinode deploy should not raise any exception" do
@data['args']['attributes']['deployment_mode'] = "multinode"
Astute::Metadata.expects(:publish_facts).times(@data['args']['nodes'].size)
# we got two calls, one for controller, and another for all computes
controller_nodes = @data['args']['nodes'].select{|n| n['role'] == 'controller'}
@ -149,7 +149,7 @@ describe "NailyFact DeploymentEngine" do
@deploy_engine.deploy(@data['args']['nodes'], @data['args']['attributes'])
end
it "ha_compute deploy should not raise any exception" do
it "ha deploy should not raise any exception" do
Astute::Metadata.expects(:publish_facts).at_least_once
controller_nodes = @data_ha['args']['nodes'].select{|n| n['role'] == 'controller'}
compute_nodes = @data_ha['args']['nodes'].select{|n| n['role'] == 'compute'}
@ -164,15 +164,15 @@ describe "NailyFact DeploymentEngine" do
@deploy_engine.deploy(@data_ha['args']['nodes'], @data_ha['args']['attributes'])
end
it "ha_compute deploy should not raise any exception if there are only one controller" do
it "ha deploy should not raise any exception if there are only one controller" do
Astute::Metadata.expects(:publish_facts).at_least_once
Astute::PuppetdDeployer.expects(:deploy).times(5)
ctrl = @data_ha['args']['nodes'].select {|n| n['role'] == 'controller'}[0]
@deploy_engine.deploy([ctrl], @data_ha['args']['attributes'])
end
it "singlenode_compute deploy should not raise any exception" do
@data['args']['attributes']['deployment_mode'] = "singlenode_compute"
it "singlenode deploy should not raise any exception" do
@data['args']['attributes']['deployment_mode'] = "singlenode"
@data['args']['nodes'] = [@data['args']['nodes'][0]] # We have only one node in singlenode
Astute::Metadata.expects(:publish_facts).times(@data['args']['nodes'].size)
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, @data['args']['nodes'], instance_of(Fixnum), true).once

View File

@ -0,0 +1,115 @@
#!/usr/bin/env rspec
require File.join(File.dirname(__FILE__), "..", "spec_helper")
describe "SimplePuppet DeploymentEngine" do
context "When deploy is called, " do
before(:each) do
@ctx = mock
@ctx.stubs(:task_id)
@ctx.stubs(:deploy_log_parser).returns(Astute::LogParser::NoParsing.new)
@reporter = mock('reporter')
@reporter.stub_everything
@ctx.stubs(:reporter).returns(Astute::ProxyReporter.new(@reporter))
@deploy_engine = Astute::DeploymentEngine::SimplePuppet.new(@ctx)
@env = YAML.load_file(File.join(File.dirname(__FILE__), "..", "..", "examples", "no_attrs.yaml"))
end
it "it should call valid method depends on attrs" do
nodes = [{'uid' => 1}]
attrs = {'deployment_mode' => 'ha'}
@deploy_engine.expects(:attrs_ha).never # It is not supported in SimplePuppet
@deploy_engine.expects(:deploy_ha).with(nodes, attrs)
# All implementations of deploy_piece go to subclasses
@deploy_engine.respond_to?(:deploy_piece).should be_true
@deploy_engine.deploy(nodes, attrs)
end
it "it should raise an exception if deployment mode is unsupported" do
nodes = [{'uid' => 1}]
attrs = {'deployment_mode' => 'unknown'}
expect {@deploy_engine.deploy(nodes, attrs)}.to raise_exception(
/Method deploy_unknown is not implemented/)
end
it "multinode deploy should not raise any exception" do
@env['attributes']['deployment_mode'] = "multinode"
Astute::Metadata.expects(:publish_facts).never # It is not supported in SimplePuppet
# we got two calls, one for controller, and another for all computes
Astute::PuppetdDeployer.expects(:deploy).twice
@deploy_engine.deploy(@env['nodes'], @env['attributes'])
end
it "ha deploy should not raise any exception" do
@env['attributes']['deployment_mode'] = "ha"
Astute::Metadata.expects(:publish_facts).never
Astute::PuppetdDeployer.expects(:deploy).times(6)
@deploy_engine.deploy(@env['nodes'], @env['attributes'])
end
it "singlenode deploy should not raise any exception" do
@env['attributes']['deployment_mode'] = "singlenode"
@env['nodes'] = [@env['nodes'][0]] # We have only one node in singlenode
Astute::Metadata.expects(:publish_facts).never
Astute::PuppetdDeployer.expects(:deploy).once # one call for one node
@deploy_engine.deploy(@env['nodes'], @env['attributes'])
end
it "ha_compact deploy should not raise any exception" do
@env['attributes']['deployment_mode'] = "ha_compact"
@env['nodes'].concat([{'uid'=>'c1', 'role'=>'controller'},
{'uid'=>'c2', 'role'=>'controller'},
{'uid'=>'o1', 'role'=>'other'}])
controller_nodes = @env['nodes'].select{|n| n['role'] == 'controller'}
compute_nodes = @env['nodes'].select{|n| n['role'] == 'compute'}
other_nodes = @env['nodes'] - controller_nodes - compute_nodes
Astute::Metadata.expects(:publish_facts).never
controller_nodes.each do |n|
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, [n], 0, false).once
end
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, [controller_nodes.first], 0, false).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, controller_nodes[1..-1], 0, false).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, [controller_nodes.first], 0, true).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, controller_nodes[1..-1], 0, true).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, other_nodes, instance_of(Fixnum), true).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, compute_nodes, instance_of(Fixnum), true).once
@deploy_engine.deploy(@env['nodes'], @env['attributes'])
end
it "ha_full deploy should not raise any exception" do
@env['attributes']['deployment_mode'] = "ha_full"
@env['nodes'].concat([{'uid'=>'c1', 'role'=>'controller'}, {'uid'=>'c2', 'role'=>'controller'},
{'uid'=>'q1', 'role'=>'quantum'}, {'uid'=>'q2', 'role'=>'quantum'},
{'uid'=>'st1', 'role'=>'storage'}, {'uid'=>'st2', 'role'=>'storage'},
{'uid'=>'sw1', 'role'=>'swift-proxy'}, {'uid'=>'sw2', 'role'=>'swift-proxy'},
{'uid'=>'o1', 'role'=>'other'}])
controller_nodes = @env['nodes'].select{|n| n['role'] == 'controller'}
compute_nodes = @env['nodes'].select{|n| n['role'] == 'compute'}
quantum_nodes = @env['nodes'].select {|n| n['role'] == 'quantum'}
storage_nodes = @env['nodes'].select {|n| n['role'] == 'storage'}
proxy_nodes = @env['nodes'].select {|n| n['role'] == 'swift-proxy'}
other_nodes = @env['nodes'] - controller_nodes - compute_nodes - quantum_nodes - storage_nodes -proxy_nodes
Astute::Metadata.expects(:publish_facts).never
controller_nodes.each do |n|
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, [n], 0, true).once
end
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, [controller_nodes.first], 0, true).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, quantum_nodes, 0, true).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, compute_nodes, instance_of(Fixnum), true).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, storage_nodes, instance_of(Fixnum), false).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, storage_nodes, instance_of(Fixnum), false).once
proxy_nodes.each do |n|
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, [n], 0, false).once
end
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, storage_nodes, instance_of(Fixnum), true).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, proxy_nodes, instance_of(Fixnum), true).once
Astute::PuppetdDeployer.expects(:deploy).with(@ctx, other_nodes, instance_of(Fixnum), true).once
@deploy_engine.deploy(@env['nodes'], @env['attributes'])
end
end
end