[02:15] <smoser> mgagne, i just pushed https://launchpad.net/~smoser/+archive/ubuntu/cloud-init-dev
[02:15] <smoser> err.. pushed to that ppa
[02:15] <smoser> its from this branch
[02:15] <smoser> bzr+ssh://bazaar.launchpad.net/~smoser/cloud-init/trunk.fix-networking/
[02:16] <smoser> it should get you closer
[02:16] <smoser> the thing left is getting the device renames done. per the network config that was proviced
[02:16] <smoser> provided
[02:17] <smoser> so your example network_json gave 'eth0' as the names
[02:17] <smoser> but i dont have code to envofrce that on first boot
[02:18] <smoser> it should work after you did 'update-initramfs -u -k all' and reboot
[02:18] <smoser> but clearly thats not ok.
[14:55] <kodokuu> Hi, is it possible to add ssh key without start ssh service with cloud init ?
[14:56] <kodokuu> in cloud env like openstack
[15:35] <smoser> kodokuu, whats the target os ? tehres not a way to do it explicitly, but with boothook or user-data easily enough to stop it and have it not run subsequently.
[16:45] <mgagne> smoser: link id is an arbitrary identifier: https://github.com/openstack/nova/blob/master/nova/virt/netutils.py#L273-L274
[16:45] <mgagne> smoser: it's not THE interface name
[16:46] <mgagne> http://specs.openstack.org/openstack/nova-specs/specs/liberty/implemented/metadata-service-network-info.html#rest-api-impact "Generic, generated ID"
[16:47] <mgagne> it happens to be eth0 on our setup, we have a custom implementation of the spec which wasn't ready at the time we needed it
[16:48] <harlowja> so smoser merge https://code.launchpad.net/~harlowja/cloud-init/cloud-init-net-refactor/+merge/293957 next week right??? ;)
[16:48] <smoser> mgagne, the intent is that it is declaring the name.
[16:49] <smoser> harlowja, yes. sure. always next week :)
[16:49] <harlowja> lol
[16:49] <smoser> but yes.
[16:49] <harlowja> :(
[16:49] <harlowja> pinky swear?
[16:50] <harlowja> http://www.urbandictionary.com/define.php?term=pinky%20swear lol
[16:50] <harlowja> #2 defintion there is the best
[16:50] <harlowja> "an eternally binding promise (made by two people hooking their pinky thumbs together), which, if broken, will result in the culprit losing his or her pinky"
[16:50] <mgagne> smoser: we should get a configdrive generated by latest upstream. it won't be eth0
[16:51] <mgagne> will test against ppa right now
[16:51] <smoser> mgagne, thts fine. whatever name it says, is the name that cloud-init will name it to be
[16:51] <smoser> that  make sense ?
[16:51] <mgagne> no
[16:52] <smoser> you're declaring the nic with this mac is to be named this
[16:52] <mgagne> nowhere it's written that the OS should rename the nic for that provided name
[16:52] <mgagne> it's a ID, not a name
[16:53] <harlowja> pinky swearrrr?
[16:53] <harlowja> lol
[16:53] <harlowja> don't make me get your pinky
[16:53] <harlowja> lol
[16:54] <smoser> hmm
[16:58] <smoser> http://paste.ubuntu.com/16736838/
[16:59] <smoser> mgagne, err..
[16:59] <smoser> http://paste.ubuntu.com/16736864/
[17:00] <smoser> rharper, ^
[17:00] <smoser> so we were looking at mgagne's data http://paste.ubuntu.com/16735620/
[17:01] <smoser> where the name of 'link' was something that could be used as a nicname
[17:01] <rharper> right, read backscroll
[17:01] <smoser> but in serverstack we see http://paste.ubuntu.com/16736864/
[17:01] <smoser> where link tapf6f6405e-15
[17:01] <smoser> not sure what to do here...
[17:03] <smoser> "if the name looks like it was intended to be a name, then use it otherwise make up a reasonable name" ?
[17:06] <rharper> smoser: right, either introduce a specific name field, which is designed to set the name, or someone makes something up; it could be a subset of the id (with limitations due to kernel naming limits);  it could be cloud-init making one up; it could be nothing and let systemd set the name;
[17:13] <smoser> ok.
[17:13] <smoser> for each entry in the 'links' array
[17:14] <smoser>  if there is a 'name' entry, use it as the name
[17:15] <smoser>  if id matches [a-z][a-z]*[0-9] and is less than length 6 then use it
[17:16] <smoser>  else, use nicN, where N is the index in the 'links' array
[17:16] <smoser> ?
[17:16] <smoser> rharper, ^ mgagne ^
[17:16] <smoser> i dont love the "if matches" stuff... so we could just ditch that and its both more sensible and predictable.
[17:32] <rharper> https://blueprints.launchpad.net/nova/+spec/metadata-service-network-info  says 'name' would be part of the response... initially, the spec then replaced name and network_id with just id ... so I dunno;  I don't see why we can't use id as a identifier of nics
[17:43] <mgagne> why should cloud-init be in the business of renaming interfaces?
[17:44] <mgagne> blueprint is not the authoritative source of information. spec is what people review, approve and implement.
[17:44] <smoser> mgagne, so that the user can declare what the name is.
[17:45] <mgagne> there is no way to provide such information in OpenStack
[17:45] <mgagne> and OpenStack doesn't care about that detail
[17:45] <mgagne> it uses DHCP by default without configdrive. there is no way to tell an OS to rename it's interface name with DHCP
[18:07] <smoser> well, yes. when there is no source of networking truth, the fallback is used. that is sane.
[18:07] <smoser> but when there is someone that declares things, we want to follow that.
[18:08] <smoser> you're arguing that there is nothing in openstack that is declaring that, and i think i'm ok with that.
[19:21] <mgagne> "when there is someone that declares things, we want to follow that." it was never the intent of the link id field.
[19:22] <mgagne> afaik
[19:23] <mgagne> but I see rackspace uses it as a fallback which I disagree with.
[19:23] <mgagne> there used a private implementation which doesn't behave the same as upstream. upstream will never send "eth0" in that field.
[19:24] <mgagne> JayF: ^