IRC logs for #baserock for Thursday, 2015-05-21

*** zoli__ has quit IRC01:44
*** zoli__ has joined #baserock03:49
*** zoli__ has joined #baserock04:06
*** zoli__ has quit IRC04:09
*** zoli__ has joined #baserock04:10
*** zoli__ has quit IRC05:16
*** zoli__ has joined #baserock05:36
*** petefoth has joined #baserock06:12
*** pdar has quit IRC06:43
*** Stanto has quit IRC06:43
*** pdar has joined #baserock06:43
*** Stanto has joined #baserock06:44
*** a1exhughe5 has joined #baserock07:03
*** edcragg has joined #baserock07:25
*** Albert has joined #baserock07:43
*** Stanto has quit IRC07:48
*** Stanto has joined #baserock07:53
*** bashrc has joined #baserock08:03
*** mariaderidder has joined #baserock08:08
*** gary_perkins has joined #baserock08:16
*** CTtpollard has joined #baserock08:22
*** jonathanmaw has joined #baserock08:25
*** sambishop has quit IRC08:29
*** pacon has joined #baserock08:44
*** sambishop has joined #baserock08:44
*** franred has joined #baserock08:48
*** ssam2 has joined #baserock08:51
*** ChanServ sets mode: +v ssam208:51
* SotK notes Mason is failing09:00
* SotK wonders why the behaviour is different on x86_64 than it is on x86_3209:01
pedroalvarezSotK: more things are being built for 64b09:01
straycat    def __init__(self):09:02
straycat        ''' Load all definitions from `cwd` tree. '''09:02
straycat        if self.__definitions != {}:09:02
straycat            return09:02
straycatewww09:02
SotKpedroalvarez: ah!09:02
pedroalvarezSotK: looks like novnc has a gitmodule not pointing to g.b.o09:02
franredpedroalvarez, ughh?09:04
straycatpaulsherwood, we need to fix that, it's not reentrant. i'm also not sure why we're using dictionaries everywhere instead of using objects, it just makes it harder to read.09:04
franredpedroalvarez, ooops I didn't notice it had a submodule :/09:05
pedroalvarezfranred: fancy fixing it?09:05
franredpedroalvarez, yep, I'll do it - it is my mess09:06
pedroalvarezfranred: good thing is that web-socket-js is lorried09:07
pedroalvarezfranred: by you :P09:07
franredthen I may forget to create the branch for novnc .... - where is my head?09:08
pedroalvarezover your shoulders09:08
pedroalvarez:) no worries09:08
pedroalvarezthis new feature of mason is being really useful09:09
*** Krin has joined #baserock09:10
*** wdutch has quit IRC09:22
*** wdutch has joined #baserock09:27
franredSotK, pedroalvarez, https://gerrit.baserock.org/#/c/691/09:33
franredfix for novnc submodule09:33
*** lachlanmackenzie has joined #baserock09:33
pedroalvarezfranred: it looks ok09:34
pedroalvarezfranred: thanks09:35
franredpedroalvarez, no probs09:35
pedroalvareznovnc just finished building in Mason, thanks again franred09:41
franredpedroalvarez, good, I tested before but it is good to know it builds in mason too :)09:42
straycatpaulsherwood, that earlier problem is not easily fixed without either lots of little hacks/pretty large modifications to the rest of ybd :/10:19
radiofreeif i have a system service called "dbus.service" and a user service called "dbus.service", what will After=dbus.service do in a systemd user service?10:32
radiofreeafter the user dbus.service, or straight after the system dbus.service?10:32
radiofreelooks like it's after the user service10:34
radiofreethat's what i want, but out of interest how would you say "after the system service" instead?10:35
SotKpaulsherwood: OOI, why is the list of contents to build shuffled in ybd?10:36
straycatit's for distbuild10:36
straycatto try to avoid having several nodes all trying to build the same chunk10:37
SotKhaving just somehow spent 20 minutes going through "Starting assembly" of various things before the actual build started, I wonder if there isn't a better way to achieve that?10:38
SotKalso, surely if there is nothing built they will end up building the same things anyway, at least for most of build-essential?10:42
straycatit is not nearly as efficient as our existing distbuild, for sure10:45
* SotK is doing a local build as far as he knows10:45
straycatwell the ybd distbuild is just a number of ybds with a shared cache11:03
pedroalvarezoh, looks like mason found another error11:16
franredpedroalvarez, gbo instead of upstream: in librabbitmq11:20
franred:/11:20
pedroalvarezfranred: yeah, currently wondering why we have 2 delta/python-packages/rabbitmq-c repos11:20
franredpedroalvarez, one was the mirror of the other and I think we needed the "ask" one11:21
pedroalvarezmmkay11:21
pedroalvarezis  a lot of months older though11:21
franredwe can check commits to see why we are using "ask" and not the other one11:22
pedroalvarez:/ both added in the same commit in lorries.git11:23
franredpedroalvarez, in lorries.git ec3cb0436cf5b78be465a2957d214435e5d95d71 says that the fork is a submodule of librabbitmq11:24
franredand.... it is: http://git.baserock.org/cgi-bin/cgit.cgi/delta/python-packages/librabbitmq.git/tree/.gitmodules11:24
* pedroalvarez grumbles11:25
pedroalvarezand sighs11:26
pedroalvarezcould this have a quick review? http://paste.baserock.org/ojekaqoloy.diff11:29
pedroalvarezlanding in 'baserock/v1.6.1' (librabbitmq.git)11:30
ssam2pedroalvarez: +1 from me11:30
ssam2+2, whatever11:30
franredpedroalvarez, +2 too11:30
pedroalvarez+4!11:30
franred+5?11:30
jmacs+1 fwiw11:30
* ssam2 wonders whether to call the current deployment extension API the 'Baserock deployment extension API' or the 'Morph deployment extension API'11:31
ssam2the former seems better, but quite optimistic11:31
straycatwhat's this?11:32
ssam2straycat: the API used for .configure and .write extensions11:33
straycat*nod* where are we documenting this?11:33
ssam2i'm thinking here: http://wiki.baserock.org/definitions/current/11:34
ssam2since to deploy definitions, you need to understand it11:34
ssam2also, i've pushed some changes to that page which i haven't announced yet11:35
ssam2was going to wait until I'd added the bit about the deployment API as well11:35
straycati feel i know enough to join this bikeshed now, i guess either would be fine, morph extension API maybe?11:36
ssam2noted11:37
pedroalvarezlibrabbitmq fix for a green Mason! https://gerrit.baserock.org/69211:40
jmacsCan I tell morph to output or log the output from a 'successful' install?11:47
ssam2jamcs: what do you mean by 'install' ?11:47
ssam2jmacs: if you have Morph from Baserock 15.19.2, the `morph show-build-log` command may do what you want...11:47
ssam2although perhaps it only fetches the build log from a *remote* cache, it won't look in your local cache11:48
ssam2tips 4 and 5 from http://wiki.baserock.org/tips-and-tricks/ might be useful, either11:48
jmacsssam2: I want to see the output from "install-commands"11:48
ssam2jmacs: right, you want the chunk's .build-log file then11:48
ssam2which, if you ran the build locally, will be in the artifact cache dir11:49
ssam2with a super useful name like 151fa253a2351faqfcva5123a3r.build-log11:49
ssam2tip 5 from the link above shows you how to get the actual SHA256 that you need to work out the filename of the build-log file11:49
ssam2but 'ls -lrt /src/cache/artifacts' may be enough for you to work it out, either11:50
jmacsAha, build-log has it. Thanks11:50
*** paulw has quit IRC11:58
*** paulw has joined #baserock12:00
paulsherwoodstraycat: what do you mean by 'it's not re-entrant' ?12:24
paulsherwoodfwiw i used dicts because objects seemed overkill at the time, but i may have been wrong12:25
richard_mawpaulsherwood: two benefits of instantiated classes over dicts that I have learned the hard way are: 1. You have a name to tell you what kind of object it is, which is very useful for debugging, and learning the code, and 2. Restrictions in what gets put in an object significantly help to force you to think about what state each object carries.12:31
richard_mawThe fact that you can hang methods off to make common operations easier is a useful side-effect12:31
richard_mawC structs alone are better than dicts for the reasons I've given12:32
straycatpaulsherwood, you can't use the Definitions class more than once, because on construction you set up static internal state12:33
paulsherwoodthat's deliberate. why would i want to use it more than once?12:34
richard_mawpaulsherwood: comparing two different states of the definitions repository12:34
straycati get that a lot of people hate OO, but it'd be more readable to use python classes as structures12:34
paulsherwoodrichard_maw: ok, but for my current use-cases i only need one state12:35
* paulsherwood would be delighted to see someone offer Defitions class written properly, so long as it doesn't turn out to be loads more loc12:35
richard_mawstraycat: I went through a phase of that, but I ended up passing long parameter lists to functions instead.12:36
richard_mawstraycat: I think you need to go through a phase of hating OO before you really learn why it is important12:36
*** paulwaters_ has joined #baserock12:36
* wdutch puts a function in a dict for giggles and is horrified with his ugly creation12:37
paulsherwoodrichard_maw: i understand oo. my criteria are different from others, that's all. happy to compromise once i understand the overall cost/benefit12:37
richard_mawpaulsherwood: I wasn't suggesting you didn't understand OO.12:37
paulsherwood:-)12:38
richard_mawI was just discussing my own phase of it with straycat12:38
paulsherwoodrichard_maw: as you know, others have suggested i don't understand how to write software, so i may be touchy some times :)12:38
rjekwdutch: Lua and JavaScript don't have objects; they just have dictionaries with functions...12:38
richard_mawrjek: and a bit of syntactic sugar to make this less awful, and occasionally hide that this is how it works12:39
wdutchjavascript pretends to have objects12:39
*** paulw has quit IRC12:39
* rjek nods.12:39
rjekLua only has one data structure.  One data structure to rule them all.12:39
paulsherwoodrjek: is it more like a dict than a class/object? :)12:40
richard_mawrjek: a tagged union of string, number, null, true, false, userdata or table12:40
rjekpaulsherwood: No, it's a table.12:40
rjekpaulsherwood: Which is a hybrid of an array and a hash table.12:40
rjekrichard_maw: You missed thread and lightuserdata!12:41
richard_mawrjek: or integer too these days12:41
richard_mawrjek: and there's some hack to fit all of that in a double12:41
rjekpaulsherwood: But you can attach a table to a table (called a metatable) that alters its behavior12:41
rjekrichard_maw: The NaN trick!12:41
rjekThere are multiple encodings of NaN, so you can use them to flag different things.12:42
rjekAnd this is fine, because NaN doesn't compare equal to anything, even itself.12:42
ratmice__richard_maw: tend to agree (though i don't exactly like oo)... anyhow you can achieve much of that with phasing between opaque/non-opaque dicts and sealer/unsealer pairs (not to imply that python does not sure if it even can)12:45
ratmice__well, I guess the latter doesn't hit the first point about names when debugging12:48
paulsherwoodi don't understand the 'names when debugging' point? richard_maw?12:50
rjekpaulsherwood: Classes have names, dicts do not.12:52
rjekSo when debugging you get useful information about what is doing what12:52
richard_mawthe name implies intent, and provides a reference for when you need to see what it contains12:52
paulsherwoodright. i'm trying to relate this to my specific use-case. I have a class (Definitions) which has a humungous dict containing the state loaded from disk. all instantiations of it get that same state. i'm not sure what the recommendation is to improve on this12:55
* paulsherwood may be being dumb12:56
richard_mawsplit all your different bits of sub-state into objects IMO12:56
richard_mawthat, and pass the instance of definitions around properly, so you don't have hidden state in any of your code and can perform operations on multiple definitions repositories12:57
SotK+1 especially to the passing the instance around part12:57
* richard_maw dislikes singletons that aren't representations of physical resources that only accept 1 user12:57
paulsherwoodi think this singleton meets the criterion, but i take the point12:58
ratmice__I think he means like blinking lights :)12:59
richard_mawyeah, only having 1 blinking light is sufficient cause for access to it being a singleton, but the restriction of only having 1 instance of the definitions repository is completely self imposed13:00
*** pacon has quit IRC13:02
paulsherwoodok, got it now :)13:03
paulsherwoodhttps://github.com/devcurmudgeon/ybd/issues/3513:09
*** nowster has quit IRC13:12
paulsherwoodrichard_maw, ssam2, SotK - you've replied to some of the wishlist items on ybd github - i'm noticing that 'discussion' on gh issues is a bit of a pain. maybe better to take it to baserock-dev, since some of the ideas may be of wider interest?13:13
richard_mawI don't want to move the venue again13:15
jmacsCan I add 'zip' to the tools strata? Is there a better place to put it?13:15
richard_mawany useful discussion ought to be canonicalised as stories on the storyboard anyway13:15
pedroalvarezmason is still red: This change will fix the current error - https://gerrit.baserock.org/#/c/692/13:23
*** nowster has joined #baserock13:26
mwilliams_ctpedroalvarez: I'm probably being silly, but I don't understand how the commit message (changes the repo to use "upstream" alias) relates to the change which is changing the ref. is it because of the submodule business?13:31
pedroalvarezmwilliams_ct: I agree I'm not good sometimes at commit messages13:32
mwilliams_ctI didn't say that :P. I said I don't understand not that you're wrong!13:32
pedroalvarezmwilliams_ct: "Update ref of librabbitmq to use a version that points to 'upstream' on its submodules"13:33
pedroalvarez(too long)13:33
mwilliams_ctThat makes sense to me though, thanks! I'm not vetoing it if other people understand what you mean13:33
franredpedroalvarez, go ahead with the merge and sorry for causing the mess using full URL rather than aliases13:36
pedroalvarezmwilliams_ct: can you take a look at the new commit message? https://gerrit.baserock.org/#/c/692/13:37
mwilliams_ct"The right thing to do is to poin" add a t to that and I'll +1, thanks for explaining and changing :)13:38
pedroalvarezmwilliams_ct: done! tand thanks for the review!13:39
pedroalvarezmerged, thanks mwilliams_ct franred!13:41
pedroalvarezfranred: and don't worry, that's why we have Mason, to catch these problems :)13:41
straycatjmacs, tools seems reasonable to me for that13:42
pedroalvarezis this gzip?13:45
rjekzip13:45
jmacsInfo-zip13:46
jmacsWe lorry it already, but don't build it for some reason13:46
pedroalvarezjust curiosity :)13:46
*** SotK_ has joined #baserock14:00
*** mariaderidder has quit IRC14:00
*** SotK has quit IRC14:04
*** bfletcher has left #baserock14:06
*** bfletcher has joined #baserock14:08
*** SotK_ is now known as SotK14:12
*** mariaderidder has joined #baserock14:13
jonathanmawHas anyone ever got java running in baserock?14:16
jmacsYes14:16
jmacsIt's included as part of the zookeeper strata14:16
jmacsIt has to come from a binary blob at the moment though14:16
franredand I think that our actual gerrit is running in a baserock VM which uses Java too14:17
tiagogomes_I want to integrate findutils in baserock. Where should I put? tools?14:17
franredjonathanmaw, http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/infrastructure.git/tree/baserock_gerrit/instance-config.yml14:19
*** zoli__ has quit IRC14:19
franredtiagogomes_, sounds good to me14:19
pedroalvareztiagogomes_: for what system is needed?14:25
pedroalvarezdoes that system has tools already?14:25
tiagogomes_openstack14:25
pedroalvarezpatch openstack to be busybox compatible :)14:26
tiagogomes_I'd rather add findutils instead of patching14:27
pedroalvarezbut yes, it may be not compatible with busybox in several places in their codebase14:27
*** a1exhughe5 has quit IRC14:33
paulsherwoodwin 814:41
paulsherwoodbah14:41
pedroalvarezso, I need to run `python setup.py install` for a component, and then move things in $DESTDIR from one place to another14:45
pedroalvarezis better to install everything in another foler (foo.build/o/) and then move from there to the right place in $DESTDIR?14:45
*** a1exhughe5 has joined #baserock14:47
ssam2pedroalvarez: the complex case is the cross-boostrap script where destdir = /15:13
ssam2so I think best to install in another folder, then move stuff into $DESTDIR15:14
ssam2although in practice either approach would probably work15:14
pedroalvarezyeah, I don't think we ever cross-bootstrap a openstack system, but meh, I like things well done :)15:14
pedroalvarezgrr mason still failing15:22
SotKnumpy this time it looks like15:23
pedroalvarezvolunteers?15:23
richard_mawI thought we fixed cross-bootstrap to not set DESTDIR=/15:24
pedroalvarezrichard_maw: I think you are right15:25
tiagogomes_If there is a gnulib submodule, and some project already has a gnulib directory. What does morph do? The gnulib directory seems to not have the most recent commits15:27
pedroalvarezquick patch: http://paste.baserock.org/kikepuculo.diff15:31
pedroalvarezupstream:numpy.git, current unpetrify-ref branch15:31
SotK+115:32
straycatwhy are we doing this again?15:45
pedroalvarezstraycat: I explainet that here in a previous fix: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/commit/?id=244e16c16aa11852706a7ab51cf6dd216e3315a815:46
franredpedroalvarez, +115:47
straycathrm fair enough, bit of a shame you won't be able to do a recursive git clone of the repo anymore though15:48
pedroalvarezstraycat: that's true15:48
pedroalvarezstraycat: but all of them are already using 'upstream:'15:49
straycatbut that's why SotK invented morph get-repo!15:49
pedroalvarezstraycat: we failed to do these in the openstack work15:49
straycatahh15:49
pedroalvarezI think this is essential if you want to use a different trove15:50
* straycat nods15:50
*** a1exhughe5 has quit IRC15:50
pedroalvarezand here definitions.git patch https://gerrit.baserock.org/69415:53
*** Albert has quit IRC15:55
*** paulwaters_ has quit IRC15:55
straycathttps://github.com/richardc/perl-class-accessor-chained/commit/190e6f0986cca3bf5cdd7f1e4d769164d4b7b04b16:08
paulsherwood15:26 <+pedroalvarez> patch openstack to be busybox compatible :)16:12
*** jonathanmaw has quit IRC16:12
paulsherwoodtoybox ftw! ^^16:12
pedroalvarez:)16:13
franredmason still in red, https://mason-x86-64.baserock.org/log/4cf86114be1795590a685c5c6b6230ee3686690c--2015-05-21%2015:57:08.log - seems like it tries to deploy a openstack system without the roofs being built or it can not find it16:16
pedroalvarezsame problem with pystache16:19
pedroalvarezplease, some volunteers to do this :)16:20
* pedroalvarez is going to be named "contributor of the day"16:20
franredpedroalvarez, http://paste.baserock.org/agajuyipah16:26
pedroalvarezfranred: +216:28
tiagogomes_Hi, is it me or submodules are not updated by morph when building a chunk? At least the update_submodules functions seems to not be called during building16:28
* franred doesn't understand why we don't have an alias in both ways making upstrean and git://git.baserock.org/delta synonyms16:29
ssam2tiagogomes_: it should only update the cached version of the submodule repo if it needs to16:29
franreds/upstrean/upstream/16:29
gary_perkinsHi, just wondering what is the script that gets run once-only after deployment of a BR system? I just want to be able to do some once-only post-deployment stuff, like adding users, setting up keys etc.16:30
jmacsWhen I push to gerrit, do I have to use the same branch name as the one I passed to 'morph branch'?16:31
tlsagary_perkins: clout init?16:31
pedroalvarezjmacs: git-review is really handy for gerrit16:31
tlsa*cloud16:31
jmacspedroalvarez: I'm sure it is, is that relevant to my question though?16:31
ssam2jmacs: the 'topic name' in Gerrit is purely a UI thing16:31
ssam2jmacs: if you're pushing a change to Gerrit, I presume what you're doing is: git push gerrit refs/for/master/my/branch/name16:32
pedroalvarezjmacs: maybe not, sorry16:32
jmacs"git push gerrit HEAD:jmac/partial-java-build-support"16:32
ssam2jmacs: if so, my/branch/name can be anything, and it won't affect how Morph behaves in your local repo, or how Gerrit treats the change (other than "topic name" will be 'my/branch/name')16:33
ssam2you can also use Morph without needing morph branch/checkout now, if you want :) using https://gerrit.baserock.org/#/c/579/16:33
jmacsOk, I get " ! [remote rejected] HEAD -> jmac/partial-java-build-support (prohibited by Gerrit)"16:33
ssam2jmacs: are you trying to submit it as a change?16:34
franredpedroalvarez, https://gerrit.baserock.org/#/c/695/16:34
ssam2jmacs: if so, you need `git push gerrit HEAD:refs/for/master/jmac/partial-java-build-support`16:34
jmacsOh,I thought "refs/for/master" was just placeholder text16:34
ssam2heh, no it's a real "magic" ref name16:35
radiofreereboot16:35
radiofreeoops16:35
pedroalvarezpowerin off16:35
pedroalvarez516:35
pedroalvarez416:35
pedroalvarezfranred: thanks, merged16:35
gary_perkinstlsa: I'd like to have the .configure script create a script that will run on first-boot. Rather than a separate script that has to be run as part of 'nova boot'. Just seems more elegant to do it that way, with all the config in the one .configure file16:35
franredpedroalvarez, let's see which is next...16:36
pedroalvareznote that with git-review  makes sending things for review easier16:36
tlsagary_perkins: not sure how to do that16:37
pedroalvarezgary_perkins: we create users in some .configure extensions already16:37
pedroalvarezin a hacky way, appending things to /etc/passwd and so on16:38
pedroalvarezbut it's possible16:38
gary_perkinspedroalvarez: Ahh, I thought there would be somthing like that :)16:38
gary_perkinspedroalvarez: is that the recommended way? or would ansible or cloud-init be better?16:39
pedroalvarezbut a script to set up everthing at boot time, would be cleaner16:39
radiofreefatal: Unable to look up git.baserock.org (port 9418) (System error) :-o16:39
pedroalvarezcloud-init will make your deployments only work in openstack16:39
radiofreeoh, i haven't dhcp'ed yet16:39
tlsagary_perkins: vagrant.configure has an example of user creation16:40
pedroalvarezwebsockify now in mason16:40
gary_perkinstlsa: thanks16:40
franredgary_perkins, have you have a look to the ansible scripts that we have for openstack in baserock?16:40
jmacsRight, pushed, thanks all16:40
pedroalvarezdistbuild setup scripts might be an easier example16:41
gary_perkinspedroalvarez: there is already a script that is run on first-boot, at least on the troves I've setup before. Perhaps I could append to that? or append a call to my script?16:41
pedroalvarezgary_perkins: I take that you are assuming that is not going to be an insteresting change for all the troves16:42
pedroalvarezappending to other services/scripts sounds hacky :)16:43
gary_perkinspedroalvarez: ok, thanks for the help. I need to think a bit more about this. I don't want something hacky :) I could look at vagrant.confgure as an example and perhaps setup ssh key files in the same way a trove is setup. I think that's all that's needed. Cheers :)16:47
pedroalvarezgary_perkins: no problem! we can have more conversations about this whenever you need16:49
franredpedroalvarez, https://gerrit.baserock.org/#/c/699/16:50
pedroalvarezfranred: ta!16:53
*** Krin has quit IRC16:55
*** mariaderidder has quit IRC16:57
*** bashrc has quit IRC17:03
*** zoli__ has joined #baserock17:07
*** sambishop has quit IRC17:16
pedroalvarezyay, green mason!17:33
franred\o/17:33
*** ssam2 has quit IRC17:34
*** edcragg has quit IRC17:37
pedroalvarez systemd[1]: Failed to start User Manager for UID 0.17:37
pedroalvarez systemd[1]: user@0.service failed.17:37
pedroalvarezfirst time I see these servicies in baserock17:38
paulsherwoodre green mason - the sha link is pointing to 192.168.222.58?17:46
pedroalvarezis a side effect of what we have done with Mason17:56
pedroalvarezMason now can't contact internet, it's able to contact to the trove via its internal IP17:57
pedroalvarezthis way we detect when sources are not coming from that trove17:57
*** gary_perkins has quit IRC17:57
pedroalvarezthe side effect is that link in Mason, which now points to the internal Ip of g.b.o17:58
*** lachlanmackenzie has quit IRC18:38
*** sambishop has joined #baserock18:56
*** sambishop has quit IRC19:21
*** zoli__ has quit IRC21:36

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!