=== shardy is now known as shardy_lunch === shardy_lunch is now known as shardy [13:24] smoser, i'm gonna work on https://bugs.launchpad.net/cloud-init/+bug/1583841 if you don't mind [13:25] that is odd that we explicitly install ruby1.8 [13:25] oh... because we just dont know i guess? as the gems installer is not from the archive/ [13:25] maybe. but thanks! [13:25] i'm assuming at one point there were multiple rubys and it needed specific one [13:26] also noticed that our chef example config is broken, i have that working locally.. i'll submit bug & MR [13:26] the upstream apt repo changed [13:29] jgrimm, fyi, cloud-init got let in this morning to zesty. [13:29] i saw! [13:30] \o/ [14:26] powersj, if i want to run the tox citest against code changes i've made in my local cloud-init repo. i'm guessing i need to create a dep and supply it, otherwise it will test against archive cloud-init? [14:26] s/dep/deb [14:29] jgrimm: yes; [14:29] I think we should add that workflow example to the tests.rst doc [14:30] thanks, right.. i found it in practice, but the docs could be clearer [14:30] I'm pretty sure you can: ./package/bddeb ; and then feed the resulting deb to the test ... now; magicalChicken did work on adding a 'build deb' stage [14:30] sweet [14:30] as not everyone has deps installed for binary build [14:30] right [14:30] I've just not tested it, so don't know the flags/steps etc [14:30] if you figure them out, a MR for doc updates would be great [14:31] :) i was mostly looking for confirmation of what i was seeing [14:31] and yes, on docs updates [14:31] =) [14:39] or we could just accept wes' merge that does it for you :) [14:39] heh, indeed i want that to happen soon === nacc_ is now known as nacc [15:06] rharper, https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/321578 [15:07] looking [15:08] neat [15:13] reviewed, somewhat concerned by always filtering 'stolen' mac entries; I'd like to scope the filtering to just the rename case where we know that we don't want those interface mappings [16:04] rharper, read my comment there please. and see what you think [16:11] bah. adding the RuntimeError makes unit tests fail on my system [16:12] RuntimeError: duplicate mac found! both 'virbr0-nic' and 'virbr0' have mac '52:54:00:4c:a1:4a' [16:14] smoser: looking [16:16] smoser: if all callers are expecting 'physical' nics then maybe the method ought it be called get_physical_interfaces_by_mac(); it certainly appears that all users of the method were interested in 'physical' only; [16:16] smoser: shouldn't we mocking the response there? [16:16] w.r.t your RunTimeError [16:16] that looks like host data [16:18] well, yeah, it *is* host data. [16:19] which yeah should be mocked, but is a good find. thats a bridge, which i think most of the time will have the address of a nic also. [16:19] y [16:19] hehe [16:19] i dont like the word 'physical' [16:19] because explicitly im' including veth [16:19] "base nics" ? i dont know. [16:20] I don't know either [16:20] in the docs I wrote [16:20] but yeah. all callers were expecting "ethernet interfaces" [16:20] I mentioned this was a mix of criteria [16:21] s/ethernet/network interfaces; and I suspect 'present without configuration/composition' [16:21] :) [16:21] get_interfaces_present_without_configuration_by_mac() [16:21] heh [16:21] rolls right off the tounge [16:21] clearly [16:21] get_renameable_interfaces [16:22] so i think i'm going to just exclude bridges for now [16:22] I think the property is certainly key [16:22] we were before as well (excluding bridges) and (name=veth*) [16:22] well, except i'm explicitly including in that list stuff that has a '0' in addr_assign_type [16:23] well the get_interfaces_by_mac() didn't previously exlude bridges [16:23] which is fine, no? those devices were *created* in the kernel vs. added/renamed/modified during boot [16:27] i dont follow. [16:27] so i just changed get_interfaces_by_mac() to exclude bridges [16:28] which i think is right. because bridges are not "present_without_configuration" [16:30] I don't have a bridge around , what addr type was it? [16:30] there's one; 1 for me [16:31] so would have been allowed,; yeah I'm in agreement; I was confused; in the fallback networing code, there is some filtering done there when selecting nics; in that case bridges, lo, and nics with 'veth*' in the name were dropped [16:32] it might be worthwhile to consolidate this 'get_interfaces_by_mac_without_config_excluding_lo' into something common [16:33] is 'lo' the literal value used? maybe get_interfaces_by_mac(with_config: bool, excludes:list) ? [16:35] nacc, yes. [16:35] invalid_interfaces = set(['lo']) [16:35] makes for at least a shorter function name :) [16:35] i would possibly make flags: enum or something, if there are multiple types of withouts [16:36] nacc: yeah, so ls -1 /sys/class/net/* are all of the 'net' devices; some of those don't support renaming, and also aren't useful for a default "first nic which we can likely expect DHCP to work on" [16:36] rharper: yep, makes sense [16:41] smoser: fyi, just tested the zesty cloud-init in a uc16 image; it cleans up the default netplan config perfectly and rendered a new one as expected; nice! [16:43] \o/ [16:43] testing in OpenStack next, and then I'll upload an image for plars to check out on maas [17:06] rharper, nothing is ever easy [17:06] =) [17:10] powersj, i haven't looked into it, but it would be nice to be able to override 'enabled: False' without editing a testcase.yaml.. [17:11] rharper, and for the resolvconf/ifupdown i need to file a debian bug [17:11] jgrimm: like when you try running it by hand with -t and have it still run? [17:11] yep! [17:11] ah! ok :) [17:11] I'll jot that one down [17:11] powersj, as there are testcases disabed due to 'taking too long' for part of normal ci [17:12] but i want to easily run it [17:12] jgrimm: none should be disabled for taking too long, only if 1) we know they don't work 2) they are not done 3) it is covered by another test case [17:14] powersj, see tests/cloud_tests/configs/example/TODO.md [17:14] powersj, but indeed, i did not find the chef one to actually take longer than anything else really to run [17:15] jgrimm: ok, just verified the fix for the cloud-images does work [17:15] Odd_Bloke: --^ fyi [17:15] cool [17:15] nacc, i'm assuming iscsi. :) [17:16] jgrimm: ah yeah that list is things that have not even been written yet [17:17] jgrimm: ack [17:17] powersj, heh.. well someone wrote ' (takes > 60 seconds to run)' so I assumed they'd actually run it [17:18] powersj, indeed comments can lie. :) [17:21] ah ok :) [17:22] powersj, i'm using that install_run_chef_recipes.yaml to test https://bugs.launchpad.net/cloud-init/+bug/1678145 ... I'm ambivalent whether I enable it for citest? thoughts? [17:23] If you get it running, go for it [17:23] right now i've only cobbled in a single test just to see that chef installed.. as good enough, with FIXME to add more comprehensively [17:23] if you don't let me know and I can finish it up. I'd prefer the test while you are working on it :) [17:24] my hestitations were 1) that someone explicitly said it should be disabled (per comment I showed you) 2) it depends on an upstream repo .. I'm not thrilled with external network dependencies in CI 3) only LTSes supported by external apt repo [17:25] so #3 probably needs to wait for wes's featureflag to do skips?? [17:27] jgrimm: that would be pretty easy to do using feature flags, just add a 'ubuntu_lts' flag and require it there [17:27] yep! indeed quite handy [17:28] hmm I agree that the 3rd party repo is undesirable :\ [17:29] heh, but that's what the feature is there for.. easy of installing the upstream [17:30] but shouldn't a hard error if the resource is unavailable would be desired behavior [17:32] I know having unreliable and false negatives is annoying, so do we have any idea how available it is? If it is failing for you even during development then I think that is an easy no. [17:32] powersj, i have no idea at all whether its _really_ unreliable.. just my overall concern with external resources [17:33] heh, except that its a hard failure today because they changed the repo [17:33] and we'd not noticed as we don't have any test. :) [17:33] right so a test would have caught this :) [17:33] haha [17:33] exactly! [17:33] powersj, jgrimm: i could add in support for overriding base feature flags from cmdline. that way the feature could be unavailable everywhere by default, and we could just enable it when we know the resource is available [17:34] * powersj wants to just add it and if smoser sees too many failures we can pull it [17:34] i think that may be handy generally [17:34] powersj, yep, i'm fine with enabling it. skip again if its not worth it [17:34] but.. i'm going to wait for feature flags [17:35] which is this ? [17:35] talking about a test for chef ? [17:35] yep, specifically install_run_chef_recipes.yaml [17:36] which is our chef config example [17:36] no test for it today, which is why this was never noticed: https://bugs.launchpad.net/cloud-init/+bug/1678145 [17:43] smoser: plars tested the ds-identify change for maas cfg parsing, that's working as well [17:44] nacc: \o/ [17:45] jgrimm, yeah.. so we can enable / add one. but as we've seen external dependencies suck [17:45] ie, curtin dependencies on launchpad or archive have a very non-zero failure rate. [17:46] adding a 3rd party dependency has potential for the same. [17:50] smoser, yep. totally aware, that's why i flagged it as an issue [17:50] Odd_Bloke: thanks for your help! [17:53] smoser, for now, i was just looking to add a test that we can use on demand, i'm more wary of having it always enabled. [17:53] right. [18:07] smoser, with zesty cloud-init uploaded, i'm assuming you are working on the corresponding xenial SRU? [18:08] i'm still working on this bond thing :) [18:08] but yeah, that'd be the plan [18:09] ok, yeah, we are gated on next steps with that SRU [20:02] jgrimm: seems you got a harder review than I did ;) [20:03] powersj, lol. its the nature of reviews. you can see something new every time you look in [20:11] rharper, still there? [20:11] https://bugs.launchpad.net/cloud-init/+bug/1677846 . i think i just need to ggive up [20:13] here [20:14] smoser: I thought we already pointed back at the OpenStack change there [20:14] just a dup, right? [20:15] yeah. its just that i think i'm going to give up. at lest for 'dvs' [20:15] and re-push upstream proposal [20:15] why? [20:15] the real rason for ping [20:16] http://paste.ubuntu.com/24290015/ [20:16] ^ that is the diff i have locally [20:16] have to remove use of 'assert_called()' [20:16] but wanted you to review that. [20:16] looking [20:17] taht is diff agastin what is in https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/321578 [20:17] does that provide rasonable test ? [20:17] the thing is kind of hard to test. wihtout mock-o-rama [20:17] * rharper wishes for assert_called(); I use len(mock_obj.call_arg_list) != 0 IIRC [20:19] so, in the case that we see a duplicate, why is devs reset to empty list ? [20:21] OSError is for something besides the RuntimeError for duplicates I suspect [20:21] still not sure why the list would be reset in that case; documenting why we reset the list here would help (it's not obvious to me) [20:23] that said, the unittests look good [20:27] where do you see the list is reset ? [20:29] rharper, ^ ? [20:30] line 25- > 27 [20:30] on the OSError exception if errno.ENOENT [20:30] devs = [] [20:33] that has always been there. [20:33] code motion then [20:33] ok [20:33] if get_device_list() raises an exception [20:33] then it sets the list to [] [20:33] still seems odd to wipe the list, rather than return what it already had [20:33] ie, if you didn't have /sys/class/net [20:33] then you get "no devices" [20:34] there is no "already had" [20:34] I see, if devs was none [20:34] it just looks strange to set it to list, and then continue with a for name in devs which wont do anything, just return [] [20:35] oh, I see, we're returning a dict; well could return an empty dict [20:35] it's fine [20:35] it's harder to see with just the patch context; [20:35] yeah. [20:35] and you're right. return {} [20:35] would be the same [20:36] i dropped the 'devs=' param [20:36] as it was wierd. [20:36] Also drop the 'devs' argument to get_interfaces_by_mac. It was [20:36] non-obvious what the result should be if a device in the input [20:36] list was filtered out. ie should the following have an entry for [20:36] bond0 or not. get_interfaces_by_mac(devs=['bond0']) [20:36] yeah, not sure who we pre-loading it with a set of params [20:37] nothing used it like that. [20:37] s/we/would [20:37] yeah [20:37] maybe for easier unittesting =) [20:37] right [20:37] thats why i added it i'm sure [20:37] =_ [20:37] err, =) [22:14] smoser, thoughts on URL shortener that won't disappear (or desire to use/avoid in the project??) -> https://bugs.launchpad.net/cloud-init/+bug/1669727/comments/1 [22:45] smoser, fwiw... i'm trying to catch up to my long ago promise to sweep through the old bugs and do some housekeeping. long overdue, sorry