[00:00] <cellofellow> thanks
[00:15] <OscarTG> thanks
[02:02] <kb244> I currently have PHP Version 5.2.6-2ubuntu4.1 is there any way i can get it to 5.2.9? seems last time I tried to manually compile it, it reverted back to 5.2.6 a day later
[02:03] <kb244> using ubuntu 8.10 server
[02:04] <twb> kb244: 5.2.9 is not available for Ubuntu yet.
[02:04] <kb244> ... despite I could compile it from source?
[02:04] <twb> kb244: this is probably for a good reason (i.e. installing it breaks something, or is insecure).
[02:04] <kb244> but 5.2.9 fixes security issues in 5.2.6
[02:04] <twb> You *could* compile it from source, but I strongly discourage that.
[02:05] <twb> If Ubuntu are doing their job, the Ubuntu version of 5.2.6 will include any relevant security fixes that upstream added to 5.2.9.
[02:05] <kb244> so 5.2.6-2unbuntu4.1 is a special build by the ubuntu team?
[02:05] <kb244> and not just a compile of 5.2.6 like you'd get from php.net
[02:11] <PhotoJim> kb244: yes
[02:11] <kb244> wont really worry bout it then :p
[02:12] <kb244> right now I got apache disabled, and just running nginx + php (fast-cgi) + mysql5
[02:16] <twb> kb244: all Ubuntu packages are gently caressed so they fit better into the overall distribution
[02:16] <kb244> nginx was installed with apt-get so I assume thats the case as well
[02:16] <twb> For simple packages like mg, that doesn't involve much.  For packages like PHP you can be sure that a LOT of fixing is needed to get things "right".
[02:17] <twb> It depends how silly upstream is, amongst other things.
[02:17] <kb244> i been using landscape , which is kind of nice. it would be interesting if it were extended into some sort of off-server cpanel :P
[02:18] <kb244> i been wanting however to make users only see their home folder and unable to see above it via SFTP/SSH, but I don't want to have to create a jailed enviroment and such, nor use vftpd etc
[02:22] <|rt|> anyone here familiar with iscsi...I'm having problems discovering a iscsi target being served by opensolaris
[02:22] <|rt|> windows xp's iscsi initiator works with it so I'm assuming that this is a configuration issue on the initiator side on linux
[02:23] <|rt|> http://pastebin.com/d3ebfbfac
[02:25] <twb> Wow, landscape is not just vapourware now?
[02:42] <kb244> twb: been using it for a couple weeks
[02:42] <kb244> just gota request a demo
[02:42] <kb244> its like a 60 day trial I think
[02:42] <kb244> then its 150$ a year per node after that
[02:42] <kb244> I only knew about landscape cuz I keep seeing this when I SSH into my box : Graph this data and manage this system at https://landscape.canonical.com/
[02:42] <twb> kb244: uh, what?
[02:43] <twb> Isn't landscape free software?
[02:43] <kb244> no
[02:43]  * twb loses interest
[02:44] <kb244> It'd be really nice if it was a free service, but no
[02:44] <kb244> I'm confused though
[02:44] <kb244> on their website if you dig a lil "Free 'Landscape' Web-based Systems Management"
[02:45] <kb244> but on the register page you're getting a 60 day free trial
[02:45] <twb> There has been a stub package for it in Ubuntu's package tree for ages
[02:45] <kb244> ahh I think I must have misread it
[02:45] <kb244> "
[02:45] <kb244> Landscape is free of charge to all of Canonical’s support customers. As part of your annual subscription you are allowed unlimited access to this powerful tool that will reduce the cost of ownership in your Linux environment significantly. Landscape is also available by subscription for those who do not require support contracts.  Subscription to the Landscape service is priced at $150 per node per year.
[02:45] <kb244> "
[02:45] <twb> "Description: Placeholder for the Landscape client"
[02:46] <kb244> naw I signed up for the landscape thing, then it told me what apt-get to install and how to register my machine
[02:46] <kb244> and once I did that, it was sending reports to my account and such
[02:46] <twb> Ah, so I guess this is not something I can actually provide to *my* customers; Canonical has full control over the back end.
[02:46] <kb244> however
[02:46] <kb244> "
[02:46] <kb244> To buy Landscape as a stand-alone service please go to www.canonical.com/contact/sales
[02:46] <kb244> "
[02:46] <kb244> you could , but they don't show prices
[02:46] <kb244> just request form
[03:38] <oh_noes> I have the following in a --exec script for vmbuilder, but as you can see it doesnt work.  Anyone have any suggestions?  http://pastebin.com/mf101449
[03:38] <oh_noes> All I'm trying to do is a automated install of java without the license prompt, I fail to see why it cant find apt-get though
[03:57] <a1fa> hello.. i have one of Appro servers. Funny thing is.. When you hookup USB keyboard or PS2 keyboard it does not recognize neither
[03:58] <a1fa> anyone have experience with this brand?
[04:11] <twb> a1fa: that's almost certainly a hardware issue that you need to take up with your hardware vendor.
[04:12] <twb> PS/2 and USB HID drivers are fairly commoditized, so I can't imagine how they could fail as a result of using Ubuntu
[04:17] <a1fa> twb: shouldnt the serer not care about ps2 2 usb adapter
[04:21] <twb> Ah.
[04:22] <twb> PS/2 to USB converters are just plug adapters.  The do not work with keyboards.  They rely on the mouse itself speaking BOTH protocols.
[04:23] <a1fa> so technically if legacy USB is not enabled it will be enabled when system bots?
[04:24] <a1fa> so thats only for mouse
[04:24] <a1fa> wierd
[04:24] <a1fa> it has keyboard pictured
[04:44] <PhotoJim> some older systems need a PS/2 keyboard to boot without error
[04:44] <PhotoJim> USB keyboards are relatively recent
[04:58] <SockPants> hello
[04:58] <SockPants> what's the easiest way to identify and temporarily mount a usb-ide drive (8.04)?
[05:02] <PhotoJim> easiest?  figure out what device name and partitions it has (dmesg | tail after you plug it in will help)... then mount /whateverfolderyoucreatedforit /dev/whateverdeviceyoufound
[05:02] <PhotoJim> so if it's partition 1 on drive sdg, mount /media/externalhd0 /dev/sdg1 for example
[05:04] <SockPants> yeah i can't seem to find which device name it is. i only have sda and thats the harddrive, not the usb drive
[05:05] <PhotoJim> browse through dmesg and see.  it will be there.
[05:05] <SockPants> hmm, theres errors
[05:10] <SockPants> i unplugged it and plugged it in without the hub but nothing has changed in dmesg
[05:13] <SockPants> ah, works now.
[05:13] <SockPants> thanks
[05:13] <SockPants> i didn't know about dmesg :D
[05:17] <oh_noes> how do i change timezone to UTC without user prompt?  dpkg-reconfigure tzdata Etc/UTC still prompts 'chose a tz'
[05:22] <Alysum> hi should I be concerned that an ubuntu server with 1.7GB RAM only has 192MB free ?
[06:21] <oh_noes> Is there a package for open-vm-tools for hardy?
[06:23] <drspin> oh_noes: I had to compile it
[07:37] <owh> I successfully migrated a server from Gutsy to Hardy, now my fstab smbfs mounts fail with "CIFS VFS: cifs_mount failed w/return code = -22" -- any suggestions?
[07:38] <drspin> owh: what kernel are you running
[07:38] <owh> drspin: 2.6.24-23-server
[07:42]  * owh thinks that the smbfs format is different from the cifs format of the fstab line.
[07:43] <drspin> owh: did you try reinstalling smbfs ?
[07:43] <owh> drspin: No, I didn't know it had been uninstalled. All I did was upgrade the server. No documents I saw indicated that it would be removed.
[07:46] <drspin> owh: hmmm - feels like a kernel issue, my original 8.10 kernel crashed when I mounted CIFS. Kernel update fixed it
[07:48] <owh> drspin: Uhm according to apt-cache policy I'm running the most recent kernel.
[07:49] <drspin> owh: I'm on 2.6.11-server
[07:49] <drspin> own: imean, 2.6.27-11-server
[07:50] <owh> Hmm, with Hardy?
[07:50] <drspin> 8.10. intrepid
[07:50]  * owh has no intention of running anything other than LTS on a production server.
[07:50] <drspin> ok
[07:51] <owh> Any Idea on what the error code -22 is?
[07:51] <owh> Or where I can find out?
[07:52] <drspin> did you see this? http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=518113
[07:56] <owh> It seems to indicate that the problem is my ip=mumble stanza. The mumble is defined in /etc/hosts - I wonder if this is changed behaviour. My remote device does not have multiple addresses by the way - not that I know anyway.
[07:57] <owh> Crap, I hate it when working stuff just breaks for fun.
[07:59] <owh> This makes no sense to me. I'm reading reports where I should install smbfs, but isn't cifs the replacement for smbfs and ultimately the new name of the same thing?
[08:01] <owh> Not to mention that it's also already installed.
[08:12] <owh> In case anyone else comes across this. smbfs can use ip=mumble, when mumble is defined in /etc/hosts, but cifs cannot. In addition it appears that smbfs does a fallback on the guest account if the supplied credentials don't work, cifs doesn't.
[08:19] <kraut> moin
[08:27] <reid> I'm trying to set up an ssh server on a ubuntu-desktop install.  connecting from an external network I keep getting :No route to host
[08:27] <reid> can anybody help me?
[08:33] <cemc> reid: do you have ping to the ubuntu-desktop with the ssh on it /
[08:34] <cemc> is ssh server running? 'ps ax |grep ssh', 'netstat -nlp | grep :22'
[08:35] <cemc> do you have some firewall on which would block the ssh ? 'iptables -nxvL INPUT | grep "22\|DROP\|REJECT"'
[08:38] <owh> reid: Can you actually ping the other end?
[08:41] <ikonia> ssh localhost on the server - test it can actually accept connections
[09:07] <twb> If you have the ssh server in front of you, run "tail -n 0 -f /var/log/auth.log", then try to ssh in again
[09:07] <twb> It will either report WHY you can't log in, or print nothing.
[09:07] <ikonia> he's gone
[09:07] <twb> If it prints nothing, then ssh is not seeing your connection, so look at firewalls, routing, ssh -vvv, etc.
[09:07] <twb> ikonia: oh, sorry.
[09:07] <ikonia> no need to apologise
[11:00] <Doble> how can I see what the ACL properties are of a folder/file? when I do "ls -lha" I only get the drwxrwxrwx+
[11:01] <Kamping_Kaiser> Doble, file attributes? lsattr
[11:01] <Kamping_Kaiser> ls -d will list a directory, not its contents btw
[11:04] <Doble> Kamping_Kaiser: thanks, but lsattr isn't doing it for me ... i just get a bunch of dashes, and they are all blank despite the files/directories having ACLs applied
[11:04] <Kamping_Kaiser> Doble, what filesystem is this? how did you change the acls?
[11:05] <Kamping_Kaiser> AnRkey, your giving me quake3 flashbacks
[11:06] <Doble> Kaiser: it is ext3, i followed the "Securing Samba Guide" at https://help.ubuntu.com/8.10/serverguide/C/samba-fileprint-security.html - I used setfacl to change the permissions
[11:08] <Kamping_Kaiser> as i dont 'deal with samba or acls, i can only suggest man setfacl to check for a 'list' option, or look at 'related commands' at the bottom of the man page
[11:09] <Doble> ahhh, I didn't spot that when reading the man page the first time - "getfacl"
[11:09] <Doble> cheers
[11:10] <Doble> tried everything else! showfacl, infofacl, etc :)
[11:11] <Kamping_Kaiser> hehe
[11:11] <Kamping_Kaiser> Doble, no worries
[11:28] <Doble> I dont understand this ... I have a directory set to group 'admin', getfacl lists the owner as admin, and ls -lha lists the group permissions as "d---r-x---+" I am a member of admin, the owner of the file is 'nobody' - why can't I access the folder?
[11:36] <Doble> can anyone help ?
[11:39] <simplexio> Doble: does group have x right to directory
[11:41] <Doble> simplexio: I'm not sure ... do ACLS take precendence over unix permissions? according to unix the group has R and X permissions, but according to ACL's it doesn't ...
[11:41] <Doble> im guessing they must, because I just tried setting the ACL group to RWX and it works
[11:45] <simplexio> far as i know unix and acl permission are totally separated.., so if you set acl file "owner" you need give permission using setfacl
[11:46] <Doble> okay ... i think you're right, is there any way of viewing permissions under windows? I'm trying to make this samba file server as windows-environment-friendly as possible. With windows servers you can open properties and see the users that can access the file, is there any way of doing that with samba?
[11:48] <simplexio> no idea.. i tried to define acls into my linux->linux samba server but it didnt work that good. for somereson it doesnt keep default permission when i copy stuff into dir, etc.
[11:49] <Doble> did you set the default mask?
[11:49] <simplexio> yeah.
[11:49] <Doble> :(
[11:50] <simplexio> its my home fileserver and it has about 1 user, so its not a big problem, tried to learn that stuff too
[11:57] <Doble> Is there any way to see permissions in this fashion when accessing a samba file share from a windows PC? - http://tinyurl.com/c2nq7v
[12:16] <Doble> arghh these permissions are driving me mad !!
[12:20] <Doble> I'm a member of the group 'admin' - the group admin has RWX permissions on the directory acl ... and yet I can open and read, but not write ???
[12:35] <kinnaz|w> when i try to install lokkit. somehow the apt wants to install xorg+gnome, can i force apt not to install deps somehow ?
[12:35] <kinnaz|w> thou lokkit is ncurses based application, so its strange in the first place it requires gnome.
[12:40] <ernstp> is there any way to only download packages for do-release-upgrade?
[12:48] <kinnaz|w> gnome-lokkit - basic interactive firewall configuration tool (GNOME interface)
[12:48] <kinnaz|w> lokkit - basic interactive firewall configuration tool (console interface)
[12:48] <kinnaz|w> why on earth does that "lokkit" depend on gnome
[12:48] <kinnaz|w> apt-get install lokkit, wants to bring me gnome
[12:49] <infinity> Recommends: gnome-lokkit
[12:49] <infinity> apt-get --no-install-recommends install lokkit
[12:49] <kinnaz|w> hmmmz tnx strange
[12:49] <kinnaz|w> i have installed lokkit several times
[12:49] <kinnaz|w> never had to tell him not to install recommends
[12:50] <infinity> Installing recommends by default is a reasonably recent change to apt.
[12:50] <kinnaz|w> okey, thou is it really the smartest thing to recommend that gnome version
[12:50] <infinity> (Reasonably recent to the server crowd, anyway, who are used to not upgrading to new releases very often)
[12:50] <infinity> The recommends should probably be a suggests.  Feel free to file a bug.  *shrug*
[12:51] <infinity> We cleaned up most of the overzealous recommends in main, but universe stuff like lokkit still needs some work.
[13:02] <Doble> I'm having problems with samba ... since I set up ACLs, when I create a user, I go to log in as that user (which usually 'primes' samba to allow that user to connect to file shares) and as I log in as bill, I recieve the message "Failed to add entry for user bill." - so bill can't access any file shares, any ideas ???
[13:12] <SockPants> hi, can anyone tell me if this is a severe problem? its on a server thats hardly in use:
[13:12] <SockPants> Tuesday, April 14, 2009 PM01:02:09 HKT  **WARNING** Address resolution queue is full [4096 slots]
[13:40] <Doble> why do I have to log into the terminal as a new user I created BEFORE they are able to access shares on my samba file server ?
[13:43] <foxbuntu> Doble, not totally sure on this, but I think that samba wont pick them up as a valid user until they have logged in once, unless you manually add them as samba users
[14:52] <jcastro> soren: want to do a virtualization session for openweek?
[14:55] <soren> jcastro: When is it? I'm still catching up on e-mail since... too long ago.
[14:56] <jcastro> week after release: https://wiki.ubuntu.com/UbuntuOpenWeek/Prep
[14:59] <soren> jcastro: I'd like to do several, actually. I need to consider whether I have time for anything at all, though.
[14:59] <jwendell> hi, folks, is there any plan to make ubuntu server homologed to run oracle db?
[15:01] <soren> "homologed"?
[15:01] <jwendell> certified
[15:01] <soren> Ah.
[15:01] <jwendell> as RHEL, Suse...
[15:02] <soren> SuSE is certified for Oracle? I didn't know that.
[15:02] <jcastro> soren: that would be great, can you think hard today? We'd like to get the schedule out and published.
[15:02] <jwendell> soren, yep
[15:02] <jcastro> soren: this is openweek, not developer week so the sessions don't need to be hardcore, intro sessions are fine.
[15:02] <jcastro> eg. you won't need to do much prep
[15:02] <soren> jcastro: "today" being your today? So I have another 7-8 hours?
[15:02] <jcastro> yeah something like that. :)
[15:03] <soren> jcastro: Oh.. Right, ok. The sessions I was thinking about were probably more developer week material.
[15:03] <jcastro> right, save those
[15:03] <jcastro> how about like, an intro to kvm or something?
[15:04] <soren> Let me think about it for a bit.
[15:26] <SockPants> hi all, what's a nice way to make regular backups of an entire system?
[15:26] <SockPants> onto a smb share
[15:27] <giovani> smb? uh
[15:28] <PhotoJim> if you were using an nfs share I'd suggest rsync
[15:28] <giovani> backuppc does smb, I think
[15:28] <PhotoJim> but smb doesn't retain the ownership and permissions of files that LInux filesystems record (not without some work at least)... so that implies using tar
[15:28] <giovani> but it's not really oriented at backing up servers
[15:29] <SockPants> i can live with using tar if its usable for this
[15:29] <PhotoJim> the bad thing about tar is that you'll have to fully backup your files each time
[15:29] <giovani> well tar just combines files ... so it's not really a backup facility
[15:29] <PhotoJim> rsync is smart enough to just backup the differences
[15:29] <friartuck> SockPants looked here? https://help.ubuntu.com/community/BackupYourSystem
[15:30] <PhotoJim> giovani: it's not optimal, but it retains file ownership and modes, which I think is important here.  assuming that SockPants for some reason can't use ext2/ext3/ext4 filesystems for the backup, which would be far better.
[15:30] <giovani> PhotoJim: I wasn't disagreeing with you
[15:30] <PhotoJim> giovani: oh, I know. :)
[15:30] <giovani> I was just informing SockPants that tar was not a "backup solution" the way he probably wants
[15:31] <PhotoJim> That's a good article, friartuck
[15:32] <giovani> indeed
[15:32] <giovani> glad he linked it
[15:33] <PhotoJim> I have my server on RAID1... I don't bother backing up the / and /usr drives (I just copy the hard-to-replicate config files onto an NFS share on another machine, or one could even use floppy).  and I have a third hard disk as my /public and /home partitions, and that drive is on RAID1.  plus, I backup all the data via rsync to an identically-sized drive in an external USB case once a week or so.
[15:34] <SockPants> instead of tar i could even use dd
[15:35] <SockPants> its only a 20gb drive of which a few gigs are used at best, the files are all on a different machine
[15:36] <PhotoJim> dd backs up every byte of the drive, so it's slower
[15:36] <PhotoJim> does work though
[15:36] <PhotoJim> every byte of the partition, technically
[15:36] <PhotoJim> dd would preserve all your filesystem information though
[15:37] <SockPants> i could restore a dd backup using a livecd right?
[15:38] <SockPants> mm, i suppose if i didn't compress the file, even empty space on the drive would take ages to copy over 100mbit/s
[15:39] <giovani> SockPants: you can gzip a dd image
[15:39] <giovani> which should eliminate all of the large blocks of zero data
[15:39] <giovani> in fact, you can stream a gziped dd image (while it's being taken) if you don't have enough space locally
[15:39] <giovani> I do it all the time
[15:39] <PhotoJim> SockPants: why don't you just get another hard disk and a USB case, and dedicate that drive to backups?  much easier.  you can use native Linux filesystems, and no other systems can affect your data.
[15:39] <giovani> with netcat
[15:40] <friartuck> SockPants if you were going that far, maybe look at partimage on http://partedmagic.com .
[15:40] <giovani> PhotoJim: dd does entire drives, or partitions ... user's choice
[15:41] <giovani> it's the best way to have an identical copy of everything
[15:41] <giovani> and it's faster than a filesystem-level backup, if you're going to backup everything
[15:41] <SockPants> can't i just dd the disk onto a smbfs mount and be done with that, even if it copies all the 0-blocks
[15:41] <giovani> SockPants: yes ... pipe dd through gzip
[15:41] <giovani> and the zero blocks are a non-issue
[15:42] <MTecknology> How do I setup my system so when a user changes their password the samba password for that account will update too?
[15:42] <PhotoJim> giovani: oh, yeah, that's true.  I always think of it as a partition-level command.
[15:42] <SockPants> that, or i could just leave it, because the filesystem is compressed anyway. it would just take time to copy all the 0-data to the other machine before it gets compressed
[15:42] <giovani> SockPants: the filesystem is compressed?
[15:43] <SockPants> yeah on the remote machine
[15:43] <giovani> uh, ok
[15:43] <giovani> well, you're still wasting time/bw moving the zero blocks over the network
[15:44] <SockPants> hmm
[15:44] <SockPants> but i'm saving the server processing time by not compressing it locally
[15:44] <giovani> and I don't know how your filesystem is compressing itself
[15:44] <SockPants> how much would that be?
[15:44] <giovani> hard to say
[15:44] <giovani> try it out
[15:45] <giovani> you can dd and gzip it in one command, right to the smb mount point
[15:45] <giovani> so it doesn't take up space locally
[15:45] <SockPants> copying the entire disk would copy swap space as well, right? would that cause any problems with dd?
[15:45] <giovani> no ...
[15:45] <SockPants> ok
[15:45] <giovani> dd only knows about hard drive blocks
[15:45] <giovani> it doesn't care what the data is
[15:45] <giovani> it doesn't know what the data is either
[15:45] <SockPants> so i'd just dd if=/dev/sda > /mnt/backups/backup1.bin or something
[15:46] <giovani> the advantage of dd is that if the server dies, you can literally restore the ENTIRE thing, in one step
[15:46] <SockPants> yeah
[15:46] <giovani> no reinstalling the OS and manually moving back configs, etc
[15:46] <giovani> no
[15:46] <giovani> dd if=/dev/sda of=/mnt/backups/backup1.img or whatever
[15:46] <giovani> however, I'd pipe it through gzip
[15:47] <SockPants> is there a fast setting for gzip that won't compress as much but still get rid of the 0-data
[15:47] <giovani> probably
[15:47] <giovani> read the manpage
[15:47] <SockPants> yeah, gzip --fast
[15:47] <giovani> or just try it out
[15:47] <SockPants> :D
[15:47] <giovani> you never know what the load will be
[15:48] <SockPants> i'll start now
[15:48] <SockPants> then lastly
[15:48] <SockPants> is there a way i could add something to the command to make it add a time/date to the filename?
[15:49] <giovani> use bash command substitution
[15:52] <PhotoJim> SockPants: yeah, copying swap space is of no benefit, but nor is it harmful
[15:53] <PhotoJim> SockPants: technically a gig of my terabyte data drive array is swap, but I don't care.  it's not significant enough space to treat it separately.
[15:53] <PhotoJim> gzip is pretty efficient, even on slower machines I find.
[15:54] <PhotoJim> 7zip has much better compression, but it will bring a slower machine to its knees.  works best on machines with multiple CPUs or multiple cores.
[16:04] <SockPants> ive got this now
[16:04] <SockPants> screen sudo dd if=/dev/sda | gzip --fast > /mnt/backup/ubuntu/dev-sda_on`date +%a%d%b%y-%s`.dd
[16:05] <SockPants> it creates the file, but outputs a lot of garbage to the screen and the file doesnt grow
[16:05] <giovani> why are you screening it?
[16:05] <SockPants> past 20 bytes
[16:05] <yann2> uh. interesting backup procedure :)
[16:05] <SockPants> because i want to do other stuff at the same time :P
[16:05] <giovani> uh ... it's called BACKGROUNDING
[16:05] <giovani> do not use screen for this
[16:06] <SockPants> how do i do this
[16:06] <SockPants> i always use screen =)
[16:06] <giovani> well that's a bad habit
[16:06] <giovani> break it now
[16:06] <giovani> and I said to pipe it to gzip
[16:07] <SockPants> i did.., what did i do wrong
[16:08] <giovani> uh, sorry, you are
[16:08] <giovani> so what's being outputted to the screen?
[16:08] <giovani> try running the command without prepending screen
[16:08] <SockPants> a constant stream of stuff
[16:08] <giovani> it should work fine
[16:08] <giovani> I just verified the command, it works perfectly
[16:09] <SockPants> ok, it works, but now it waits until it finishes
[16:09] <SockPants> how do i background it
[16:09] <giovani> learn bash :)
[16:09] <giovani> (add " &" onto the end
[16:09] <giovani> i.e sudo dd if=/dev/sda | gzip --fast > dev-sda_on`date +%a%d%b%y-%s`.dd &
[16:09] <SockPants> hehe yeah i will :) and thanks
[16:10] <giovani> it'll print the PID
[16:10] <SockPants> 2.0 gb copied in that short time
[16:10] <SockPants> it says
[16:10] <giovani> yep ...
[16:10] <SockPants> interesting
[16:10] <SockPants> that's faster than my network connection
[16:10] <giovani> heh
[16:10] <SockPants> how can i see how much harddisk space is actually in use
[16:10] <giovani> 2GB from DD
[16:10] <giovani> is not 2GB over the wire
[16:10] <giovani> because of gzip
[16:10] <giovani> df -h
[16:11] <giovani> to see disk space
[16:11] <SockPants> but if dd processes 2gb but gzip doesn't yet then where does it go
[16:11] <giovani> huh?
[16:11] <giovani> gzip and dd are stream-processing
[16:12] <giovani> meaning dd is outputting data to gzip all the time, not all at once
[16:12] <giovani> and gzip is live-compressing it
[16:12] <giovani> so DD read in, and read out 2GB off the HD, and gzip compressed it to ... whatever -- check the file size
[16:15] <SockPants> ok
[16:15] <SockPants> great!
[16:16] <PhotoJim> I use screen for that sort of stuff, so I can monitor it.  worse performance than backgrounding?
[16:16] <SockPants> now, "0 2 * * 1 <command>" in crontab will run this every monday at 2 a.m. right?
[16:17] <giovani> PhotoJim: screen won't let you monitor it any better than backgrounding will
[16:18] <SockPants> how do you access a backgrounded operation's output?
[16:18] <PhotoJim> giovani: how can you monitor a backgrounding task?  I & tasks sometimes, but I am really a bit of a n00b at it.
[16:19] <giovani> PhotoJim: depends on what you mean by "monitor"
[16:19] <giovani> in dd's case, you can send a SIGUSR1 signal to the process to have it dump it's info so far to the console you started it on
[16:20] <PhotoJim> giovani: ok, that's something I didn't know you could do.
[16:20] <giovani> that's dd-specific
[16:21] <PhotoJim> so what's the logic that using screen is inferior practice?
[16:21] <giovani> it has zero function ... that's why
[16:21] <giovani> it complicates something that doesn't need to be
[16:21] <giovani> screen is useful for other things
[16:21] <giovani> but not this
[16:21] <RichardP> Hi, I have a little problem installing the 8.04 LTS server version - its stuck on 'Installed MySQL-Server' at 85%, been there for the past 30 minutes
[16:23] <SockPants> giovani: 'it's info so far' being bytes transfered?
[16:23] <giovani> SockPants: yes
[16:23] <SockPants> how do i do this?
[16:23] <RichardP> SockPants: hey
[16:23] <SockPants> hi RichardP
[16:23] <giovani> SockPants: "ps aux | grep dd" -- find the dd process' PID
[16:23] <giovani> then "sudo kill -SIGUSR1 DDPU
[16:23] <SockPants> i have the pid
[16:23] <giovani> DDPIDHERE
[16:24] <giovani> that wasn't the PID that it printed when you backgrounded it, I was incorrect
[16:24] <SockPants> oh
[16:24] <giovani> you can bring apps out of background (althrough with DD that has no function) with %X where X is the job ID -- which you can find by running jobs
[16:28] <SockPants> after i do the kill command it keeps waiting, can i just control c without hurting dd?
[16:28] <giovani> is the process in the background?
[16:29] <genii> Doesn't sound like it
[16:29] <SockPants> it should be
[16:29] <SockPants> it was
[16:29] <PhotoJim> giovani: yeah, I guess I agree, once you know what you're doing and that the task works as expected.
[16:29] <giovani> SockPants: ps aux | grep dd
[16:29] <SockPants> then i did sudo kill -SIGUSR1 pid
[16:30] <giovani> PhotoJim: there's zero advantage to using screen with dd -- it has nothing to do with the app functioning as expected
[16:30] <giovani> SockPants: pastebin the output of the ps command I just gave you
[16:30] <ScottK-laptop> ivoks: Here so as not to futher disturb the meeting ...
[16:30] <ScottK-laptop> ivoks: What RFC?  I generally consider backscatter bad and bounces to any non-authenticated address to be avoided.
[16:30] <PhotoJim> giovani: yeah, no output I suppose except the benchmarks at the end.
[16:31] <giovani> PhotoJim: you'll get that with a backgrounded app too, if you want it
[16:31] <SockPants> http://pastebay.com/8266
[16:31] <SockPants> to get out of the 'kill' command i had to control-c
[16:31] <PhotoJim> giovani: I just have to learn more about backgrounding, evidently.
[16:32] <ivoks> ScottK-laptop: http://www.faqs.org/rfcs/rfc3834.html iirc
[16:32] <giovani> SockPants: did you try just pressing enter?
[16:33] <SockPants> no :P
[16:33] <giovani> it's not 'taking over the terminal' it just printed it, you can theoretically just type a command right there, without hitting enter
[16:33] <SockPants> that works too =)
[16:34] <SockPants> im impressed with the speed, and the file only takes up about 180 mB in the end even though it also copies swap
[16:34] <ivoks> ScottK-laptop: anyway, if message is not delivered, sender should know that
[16:34] <giovani> SockPants: how big is the drive?
[16:34] <SockPants> then again, only 212 bytes of swap is used
[16:34] <ivoks> ScottK-laptop: unless message is not delivered cause of non-existing user or bad communication from sender
[16:34] <SockPants> 120 GB
[16:35] <giovani> how much of it is used?
[16:35] <ScottK-laptop> ivoks: There's no guarantee of any relation between mail from and the actual sender.
[16:35] <SockPants> 1.0GB
[16:35] <ivoks> ScottK-laptop: i agree, but that's SMTP - it's broken
[16:35] <ScottK-laptop> In fact in virtually all cases where you bounce due to bad content it's forged.
[16:35] <giovani> 1GB of 120GB is used?
[16:35] <SockPants> yes
[16:35] <ivoks> ScottK-laptop: i allways change that, but this is something one shouldn't do :/
[16:35] <ScottK-laptop> ivoks: Which causes me to say don't backscatter no matter what.
[16:36] <ivoks> ScottK-laptop: it's up to you; it would be one less configruation hassle for me, but it might not be correct thing to do :/
[16:36] <giovani> SockPants: and it finished already?
[16:37] <SockPants> it has finished once, i'm restarting it just to test
[16:37] <RichardP> when you install 8.04 LTS and get the disk partitioning option, what exactly does 'Guided - entire disk with LVM' mean?  does it mean I get one partition for / taking the entire disk, under LVM?
[16:37] <SockPants> i could time it i think i'll do that
[16:37] <SockPants> do i just add 'time' to the command?
[16:37] <giovani> uh ... sure, except then you don't want to background it
[16:37] <giovani> to ensure you see the time when it's done
[16:37] <giovani> (just for the test)
[16:38] <ScottK-laptop> ivoks: From your RFC "A responder MAY refuse to send a response to a subject message which contains any header or content which makes it appear to the responder that a response would not be appropriate."  I think not resoponding to bad content is RFC legit.
[16:39] <SockPants> ah right
[16:39] <SockPants> so i'll screen it ;)
[16:39] <SockPants> oh, but that did'nt work out well
[16:39] <SockPants> nvm i wont screen it i'll just open anothe ssh to do other stuff
[16:40] <ivoks> ScottK-laptop: ok, then change it :)
[16:40] <ScottK-laptop> ivoks: Assuming I want to change it, do you agree that's the correct change?
[16:41] <SockPants> giovani: its being pretty sluggish when its running, gzip is using 20% cpu so it must be the harddrive then?
[16:42] <SockPants> meanwhile, how do i run a commmand at startup? i can background all these processes now but they'll all die if the power goes out some time
[16:42] <ivoks> ScottK-laptop: yes
[16:42] <ScottK-laptop> ivoks: Thanks.
[16:42] <ivoks> ScottK-laptop: but we will probably get some flame mails about this :)
[16:42] <ivoks> ScottK-laptop: but i'm willing to put up the fight
[16:43] <giovani> SockPants: sure ... it's maxing out the HD ... run "vmstat 5 5" while it's running (in another terminal), or if it's backgrounded, in the same terminal
[16:43] <giovani> or run iostat
[16:45] <ScottK-laptop> ivoks: OK.  I think no backscatter is a clear best practice these days.  People who don't like it are welcome to change their config locally.
[16:45] <ivoks> correct
[16:46] <SockPants> procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa 1  1    212   5628 193652  22296    0    0   155    15  102  366  2  4 88  5
[16:46] <SockPants> blah, formatting
[16:52] <SockPants> can i do nested command substitution?
[16:57] <SockPants> giovani: nevermind, it can't have finished. dd is at 18 GB now, after about 15 minutes. so another 75 minutes or so before it finishes, but i'll leave it running
[17:04] <SockPants> giovani: thanks for all the help, i'm out for tonight :) i just checked it out, the file is 499MB in size (522895360 bytes) but it only takes up 416MB on the server (zfs compresses it further). nice way to get the best of both worlds :)
[17:05] <SockPants> its not done yet though
[17:13] <mathiaz> soren: wrt to bug 360825 - I think this is a regression
[17:14] <mathiaz> soren: it used to work with a previous revision of kvm 84
[17:18] <soren> I respectfully disagree.
[17:18] <soren> :)
[17:26] <giovani> SockPants: yeah, I wouldn't believe that gzip --fast would compress 1GB into 100-something MB
[17:46] <mathiaz> soren: disagree? why - it was working before, now it's not anymore. Isn't that a regression?
[17:46] <soren> i don't believe that it worked in a previous revision of kvm 84.
[17:47] <mathiaz> soren: well - it worked. I was able to sucessfully install a guest on a raid5 array.
[17:47] <mathiaz> soren: that involves defining 3 block devices in libvirt.
[17:47] <soren> Then you've switched to virtio in the mean time.
[17:48] <soren> This is a virtio problem only.
[17:48] <soren> virtio devices get added to an array based on command line options.
[17:48] <soren> When they get added to the virtual hardware, it's done by iterating through this array until an undefined index is found.
[17:49] <mathiaz> soren: ah ok. Let me check if I was using virtio for my raid5 test install.
[17:54] <mathiaz> soren: hm - I can't tell for sure. However it seems that I conducted the jaunty beta raid5 test case with virtio devices.
[17:54] <soren> mathiaz: And all that changed in between is the kvm-84 revision?
[17:58] <mathiaz> soren: well - jaunty beta raid5 was tested with kvm84 ppa3
[17:58] <mathiaz> soren: while jaunty rc raid5 was tested with kvm84 ppa5
[17:58] <soren> No libvirt changes in between?
[18:00] <mathiaz> soren: libvirt was also upgraded - 0.4.0-2ubuntu8.1 to 0.4.0-2ubuntu9~ppa1
[18:02] <mathiaz> soren: I think I should conduct more testing to make sure it was working before. I'm not 100% sure that I was already using virtio devices when running jaunty beta raid5 test installs.
[18:02] <soren> Do you still have logs or something?
[18:03] <soren> Either /var/log/libvirt/qemu/* logs or syslog from the guest or something?
[18:05] <mathiaz> soren: well the libvirt/qemu/ logs are overwritten
[18:05] <soren> Ah.
[18:05] <mathiaz> soren: whenever you start a guest with the same name
[18:05] <soren> Right.
[18:05] <mathiaz> soren: however I may be able to find the relevant log in my backups
[18:06] <beniwtv> hi al... I've installed bind9 and followed the server guide to make a caching name server, but I get query denied in the logs when I try to query the dns from a machine other than the DNS. Any ideas?
[18:12] <PhotoJim> beniwtv: if you're still stuck in an hour I can try to help you out.
[18:13] <beniwtv> PhotoJim: thanks, but I have just been called to a meeting :/ Will continue tomorrow
[18:20] <kirkland> mathiaz: i keep getting the following, trying to install to a raid 1 http://people.ubuntu.com/~kirkland/Screenshot-QEMU.png
[18:21] <mathiaz> kirkland: hm - never seen that before.
[18:24] <mathiaz> kirkland: http://people.ubuntu.com/~mathiaz/raid1.preseed
[18:24] <mathiaz> kirkland: this is my raid1.preseed file
[18:24] <mathiaz> kirkland: d-i partman-auto/expert_recipe string       multiraid ::<PHONE_NUMBER>000000 raid $primary{ } method{ raid } .       64 256 200% raid $primary{ } method{ raid } .
[18:28] <kirkland> mathiaz: in your raid testing, what iso are you using?
[18:28] <kirkland> mathiaz: amd64 or i386?
[18:28] <kirkland> mathiaz: today's server iso?
[18:28] <mathiaz> kirkland: both arch, yesterday's isos.
[18:29] <kirkland> mathiaz: have you ever seen the segfault that soren is reporting?
[18:29] <mathiaz> kirkland: nope
[18:29] <mathiaz> kirkland: I haven't seen any segfault on my system.
[18:29] <mathiaz> kirkland: all my test installs were successful.
[18:57] <mario_> Hi, how can I copy a logical volume between two servers connected with ethernet?
[18:58] <jmedina> mario_: what you mean?
[18:58] <jmedina> move data?
[18:58] <jmedina> or move whole LV to another VG?
[18:58] <mario_> a whole LV to another VG
[18:58] <mario_> but
[18:58] <mario_> the VG is on another server
[18:59] <jmedina> I not sure, but, unless you export the bock device where VG is runnning you can't migrate with LVM tools
[19:00] <jmedina> but you can use lvm snapshots and dd/rsync
[19:00] <mario_> ok thank you
[19:02] <jmedina> probably someone else have another solution
[19:06] <mario_> jmedina, excuse me for asking you another question but, can you suggest a manual about lvm that explains advanced features like snapshot and autobackup?
[19:06] <jmedina> mario_: I live official howto
[19:07] <jmedina> mario_: this redhat document also have very good documentation
[19:07] <jmedina> http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Cluster_Logical_Volume_Manager/index.html
[19:07] <jmedina> no
[19:07] <jmedina> sorry
[19:08] <jmedina> the topic says cluster, but most of info is for normal lvm
[19:08] <mario_> jmedia, thank you again
[19:12] <jmedina> you are celcom
[19:12] <jmedina> welcome
[19:36] <cellofellow> Dunno if I'm in over my head or not, cause I've never configured these apps before, but I'm trying to set up a community/networking server with Wordpress, phpBB3, and MoinMoin (most likely), and would like to have single-signon of some kind using LDAP. Also would like the LDAP to operate as a PGP Keyserver. Can I do this?
[19:38] <cellofellow> I was originally gonna use SKS for PGP but when I found out that LDAP is a way to run keyservers I figured I'd scrap that.
[19:50] <cellofellow> (why is all the info I can find on LDAP meant for old (pre RHEL/Fedora split) versions of Red Hat?
[19:51] <jmedina> cellofellow: because you haven't read official documentation
[19:51] <cellofellow> ok, looking there
[19:51] <jmedina> for example openlda administration guide
[19:51] <jmedina> *openldap
[19:51] <jmedina> it is current documentation
[19:51] <jmedina> Fedora Directory also has official documentation from redhat
[19:52] <cellofellow> well, thanks
[19:53] <jmedina> cellofellow: what you want to know about LDAP?
[19:53] <jmedina> cellofellow: I bought a good book from Packet Publishing
[19:54] <jmedina> http://www.packtpub.com/OpenLDAP-Developers-Server-Open-Source-Linux/book
[19:54] <jmedina> all you want to about ldap and openldap
[19:54] <jmedina> Mastering OpenLDAP: Configuring, Securing and Integrating Directory Services
[19:54] <mathiaz> soren: ok - I've managed to boot a guest with 3 virtio devices with kvm 62 and libvirt 0.4.0-2ubuntu8.1
[19:54] <jmedina> that is the topic
[19:55] <mathiaz> soren: the guest sees three virtio devics (vda, vdb and vdc)
[19:56] <soren> mathiaz: That's kind of funny, really.
[19:58] <soren> mathiaz: The change in the ~ppa1 version is changing from the patch I wrote that upstream ended up rejecting and reimplementing to what they put in.. So the patch I wrote apparantly works, while the one they decided to put in doesn't :)
[20:03] <mathiaz> soren: I've updated bug 360825
[20:04]  * soren looks
[20:05] <mathiaz> soren: it seems that the old version of libvirt doesn't use the index option on the kvm command line
[20:05] <soren> mathiaz: Ah, right.
[20:05] <soren> That's right.
[20:05] <mathiaz> soren: that would explain why it was working.
[20:05] <soren> What I did instead was to sort the list of the disks so that they were simply passed in the correct order isntead.
[20:05] <soren> That explains.
[20:06] <cellofellow> jmedina➜ thanks, I'll check that out. First I just want to know the basics, then I'll mess with getting those apps to work with it.
[20:06] <mathiaz> soren: kirkland: so what should we do with bug 360825?
[20:07] <mathiaz> is is a regression?
[20:07] <mathiaz> is it a regression?
[20:07] <soren> mathiaz: Since hardy, yes.
[20:07] <soren> Since Intrepid, no.
[20:07] <mathiaz> soren: OTOH virtio block devices weren't officially support in hardy
[20:08] <mathiaz> soren: intrepid was already broken?
[20:08] <soren> mathiaz: I would expect so, yes.
[20:08] <soren> The patch landed in 0.4.1.
[20:09] <mathiaz> soren: ok - so this is not high/critical for jaunty.
[20:09] <kirkland> mathiaz: i would say not critical, since there is a workaround
[20:09] <kirkland> mathiaz: should be fixed, though, since soren triaged the file and line where the bug is
[20:10] <mathiaz> kirkland: agreed.
[20:10] <mathiaz> kirkland: I don't see the workaround though.
[20:10] <mathiaz> kirkland: IMO it should be fixed if we plan to release a backport of kvm to hardy.
[20:11] <soren> mathiaz: It doesn't have anything to do with kvm.
[20:11] <soren> Well...
[20:11] <soren> It doesn't have anything to do with the version of kvm. It's libvirt that's causing it.
[20:11] <mathiaz> soren: well - it's an interaction between kvm and libvirt.
[20:11] <soren> mathiaz: ...which didn't change between kvm 62 and 84.
[20:11] <mathiaz> soren: agreed. anyway it's not important for jaunty.
[20:25] <soren> It's a simple patch to work around it, though.
[20:26] <soren> mathiaz, kirkland: I can toss you a simple patch that should fix it, but if I were to fix it properly, I'd use a linked list instead of a static array or something.
[20:27] <mathiaz> soren: right - we should revisit that once jaunty is released;
[20:28] <kirkland> mathiaz: soren: if it's a simple patch with minimal chances of regression, i think it could make jaunty
[20:28] <soren> kirkland: Hang on, I'll pastebin.
[20:29] <kirkland> soren: i'll check it out when i'm back
[20:31] <soren> http://pastebin.ubuntu.com/151006/
[20:31] <soren> It's completely and utterly untested. I haven't even checked if it compiles.
[20:32] <soren> And the indentation is clearly screwed.
[20:33] <soren> But the general idea is there: Don't stop at the first hole in the virtio indexing, but keep going. It might increase vm startup time a few milliseconds.
[20:33] <soren> So meh.
[20:33] <soren> kirkland: Do with it as you please.
[21:38] <kochan> hi guys I have a strange problem
[21:38] <kochan> i've just installed ubuntu server 9.04 x86
[21:38] <Actium_> go ahead
[21:39] <kochan> and rails stack (apache, passenger, ruby, gems etc)
[21:39] <kochan> and sudo gem .. doesn't work
[21:39] <Actium_> sorry, but i've never used ruby on rails b4, so my help might be very limited.
[21:39] <kochan> but gem ... works
[21:40] <Actium_> any error messages?
[21:40] <kochan> command not found
[21:40] <kochan> i think there is a problem with path for sudo
[21:41] <Actium_> try "sudo -- echo $PATH" and "echo $PATH"
[21:41] <Actium_> and compare it with the result of "whereis gem"
[21:42] <kochan> strange
[21:42] <kochan> both outputs are exactly the same
[21:43] <kochan> and "ruby -v" works and "sudo ruby -v" doesn't :|
[21:44] <Actium_> what's the result of whereis? any unusual install dir?
[21:44] <Actium_> got any details? works and works not make debugging very difficult, you know.
[21:45] <kochan> sorry, for that
[21:45] <Actium_> no need to apologize
[21:45] <kochan> "ruby -v" gives me version of ruby, and "sudo ruby -v" gives me command not found
[21:46] <kochan> both "whereis ruby" and "sudo whereis ruby" gives me "ruby: /usr/lib/ruby /opt/ruby/bin/ruby /opt/ruby-enterprise-1.8.6-20090201/bin/ruby"
[21:48] <Actium_> try specifying a full path, when invoking ruby.
[21:48] <Vog-work> word of advice to anyone out there using dspam or rabl.nuclearelephant.com in you spam filters.... you might want to remove is since it just blacklisted a large portion of the internet.
[21:49] <Actium_> just like google did the other day? ;)
[21:50] <kochan> " sudo /opt/ruby/bin/ruby -v"  works, i mean it gives me a ruby version
[21:50] <kees> ivoks: heh, I like how you didn't link to the article.  :)
[21:51] <ivoks> :)
[21:51] <ivoks> it was a mistake
[21:51] <ivoks> but then i figured that it's better to show author's references, twice :)
[21:51] <kochan> is there a way to set path to work without  full path?
[21:52] <Actium_> i'd still like to know what makes the difference between with sudo and without sudo invocation when in both cases the $PATH is the same
[21:54] <Actium_> you could just add "/opt/ruby/bin" to your $PATH, that should do the job. however i do not like workarounds that much.
[21:56] <kochan> check this out: "ruby -v" - works, "sudo ruby -v" - command not found, "sudo su" and then "ruby -v" works also :|
[21:58] <Actium_> im outta clues right now
[21:58] <oruwork> ivoks, !
[22:00] <ivoks> sudo -i - takes root's environment
[22:00] <ivoks> sudo - takes user's environment
[22:00] <ivoks> echo $PATH
[22:00] <ivoks> sudo echo $PATH
[22:02] <andol> ivoks: Regarding su and /bin/false accounts. Actually, that's no problem if you feed su with the -s option. (in reply to ubuntu-server@)
[22:03] <ivoks> andol: but, in the end, what do we gain if we set /bin/false as shell?
[22:03] <kochan> http://pastie.textmate.org/private/yl7diifcavgkab9cxb1yw
[22:04] <andol> ivoks: Not much. That's why I didn't write the reply on the mailing list. Just thought I'd provide the info as a tip for some future situation.
[22:05] <ivoks> kochan: why do you have three /opt/ruby/bin?
[22:05] <ivoks> andol: right...
[22:06] <kochan> good question...
[22:21] <kochan> i've got rid of dupicates http://pastie.textmate.org/private/6xcj5og74vers07hkzcsow
[22:24] <kochan> any ideas guys?
[23:19] <mathiaz> soren: If I install libvirt-bin on jaunty, is there anything else I should do to get the default network up and running?
[23:20] <soren> mathiaz: It ought to just be there.
[23:20] <mathiaz> soren: hm - it's not.
[23:20] <mathiaz> soren: I only see eth0 and lo.
[23:20] <mathiaz> soren: where can I see the log for libvirtd?
[23:21] <soren> It doesn't have one, I think.
[23:21] <soren> virsh net-list?
[23:22] <mathiaz> soren: http://paste.ubuntu.com/151083/
[23:23] <mathiaz> soren: http://paste.ubuntu.com/151084/
[23:23] <soren> o_O
[23:23] <soren> Err.. Oddness.
[23:24] <soren> I need to get some sleep. I'll look at it tomorrow.
[23:25] <mathiaz> soren: bug 350780
[23:26] <Sergii> Is it possible to set up transparent Active Directory authentication on Apache server on Ubuntu? The idea is that I want internal users to open a web page, and have them authenticated with user name they logged in with without having them enter their login and password again.
[23:31] <foxbuntu> Sergii, I think this is what you are looking for: http://www.onlamp.com/pub/a/onlamp/2003/09/11/kerberos.html?page=2
[23:32] <Sergii> Foxbuntu, I'll take a look. Thanks
[23:32] <jmedina> Sergii: look at port25 microsoft site
[23:32] <jmedina> they have a good document about SSO using active directory and kerberos auth
[23:35] <Sergii> Will do! Thanks.


[00:04] <davecheney> thumper: I think you need to repropose https://codereview.appspot.com/8701043/
[00:04] <davecheney> it talks about a StringSet type
[00:04] <thumper> ok...
[00:04] <davecheney> but one does not exist in trunk
[00:04]  * thumper proposes
[00:04] <bigjools> I had no idea you loved me
[00:04] <thumper> I also tweaked a few bits in the stringset file, to remove some ", _" bits
[00:05] <thumper> when iterating over the dict
[00:05] <thumper> bigjools: I do love you, but you are married already
[00:05] <bigjools> and I have baggage
[00:07] <davecheney> pick me pick me
[00:07] <davecheney> i only have carry on
[00:07] <thumper> davecheney: updated
[00:22] <davecheney> thumper: responded
[00:22] <davecheney> very nice
[00:22] <davecheney> just a few thigns
[00:22] <thumper> ta
[00:22] <thumper> I'll look after I've made some lunch :)
[00:22] <thumper> thinking bacon, cheese and egg toasty
[00:23] <davecheney> kk
[00:27] <davecheney> m_3: ping
[00:43] <thumper> davecheney: it isn't possible to provide an interface for a structure that'll support iterating using range is there?
[00:44] <davecheney> thumper: no sadly not, user types cannot implement whatever range wants
[00:44] <thumper> :(
[00:56] <thumper> davecheney: by using NewStrings in the union, intersection, difference methods, means we can directly poke the implementation map knowing that it has been initialized
[00:56] <thumper> davecheney: otherwise we'd need to use the Add function that has the check every time
[00:57] <davecheney> thumper: fair enough, ignore that comment
[00:57] <thumper> ok
[00:57]  * thumper continues...
[03:27] <thumper> davecheney: does the juju team have a pgp key-pair for signing packages?
[03:27] <thumper> davecheney: I'm thinking about the tool signing process
[03:27] <thumper> davecheney: for uploading tools, and for verification
[03:27] <thumper> I'm messing around with go.crypto trying to see how it works
[03:27] <thumper> in particular, how we could verify keys
[03:58] <davecheney> thumper: ~juju does not have keys, to the best of my knowledge
[03:58] <thumper> davecheney: I've just created a 4096 bit RSA gpg key here for juju-dev
[03:58] <thumper> davecheney: for my experimentation
[03:58] <thumper> perhaps we could use that...
[03:58] <thumper> if this works
[04:02] <davecheney> sure
[04:02] <davecheney> it's just entropy
[04:02] <thumper> davecheney: I'm now getting go people following me on twitter...
[04:02] <davecheney> this is a bad thing ?
[04:05] <thumper> not necessarily
[04:05] <thumper> maybe if I tweet enough, we'll get generics :)
[04:05] <thumper> perhaps it is time for me to write my inaugral go blog post
[04:06] <davecheney> gotta do it once a year, just like changing your jocks
[04:06] <thumper> :)
[04:08]  * thumper is looking for examples of someone actually using go.crypto/openpgp
[04:13] <davecheney> jamespage_: ping
[04:14] <davecheney> mramm said that you had mongo for quantal available
[04:14] <davecheney> can you hook me up ?
[04:15] <jamespage> davecheney, I've requested the backports for 12.04 and 12.10
[04:15] <jamespage> ppa:james-page/mongodb2.2 contains backports for 12.04 and 12.10
[04:15] <davecheney> jamespage: fantastic
[04:15] <jamespage> suggest that those packages are copied to some sort of official PPA until the packages land in backports
[04:16] <davecheney> ok, checking it out
[04:16] <davecheney> we have ~juju/experimental as the PPA which is injected into cloudinit for P and Q machines when they are bootstrapped
[04:34]  * thumper off to take the kids ice-skating...
[04:34] <thumper> davecheney: just in case you know people working on go.crypto : http://stackoverflow.com/questions/16007695/verifying-a-signature-using-go-crypto-openpgp
[05:08] <davecheney> jamespage: https://launchpad.net/~juju/+archive/experimental/+packages
[05:08] <davecheney> is it possible to bump the build version for quantal ?
[05:08] <davecheney> I need a 0ubuntu2
[05:08] <davecheney> unless it is possible to delete from a PPA (which I assume is not possible)
[05:56] <jam> wallyworld_: welcome back, I see you escaped the lions, but did you do so all in one piece? :)
[05:57] <wallyworld_> jam: thanks. yes, all in one piece. they are quite placid, unless you are a zebra wtc
[05:59] <wallyworld_> jam: bloody brilliant. i apt-upgraded this morning and now it appears no usb devices can be seen :-(
[05:59] <jam> wallyworld_: is your keyboard and mouse PS2 then?
[05:59] <jam> that is pretty awful
[05:59] <wallyworld_> jam: no, i'm referring to my headphones, and also checked with a memory stick
[05:59] <wallyworld_> just now, preparing for meeting
[05:59] <jam> sure
[06:00] <wallyworld_> let me reboot. works for windows :-(
[06:00] <jam> try another port perhaps?
[06:00] <jam> :)
[06:00] <wallyworld_> done that
[06:05] <jam> wallyworld_: saw you for a moment there
[06:05] <wallyworld_> yeah, usual mumble shittiness
[06:05] <wallyworld_> still trying to make it happy
[06:06] <jam> wallyworld_: I'm fine doing google chat for our 1:1's if it works better for you. It is just the standup where we can't all get along.
[06:06] <wallyworld_> i'll try once more
[06:20] <mramm> davecheney, thumper: hi
[06:20] <davecheney> mramm: could you please expand on your prevoius reply
[06:20] <davecheney> should I stop or continue ?
[06:20] <mramm> keep working on what you are working on
[06:20] <davecheney> mramm: understood
[06:21]  * davecheney goes back to compiling
[06:21] <mramm> I'm saying that they will be working on whatever needs working on to get stuff into the release
[06:22] <davecheney> understood
[06:36] <wallyworld_> jam: mumble died, sec
[06:36] <jam> wallyworld_: I heard you for a second
[06:36] <jam> but apparently you don't hear me
[06:51] <rogpeppe> mornin' all
[06:51] <rogpeppe> fwereade_: pin
[06:51] <rogpeppe> g
[06:51] <fwereade_> rogpeppe, heyhey
[06:51] <rogpeppe> fwereade_: fancy a chat?
[06:52] <fwereade_> rogpeppe, sure, would you start one please?
[06:52] <rogpeppe> fwereade_: https://plus.google.com/hangouts/_/a978de2c1b769c0250011c76024919656376b1f8?authuser=0&hl=en-GB
[07:41] <aero1> Hi all! I've been working on https://github.com/AeroNotix/hpcloud before learning about juju. Would my help be worthwhile in juju itself or do we follow different goals?
[07:41] <aero1> HPCloud has some extensions to OpenStack such as RDMS etc, I have bindings to those.
[08:06] <jam> aero1: do you mean 'hpcloud' vs "goose' (the openstack bindings?)
[08:06] <aero1> sure
[08:06] <jam> juju is more about being able to deploy ubuntu packages into the cloud.
[08:06] <aero1> oh ok
[08:06] <davecheney> Uploading mongodb-clients_2.2.4-0ubuntu2_amd64.deb: 2645k/19783k
[08:06] <aero1> so, goose.
[08:06] <davecheney> Uploading mongodb-clients_2.2.4-0ubuntu2_amd64.deb: 2645k/19783k
[08:06] <davecheney> whoo
[08:07] <davecheney> finally
[08:07] <davecheney> only taken all day
[08:07] <jam> davecheney: grats
[08:07] <jam> goose is meant to be reasonably generic, I don't think we have a problem with having some extensions as well.
[08:07] <davecheney> jam: this should fix the problem bootstrapping quantal nodes
[08:07] <jam> aero1: but it certainly is focused on being access to any openstack deployment.
[08:07]  * fwereade_ cheers at davecheney
[08:07] <jam> davecheney: so the ppa had non-ssl?
[08:07] <davecheney> jam: nope, bigjools fucked it up :)
[08:08] <davecheney> we had a fight with LP, and lost
[08:08] <bigjools> bollocks did I
[08:08] <jam> bigjools: well, as long as we can blame you, it doesn't matter if you did :)
[08:08] <davecheney> bigjools: https://bugs.launchpad.net/juju-core/+bug/1168196
[08:08] <davecheney> the web doesn't lie
[08:08] <davecheney> something is broken, you probably did it
[08:08] <bigjools> sure
[08:09] <bigjools> the executable had ssl options on it.  NEXT.
[08:09] <davecheney> good, i'm glad we're all clear on that
[08:20] <davecheney> bigjools: jam Successfully uploaded packages.
[08:20] <davecheney> but it hasn't shown up on the PPA page yet
[08:20] <davecheney> how long is the delay ?
[08:20] <jam> davecheney: if those are source packages, you get queued into the builders, and it depends how busy they are.
[08:20] <jam> Generally a couple hours.
[08:20] <davecheney> this was a binary
[08:21] <davecheney> i spent most of the day building it
[08:21] <jam> davecheney: personally, I didn't think you could upload binaries to PPAs. I thought LP had to build it.
[08:21] <davecheney> http://paste.ubuntu.com/5709833/
[08:21] <davecheney> where did it go ?
[08:24] <davecheney> i have to go and make dinner
[08:24] <jam> davecheney: I believe the deb handler will silently ignore files it doesn't like, to avoid being an attack vector.
[08:24] <davecheney> if anyone knows where that package has gone, pleas let me know
[08:25] <davecheney> maybe i nede to push my gpg key to LP
[08:25] <davecheney> is there a command for that ?
[08:25] <jam> davecheney: I'll ask around on Launchpad, but I'm pretty sure the default is that you can only upload source packages to LP
[08:25] <davecheney> i'm following the instructions mims sent me
[08:25] <davecheney> which produced the current ppa's we have in experimental
[08:26] <jam> bigjools: can you confirm?
[08:26] <jam> davecheney: I thought there was a <10min time for the archive to poll the new uploads before it will see them.
[08:26] <jam> But that should be reasonably fast.
[08:26] <jam> so we might just be waiting there.
[08:27] <jam> It sounds like you should get an email
[08:29] <davecheney> it's awesome that the instructions for doing this on LP are completely out of date
[08:30] <davecheney> i think there was a problem with my gpg key
[08:31] <davecheney> i suspect LP just threw away that upload
[08:32] <davecheney> lucky(~/pbuilder/quantal_result) % dput ppa:juju/experimental mongodb_2.2.4-0ubuntu2_amd64.changes
[08:32] <davecheney> Package has already been uploaded to ppa on ppa.launchpad.net
[08:32] <davecheney> Nothing more to do for mongodb_2.2.4-0ubuntu2_amd64.changes
[08:32] <davecheney> you mean I have to build it again !
[08:32] <davecheney> FUCK
[08:39] <jam> davecheney: I don't see any gpg keys here: https://launchpad.net/~dave-cheney
[08:40] <jam> davecheney: so you probably do need to at least add that bit.
[08:40] <jam> If it is saying "already uploaded" it may or may not still be in the queue of things to finish.
[08:58] <jam> davecheney: if/when you get back, wgrant and stevenk would be interested in talking to you about it in #launchpad-dev
[09:07] <danilos> davecheney, hi, I am still having test failures on raring 64bit with system mongodb: http://paste.ubuntu.com/5709879/ (if I simply change my path to first include the extracted 2.2.0 tarball binaries, then all the tests pass)
[10:31] <TheMue> lunchtime
[10:49] <dimitern> fwereade_: ping
[10:49] <fwereade_> dimitern, pong
[10:50] <dimitern> fwereade_: just run the partial implementation of openstack instance selection past you
[10:50] <fwereade_> dimitern, cool, g+?
[10:50] <dimitern> fwereade_: i'll start one
[10:51] <dimitern> fwereade_: https://plus.google.com/hangouts/_/d16686e011ab34034d07f07641d351a34b0c6c9d?authuser=0&hl=en
[11:03] <dimitern> fwereade_: https://codereview.appspot.com/8753044
[11:04] <rogpeppe> fwereade_: just looking at tools.ReadList - given that we no longer fetch just the tools with a given major version from the provider, i don't think there's any particular reason, AFAICS, to have majorVersion as an argument any more. i *think* that's the only reason for ErrNoTools to exist.
[11:07] <fwereade_> rogpeppe, hmm, I think it still has value, on the basis that you can only ever be legitimately interested in a single major version at a time
[11:08] <fwereade_> rogpeppe, otherwise you need to remember to do a filter step everywhere that uses it (and filter needs a new field to do that)
[11:09] <rogpeppe> fwereade_: i'm not sure - it seems like pre-guessing the uses it might be useful for. we might want to know which major versions are supported in an environment. and in our particular case, we want to know about other major versions so we can know if there are any tools.
[11:09] <rogpeppe> fwereade_: yeah, filter would need another field
[11:09] <rogpeppe> fwereade_: but that seems more intuitive, i think
[11:09] <fwereade_> rogpeppe, I don't think it's ever legitimate for the CLI to upgrade juju to a non-matching major version
[11:10] <rogpeppe> fwereade_: that might not be why we're calling ReadList
[11:10] <rogpeppe> fwereade_: it's a utility function
[11:12] <rogpeppe> fwereade_: one review, BTW: https://codereview.appspot.com/8727044/
[11:12] <fwereade_> rogpeppe, tyvm
[11:12] <fwereade_> rogpeppe, feels a bit speculative to me tbh
[11:13] <fwereade_> rogpeppe, not saying that use case will never show up, just that it's not here now
[11:13] <rogpeppe> fwereade_: i like to pare down functions to their minimum if possible. streamlining increases the possibility for elegant generality in the future
[11:13] <rogpeppe> fwereade_: it feels like we're putting a special case in for this one scenario
[11:14] <fwereade_> rogpeppe, well, actually, I'm preserving behaviour that, on consideration, does what we need right now
[11:15] <fwereade_> rogpeppe, there was a definite temptation to take that on as well but... we wouldn't use it
[11:16] <rogpeppe> fwereade_: i'm not suggesting you change the behaviour. just that i know that i added the major-version argument specifically so that we could fetch only tools that matched it. we're no longer doing that, so i think it could go. and that simplies other stuff too, i think. but if you think it's worth it, fine.
[11:28] <fwereade_> rogpeppe, I think that as it stands its benefits outweigh its costs... that's not to say that everything I've done over the last few days couldn't be done much better, ofc
[11:28] <fwereade_> rogpeppe, believe it or not, I've been trying to keep this stuff focused
[11:28] <fwereade_> rogpeppe, I just keep bumping up against weird little interactions
[11:28] <rogpeppe> fwereade_: i guess i don't see the benefits, but i believe you!
[11:32] <jam> dimitern: poke
[11:33] <fwereade> rogpeppe, I see what you mean about the name/effect of FindBootstrapTools but I'm not sure about the alternative
[11:33] <rogpeppe> fwereade: it was just one thought
[11:34] <rogpeppe> fwereade: the fact that you didn't actually test that side effect is quite indicative to me that the name isn't right
[11:34] <fwereade> rogpeppe, yeah, that is pretty embarrassing
[11:35] <rogpeppe> fwereade: i think that making the side effect the primary purpose feels good to me, but i'm totally unsure about the right name for it
[11:36] <rogpeppe> fwereade: BTW, what's the reasoning behind the "usefulVersion" name i've seen in a few places?
[11:37] <fwereade> rogpeppe, "it means FFS this test depends on something, let's fake it up and move on"
[11:37] <rogpeppe> fwereade: ah
[11:37] <rogpeppe> fwereade: perhaps "requiredVersion" might be more helpful?
[11:38] <fwereade> rogpeppe, +1, thanks
[11:38] <rogpeppe> fwereade: and perhaps a comment saying what actually requires it, for future reference
[11:38] <fwereade> rogpeppe, yeah, sounds reasonable
[11:39]  * fwereade now has to figure them all out again ;p
[11:39]  * fwereade wonders whether that'll maybe learn him
[11:58] <rogpeppe> fwereade: :-)
[12:02] <fwereade> wtf, the provisioner doesn't remove dead machines?
[12:02] <fwereade> gaah
[12:02]  * fwereade knows what he's doing *now* then
[12:04]  * dimitern lunch
[12:11] <jam> fwereade: going to lunch with dimitern to drink away your sorrow ? :)
[12:14] <rogpeppe> fwereade: have you tested any of your recent branches live?
[12:18] <fwereade> rogpeppe, yes, they appear to all do as they should
[12:18] <fwereade> rogpeppe, I'll be doing a final one after whatever total set of changes land
[12:19] <fwereade> rogpeppe, (land in my branches, I mean, not land in trunk)
[12:19] <rogpeppe> fwereade: cool. i saw the APIInfo being erased in FinishMachineConfig and thought "huh?" but i see now why it's happening
[12:19] <rogpeppe> fwereade: i've got a suggestion in my review, just coming up
[12:19] <fwereade> rogpeppe, yeah, that bit's still a bit squirrely but it's better than before, I'm pretty sure
[12:19] <rogpeppe> fwereade: i hope you like my suggestion, which hopefully is better still.
[12:20] <fwereade> rogpeppe, cool
[12:20] <fwereade> rogpeppe, I look forward to it
[12:28] <rogpeppe> fwereade: i've published my comments so far: https://codereview.appspot.com/8726044/
[12:34] <fwereade> rogpeppe, tyvm
[12:39] <fwereade> rogpeppe, I felt like changes to MachineConfig itself were out of scope here... the changes I made will, I think, make it easier to fix MachineConfig in the future
[12:40] <fwereade> rogpeppe, but there's something smarter struggling to get out, I think, I'm just not quite sure what it is yet
[12:41] <rogpeppe> fwereade: hmm, i see now that you haven't changed environs/cloudinit at all
[12:41] <fwereade> rogpeppe, yeah, I was just drawing duplicated behaviour together
[12:41] <rogpeppe> fwereade: i really don't like FinishMachineConfig though - it feels highly squirrely
[12:42] <rogpeppe> fwereade: although...
[12:42] <fwereade> rogpeppe, it's a single squirrel instead of a... <looks up collective nouns...> dray, or scurry, thereof
[12:42] <rogpeppe> fwereade: the basic idea of using lots of info from the config.Config to inform our cloudinit script seems dead right
[12:42] <fwereade> rogpeppe, I don;t claim it's anything more that that
[12:43] <fwereade> rogpeppe, yeah, I'm confident it's a good direction, but only a first step
[12:44] <rogpeppe> fwereade: it's just that now for any potential provider-writer, it is totally non-obvious which fields in the MachineConfig should be filled out be whom.
[12:44] <rogpeppe> s/be whom/by whom/
[12:44] <fwereade> rogpeppe, agreed, but MachineConfig has pretty solid validation, so I'm not too botherered there
[12:44] <rogpeppe> fwereade: that's not the point!
[12:45] <fwereade> rogpeppe, it all had to be cargo-culter from ec2 for the existing ones anyway, really
[12:45] <rogpeppe> fwereade: it still does
[12:45] <rogpeppe> fwereade: but the amount of code copied will be smaller, which is good
[12:45] <fwereade> rogpeppe, precisely my point, no worse than before ;p
[12:46] <rogpeppe> fwereade: i'm not entirely sure.
[12:46] <rogpeppe> fwereade: you're probably right.
[12:47] <rogpeppe> fwereade: but it doesn't feel like a proper simplification
[12:47] <rogpeppe> fwereade: and there's definitely one to be made.
[12:47] <fwereade> rogpeppe, totally agreed
[12:47] <fwereade> rogpeppe, I was trying to do that before atlanta but got too tangled
[12:47] <rogpeppe> fwereade: basically the MachineConfig fields are parameters to cloudinit.Configure and now half of them are redundant
[12:48] <fwereade> rogpeppe, well, none are *redundant* yet, but they're plainly due for the chopping block
[12:49] <rogpeppe> fwereade: they are redundant, i think - it would be wrong if a provider didn't call FinishMachineConfig immediately before Configure.
[12:49] <rogpeppe> fwereade: here's a suggestion:
[12:49] <rogpeppe> fwereade: don't remove any fields fron MachineConfig
[12:49] <rogpeppe> fwereade: but...
[12:50] <rogpeppe> fwereade: move FinishMachineConfig into cloudinit.Configure
[12:50] <rogpeppe> fwereade: and mark the fields that it fills out as deprecated in the MachineConfig
[12:50] <rogpeppe> fwereade: i would be much happier with that
[12:50] <rogpeppe> fwereade: and the providers would be simpler still.
[12:52] <rogpeppe> fwereade: and they wouldn't need to change when the fields go
[12:53] <fwereade> rogpeppe, I really just want to avoid touching environs/cloudinit in this pass through the code
[12:53] <rogpeppe> fwereade: ok, then please leave a TODO comment on FinishMachineConfig.
[12:54] <fwereade> rogpeppe, they were generated in a disturbing fashion; now they are generated in a slightly less disturbing one; that's all :)
[12:54] <fwereade> rogpeppe, sgtm
[13:12] <jam> wallyworld: poke
[13:24] <rogpeppe> fwereade: rest of comments published
[13:31] <rogpeppe> fwereade: interestingly, sync-tools is probably a place where we *do* want to do a ReadList across major versions. there's no particular reason why we only want to copy tools with a single major version AFAICS.
[13:32] <TheMue> fwereade: do i get it right that regarding the units and the relations "only" the relation-errors are interesting?
[13:33] <fwereade> rogpeppe, my view is that a given CLI major version can and will, for now, only interact with tools sharing a major version
[13:33] <fwereade> TheMue, we don't really have relation errors
[13:34] <rogpeppe> fwereade: even to the extent of refusing to copy tools for other major versions? i think that's a bit gratuitous - we see them but we can't touch them.
[13:34] <fwereade> rogpeppe, we can't deploy them either, so...
[13:34] <rogpeppe> fwereade: someone else might be able to though
[13:34] <fwereade> rogpeppe, then they can run sync-tools?
[13:34] <rogpeppe> fwereade: maybe they want to use a public bucket?
[13:36] <fwereade> rogpeppe, when I hear a user complaining that they need to run two different major versions of juju out of the same bucket, but *don't* have CLI tools for all the major versions they are running, I will ask the user how they plan to run the alternate major versions without suitable CLI tools
[13:36] <rogpeppe> fwereade: it means that if you're an admin and want to copy several versions into a public bucket, you have to have a separate juju binary for each major version, and run it that many times.
[13:38] <TheMue> fwereade: aha?!? that's the only stuff generated out of the relations and the relation service map in Python I can find. *wonder*
[13:38] <rogpeppe> fwereade: the point is that you can use sync-tools for many users
[13:38] <fwereade> TheMue, I'm sure we had a chat about relation errors
[13:38] <rogpeppe> fwereade: if there wasn't a --public flag i'd tend to agree
[13:41] <fwereade> TheMue, does it not check for unit presence in the relation? I'm pretty sure it does
[13:42] <fwereade> rogpeppe, I see the public flag as a convenience for users who want their tools shared across a few of their own environments at this stage
[13:42] <fwereade> rogpeppe, it's probably worth revisiting when we get another major version though :)
[13:43] <fwereade> TheMue, coming up with a sensible plan (and justification for it) is your main job here I think
[13:43] <TheMue> fwereade: _process_unit passes the relations and the service map to _process_unit_relations, and there below unit only relation errors are generated as output
[13:45] <fwereade> TheMue, that's frickin' awesome news
[13:45] <fwereade> TheMue, nothing to do for units
[13:45] <fwereade> TheMue, yay!
[13:47] <TheMue> fwereade: afaics yes. i'm checking the tests, but there also only relation-errors are mentioned
[13:47] <fwereade> TheMue, (incidentally, this informs my suspicion of specs -- there's a python doc explaining in detail why they had to make a backward-incompatible change to unit relation status output, describing relation-errors plus a bunch of other things -- and I didn't check the code for that bit)
[13:47] <fwereade> TheMue, it now emerges it isn't there, I agree
[13:48] <TheMue> fwereade: *phew* ;)
[13:48] <rogpeppe> fwereade: you've got another review: https://codereview.appspot.com/8748046/
[13:48] <TheMue> fwereade: btw, the change after your last review is proposed again
[13:49] <rogpeppe> fwereade: i'm wondering whether to put juju-wait in its own repo, or make a repo for several like-minded tools. juju-utils, perhaps?
[13:52] <dimitern> rogpeppe: we already discussed having something like lp:juju-core-tools, there's even a card for that
[13:52] <rogpeppe> dimitern: ha. too late!
[13:52] <rogpeppe> dimitern: https://launchpad.net/juju-utils
[13:53] <dimitern> rogpeppe: :) the card can be changed as well
[13:53] <fwereade> rogpeppe, lovely, thanks
[13:54] <dimitern> rogpeppe: it's in Blue backlog btw
[14:07] <rogpeppe> fwereade, mramm: https://plus.google.com/hangouts/_/539f4239bf2fd8f454b789d64cd7307166bc9083
[14:32] <rvba> fwereade: here it is: https://code.launchpad.net/~rvb/juju-core/fix-maas-pvd-conf/+merge/158938
[14:43] <rogpeppe> lunch
[14:49] <fwereade> rvba, thanks
[14:53] <TheMue> fwereade: thx for review. sorting is IMHO only interesting for testing, so you can exactly test against the expected value
[14:54] <fwereade> TheMue, it's the dupes, not the sorting
[14:54] <fwereade> TheMue, I kinda feel that if there's a dupe it's probably meant to be there
[14:54] <fwereade> TheMue, or even if it represents total crack, we should show it
[14:59] <TheMue> fwereade: ok, so i'll change it into a sorted slice again and we'll what happes during the audit
[14:59] <TheMue> fwereade: ;)
[15:00] <fwereade> TheMue, well, I was suggesting we keep it out of paranoia but flag it with a TODO for later investigation
[15:09] <fwereade> rvba, hey, I have a theory re mysql/mediawiki: was mediawiki in an error state trying to leave the relation?
[15:10] <rvba> fwereade: you mean after I ran "juju destroy mysql"?
[15:10] <fwereade> rvba, yeah
[15:11] <dimitern> TheMue: how about peer relations?
[15:11] <rvba> I don't know but it happens that I have this setup in the lab right now http://paste.ubuntu.com/5710574/ so I can try to destroy mysql and have a look…
[15:14] <TheMue> dimitern: just seen your review, thanks, will add.
[15:14] <fwereade> rvba, I would be interested to see what happens, yeah, because I *do* have a local tweak to the code in mine... that I *think* is actually not necessary
[15:14] <fwereade> dimitern, TheMue: good point re peers
[15:15] <fwereade> TheMue, should just need a test; but also, subordinates; but please land this one as-is (just a peer relation test should be fine)
[15:17] <dimitern> TheMue: yeah, peer relations are simple enough to make it a separate test case; this one is already complex enough
[15:18] <TheMue> fwereade, dimitern: sure, won't make it larger
[15:19] <fwereade> rvba, ah, hell, it has finally clicked
[15:19] <fwereade> rvba, you *do* need my code change
[15:19] <rvba> fwereade: here are the state I'm in now, with links to all the logs. http://paste.ubuntu.com/5710599/
[15:19] <dimitern> fwereade: 3 reviewed, 2 to go
[15:20] <fwereade> rvba, but even with that, if mediawiki has a hook error on mysql's departure, it won't drop its reference to that relation until it's resolved
[15:20] <fwereade> rvba, and that will keep the service alive
[15:20] <fwereade> rvba, nothing to do with your unit situation
[15:21] <dimitern> fwereade: if you don't mind, I'll wait for your https://codereview.appspot.com/8726044/ to land first, and then I'll land my openstack constraints branch
[15:21] <fwereade> dimitern, +1, tyvm
[15:22] <rvba> fwereade: right.
[15:23] <fwereade> rvba, ok, sorry for crack suggestion just now, but I think I know (1) what's wrong and (2) how to fix it, and will hopefully nail (3) how to test it before too long
[15:25] <rvba> dimitern: Thanks for the review of lp:~rvb/juju-core/fix-maas-pvd-conf.  Would you mind landing it for me please?  lbox refuses to cooperate with me.
[15:25] <dimitern> rvba: sure, I'll pull your branch and land it for you, if you're fine with that
[15:26] <rvba> dimitern: that would be great, thanks!
[15:26] <rvba> fwereade: cool… once you have a branch ready, I can help with the real-world testing if you want.
[15:28] <fwereade> rvba, I've approved https://code.launchpad.net/~rvb/juju-core/fix-maas-pvd-conf/+merge/158938 -- I think it's a trivial
[15:28] <fwereade> rvba, go ahead and land it :)
[15:29] <dimitern> fwereade, rvba: I'll land it for him
[15:29] <dimitern> fwereade: (problems with lbox)
[15:47] <dimitern> rvba: here it is: https://codereview.appspot.com/8772043
[15:47] <fwereade> dimitern, ofc, thanks
[15:47] <dimitern> rvba: take a look if it's ok, I'll submit it
[15:47] <dimitern> fwereade: set the old MP to Rejected because of the above
[15:48] <fwereade> dimitern, sgtm, just comment it
[15:48] <dimitern> fwereade: yeah, did and linked the new CL in the old MP
[15:48] <fwereade> dimitern, <3
[15:48] <rvba> dimitern: looks good, thanks for doing this.
[15:50] <dimitern> rvba: np, lbox is a bitch at first, I know :)
[15:51] <rvba> dimitern: if that error rings a bell: http://paste.ubuntu.com/5710470/, please do advise :)
[15:52] <dimitern> rvba: rings a bell, but not sure how. I had to patch lbox locally to use it, I can send you a diff to see if it works for you
[15:53] <rvba> dimitern: that would be great… I was also thinking about manually hacking lbox's inferPushURL() method…
[15:58] <dimitern> rvba: actually, it's not lbox - it's lpad the one that lbox uses to communicate with lp
[15:58] <dimitern> rvba: http://paste.ubuntu.com/5710712/
[15:59] <rvba> dimitern: ta
[15:59] <dimitern> rvba: apply this (well, change dimitern to match your lp id) and see if it helps - you can try a simple branch and "lbox propose -wip"
[16:00] <rvba> dimitern: will do, thanks again.
[16:02] <dimitern> rvba: just a reminder, after patching, run "cd $GOPATH/src/launchpad.net/lbox && go install"
[16:07] <fwereade> dimitern, rvba: https://codereview.appspot.com/8748048
[16:08] <fwereade> rvba, confirmation that it works in your exact scenario would be appreciated, but I'm pretty confident
[16:08] <fwereade> bbiab
[16:10] <rvba> fwereade: dimitern: I'm testing this in the lab right now…
[16:11] <dimitern> fwereade: LGTM
[16:26] <rogpeppe> fwereade: is there a ticket for the python/go environments.yaml incompatibility issue?
[16:26] <rogpeppe> fwereade: i'm having difficulty reproducing the problem
[16:27] <rogpeppe> mgz: ^
[16:29] <dimitern> danilos: I see you have a kanban account already
[16:31] <dimitern> rogpeppe: is a defer statement function-scoped or block-scoped?
[16:34] <rvba> fwereade: doesn't look like your fix worked: http://paste.ubuntu.com/5710819/
[16:34] <rogpeppe> dimitern: the former
[16:35] <dimitern> rogpeppe: I thought so, although seeing it into an if block within a function raised an eyebrow
[16:35] <rogpeppe> dimitern: that's just fine
[16:35] <rogpeppe> dimitern: can be in a for loop too...
[16:36] <dimitern> rogpeppe: ah, cool - although potentially messy (for i=1-1000 defer something each time..)
[16:37] <dimitern> rvba: I can see the unit is removed, but the service seems still there
[16:38] <rvba> dimitern: yep
[16:38] <dimitern> rvba: that wasn't the case before, right? the both the unit and the service were in the status output
[16:39] <rvba> dimitern: indeed (that was before the fix: http://paste.ubuntu.com/5710599/)
[16:41] <dimitern> fwereade , rvba: I think the fix should include removeOps in the amended case, like we're doing a bit further up in the "if s.doc.Life == Dying && s.doc.RelationCount == 0 && s.doc.UnitCount == 1" case
[16:42] <dimitern> rvba: removeOps is responsible for removing the service itself; the change is in removeUnitOps, which only removes the unit (except in the former mentioned case)
[16:45] <mgz> rogpeppe: there is a ticket, that might have been overly general, then closed when a specific issue was fixed
[16:45] <dimitern> rvba: added comment to the proposal
[16:47] <rogpeppe> mgz: do you know of a specific problem?
[16:47] <rogpeppe> mgz: as far as i can tell, go juju will parse unknown environment attributes without complaint
[16:48] <rogpeppe> mgz: but i'm pretty sure that's actually not the case, and that this really is a genuine issue
[16:49] <rogpeppe> dimitern: you chatted to ian about this - do you know anything about the problem?
[16:49] <dimitern> rogpeppe: if should ignore unknown keys (like "placement: local"), but barf on known keys whose type was changed
[16:49] <dimitern> rogpeppe: we didn't discuss specifics yet, and from the kanban chart I can see danilos actually picked that one now
[16:50] <rogpeppe> dimitern: ah, do you mean we want a *single environment entry* to work with both go and python juju?
[16:50] <dimitern> rogpeppe: i'm sure that's not what we need - not for a bootstrapped env for sure
[16:50] <dimitern> rogpeppe: but for a fresh one, perhaps
[16:51] <rogpeppe> dimitern: i don't know. seems like a somewhat dubious requirement to me.
[16:51] <rogpeppe> dimitern: if that's really what the requirement is
[16:52] <dimitern> rogpeppe: we'll never make existing py-juju envs work with go-juju, but at least trying to do something with an existing py-env.yaml should fail gracefully, I think
[16:52] <rogpeppe> dimitern: i'm not sure what you mean by "fail gracefully" there
[16:52] <dimitern> rogpeppe: like producing a meaningful error
[16:53] <dimitern> rogpeppe: can we detect a py env with certainty from the yaml only?
[16:54] <rogpeppe> dimitern: only with dodgy heuristics, probably
[16:54] <rogpeppe> dimitern: basically, i can't see this as a high priority task
[16:55] <dimitern> rogpeppe: i think the general idea, after having py/go juju co-installable, is to detect incompatible yaml and report it early
[16:55] <rogpeppe> dimitern: but i'd really like to talk to someone for whom this is a priority
[16:55] <rogpeppe> dimitern: we do that
[16:56] <dimitern> rogpeppe: how does it look?
[16:56] <rogpeppe> dimitern: you get an error like:
[16:56] <rogpeppe> error: placement: expected nothing, got "345"
[16:56] <dimitern> rogpeppe: and how is this helpful?
[16:57] <dimitern> rogpeppe: for the user
[16:57] <rogpeppe> dimitern: it's detecting incompatible yaml and reporting it early...
[16:57] <dimitern> rogpeppe: but not in a meaningful for the user way
[16:57] <rogpeppe> dimitern: the error message could probably do with some work, it's true
[16:57] <rogpeppe> dimitern: i'd like us to work on stuff that is important functionally as we've only got hours remaining
[16:57] <dimitern> rogpeppe: put yourself in the user's shoes - the error should provide a hint what's actually wrong and how to fix it
[16:58] <rogpeppe> dimitern: i agree
[16:58] <rogpeppe> dimitern: but i wouldn't put this at the top of the list of things that need solving *now*
[16:58] <dimitern> rogpeppe: +1, not sure how and why this is high prio
[16:59] <rogpeppe> dimitern: also, i think that the whole idea behind all the JUJU_HOME work was so that we would not have to share the environments.yaml file!
[16:59] <rogpeppe> dimitern: and that added loads of complexity to the system
[16:59] <rogpeppe> dimitern: and now we're saying that it's not enough
[17:00] <dimitern> rogpeppe: we discussed this on the standup; jam said he suggested having a different name/path for go-env.yaml, but it was rejected
[17:00] <rogpeppe> dimitern: i also think that's the wrong solution
[17:01] <rogpeppe> dimitern: a) we *can* currently use the same environments.yaml, AFAIK (but you can't have the same environment entry for both go and py juju)
[17:01] <rogpeppe> dimitern: b) we have JUJU_HOME
[17:02] <dimitern> rogpeppe: agreed, on both points (except for the more helpful error msg)
[17:03] <rogpeppe> m_3, hazmat: do you know anything more about this issue, by any chance?
[17:07] <rogpeppe> dimitern: which ticket on the kanban board are you referring to?
[17:08] <dimitern> rogpeppe: "environments.yaml should cope with pyjuju and gojuju environments"
[17:08] <dimitern> rogpeppe: the description seems to shed some light on the actual issue as well
[17:09] <fwereade> rvba, working as intended according to that paste
[17:09] <rogpeppe> dimitern: the problem is that the "best compromise" is exactly what we do now
[17:09] <rogpeppe> dimitern: i fixed the issue, was writing tests, and then realised that
[17:09] <fwereade> rvba, the errored mediawiki is keeping a ref to the relation, which is keeping a ref to the service
[17:10] <dimitern> fwereade: ah, ok then
[17:10] <rogpeppe> dimitern: AFAICS the description "juju-core will fail to start if there are any unrecognized keys" is not true
[17:10] <fwereade> rvba, if you resolve mediawiki/0 it mysql should go away
[17:10] <fwereade> gtg again
[17:10] <dimitern> rogpeppe: it's still dubious imho
[17:10] <rogpeppe> dimitern: what's still dubious?
[17:10] <rogpeppe> dimitern: our error messages?
[17:11] <dimitern> rogpeppe: that's for sure, but the "fail to start" as well
[17:11] <rogpeppe> dimitern: we don't fail to start if there are any unrecognised keys in environments.yaml
[17:11] <dimitern> rogpeppe: start=? bootstrap? connect? return an error on any cmd?
[17:11] <rogpeppe> dimitern: any of the above
[17:12] <dimitern> rogpeppe: so it seems we're good then
[17:12] <rogpeppe> dimitern: when the unrecognised keys aren't part of the chosen environment
[17:12] <rogpeppe> dimitern: exactly
[17:12] <rogpeppe> dimitern: but perhaps i'm wrong and there's a subtle issue i've missed
[17:12] <rogpeppe> dimitern: which is why i want to speak to someone that's experienced the issue
[17:13] <rogpeppe> dimitern: before dismissing the ticket
[17:13] <dimitern> rogpeppe: it's probably worth a @juju-dev post
[17:13] <rogpeppe> dimitern: yeah
[17:28] <dimitern> eod or me
[17:28] <dimitern> good night all!
[18:04] <rogpeppe> fwereade: does this LGTY in its new location? https://codereview.appspot.com/8565044/
[18:04] <m_3> rogpeppe: hey
[18:04] <rogpeppe> m_3: hiya
[18:05] <m_3> did you get the answer you needed about shared envs?
[18:05] <rogpeppe> m_3: not really
[18:05] <m_3> 'origin: ppa' is usually the biggest difference atm
[18:05] <rogpeppe> m_3: do you want to be able to use the same environment entry in both go and py juju?
[18:06] <rogpeppe> m_3: i'm not entirely sure whether that's a goal worth striving for
[18:06] <m_3> rogpeppe: yeah, that'd be the preference, but not too high of a priority
[18:07] <m_3> rogpeppe: let's say goju envs and pyju envs in the same file
[18:07] <m_3> rogpeppe: but not the same envs
[18:07] <rogpeppe> m_3: we can do that currently
[18:07] <rogpeppe> m_3: unless you know something that i don't...
[18:07] <m_3> i.e., we don't want to promote people trying to use the same environment
[18:07]  * rogpeppe realises that m_3 knows *loads* of things that he doesn't
[18:08] <rogpeppe> m_3: yeah, that's what i'm thinking
[18:08] <rogpeppe> m_3: so by my thinking there's nothing that currently needs to be solved
[18:08] <m_3> lemme check to see if I can  use them together
[18:08] <rogpeppe> m_3: thanks
[18:08] <m_3> I've been using dedicated environments.yaml files to day
[18:08] <m_3> date
[18:09] <m_3> until package changes (with update-alternatives) lands
[18:09] <rogpeppe> m_3: BTW if you have some moments free, i'd very much appreciate your thoughts on the new juju-wait command, which i *think* is just about as we discussed: https://codereview.appspot.com/8565044/
[18:11] <m_3> rogpeppe: looks like they can coexist in the same file
[18:11] <rogpeppe> m_3: cool
[18:11] <rogpeppe> m_3: you can try out the juju-wait cmd by doing: go get launchpad.net/~rogpeppe/juju-utils/000-juju-wait/cmd/juju-wait
[18:11] <m_3> no need to change anything atm then
[18:11] <rogpeppe> m_3: great!
[18:12] <rogpeppe> m_3: although you probably want to delete $GOPATH/src/launchpad.net/~rogpeppe afterwards...
[18:12] <m_3> rogpeppe: will that change enough that I should tear the envi down before go getting?
[18:12] <rogpeppe> m_3: nope
[18:12] <rogpeppe> m_3: it should just work
[18:12] <m_3> ack
[18:12] <m_3> I'll try it in scale stuff now then
[18:12] <rogpeppe> m_3: brill
[18:13] <m_3> gotta rebuild tho?
[18:15] <rogpeppe> m_3: nope
[18:15] <rogpeppe> m_3: that one command should have made "juju-wait" available
[18:15] <rogpeppe> m_3: assuming $GOPATH/bin is in your PATH
[18:16] <m_3> rocking
[18:16] <rogpeppe> m_3: although...
[18:16] <rogpeppe> m_3: it depends what revno of juju-core you're on
[18:17] <rogpeppe> m_3: and what version you've bootstrapped
[18:17] <rogpeppe> m_3: if you've bootstrapped 1127 or later, you should be good
[18:17] <m_3> yup
[18:20] <rogpeppe> fwereade: ping
[18:21] <fwereade> rogpeppe, pong
[18:21] <m_3> sorry.... suuuuper-latent
[18:21] <fwereade> rogpeppe, supper is just here
[18:21] <rogpeppe> fwereade: ok, back later?
[18:21] <fwereade> rogpeppe, definitely
[18:21] <rogpeppe> fwereade: cool, ping us then
[18:22]  * rogpeppe smells curry odours drifting up the stairs
[18:35] <m_3> rogpeppe: http://paste.ubuntu.com/5711150/
[18:36] <rogpeppe> m_3: ah!
[18:36] <rogpeppe> m_3: trivially fixed
[18:38] <rogpeppe> m_3: try go get -u launchpad.net/~rogpeppe/juju-utils/000-juju-wait/cmd/juju-wait
[18:38] <rogpeppe> m_3: and try the command again
[18:38] <rogpeppe> m_3: i had forgotten to import all the providers
[18:39] <rogpeppe> m_3: it's an interesting point actually - we probably want to make it easier for commands to import all providers.
[18:45] <m_3> rogpeppe: trying
[19:07] <rogpeppe> m_3: any joy?
[19:09] <m_3> rogpeppe: still waiting
[19:09] <m_3> rogpeppe: it seems to be waiting on hadoop-slave/99
[19:09] <m_3> so now I'm just waiting for provisioning
[19:09] <m_3> might have to do something with secgroups
[19:09] <m_3> not sure atm
[19:10] <rogpeppe> m_3: a good first test is to juju-wait for something that you already know is in the state you're waiting for
[19:10] <m_3> lemme try it on a lower number :)
[19:10] <rogpeppe> m_3: you can do it without interrupting the other one
[19:11] <m_3> rogpeppe: seems to be beautiful
[19:11] <rogpeppe> m_3: there's a known provisioning problem at the moment - if the provisioner gets a temporary error, it just marks the machine with the error and never retries
[19:11] <rogpeppe> m_3: excellent!
[19:15] <fwereade> rogpeppe, ping
[19:15] <rogpeppe> fwereade: pong
[19:16] <fwereade> rogpeppe, more-or-less back
[19:16] <rogpeppe> fwereade: i'm just implementing service config settings in the AllWatcher
[19:16] <rogpeppe> fwereade: i just wanted to run my plan by you in case it's crack
[19:18] <rogpeppe> fwereade: i'll watch the settings collection; if i see a service settings change, i look at the current service info that i've got stored; if the settings are for a different url, then i ignore the change, otherwise i set it.
[19:18] <rogpeppe> fwereade: when i see a new service, i fetch the settings too
[19:18] <rogpeppe> fwereade: basically a similar approach to the constraints
[19:18] <rogpeppe> fwereade: does that sound more or less right?
[19:21] <fwereade> rogpeppe, hmm,have you considered per-charm settings?
[19:21] <rogpeppe> fwereade: that's the "if the settings are for a different url" part
[19:22] <fwereade> rogpeppe, sorry, I did not read as closely as I should have: yes, that sounds perfectly correct
[19:22] <rogpeppe> fwereade: great
[19:23] <fwereade> rogpeppe, service existence should guarantee settings existence for the its charm url
[19:23] <rogpeppe> fwereade: i'm not sure
[19:23] <rogpeppe> fwereade: i don't think there's an ordering guarantee on transaction ops
[19:24] <fwereade> rogpeppe, they execute inthe order passed, AIUI
[19:25] <rogpeppe> fwereade: i'd like to know that for sure. i thought transactions with ops in different collections could execute concurrently.
[19:25] <rogpeppe> fwereade: i've been assuming there's no such guarantee
[19:26] <rogpeppe> fwereade: it makes my life easier if there is such a guarantee, but i'd like chapter and verse from the txn package before i change things accordingly.
[19:26] <fwereade> rogpeppe, this is one where I fall back to argument from authority rather than experience -- niemeyer said they execute in order, and I believe him
[19:27] <niemeyer> fwereade, rogpeppe: you can trust it.. it'd be a very weak system otherwise
[19:27] <niemeyer> fwereade, rogpeppe: Silly example: a bank transference might temporarily have more total money than exists
[19:28] <rogpeppe> niemeyer: ok. it might be worth adjusting the documentation for txn.Runner.Run then.
[19:28] <rogpeppe> niemeyer: it doesn't mention ordering at all
[19:28] <rogpeppe> niemeyer: "
[19:28] <rogpeppe> Operations across documents are not atomically applied, but are
[19:28] <rogpeppe>     guaranteed to be eventually all applied or all aborted
[19:28] <rogpeppe> "
[19:28] <rogpeppe> niemeyer: i'd read that as "no ordering guaranteed"
[19:30] <rogpeppe> niemeyer: BTW in benchmarks, i'm only seeing 20-30 transaction-based operations per second. is there some way we can speed that up, or is that to be expected?
[19:32] <niemeyer> rogpeppe: It's significantly faster than that..
[19:32] <niemeyer> rogpeppe: IIRC, txn can pump about ~250 operations per second
[19:32] <niemeyer> rogpeppe: Of course, that depends on the operations performed
[19:33] <TheRealMue> so, time to stop, cu tomorrow
[19:33] <niemeyer> rogpeppe: In fact, it's actually better than this
[19:33] <niemeyer> rogpeppe: My original tests were showing about 200 *transactions* per second
[19:34] <niemeyer> rogpeppe: So that was at least double that in operations, or about 500 operations per second
[19:34] <niemeyer> rogpeppe: If transactions increase the number of operations, naturally that will impact the volume of *transactions* you get
[19:34] <m_3> hey, can somebody help me turn off secgroup per machine?... just temporarily for scale testing
[19:35] <rogpeppe> niemeyer: there's a benchmark in state that i'd be interested in trying to improve
[19:35] <rogpeppe> niemeyer: BenchmarkAddUnit
[19:35] <niemeyer> rogpeppe: Sure, so.. hmm.. improve it..? :)
[19:35] <rogpeppe> niemeyer: i can call AddUnit about 47 times a second
[19:35] <rogpeppe> niemeyer: (as of just now)
[19:35] <m_3> I'll let dave check this for profiling, but just wanna get past this hurdle
[19:37] <rogpeppe> niemeyer: it's true that AddUnit is reasonably complex (it does a fetch, then a transaction), but it's not unrepresentative of the kinds of things we'll want to do
[19:37] <rogpeppe> niemeyer: and adding 10000 units is something we do want to do
[19:38] <niemeyer> rogpeppe: Sure
[19:38] <niemeyer> rogpeppe: +1 :)
[19:38]  * rogpeppe goes for something to eat
[19:38] <rogpeppe> back in a bit
[19:54] <fwereade> m_3, firewall-mode: global, I *think*
[19:55] <fwereade> m_3, you definitely need a fresh environment for that though
[19:55] <fwereade> m_3, I don't know how the firewaller will react to a mode switch but it is very unlikely to be pretty
[19:57] <fwereade> m_3: yeah, firewall-mode: global should do it
[20:12] <rogpeppe> back
[20:30] <m_3> fwereade: got it thanks... that got us past the hump
[20:30] <fwereade> m_3, sweet
[20:43] <m_3> next hump is ram limits on the acct :(
[20:45] <m_3> rogpeppe: wait working like a champ
[20:45] <rogpeppe> m_3: that's very good to know!
[20:45] <rogpeppe> m_3: will submit soon. then it'll be go get launchpad.net/juju-utils/cmd/juju-wait
[20:57] <rogpeppe> fwereade: oh darn, i've forgotten the other wrinkle - watching the settings collection doesn't give you values which are defaulted. i guess i'll need to keep all the charm metadata around and merge each time.
[21:21] <thumper> morning
[21:26] <rogpeppe> thumper: hiya
[21:27] <thumper> hi rogpeppe
[22:46] <rogpeppe> thumper: i'd appreciate a review of this branch, if you have a moment: https://codereview.appspot.com/8761045/
[22:48] <rogpeppe> m_3: juju-wait has landed
[22:53] <m_3> rogpeppe: ack, thanks!
[22:53] <rogpeppe> m_3: np
[22:54] <rogpeppe> m_3: is it working?
[22:54] <rogpeppe> m_3: (i mean juju-core in general, really)
[22:57] <thumper> rogpeppe: sure, just looking at one for fwereade_
[22:57] <rogpeppe> thumper: np
[23:05] <m_3> rogpeppe: we're waiting to get past some more acct limits
[23:05] <m_3> but great so far
[23:06] <rogpeppe> m_3: that's good to hear
[23:06]  * thumper goes to make coffee and bagel
[23:06] <m_3> rogpeppe: we're gonna do the wed charmschool with juju-core
[23:06] <m_3> I think
[23:06] <m_3> barring anything we run into tomorrow
[23:06] <rogpeppe> m_3: that will be interesting
[23:18] <m_3> I'll do a dry-run tomorrow to decide
[23:25] <rogpeppe> right, that's me done and dusted
[23:25] <rogpeppe> g'night all
[23:26] <thumper> night