/srv/irclogs.ubuntu.com/2011/08/03/#ubuntu-ensemble.txt

=== robbiew-afk is now known as robbiew
niemeyerAlright.. that was a long day02:59
niemeyerHave a good night all02:59
niemeyerOr a good day, I guess02:59
* niemeyer => bed02:59
=== negronjl` is now known as negronjl
niemeyerGood morning lads10:14
fwereadeniemeyer: heyhey, didn't see you there :)10:39
niemeyerfwereade: Hey man!10:40
fwereadeniemeyer: thanks for the reviews, much appreciated10:40
niemeyerfwereade: No worries, I hope it all makes sense10:40
fwereadeniemeyer: yeah, some excellent points10:40
fwereadeniemeyer: I'm trying to figure out the right shape for the zookeeper-finding stuff, and nothing's really making me happy so far, but I'll find something10:41
niemeyerfwereade: Cool, please let me know if you want to brainstorm on something there10:54
hazmatg'monring11:36
hazmatmorning11:36
hazmatensemble talk at local python user group went really well about 25 folks on hand11:55
niemeyerhazmat: Morning!11:57
niemeyerhazmat: Oh.. good interest?11:57
hazmatniemeyer, indeed, several folks doing cloud based deployments, almost 10 had used puppet/chef in the past... i was surprised how many python old-timers where there. had some good talks with jim fulton (cto zope corp) and some others afterwards11:59
fwereadehazmat: cool :)12:00
niemeyerhazmat: Wow, sweet12:01
niemeyerhazmat: Was that a Linux user group, or a Pythonn one?12:01
niemeyerhazmat: Or a * user group? :)12:02
hazmatstill trying to track one of the attendees down, i want to talk to some more, he had alot of sysadmin chops on 1k scale deployments.12:02
hazmatniemeyer, python user group, by old-timer i meant 10+ years of python.12:02
niemeyerhazmat: Sweet12:03
niemeyerhazmat: Yeah, would be good to have that kind of contact12:03
hazmatlots of macbook pros in the room.. but i said.. ubuntu is only a vm away ;-)12:03
hazmatalthough i guess we have a macports install for ensemble, albeit frozen12:03
fwereadeniemeyer: btw, I think I have a functiony approach that works quite well, but naming is a bit of an issue; I've gone with find_zookeepers_core (that takes a provider and a callback that should turn an instance id into a machine, or raise the appropriate exception)12:04
fwereadebut "_core" doesn't feel quite right12:04
fwereade"_base" is too overloaded IMO12:04
fwereadeand just "find_zookeepers" forces me into "as" imports12:05
fwereadewhich suck12:05
fwereadeheh, as soon as I speak in public I think of something better12:05
niemeyerfwereade: Aha, I see12:09
niemeyerfwereade: Change the other ones, then12:10
niemeyerfwereade: find_orchestra_zookeepers12:10
niemeyerfwereade: Which will take less arguments, I suppose12:10
fwereadeniemeyer: I guess, but then we have the namespace repetition12:10
fwereadeniemeyer: ...and I now realise that there's an uncomfortable overlap between what I have and some other ec2 code12:11
fwereadeniemeyer: I think it was always there, but it's just become obvious12:11
fwereadeniemeyer: more thinking required 12:11
fwereadeincidentally, any objections to introducing MachineNotFound and MachinenotReady errors?12:12
hazmatniemeyer, is there an equivalent of virtualenv for goinstall ?12:12
niemeyerhazmat: There's no need to..12:13
niemeyerhazmat: It won't install anything on your system12:14
niemeyerhazmat: Just define something like "export GOPATH=~/gopath"12:14
niemeyerhazmat: Everything will be there12:14
niemeyerfwereade: Agreed regarding repetition.. but there's no way to avoid it, one way or another12:15
niemeyerfwereade: E.g.12:15
niemeyerfwereade: We can also call the other side "find_zookeepers_common"12:15
niemeyerfwereade: Instead of "_core"..12:15
niemeyerfwereade: Which is repeating the "common" namespace12:15
fwereadeniemeyer: well, my thought was that actually the only provider-specific bit is a function that takes an instance id and returns a machine or raises an error12:16
niemeyerfwereade: So either: 1) We rename on import, or 2) We add the namespace so we can use both in the same context12:16
niemeyerfwereade: 2) sounds better12:16
niemeyerfwereade: I have no preference in terms of which side to rename12:16
fwereadeniemeyer: but I've realised there's actually no need to have more than one find_zoookeepers function anyway12:17
niemeyerfwereade: find_zookeepers_common or find_orchestra_zookeepers sounds ok12:17
niemeyerfwereade: How so?12:17
fwereadeniemeyer: the only difference between ec2 and orchestra is the callback which determines whether an instance id is good enough to turn into a machine and return12:18
fwereadeniemeyer: so all I need to do is come up with a good name for *that*, and somehow deal with the fact that the code is very similar to existing code that turns instance_ids into machines12:19
niemeyerfwereade: Hah, neat12:19
niemeyerfwereade: Woohay composition12:20
niemeyer:-)12:20
fwereadeniemeyer: yeah, it's rather pleasing12:20
niemeyerfwereade: Testing also gets a lot easier12:20
fwereadeniemeyer: ...potentially :)12:21
=== otubo is now known as otubo[AFK]
fwereadeniemeyer: I've noticed at least one place where we do just mock out our own code, and trust that the result of composing verified pieces is itself effectively verified, but I understood you had some pretty serious reservations with that approach12:22
fwereadeniemeyer: that statement makes me think I may not have fully grasped your position12:23
fwereadeniemeyer: certainly, I can test the common one very nicely, but I'm not sure what level of testing you'd prefer for the actual provider implementations12:25
niemeyerfwereade: It's more likely that the code went in unnoticed.. I'm pretty sure you understand my position well12:26
fwereadeniemeyer: hah, ok then :)12:26
fwereadeniemeyer: you'll be pleased to know it is verified separately as well, as I recall12:27
fwereadeniemeyer: but I'll make a note to kick it about a bit next time I notice it12:27
niemeyerfwereade: I've seen such "that's how it should be" cross-mocking test cases pass gracefully with an implementation that exploded in practice12:27
fwereadeniemeyer: likewise ;)12:28
fwereadeniemeyer: I have fuzzy ideas about a fruitful middle ground, but it's a total derail now, maybe I'll get around to writing them up properly at some point though12:29
niemeyerfwereade: mocker has means to avoid some of the pain, but it's still very far from perfect12:29
niemeyerfwereade: (it actually checks interfaces) 12:29
fwereadeniemeyer: I saw that, and liked it12:32
fwereadeniemeyer: but indeed, no silver bullet :)12:35
niemeyerfwereade: Yeah, "takes the same number of arguments" is far from a valid guarantee12:36
fwereadeplease confirm: all I need to do to get cobbler-find-zookeepers back in the queue is to mark it "needs review" again13:25
niemeyerfwereade: That's right13:29
fwereadeniemeyer: cheers13:29
fwereadeniemeyer: cobbler-launch-machine review [7]13:31
fwereadeWhy are we "fixing" a dictionary in-flight rather than producing13:31
fwereadethe right one?13:31
fwereade...please expand13:31
fwereadeis it just that you'd rather build the dictionary up from scratch?13:32
niemeyerfwereade: No.. passing untyped blobs of data is already not ideal by nature13:33
fwereadeniemeyer: certainly13:34
niemeyerfwereade: The logic there goes one step further by moving keys around within the dicionary13:34
niemeyerdictionary13:34
niemeyerfwereade: Why is it doing so?13:34
fwereadeniemeyer: because the expected format of machine_data doesn't match the expected format of the args to format_cloud_ini13:35
fwereadeniemeyer: I seem to recall the ec2 provider mungs it a bit as well13:35
niemeyerfwereade: Why?13:35
niemeyerfwereade: It's clear that we do it.. what's not clear is why we do it13:36
fwereadeniemeyer: ha :)13:36
fwereadeniemeyer: I have no idea13:36
niemeyerfwereade: So let's not do it13:36
fwereadeniemeyer: sounds good :)13:37
fwereadeniemeyer: otherwise, re gzipping the data13:37
fwereadeniemeyer: you just don't feel there's any call to go gzipping things until we're using a lot more space?13:38
fwereadeniemeyer: or is there some other consideration?13:38
niemeyerfwereade: No, that's all really.. it feels like added complexity without benefit13:42
niemeyerfwereade: I suspect the ungzipped content should fit within a single ip packet.. given that and how rare the event is, it sounds unnecessary13:42
fwereadeniemeyer: yep, and we can always reinstate it if it becomes a problem :).13:43
fwereadeniemeyer: I think I know what I'm doing now then :)13:43
niemeyerfwereade: It won't become a problem.. who would need more than 640k of memory13:43
fwereadeniemeyer: :D13:43
niemeyer;-)13:43
fwereadeniemeyer: incidentally: there's no way to fix the incorrect prereq without resubmitting the mp, is there?13:45
niemeyerfwereade: I thought it was just a matter of editing it.. but I've never tried to be honest13:46
fwereadeniemeyer: I see no editability13:47
fwereadeniemeyer: not to worry, resubmissions have previous-version links IIRC13:47
RoAkSoAxfwereade: howdy!!13:50
fwereadeRoAkSoAx: heyhey13:50
fwereadeRoAkSoAx: how's life?13:51
RoAkSoAxfwereade: good good, how about yours?13:51
fwereadeRoAkSoAx: yeah, I just had a nice "I'm being paid to sit at home and write code!" moment :)13:51
fwereadeRoAkSoAx: and stuff's making its way into trunk13:51
RoAkSoAxfwereade: hehehe cool for both13:52
RoAkSoAxfwereade: did you receive my email?13:52
fwereadeRoAkSoAx: I saw; I probably won't get onto integrating them today I'm afraid13:53
fwereadeRoAkSoAx: didn't see what branch they were in though...13:53
RoAkSoAxfwereade: that's fine, I just have a few things to fix first13:53
RoAkSoAxfwereade: haven't put them yet, i'm preparing it now13:53
fwereadeRoAkSoAx: ah cool13:53
RoAkSoAxfwereade: but this is the result: http://pastebin.ubuntu.com/657941/13:54
fwereadeRoAkSoAx: sweeet :D13:54
RoAkSoAxfwereade: ok so take a look mat this first, and then we can discuss it as there's a few things to discuss: http://paste.ubuntu.com/657943/13:56
fwereadeRoAkSoAx: ok, just need a quick break before conversation, back in a mo14:00
RoAkSoAxfwereade: sure I'm ghonna prepare some tea ;)14:00
fwereadeRoAkSoAx: ready when you are14:03
=== otubo[AFK] is now known as otubo
RoAkSoAxfwereade: do you have any thoughts about it first?14:08
fwereadeRoAkSoAx: looks broadly sensible, I think, I've got my eye on the existing structure in ec2 for possible rearrangement, but it's really helpful that it matches closely14:09
RoAkSoAxfwereade: its pretty much exactly the same as the ec2 classes but with minor changes14:10
fwereadeRoAkSoAx: yep, exactly14:10
RoAkSoAxfwereade: 1. in cobbler.py I've added describe_systems (instead of using describe_system). I've done this to be more closely related to describe_instances from ec2. If we pass the instance_id it will jsut return the system for that instance id, in a *list*14:11
RoAkSoAxfwereade: or return a list of systems if instance_id not specified14:11
fwereadeRoAkSoAx: I saw that, I'll probably change it to take (self, *instance_ids) to match more closely14:12
fwereadeRoAkSoAx: I'm a little unsure about whether it's directly analogous though14:12
RoAkSoAxfwereade: note that I did this because *describe_instance* is used in other places and it doesn't assume that is it returns list, but rather just the info of a system14:12
fwereadeRoAkSoAx: yep, that's cool14:12
fwereadeRoAkSoAx: I'm just a little uncertain about the differences between what that returns and ec2 returns14:13
RoAkSoAxfwereade: but the reason why I did it is because we require to either return the info of an specified system, or the info of all the systems14:13
RoAkSoAxfwereade: yes, that's also what I want to discuss 14:13
fwereadeRoAkSoAx: it may be one of hose fundamental differences14:13
RoAkSoAxfwereade: indeed. so looking at iterate.py if you notice there's a fixme in line 120 of the diff I sent14:14
RoAkSoAxfwereade: in nthe commented part we are handling stuff such as "instance.dns_name" (line 128), while the way the systems are returned from cobbler, we cannot use it like that but rather something like "instance["name"]"14:15
fwereadeRoAkSoAx: but it might be worth filtering on available mgmt_classes14:15
fwereadeRoAkSoAx: I think those classes are expecting to work with Machine instances rather than system names14:15
fwereadeRoAkSoAx: oops misunderstood14:16
fwereadeRoAkSoAx: my internal definition of "describe_system" was "get everything you know", rather than "give me an identifier"14:16
RoAkSoAxfwereade: which I believe is the right thing to do for describe_systems. My only concern is why on ec2 it uses stuff such asnstance.dns_name or instance.instance_state in that particular function14:18
fwereadeRoAkSoAx: just because that's what we get back from txaws14:18
RoAkSoAxfwereade: cause in our case, we would have to use instance["what-ever-field-on-dictionary"]14:18
RoAkSoAxfwereade: ah ok, so that answers my questions then14:18
fwereadeRoAkSoAx: I feel that comes under the category of "acceptable difference"14:18
fwereadeRoAkSoAx: cool14:19
RoAkSoAxfwereade: indeed.14:19
RoAkSoAxfwereade: one more thing. in cobbler.py lines such as: info = yield self._call("get_system", (name,))14:20
RoAkSoAxfwereade: that call get_systems calls what?14:20
fwereadeRoAkSoAx: sorry, can't parse14:20
fwereadeRoAkSoAx: best guess, it calls the "get_system" cobbler api function, which returns the big dict14:21
fwereadeRoAkSoAx: which "get_systems" helpfully gives us just a list of names ;/14:21
RoAkSoAxfwereade: it gives us the list of systems with all its information14:21
RoAkSoAxfwereade: without filtering management classes14:22
fwereadeRoAkSoAx: the singular version gives us loads of information14:22
fwereadeRoAkSoAx: I'm pretty sure the plural version just gives us a listof names14:22
RoAkSoAxfwereade: no, both return the system(s) with all the information14:22
fwereadeRoAkSoAx: ...I'll have to check that, I'm sure I was getting different results14:23
RoAkSoAxfwereade: ok14:24
RoAkSoAxfwereade: ok so, ltes imagine it returns a list of all systems without filtering management-classes14:24
fwereadeRoAkSoAx: ok14:25
fwereadeRoAkSoAx: just checked, you're perfectly right14:26
* fwereade peers suspiciously at reality14:27
RoAkSoAxfwereade: heheh :) anyways, what do you think we should do14:27
RoAkSoAxfwereade: 1. describe only the system filtering by management classes or 2. obtain absolutely all the systems and only filter them in _filter_provider_machines on iterate.py14:28
fwereadeRoAkSoAx: to match ec2, it makes sense to filter so we only get acquired systems14:29
fwereadeRoAkSoAx: and do that via find_system perhaps?14:29
RoAkSoAxfwereade: there's a way to return only the only the set of systems we want14:30
RoAkSoAxlet me look into that first14:30
RoAkSoAxfwereade: but yes that's what I was thinking too14:30
fwereadeRoAkSoAx: I changed some get_systems-and-itrate code to use find_system a while ago14:30
RoAkSoAxfwereade: anyways, I guess we are on the same page now, I'll finish this stuff and fw it to you for review/upload/tests or whatever you need to do to get it merged ;)14:31
fwereadeRoAkSoAx: the troble is I can imagine cases where either has pathologically bad performance14:31
fwereadeRoAkSoAx: sounds good :)14:31
fwereadeRoAkSoAx: btw, I just pushed the latest set of updates to shadow-trunk14:32
RoAkSoAxfwereade: cool, will pull now ;)14:34
RoAkSoAxfwereade: but it looks like by friday we would have shadow-trunk up and running perfectly in preparation for the sprint ;)14:34
fwereadeRoAkSoAx: fingers crossed :)14:35
hazmathmm.. i think i've hit a zk binding bug14:47
niemeyerUh oh14:52
robbiewhttp://www.sadtrombone.com14:59
hazmatthe version doesn't increment publicly on acls15:20
hazmatworking hypothesis set_acl doesn't seem to modify version15:21
niemeyerhazmat: I was kind of expecting this15:27
niemeyerhazmat: I wouldn't expect watches to fires with an acl change15:28
niemeyers/fires/fire15:28
=== otubo is now known as otubo[AFK]
hazmatniemeyer, makes sense, just not what i had done with the acl node modifications with a version retry loop, i guess there isn't anything to do with concurrent mods here. interesingly it does the right things for errors here, as using the same  current version for multiple set_acls gives a badversionerror15:31
niemeyerhazmat: That sounds suspect15:32
niemeyerhazmat: It'd mean a node can only have its acl changed once15:32
hazmatniemeyer, per version15:32
niemeyerhazmat: Yes..15:33
hazmathmm15:33
hazmatnevermind, i'm still missing the bug somewhere15:33
hazmati'm getting badversionerrors out of the acl modification code, even though i'm definitely passing in a current version15:34
=== daker is now known as daker_
hazmatniemeyer, aha.. that is the bug.. but only if version == 015:35
RoAkSoAxfwereade: ping15:35
fwereadeRoAkSoAx: pong15:35
niemeyerhazmat: Well, it probably expects the current version to be provided15:35
niemeyerhazmat: But it won't update the version15:35
niemeyerhazmat: So you can set multiple times15:35
niemeyerhazmat: Is that right?15:35
hazmatniemeyer, the current version is being passed in all cases, if node version > 1, works fine, you can setacl multiples in a version, unless the node version == 0, ie the intial node content.15:36
hazmatthen it raises badversionexc15:36
RoAkSoAxfwereade: I was looking at the connect.py from ec2, and I was wondering that the SSHClient stuff might explain why when obtaining the data for cloud-init for any deployed systems, it checked for the keys15:37
RoAkSoAxfwereade: were you able to look into that further?15:37
niemeyerhazmat: Interesting..15:38
hazmatRoAkSoAx, i'm not familiar with the orchestra integration, but if cloud-init is being processed correctly, ensemble should already  be passing in the keys for sshclient to work correctly15:38
niemeyerhazmat: Sounds like a bug indeed15:38
fwereadeRoAkSoAx: I'm afraid I never did15:38
RoAkSoAxhazmat: right, the problem we had was that when I deployed, the zookeeper machine, checked to see if it had public ssh keys in the zookeeper, and we werent able to identify why but now that you are saying that the client machine should pass the keys to the zookeeper, that would make sense and should work15:39
niemeyerBy the way, I'm working on the Formula Repository spec!15:41
niemeyerIt took just an year to start this.. I guess I'll drink something tonight to celebrate15:42
fwereadewell begun is best begun, and best begun is nearly finished :P15:44
robbiewm_3: what's your shirt size..3X or 2X :)15:48
hazmatniemeyer, actually it looks like you can't do multiple sets in a single version, you need to increment the version beyond what any of the node apis say the current version is for a subsequent set to work against, http://pastebin.ubuntu.com/658008/15:49
hazmatregardless of the value of version15:49
niemeyerhazmat: This test doesn't give away much in terms of what's actual behavior (vs. what expected)15:51
hazmatRoAkSoAx, it happens different depending on if its the bootstrap  node or seeding zk for the provisioning agent15:51
hazmatRoAkSoAx, for the bootstrap node the client key comes from cloud-init, for the provisioning agent, on the initial deploy the ssh keys are transported along with the materialized environment config to zk15:52
hazmater. ssh pub key that is15:52
hazmatniemeyer, the failure catches are the ones setting the acl multiple times, i caught to verify with multiple version numbers, its simpler without the additional/redundant check15:54
niemeyer        # Now i can do multiple setacls against the same version15:56
niemeyer        # Fail if set multiple in same version15:56
niemeyerhazmat: The two sentences disagree..15:56
hazmatniemeyer, yeah.. its rough.. the principals should be different as well15:56
niemeyerhazmat: So it fails every time?15:56
niemeyerhazmat: When setting multiple?15:56
hazmatniemeyer, yes, using setacl multiple times against the same version fails, and the publicly available node version doesn't change with setacl15:57
niemeyerhazmat: Would be worth understanding the background about this15:58
niemeyerhazmat: It feels like a very awkward behavoir15:58
niemeyerhazmat: It must be keeping track of the version in which ACLs are being set, and preventing following changes15:58
niemeyerhazmat: Which feels like additional work that would have to be explicitly done, rather than an oversight15:59
hazmatniemeyer, i see now.. there is another version number tracking all node changes15:59
hazmat{'pzxid': 3L, 'ctime': 1312387130343L, 'aversion': 2, 'mzxid': 6L, 'numChildren': 0, 'ephemeralOwner': 0L, 'version': 1, 'dataLength': 7, 'mtime': 1312387130408L, 'cve\15:59
hazmatrsion': 0, 'czxid': 3L}15:59
hazmataversion has the right version mod to use15:59
hazmattracked separately from content to not effecting change watches16:00
niemeyerhazmat: Aha, phew16:02
m_3robbiew: better go 3x if you're doing t-shirts16:02
robbiewm_3: ack16:02
m_3robbiew: thanks!16:02
fwereadeniemeyer: would you object to my making the machine_data/format_cloud_init-args change in a separate branch? I think it's going to add a bit too much noise to cobbler-launch-machine, but having it in a new branch would be a good opportunity to replace the machine_data bag that we all agree is suboptimal16:11
=== otubo[AFK] is now known as otubo
fwereadeneed to be off, I'm afraid, see you all tomorrow16:31
fwereadereviews of my active mps always welcome ;)16:31
_mup_ensemble/states-with-principals r304 committed by kapil.thangavelu@canonical.com16:43
_mup_refactor security test integration, additional encapsulation of security convience apis into a domain node adapter.16:43
_mup_ensemble/states-with-principals r305 committed by kapil.thangavelu@canonical.com16:44
_mup_machine state creation security integration using the domain node adapter16:44
fwereadehey... was there a meeting at which I should have been just now?17:39
RoAkSoAxfwereade: late-command generation is broken i think17:42
RoAkSoAxfwereade: it fails to execute during installation17:42
fwereadeRoAkSoAx: curses: since when? I appear to have totally broken something here, but I think I've somehow screwed up a version of a dependency17:43
RoAkSoAxfwereade: since right now... yesterday I was working with an old zookeeper I had running cause i couldn't install from mini iso for some reason17:44
RoAkSoAxfwereade: but today installation works, but late-command execution fails17:44
* fwereade looks crestfallen17:45
fwereadeRoAkSoAx: I don't suppose you have a working ks_meta lying around on an old machine you can diff against?17:45
fwereadean old VM, from yesterday or something, I mean17:46
RoAkSoAxfwereade: i don17:46
RoAkSoAxfwereade: i don't17:46
RoAkSoAxunfortunately17:46
RoAkSoAxfwereade: ok found the error :P17:46
niemeyerfwereade: re. your previous question17:46
niemeyerfwereade: I feel half hearted about it..17:46
niemeyerfwereade: :)17:47
fwereadeRoAkSoAx: cool :) what did I do?17:47
RoAkSoAxfwereade: seems to be something wrong with _KSMETA_LATE_COMMAND_TEMPLATE formatting17:47
RoAkSoAxfwereade: I did this: _KSMETA_LATE_COMMAND_TEMPLATE = ("in-target sh -c 'f=$1; shift; echo $0 | base64 --decode | gunzip > $f && chmod u+x $f && $f $*' %s /root/late-command") and it works17:47
RoAkSoAxas it should17:47
niemeyerfwereade: The branch had quite a few points that made it look suboptimal for merging17:47
fwereadethe launch-machine one?17:48
niemeyerfwereade: If you feel it's in a good state, I'll be happy to review17:48
fwereadeniemeyer: sorry, which branch are you talking about?17:48
niemeyerfwereade: It's about your question:17:48
niemeyer<fwereade> niemeyer: would you object to my making the machine_data/format_cloud_init-args change in a separate branch17:48
RoAkSoAxfwereade: but now cloud-init is failing!! yay!!17:48
fwereadeniemeyer: cobbler-launch-machine is still definitely WIP17:49
fwereadeRoAkSoAx: yay! progress!17:49
niemeyerfwereade: Ok.. so keep pushing17:49
fwereadeniemeyer: but I feel it's a little heavy already, and I thought it might be sensible to keep the machine_data/cloud_init changes to their own branch17:50
niemeyerfwereade: My impression of the branch on the review was that it needed fixing.. when you feel it's fixed, please push for review again, and mention what's still open or not, and we can take a decision17:50
fwereadeniemeyer: ok, sounds good. thank you :)17:50
niemeyerfwereade: No worries17:50
RoAkSoAxfwereade: yes seems to be the formatting of _KSMETA_LATE_COMMAND_TEMPLATE17:50
fwereadeRoAkSoAx: excellent (well, you know what I mean ;))17:51
RoAkSoAxfwereade: apply this patch please: http://paste.ubuntu.com/658080/17:55
fwereadeRoAkSoAx: thank you, that looks eminently sensible17:59
niemeyerRoAkSoAx: Huh17:59
RoAkSoAxniemeyer: ?17:59
niemeyerRoAkSoAx: Trying to understand why we're doing all of that17:59
fwereadeRoAkSoAx: safely saved to be applied tomorrow, I'm afraid; I have to dash again for now (*might* make it back later)18:00
RoAkSoAxfwereade: aif you could pply it to shadow-trunk in the meantime would be great18:00
niemeyerRoAkSoAx: This feels like a very complex way to say echo %s | base64 --decode | sh -18:00
RoAkSoAxniemeyer: that's what be were doing before, but fwereade missed those bits :)18:00
niemeyerI won't complain too much, but I'd probably shrink it down a bit18:02
RoAkSoAxniemeyer: yes, but as discussed in MIA, i preferred to keep it cause of the creation of late-command for debugging purposes18:05
RoAkSoAxniemeyer: as was also recommended by smoser 18:05
smoserniemeyer, i dont think that it being complex is necessarily a good reason to not like it.18:09
smoseryour suggested replacement needs a few changes to actually work.18:09
smoserbase64 is not necessarily available outside target, you need 'in-target' somehwere.18:10
smoserthe real benefit of doing it the way i have it is that it is not tied to the output of base64 being executed by 'sh'18:10
smoseralso, it handles passing parameters to the command.18:11
niemeyersmoser: Being unnecessarily complex is the reason I don't like it..18:11
smosernot unnecessarily complex to address those 2 features.18:11
smoseroh, and gzipped (yours would need gzip in the pipeline)18:12
niemeyersmoser: What are the features you'd like to see there?18:12
smosergzip compression, ability to see the script on disk after you've used it (debugging), ability to pass arguments to the script [correctly quoted], ability to execute non 'sh' content without changing that ks macro18:13
niemeyersmoser: in-target /bin/sh -c "echo %s | base64 --decode | gunzip > $1 && chmod +x $1 && $1" /root/late-command18:15
niemeyersmoser: I'd drop gzip.. but that's another topic18:15
smoseri dont know. i'd have ot play with it.18:17
smoseryou cant use single double quotes reliably18:18
smoserdo to parsing of ks_args18:18
smoserbut i admit that that is fuzzy in my recollection18:18
smoserthe other hting that ish't present in yours is the ability to pass arguments to the command you're executing18:18
smoser(which could easiliy be other ks_args)18:18
smoserwhich is what the shift; and $* accomplish18:18
smoserbut i think this conversation is all very bikeshed. you have something that works, tested as works, and you're just trying to change it so you can spend more time testing.18:19
smosercomparing what yo uare suggesting and what i have, the only difference i see is:18:22
smoser * use of double quotes (which i think is causing the problem)18:22
smoser * use of a variable name18:24
smoseranyway18:24
_mup_ensemble/states-with-principals r306 committed by kapil.thangavelu@canonical.com18:43
_mup_enable group members to be added via the domain security object to allow for disabling security to increase test speed.18:43
smoseroh, niemeyer and yours above has a bug.18:44
smoseryou need to use '$0' in that case, as '/root/late-command' is the 0th argument, not the first.18:44
niemeyersmoser: That's because you're using shift within a one-liner18:44
niemeyersmoser: Which is strange18:44
smoseri dont think so.18:45
smoserbut...18:45
smoserbut your $1 is wrong18:45
niemeyersmoser: Yes.. that's what shift does18:45
niemeyer$0 is the executable name by default18:45
niemeyer% /bin/sh -c "echo \$0"18:45
niemeyer/bin/sh18:45
smoser$ sh -c 'echo 0=$0; echo 1=$1' "hi mom" "arg1"18:45
smoser0=hi mom18:45
smoser1=arg118:45
niemeyersmoser: Crazy.. you're right.. /bin/sh changes depending on args18:46
smoserof course i'm righ18:47
smoser:)18:47
smoserit is confusing. i agree.18:47
niemeyersmoser++18:49
niemeyer;)18:49
niemeyersmoser: Still, you see the point?  It feels like there's more being done than necessary18:50
niemeyersmoser: That said, I won't complain too much.. this is minor, and if you feel strong about a particular approach, let's take it18:51
smoserso.. the thing i like about the way i did it is that you dont muck with the internals of the 'sh' command.18:52
smoseryou're just modifying what arguments you pass to it18:52
smoser(ie, the '%s' is outside the single ticks)18:52
smoserand you can pass additional arguments also and they'll get passed onto the content of the script.18:52
smoserbut either way can be made to work.18:52
niemeyersmoser: Yeah, it's cool18:53
niemeyersmoser: We can keep as it is if you're more comfortable that way18:53
smoserwell if it works i'd say keep it.18:54
smoserif it breaks, fix it18:54
smoser:)18:54
niemeyersmoser: From the messages I read above, it wasn't working either way 19:26
niemeyersmoser: Which is why I suggested a simpler approach19:27
smoserRoAkSoAx said it works for him19:28
RoAkSoAxsmoser: niemeyer it does work for me19:31
RoAkSoAxniemeyer: the problem is fixed, The command was incorrectly copied from the bootstrap-cobbler branch to the shadow-trunk branch we are wroking on top of19:31
niemeyersmoser: ^19:31
niemeyerAll good..19:31
=== otubo is now known as otubo[AFK]
=== otubo[AFK] is now known as otubo
hazmatsigh.. getting security integrated into the tests is proving painful21:33
* hazmat wonders if all of the core dev team have ssds21:48
hazmatyeah.. several of the status tests time out on a rotating hd, definitely don't on ssd21:52
hazmathmm21:52
hazmator maybe this is more integration fun21:52
* robbiew prepares PO for ssds21:52
robbiew:P21:52
hazmatftw ;-)21:52
robbiewhazmat: you have an x220, right?21:53
hazmatrobbiew, i do.. haven't picked up a 7mm ssd yet or the msata ssd.. been putting my piggybank towards a nas ;-).. the x220 support's been somewhat problematic atm, kernel panic on sleep.. haven't really dug into it  much21:54
robbiewyeah....I'm running 11.10 and the power usage is shit21:55
* robbiew goes to poke manjo...he's our "inside guy" with Lenovo ;)21:55
hazmatoutside of that.. its really nice hardware, the screen is great.. my battery life is decent (sadly with a nine cell).. i'm hoping to pickup the battery slice if i have to do any long trips21:55
robbiewyeah...I got the touchscreen version...not bad...but the utouch stuff doesn't work21:56
robbiewI'm going to pester the appropriate folks at next UDS though ;)21:56
=== otubo is now known as otubo[AFK]
niemeyerI'm starting to feel happier about the namespaces concept in the repo spec22:06
niemeyerI'll try to push this for an early review sometime tomorrow22:09
niemeyerI'm stepping out for the night, I think :)22:20
niemeyerHave a good time all22:20
robbiewlook out!22:26
robbiewlol22:26
_mup_ensemble/states-with-principals r307 committed by kapil.thangavelu@canonical.com23:35
_mup_encapsulate removal of group members into security adapter, utilize decorator for tests that need security (when the default is off)23:35
hazmati wish profiling where more useful with twisted23:35

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