[00:10] <harlowja> i almost feel like the above bridge stuff would be fixed by just assuming things bridge to eth0 if not provided a port iface to bridge to
[00:12] <harlowja> or maybe bridges in openstack are something different
[13:02] <rharper> dmsimard: what's the setup?  the network_data.json you posted is an empty bridge (AFAICT);   is that a running instance?  if so, can you paste ifconfig  ?  I'd suspect that the openstack providing network_data.json is missing something
[13:16] <cpaelzer> I must admit I don't 100% understand what apt_old_mirrors is for - doc isn't telling a lot and the code neither
[13:16] <cpaelzer> I'll dig through the commit log for it, but if one knows that part as his best buddy please feel free to share :-)
[13:24] <rharper> dmsimard:  I see what's going on; thanks for the test case;
[13:26] <smoser> cpaelzer, when the image is built, you can/probably-should leave apt's '/var/lib/apt/lists/' around
[13:26] <smoser> that way, the next time someone 'apt-get update' they dont have to pull 20M or whatever it is of data that hasnt changed (the release pocket at least).
[13:26] <cpaelzer> smoser: thanks, but you are jumping to the decision - I wanted to understand what it is actually for
[13:27] <cpaelzer> other than "renaming" I don't see what it really does (by my lack of apt knowlegde about that subdir)
[13:27] <smoser> but since cloud-init picks / writes a different mirror, then your *new* apt-get update is going to miss all that cache
[13:27] <cpaelzer> ah
[13:27] <smoser> so it renames files from the old mirror name to the new mirror name
[13:27] <smoser> but you have to know the old mirror (or at least i allowed you to configure that)
[13:27] <cpaelzer> that makes sense, so if old/new have lot of same content it will not pull all of it then
[13:28] <smoser> probably you could figure it all out and dtrt, or possibly it was more difficult to do that.
[13:28] <cpaelzer> I'd drop this feature (apt_old_mirror) then
[13:28] <smoser> ?
[13:28] <smoser> oh. yeah, out of curtin.
[13:28] <smoser> drop
[13:28] <cpaelzer> exactly - thanks for the explanation
[13:28] <smoser> is that waht you meant ?
[13:28] <smoser> it is useful for cloud-init still
[13:28] <cpaelzer> yep
[13:29] <smoser> although i admittedly don't know if it ends up being used
[13:29] <cpaelzer> oh I understand the cloud-init use case now that I understand what it really does :-)
[13:29] <smoser> the cloud-images may actually have apt-get clean run on them
[13:29] <cpaelzer> I can tell you that the doc is rather ... nonexisting
[13:29] <smoser> that is pointless
[13:29] <cpaelzer> it isn't even listed in examples or such
[13:29] <smoser> as anything in the release pocket is static so you should really never throw that away
[13:29] <smoser> :)
[13:29] <smoser> well, some things aren't really made to be configured.
[13:30] <smoser> clearly documentation is good. and severlely lacking.
[13:30] <smoser> but that is'nt really something that a end user would be expected to configure. so its less important.
[13:30] <smoser> its just configurable rather than having a hard coded value
[13:40] <smoser> cpaelzer, https://code.launchpad.net/~paelzer/cloud-init/test-apt-source/+merge/294521 has merge conflicts
[13:41] <smoser> and did you think at all about the sucky fact that curtin and cloud-init's merging algorithms differ by default ?
[13:44] <cpaelzer> smoser: I did think about the sucky fact (that sounds wrong) and decided to not overhaul any majore piece especially since it would change behaviour
[13:44] <cpaelzer> smoser: but - I added it right away in the example
[13:45] <cpaelzer> smoser: so that anybody that starts at doc/examples would be made aware that to get an equivalent mergeing he would need to set it
[13:45] <cpaelzer> smoser: merge conflicts in bzr is the same as in git - i.e. something else got merged that now conflicts - right ?
[13:46] <smoser> yeah.
[13:46] <smoser> bzr merge ../trunk
[13:46] <smoser> bzr conflicts
[13:46] <smoser> bzr resolve foo
[13:48] <cpaelzer> smoser: I'll look into it and (try to avoid) hate bzr :-) after I finished my config example for curtin
[13:48] <cpaelzer> smoser: will upload updates later on then (hoepfulyl no too complex conflicts)
[14:12] <smoser> cpaelzer, fwiw, i just checked in a xenial container and the image *does* have /var/lib/apt/ populated, so that cloud-init's renaming those should result in not having apt-get update re-download static data.
[14:28] <cpaelzer> smoser: cool will look into that, but I'd expect for curtin to only hardcode the paths then (no config option)
[14:30] <smoser> cpaelzer, you can drop that from curtin if you'd like
[14:31] <smoser> it is probalby useful
[14:31] <smoser> but a small-ish optimization compared to installing an operating system
[14:43] <rharper> dmsimard: https://code.launchpad.net/~raharper/cloud-init/trunk.network-data-bridge/+merge/295591
[14:45] <dmsimard> rharper: what do you need to know for linuxbridge ? What a network_data.json looks like with multiple networks and ports?
[14:45] <rharper> dmsimard: yeah
[14:45] <dmsimard> I can get you that.
[14:45] <rharper> and if it sets any bridge properties
[14:46] <rharper> under the link section
[14:46] <dmsimard> Well, the json I provided is a linuxbridge environment so I'm not sure what else could be there
[14:46] <rharper> currently in that patch I'll copy in any keys that start with bridge;  the rackspace config I've seen had bond related stuff that I've not seen elsewhere and vlan'; but I lack a deep list of network_data.json examples from real clouds
[14:47] <rharper> dmsimard: you can set things like bridge_stp, bridge_fd, bridge_hello
[14:47] <rharper> the most interesting would be a set of interfaces to add to the bridge
[14:47] <dmsimard> Hmm, perhaps mgagne would have something for bonded networks
[14:47] <rharper> I've got a good bond example from rackspace a while back; but others are welcome
[14:48] <dmsimard> Yeah Rackspace tends to do things slightly differently, it's best not to rely just on them
[14:48] <rharper> sure
[14:49] <dmsimard> I'll get you a config drive with multiple networks and ports later
[14:50] <rharper> thanks!
[15:56] <cpaelzer> smoser: once the conflicts are understood and fixed in the file - do I do bzr commit followed by bzr resolve - or will bzr resolve alone be what I want?
[15:57] <cpaelzer> docu reads like the second
[15:57] <smoser> bzr resolve
[15:57] <smoser> and then bzr commit
[15:57] <cpaelzer> smoser: thanks
[15:58] <cpaelzer> ah in the log I see now how this works (hopefully)
[15:59] <cpaelzer> it is not rebasing mine onto current upstream (like git) but adding a merge commit on top of mine so that they match again in that regard
[15:59] <cpaelzer> at least that is how it looks like and that also explains why the diff of that last commit was so big it was the delta of the merge essentially
[16:07] <mgagne> smoser: is there anything I can do to help with bug #1577982 ?
[16:23] <smoser> mgagne, i have told some people that i'll have something in yakkety by eod my friday.
[16:25] <mgagne> cool, thanks for the follow up
[16:27] <smoser> mgagne, would you be able to consume a branch for me ?
[16:27] <smoser> if i send you a link ?
[16:28] <smoser> (i dont have it now, but if i point you at a bzr branch woudl you be able to test that or do you need a ppa ? or .... how can i get you to help me on this)
[16:28] <mgagne> smoser: I don't know how to build from bzr
[16:29] <smoser> would a ppa build be sufficent ?
[16:30] <mgagne> yes
[16:30] <smoser> ok. thanks. i'llj ust ping you here when i have somethign
[16:30] <mgagne> sure, thanks!
[17:06] <harlowja> rharper yt
[17:43] <rharper> harlowja: here
[17:57] <harlowja> hey, so i was running dmsimard example openstack network json file through https://gist.github.com/harlowja/d63a36de0b405d83be9bd3222a5454a7 (updated)
[17:58] <harlowja> but am wondering what your expected parts for bridges are
[18:05] <rharper> dmsimard was going to see about getting another example with multiple networks and such;
[18:05] <harlowja> k
[18:05] <dmsimard> yeah I haven't got around to it yet
[18:06] <dmsimard> extinguishing some fires first
[18:06] <harlowja> i can make the bond stuff work, just when i run that
[18:06] <rharper> harlowja: but what I was looking for was whether there would be additional bridge_  options set in the link
[18:06] <harlowja> https://gist.github.com/harlowja/358358fc41685874a12f4db809504c19
[18:06] <rharper> harlowja: I have a bond example from rackspace if you're interested
[18:06] <harlowja> hmmm, bridge doesn't have the params the network_state.py stuff seems to require
[18:06] <harlowja> maybe shouldn't be required?
[18:06] <rharper> harlowja: I posted a MR with the fix
[18:06] <harlowja> MR?
[18:07] <harlowja> mapreduce
[18:07] <harlowja> lol
[18:07] <rharper> bah
[18:07] <rharper> MP
 dmsimard: https://code.launchpad.net/~raharper/cloud-init/trunk.network-data-bridge/+merge/295591
[18:07] <harlowja> k
[18:07] <rharper> I hadn't see a network_data.json with type: bridge before
[18:14] <dmsimard> rharper: ok, getting you that network_data.json now.
[18:15] <dmsimard> rharper: eta ~40 mins or so while the environment is spawned
[18:16] <rharper> dmsimard: cool
[18:40] <harlowja> smoser good to go with https://code.launchpad.net/~harlowja/cloud-init/cloud-init-net-refactor/+merge/293957 ?
[18:42] <smoser> what is usedevelop ?
[18:42] <smoser> and i can't use py26 by default.
[18:42] <smoser> as there simply isn't a py26 anywhere on ubuntu :)
[18:43] <harlowja> that's ok :-P
[18:43] <smoser> other than 'deadsnakes'
[18:43] <harlowja> usedevelop just is a time saving thing, in that it doesn't do a full pip install of cloud-init
[18:43] <harlowja> but uses symlinks
[18:43] <harlowja> i can remove that if needed
[18:43] <smoser> and you're using some magic for tox that is i think not available in 14.04
[18:43] <harlowja> shouldn't matter
[18:43] <smoser> the 'py26' magic
[18:43] <harlowja> ??
[18:44] <smoser> hm.. maybe not
[18:44] <harlowja> http://tox.readthedocs.io/en/latest/config.html#confval-usedevelop=BOOL
[18:44] <smoser> odd
[18:44] <harlowja> i can turn that off though, not that big of a deal
[18:44] <smoser> yeah, that doesnt' seem too bad.
[18:44] <smoser> but why chage 'python -m nose' to nosetests ?
[18:44] <smoser> i think we adtually want {basepython} -m nose
[18:45] <harlowja> think that didn't work on 26
[18:45] <harlowja> let me double check
[18:46] <harlowja> $ python -m nose
[18:46] <harlowja>   /home/jxharlow/.venv/bin/python: nose is a package and cannot be directly executed
[18:46] <harlowja> maybe this was something special on 2.7 + ?
[18:47] <smoser> probably. but how did you drop the tesenv:py26
[18:47] <harlowja> kk, i can just add the special case for 26
[18:49] <harlowja> reposting in a sec
[18:57] <harlowja> ok, reposted, and py26 still work, so goodie
[18:58] <harlowja> and 27 it seems to, so even better
[18:58] <harlowja> :-P
[18:58] <harlowja> https://github.com/harlowja/remote_tox (my tool for testing these on different envs)
[19:21] <smoser> harlowja, so far in curtin we've even staye daway from xi
[19:21] <smoser> six
[19:21] <smoser> xi = 11. :)
[19:24] <smoser> harlowja, you dropped if PY26 ?
[19:24] <smoser> i'm not opposed to being *able* to run tox -e py26
[19:25] <smoser> i just cant have it in the default 'tox'
[19:25] <smoser> as then it errors because ENOINTERPRETER and you can't distinguish that as easily from ETESTFAIL
[19:26] <harlowja> smoser  unittest2 seems to handle that all just fine for tests
[19:26] <smoser> oh. i see.
[19:26] <harlowja> so no more need for crazy if PY26: <testcrap>
[19:27] <harlowja> will take 26 out of default tox list
[19:33] <smoser> harlowja, some 'from cloudinit import in cmdline.py'
[19:33] <smoser> with better quoting that might make sense.
[19:33] <smoser> harlowja, some 'from cloudinit import' in cmdline.py
[19:33] <smoser> and would we not want 'from . import' ?
[19:33] <smoser> or is that a py27 thing too
[19:34] <harlowja> just a thing that i guess is something i've gotten used to from openstack land
[19:34] <smoser> what do you mean ?
[19:34] <harlowja> http://docs.openstack.org/developer/hacking/#imports
[19:34] <harlowja> i've always thought releative imports a little pita, i guess openstack folks do also, so ya, idk
[19:34] <smoser> why?
[19:35] <harlowja> less clear i think (in my view)
[19:36] <harlowja> but maybe its from my java days, idk
[19:36] <harlowja> lol
[19:37] <harlowja> but if we want to just say meh, that's fine also
[19:37] <smoser> well, if we're expecting to be able to 'export' that module so that it is free of cloud-init, then 'import cloudinit' is kind of a fail path
[19:38] <harlowja> fixed via tiny little script :-P
[19:38] <harlowja> replace 'from cloudinit.net' --> 'from <thing>.net'
[19:39] <harlowja> could just make that thing a lib in the first place :-P
[19:39] <smoser> :-P~
[19:40]  * harlowja is trying to shutdown a openstack project that did this kind of copy/paste for years, lol
[19:40] <harlowja> finally getting rid of it, lol
[19:40] <dmsimard> rharper: hai
[19:40] <dmsimard> https://gist.github.com/dmsimard/d5b14f5cba05307a3008315d11520e26
[19:40] <smoser> into its own proper library ?
[19:40] <harlowja> ya
[19:40] <dmsimard> full disk.config = https://dmsimard.com/disk.config
[19:40] <harlowja> many proper libs
[19:41] <dmsimard> harlowja: ^ multi-network/multi-port vm
[19:41] <harlowja> the project i'm a PTL of started off with this copy/paste junk
[19:41] <harlowja> dmsimard nice
[19:41] <harlowja> complex examples ftw
[19:41] <harlowja> with bridges :-P
[19:41] <dmsimard> that was surprisingly harder to set up than I thought, the deployment we're testing only has one network, not two
[19:41] <dmsimard> so I had to do some fiddling by hand
[19:41] <harlowja> ya, i'm hoping the sysconfig stuff i have here handles most of those
[19:42] <harlowja> cause it gets whacky real quick, lol
[19:42] <harlowja> smoser  https://wiki.openstack.org/wiki/Oslo#Incubation
[19:42] <harlowja> lol
[19:43] <dmsimard> I'll have that dev environment for 24 hours until it self destructs (reaped by auto reprovision) so let me know if you need anything else from it
[19:43] <harlowja> kk
[19:44] <dmsimard> I think that gist and disk.config should have what you need
[19:44] <harlowja> as many examples u can make would be sweet :-P
[19:44] <harlowja> once liberty is deployed where i'm at that should help also
[19:44] <harlowja> but the more the merrirer
[19:44] <dmsimard> that example is mitaka
[19:44] <harlowja> k
[19:53] <rharper> dmsimard: thanks!
[19:55] <dmsimard> rharper: np, like I said you have 24h if you need anything else :P
[19:57] <rharper> dmsimard: that looks fine; the MP I posted earlier parses that just fine;  I was mostly interested to see if any other bridge related parameters might get set in the "links" entries of type: bridge; they look the same here so unless you know of an Openstack that might twiddle with bridge settings like forward delay, stp or other things like that (and have a network_data.json with those values) I think we're good with th
[19:57] <rharper> e current MP to support things.
[19:58] <rharper> dmsimard: hrm, actuall, your network dump from in the guest is interesting;  why doesn't the network_data.json have a the ethernet devices listed ?
[19:58] <harlowja> ya, it almost seems like there is something missing :-P
[19:59] <dmsimard> ethernet devices, like eth0 and eth1 ?
[19:59] <harlowja> are there ethernet devices just assumed to exist
[19:59] <harlowja> ya
[19:59] <rharper> right, so I'd think we'd see bridge_interfaces = list_of_link_id's
[19:59] <rharper> dmsimard: right
[19:59] <dmsimard> I guess it's made agnostic through network0 and network1
[19:59] <harlowja> eth<magic>
[19:59] <dmsimard> but I don't know
[20:00] <harlowja> ya, the dump of /etc/sysconfig stuff would be useful, or whatever else u got 'ifconfig'
[20:00] <rharper> the network describes the ip network config of the link, the link is one of 'ethernet', 'bond', 'vlan', and now 'bridge'; in the vlan and bond case, the "link" indicates if it consumes other links
[20:01] <dmsimard> harlowja: that particular VM was setup through dhcp, not with your branch of cloud init or anything
[20:01] <dmsimard> but the network_data.json and the rest of the info are relevant
[20:02] <rharper> http://paste.ubuntu.com/16664758/  for example this one
[20:02] <rharper> dmsimard: something did the bridge config there ; I think that's what's the interesting part
[20:03] <dmsimard> rharper: from what, the brctl output ? That's from the compute node, not the guest
[20:03] <dmsimard> that's handled by the neutron linuxbridge agent
[20:03] <rharper> ok
[20:04] <rharper> well, I'm somewhat confused then, what does networking look like wihtin the guest that got the network_data.json  ?
[20:04] <dmsimard> let me log in to it, sec
[20:04] <rharper> cool
[20:05] <dmsimard> rharper: what do you want to know exactly ? which files, commands, etc
[20:06] <smoser> harlowja, is it appropriate to call a static method with self.methodname ?
[20:06] <harlowja> ya
[20:06] <harlowja> it is
[20:07] <smoser> ok. so you dont have to do something like self.__class__.methodname
[20:07] <harlowja> nopers
[20:07] <harlowja> same for class methods
[20:07] <nacc> smoser: in python? it's allowed in publishe documentation, i just looked this up for the importer :)
[20:07] <harlowja> man, gonna make me cut out six :-P
[20:07] <rharper> dmsimard: ls -al /sys/class/net and ifconfig -a would be useful ; brctl show would be useful from within in the guest
[20:08] <rharper> harlowja: hehe
[20:08] <smoser> i knew it would work, i just didn't knwo if it was bad form
[20:11] <dmsimard> rharper: there are no bridges in the guest
[20:12] <harlowja> :-/
[20:12] <harlowja> openstack is weird
[20:12] <harlowja> lol
[20:12] <rharper> right, I didn't think so; but the network_data.json is supposed to be exported into the guest;  it appears then like the ovs type; type bridge should be interpreted as a ethernet ... I wonder why it's emitting type bridge with it's not creating one in the gues ?
[20:12] <rharper> harlowja: I think the network_data/metadata is partially implemented
[20:13] <harlowja> possible, https://github.com/openstack/nova/blob/master/nova/virt/netutils.py#L172 is the code for this
[20:13] <harlowja> but ya, i'm unsure if its busted or missing stuff (especially for bridges?)
[20:13] <dmsimard> rharper: why are you expecting bridges inside the guest ?
[20:13] <rharper> the previous example, and the rackspace one which does bonds of ethernet devices and adds vlans is functional
[20:13] <dmsimard> the guest has eth0, that's it, there's no bridges to be had
[20:13] <rharper> dmsimard: because the linkls type is bridge, this is what the guest would get in the network_data.json
[20:14] <harlowja> dmsimard what OS ?
[20:14] <dmsimard> the vtap is bridged on the compute node
[20:14] <rharper> ie, "make me a bridge"
[20:14] <harlowja> if its rhel, i can tell u why its not implemented :-P
[20:14] <harlowja> (cause the gist i have is that impl, lol)
[20:14] <dmsimard> the networking on that VM wasn't setup by cloud init, it was setup by dhcp
[20:14] <dmsimard> I know, I'm the one poking you about rhel/centos support ;p
[20:14] <rharper> dmsimard: I'm aware of how the host networking and VM networks are configured;  I'm trying to understand why the network_data.json would say type: bridge when it's really just type: ethernet (aka, do dhcp on the guest ethernet device)
[20:15] <dmsimard> rharper: some guest info https://gist.github.com/dmsimard/d5b14f5cba05307a3008315d11520e26#file-guest-info-txt
[20:15] <rharper> dmsimard: right, network_data.json can be used to confer a network configuration into the guest
[20:15] <dmsimard> rharper: the network_data.json wasn't used by cloud-init to configure networking
[20:15] <rharper> ie, emit a network config dynamically in the guest, it could be , run dhcp on eth0, or configure eth0 and eth1 as a bridge, etc.
[20:15] <dmsimard> so I don't know if cloud-init would have done anything
[20:15] <rharper> it does now
[20:15] <dmsimard> not for centos :p
[20:16] <rharper> right, which we're trying to fix
[20:16] <rharper> harlowja 's branch and all
[20:16] <dmsimard> though, I *can* spin a ubuntu vm
[20:16] <dmsimard> with the same network config
[20:16] <dmsimard> if you'd like
[20:16] <rharper> it won't matter
[20:16] <harlowja> ya, don't try centos, ha ;)
[20:17] <rharper> the concern is that the openstack metadata is saying the links for the guest are type bridge, which the back end of the device (bridge on the host, or tap pair) doesn't matter; the guest has a virtual nic, and it should run dhcp;  so we can either assume that type: bridge means an  ethernet device in the guest (likew do for type: ovs)
[20:17] <rharper> bah, I've got relocate bbiab
[20:19] <dmsimard> type bridge is probably where you would see type ovs ?
[20:19] <dmsimard> so it probably just stands for "this is a linuxbridge type thing, not an ovs type thing"
[20:19]  * dmsimard shrugs
[20:21] <harlowja> ya, so maybe the bridge isn't what we think a bridge is, lol
[20:25] <dmsimard> pretty sure it can be safely ignored
[20:26] <larsks> Let me chime in: I can tell you definitely it can be ignored.  The guest doesn't care if the underlying l2 infrastructure is using ovs, linuxbridge, or something else.  From the perspective of the guest, it's just an interface.
[20:26] <dmsimard> more than that, the whole links part is probably not relevant
[20:26] <dmsimard> unless, I don't know, it's a baremetal use case or something like that
[20:27] <dmsimard> I don't know much of cloud-init usage beyond openstack VMs
[20:27] <dmsimard> mgagne: are ironic machines using cloud-init for the network config ? (bonding, vlan, etc)
[20:28] <harlowja> ya, there's already code that discards the various types, but weird that it exists in the first place :-P
[20:28] <smoser> dmsimard, there are
[20:28] <smoser> not trunk cloud-init at the moment, but we do hope to have that
[20:28] <dmsimard> smoser: have what ?
[20:29] <smoser> rackspace baremetal use cloud-init and config-drive in bare metal systems for network
[20:29] <larsks> dmsimard: I think network config is via puppet.  I guess mgagne can confirm...
[20:29] <mgagne> dmsimard: yes, there is no other way around for centos7, can't read complex debian bonding config
[20:29] <smoser> but they use out of tree.
[20:29] <larsks> Oh, well, there you go.
[20:29] <smoser> we would like to have that functional all in cloud-init proper
[20:29] <dmsimard> ok, I wasn't sure if it was done by IPA or cloud-init, now we know :)
[20:29] <mgagne> we don't use puppet in customer's instances
[20:29] <mgagne> hold on
[20:29] <mgagne> reading backlog
[20:30] <mgagne> just to make sure I'm answering the right question
[20:30] <smoser> is mgagne rackspace ?
[20:30] <mgagne> I'm Internap
[20:30] <mgagne> or iWeb
[20:30] <smoser> JayF, woudl knwo more about the rackspace for sure.
[20:30] <JayF> You should be careful telling people I know things
[20:30] <mgagne> we talking about baremetal delivered to customers?
[20:31] <JayF> You'll just lead them to disappointment :)
[20:31] <JayF> me and mgagne know each other already
[20:31] <JayF> natorious: do you have the link to our cloud-init fork for mgagne to check out?
[20:31] <dmsimard> mgagne: I guess the question is more around.. is the "links" part of the network_data.json relevant at all -- It doesn't seem to be for guest virtual machines (since it's l2 knowledge from the compute node) but we were wondering if it was relevant for bare metal.
[20:31] <mgagne> https://github.com/jayofdoom/cloud-init-fedora-pkg ?
[20:32] <dmsimard> mgagne: i.e, referring a linuxbridge network_data.json from mitaka: https://gist.github.com/dmsimard/d5b14f5cba05307a3008315d11520e26#file-network_data-json
[20:32] <JayF> mgagne: no, the one we're using now is in bazaar, natorious will know where it is
[20:32] <smoser> :)
[20:32] <smoser> some day. we will be done of czr
[20:32] <smoser> bzr
[20:32] <smoser> i promise
[20:32] <mgagne> dmsimard: what specifics of links are you referring to?
[20:32] <dmsimard> mgagne: would something like bonding be represented there, for example ?
[20:32] <natorious> its https://code.launchpad.net/~nathan-house-0/cloud-init/cloud-init
[20:33] <natorious> the pkg build scripts are all linked to the working bzr branch so you would want to fork it if your planning on doing distro builds
[20:33] <mgagne> https://bugs.launchpad.net/cloud-init/+bug/1577982
[20:33] <smoser> harlowja, https://code.launchpad.net/~harlowja/cloud-init/cloud-init-fix-test-times/+merge/294854
[20:33] <mgagne> http://paste.openstack.org/show/498744/
[20:33] <mgagne> content is here
[20:33] <smoser> you did not remove nose-timer
[20:34] <mgagne> let me check
[20:34] <mgagne> hold on
[20:34] <mgagne> Im not sure it's the right ocntent
[20:34] <harlowja> smoser  oh, working on it :-P
[20:34] <mgagne> nope, not the right one it seems
[20:34] <mgagne> that's strange, I thought it was bonding
[20:35] <mgagne> ok, let me get one
[20:35] <copumpkin> is it safe to move keys back and forth between userdata and cloud.cfg?
[20:35] <copumpkin> or if not, how can I make things that I would normally write in userdata happen regardless of userdata?
[20:36] <mgagne> ok, issue wasn't with bonding, just ubuntu16.04, wrong bug
[20:38] <smoser> mgagne, if you want see what i'm thinking: http://paste.ubuntu.com/16665427/
[20:43] <rharper> dmsimard: ok; I think we have two cases for when network_data.json is being used;  in your case; (as with the ovs case I've seen) the network metadata refers to how the computenode has configured networking;  bridge, or ovs; however, it's not currently exporting any guest configuration (though it could, for example instead of ipv4_dhcp; it could be ipv4 and emit the static ip config it wanted to assign).  I'll rework th
[20:43] <rharper> e MP to treat the type: bridge like type:ovs, which is to say that we will not attempt to assemble a bridge in the guest, rather each link of type: bridge means we have an ethernet device
[20:43] <dmsimard> rharper: mgagne gave me http://specs.openstack.org/openstack/nova-specs/specs/liberty/implemented/metadata-service-network-info.html#rest-api-impact
[20:43] <dmsimard> It looks like a good sample
[20:44] <rharper> dmsimard: yeah, and notice it doesn't have the linuxbridge example you have
[20:44] <mgagne> and https://github.com/openstack-infra/glean/blob/master/glean/tests/fixtures/liberty/mnt/config/openstack/latest/network_info.json
[20:44] <rharper> but I think the right of it is as I stated above;  for type: ovs and type: bridge, we merely need to translate that to ethernet interfaces in the guest (rather than attempting to assemble a device of type: X in the guest)
[20:45] <rharper> now that's contrasted with the other types which is somewhat in conflict if network_data.json is meant to describe the guest network
[20:45] <rharper> so, I'm not 100% clear on what the right thing is if in the future we wanted to describe how to configure a bridge in the guest with the ethernet devices on the VM
[20:46] <mgagne> there is no bridge on the guest
[20:46] <rharper> right
[20:46] <rharper> I understand that;
[20:46] <mgagne> anything related to bridge is leaked details from internal implementation on the hypervisor, not the guest
[20:47] <rharper> right; so I think the network_data.json you have should have type: phys instead of type: bridge in it
[20:48] <rharper> if we agree that network_data.json is describing guest networking
[20:49] <smoser> so that is actually leaking ?
[20:49] <smoser> copumpkin, for the fast majority of things, yes.
[20:49] <smoser> some things can't really take affect in the user-data but have to be in cloud.cfg.d
[20:50] <dmsimard> rharper: perhaps the nova developers are a better resource to better understand what goes where and why
[20:50] <copumpkin> smoser: like the list of modules for init/config/final? :)
[20:50] <dmsimard> I don't think the network_data.json I gave you is inherently wrong
[20:50] <smoser> the list of modules for config and final can, right? or are you reminding me of a bug, copumpkin
[20:50] <smoser> they should be able to :-(
[20:50] <dmsimard> It's just that the links portion is more than likely just not relevant for guest networking, although it could be for bare metal network (vlan, bonding, etc.)
[20:50] <rharper> dmsimard: well, it's ambiguous; the bridges are clearly on the host; and not part of the guest
[20:50] <smoser> so lets fix that.
[20:50] <smoser> in theory they can. in practice maybe not.
[20:51] <harlowja> smoser ok, whenever u ready https://code.launchpad.net/~harlowja/cloud-init/cloud-init-net-refactor/+merge/293957 has mini six like module now, and using the imports that should be easier to 'extract that net folder out'
[20:51] <dmsimard> rharper: maybe it's a bug and shouldn't be exposed to guests, I don't know
[20:51] <harlowja> rharper dmsimard ya, weird stuff, lol
[20:51] <copumpkin> smoser: oh, interesting, I didn't realize that. Is there some way to disable that?
[20:51] <copumpkin> not reminding you of a bug, nope!
[20:52] <rharper> dmsimard: yeah from my reading of the spec; it's meant to describe networking on the "machine" executing cloud-init and fed the network_data.json
[20:52] <harlowja> if it gets host info, that's odd lol
[20:52] <rharper> so the generator of the json shouldn't include things that aren't meant to be configured/rendered where the json is consumed;
[20:52] <smoser> mgagne, http://paste.ubuntu.com/16665693/ is where i am on making those changes described in the other paste. nothing tested yet, just looking at making the changes.
[20:53] <dmsimard> take it up to the nova guys, I have no clue :(
[20:53] <rharper> dmsimard: sure;thanks for the help
[20:53] <smoser> copumpkin, disable what ?
[20:54] <smoser> it sure would seem both broken and wrong to tell the guest what the host's networking configuration looks like
[20:54] <smoser> even if only partially
[20:54] <rharper> harlowja: I'm leaning on bug here; mostly because it's an under consumed/tested spec.
[20:54] <copumpkin> smoser: the ability to change loaded modules on the fly. I'd like to force userdata to only use a handful of modules
[20:54] <harlowja> https://gist.github.com/harlowja/d63a36de0b405d83be9bd3222a5454a7 (the updated next thing after that refactor branch gets merged)
[20:54] <harlowja> rharper ya
[20:54] <mgagne> I'm not sure I'm qualified to review those changes =)
[20:55] <smoser> copumpkin, i dont think you can disable it. generally the goal is that the user-data wins.
[20:55] <smoser> they're the ones who say waht goes.
[20:55] <copumpkin> hmm
[20:55] <copumpkin> that's unfortunate
[20:55] <smoser> they're the "owner"
[20:55] <rharper> smoser: did we get our network_data.json turned on in serverstack ?
[20:55] <mgagne> dmsimard: there was a bug in earlier version where network_data.json wasn't available in the versioned path (only latest/)
[20:55] <harlowja> rharper i can send out a mail to the openstack dev list, if we can't figure out wtf is going on here :P
[20:55] <smoser> rharper, checking
[20:55] <rharper> harlowja: ok; I suppose I should join that ml
[20:55] <harlowja> (a non ambiguous network_json)
[20:55] <copumpkin> smoser: I guess I could delete the cc_* modules I'm not using? :P
[20:55] <harlowja> rharper  if u want, ha
[20:56] <rharper> harlowja: I think the spec is pretty clear
[20:56] <rharper> harlowja: well, not really but I don't want you to have to be a proxy unless you want
[20:56] <smoser> yeah. you could. but they could put them back in :).
[20:56] <copumpkin> what if I took out write_file?
[20:56] <harlowja> rharper :)
[20:56] <smoser> copumpkin, its definitely never been a intended goal
[20:57] <smoser> i woudlnt be entirely opposed to having the system be able to limit things.
[20:57] <smoser> but i've always been really focused on the other side... amking the user-data able to make me do anything i want with a system.
[20:57] <copumpkin> the main idea would be to provide a well defined interface with a few knobs that the image maker wants tunable
[20:58] <copumpkin> and otherwise making it fairly hard to do arbitrary work on the machine
[20:58] <copumpkin> so the image maker might provide a custom cloud-init module that's enabled
[20:58] <copumpkin> and possibly a couple of the standard ones, but write_file, runcmd, and various other "arbitrary power" ones would be disabled
[20:59] <smoser> rharper, no i dont think so. you should bother openstack team
[20:59] <smoser> http://paste.ubuntu.com/16665816/
[20:59] <rharper> smoser: cool!
[20:59] <smoser> copumpkin, yeah, i can see the point. but that has just never been a focus.
[21:00] <copumpkin> fair enough
[21:00] <smoser> i ahve to run.
[21:00] <copumpkin> thanks for the help!
[21:01] <rharper> harlowja: ok, I've joined; feel free to lob something out there and CC me
[21:01] <harlowja> k
[21:02]  * rharper will attempt to not look like an fool when responding 
[21:02] <harlowja> meh, its ok if u do
[21:02] <harlowja> lol
[21:03] <rharper> haha
[21:08] <harlowja> smoser https://code.launchpad.net/~harlowja/cloud-init/cloud-init-fix-test-times/+merge/294854 fixed up
[21:08] <harlowja> enjoy faster testing lol
[21:08] <harlowja> damn retries :-P
[21:10] <rharper> harlowja: what's the net speed up there?  could you include that in the commit message
[21:10]  * rharper likes nose timer
[21:10] <harlowja> like u really want to know my netspeed?
[21:10] <harlowja> fast i guess?
[21:10] <harlowja> lol
[21:10] <rharper> and setupClass
[21:10] <rharper> harlowja: haha, the net speedup with the timeout=5
[21:10] <rharper> versus trunk
[21:11] <harlowja> oh
[21:11] <rharper> heheh
[21:11] <harlowja> very good vs shitty
[21:11] <harlowja> but sure i can get the number
[21:11] <harlowja> lol
[21:11] <rharper> cool
[21:17] <harlowja> rharper https://gist.githubusercontent.com/harlowja/b015a0751a954b043edb4206768085ec/raw/2ff148bd3c965bcbed5c1f43a532dc998d9219a7/gistfile1.txt let me know if makes sense (or i should add anything else); u can respond with additional questions i guess to (just i don't want to sound stupid in not understanding the issue, ha)
[21:18] <harlowja> weird bridges :-P
[21:18] <rharper> harlowja: I think core  questions 1)  confirm that given link to the spec (http://specs.openstack.org/openstack/nova-specs/specs/liberty/implemented/metadata-service-network-info.html#rest-api-impact)  that the info in the network_data.json represents *guest* network config (either baremetal for ironic, or a VM)
[21:19] <harlowja> k
[21:19] <rharper> if (1) is true; then the example you present is leaking *host* network config
[21:19] <harlowja> ok, u want to followup with those questions ;)
[21:19] <rharper> sure
[21:19] <harlowja> kk
[21:21] <harlowja> rharper  http://lists.openstack.org/pipermail/openstack-dev/2016-May/095835.html sent, will look for followup, tag team emails
[21:21] <harlowja> lol
[21:21] <rharper> k
[21:21] <harlowja> maybe br == phy and they just want the bridge flag set (in sysconfig terms)
[21:21] <harlowja> not quite sure :-P
[21:22] <harlowja> https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s2-networkscripts-interfaces_network-bridge.html
[21:22] <harlowja> not sure what the equivalent is in ubuntu
[21:23] <rharper> harlowja: I think it's just under implemented; it clearly could have used the type: phys
[21:23] <rharper> and the ironic use-case would have used type: bridge to mean, make a bridge
[21:24] <harlowja> ya, perhaps
[21:24] <harlowja> also put times on https://code.launchpad.net/~harlowja/cloud-init/cloud-init-fix-test-times/+merge/294854
[21:24] <harlowja> 12.376s vs 1m12s
[21:24] <harlowja> ;-P
[21:24] <harlowja> :-P
[21:24] <rharper> \o/
[21:24] <harlowja> ha
[21:24] <rharper> data-driven commits!
[21:24] <rharper> how can smoser say no now!
[21:25] <harlowja> i'll find smoser if he says no
[21:25] <harlowja> in his basement
[21:25] <harlowja> lol
[21:29] <rharper> hehe
[21:32] <rharper> relocating, bbiab
[21:36] <harlowja> k
[22:44] <harlowja> rharper have u seen https://github.com/openstack-infra/glean/blob/master/glean/cmd.py#L344
[22:44] <harlowja> another renderer of this stuffs
[22:49] <rharper> harlowja: looking
[22:50] <rharper> harlowja: also; we may want to employ a version'ed converter if this type: bridge and type: ovs are bugs;  in current version or older, we can translate those thoes to type: physical for the network-config yaml
[22:50] <harlowja> ya
[22:51] <rharper> harlowja: that looks like a subset of our eni writer
[22:51] <harlowja> ya, cough cough library
[22:51] <harlowja> that all can share
[22:51] <harlowja> cough cough
[22:51] <harlowja> lol
[23:10] <harlowja> rharper if that refactor goes in, shouldn't be to hard to make the openstack converter versioned to handle that kind of crap
[23:20] <smoser> harlowja, the other slow test is ec2
[23:20] <smoser> and i think its just wrong logic
[23:20] <harlowja> hmmm, could be
[23:21] <smoser> test_userdata_fetch_fail_server_not_found is the test
[23:21] <harlowja> might be another one that is retrying
[23:21] <smoser> i think the return of _skip_retry_on_codes is just wrong
[23:21] <harlowja> ah, could be that to
[23:21] <smoser> its supposed to say that 404 on user-data is ok.
[23:21] <smoser> (and should not be retried)
[23:21] <harlowja> who made that crap, lol
[23:22] <smoser> http://paste.ubuntu.com/16668369/
[23:22] <smoser> that makes it faster
[23:22] <smoser> and faster always means better
[23:22] <smoser> right?
[23:22] <harlowja> yup
[23:22] <harlowja> lol
[23:22] <harlowja> delete all the code
[23:22] <harlowja> lol
[23:23] <smoser> then the other only slow one is test_seed_runs
[23:23] <smoser> which does for i in range(1, 50)
[23:23] <smoser>    for j in range (1, 50)
[23:25] <smoser> makes a bunch of dictionaries (2500)
[23:25] <harlowja> u trying to remove the speedup loop
[23:25] <harlowja> lol
[23:25] <smoser> so now http://paste.ubuntu.com/16668426/ and we're down to 2.6 seconds here locally. with the longgest one still being test_seed_runs
[23:26] <harlowja> cool
[23:34] <harlowja> btw smoser i think the shade guys would be up for considering using a tiny-lib of this net stuff ;)
[23:34] <smoser> shade guys ?
[23:34] <harlowja> sorry i mean glean
[23:34] <harlowja> that other cloud-init thingy
[23:35] <harlowja> the majority of https://github.com/openstack-infra/glean/blob/master/glean/cmd.py  is networking_json stuff
[23:35] <harlowja> https://github.com/openstack-infra/glean/blob/master/glean/cmd.py#L701 ...
[23:35] <harlowja> and looks like that handles (to some degree) sysconfig, eni, gentoo ?
[23:36] <smoser> ./tools/export-net --toplevel=curtin | tar -C ~/your-project -xf -
[23:36] <harlowja> ya ya, they don't want to vendor though i think
[23:37] <harlowja> which is what that would be
[23:37] <smoser> yeah
[23:38] <harlowja> but they might be up for using a tiny-lib
[23:38] <harlowja> or that's what i hear :-P
[23:45] <harlowja> soooo how bout that
[23:45] <harlowja> lol