| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-03-15 | |||
| 18:00:18 | mdbooth | Same as OSP | |
| 18:00:23 | mdbooth | Might be urllib3, then | |
| 18:00:29 | sean-k-mooney | eventlet===0.24.1 on master | |
| 18:00:46 | sean-k-mooney | urllib3===1.24.1 | |
| 18:00:49 | sean-k-mooney | on master | |
| 18:01:04 | mdbooth | OSP: python3-urllib3-1.23-5 | |
| 18:01:11 | mdbooth | Slightly older urllib3 | |
| 18:01:44 | mdbooth | Anyway, as I said in the ML post it's not that important. By not monkey patching first, if it's not this today it will be something else tomorrow. | |
| 18:03:03 | sean-k-mooney | ya | |
| 18:03:41 | sean-k-mooney | at somepoint maybe we can finally move away form eventlets entriely but it will atleast be U before that becomes possible | |
| 18:04:45 | sean-k-mooney | i.e. we need to drop python2 support first | |
| 18:20:31 | melwitt | sean-k-mooney: you might be able to help triage this bug, looks in your wheelhouse https://bugs.launchpad.net/nova/+bug/1801303 | |
| 18:20:31 | openstack | Launchpad bug 1801303 in OpenStack Compute (nova) "VM send DHCP request before openflow is created in br-int" [Undecided,New] | |
| 18:26:02 | openstackgerrit | Merged openstack/nova stable/rocky: Update instance.availability_zone during live migration https://review.openstack.org/643173 | |
| 18:32:59 | sean-k-mooney | melwitt: sure ill take a look now | |
| 18:33:31 | melwitt | sean-k-mooney: thanks | |
| 18:34:06 | sean-k-mooney | my inital reaction is this shound never happen in any release after we added the vif plugged events as we wait for those on boot | |
| 18:34:58 | melwitt | oh, I see. I think it's been awhile since those were added | |
| 18:35:10 | melwitt | i.e. before queens | |
| 18:35:19 | sean-k-mooney | yes back in like mitaka or so queens should have it | |
| 18:35:32 | sean-k-mooney | im going to ask from mor info on what network backend they are using | |
| 18:35:44 | melwitt | ok, cool | |
| 18:35:45 | sean-k-mooney | if they are using odl then that would explain the behavior | |
| 18:36:02 | melwitt | oh, right. I vaguely remember that from last time I tried to think about vif plug events xD | |
| 18:36:04 | sean-k-mooney | odl sends the event on port bind not when odl wires it up | |
| 18:50:46 | fried_rice | mordred: ! | |
| 18:52:03 | fried_rice | mordred: I pulled down your openstacksdk patch, diddled with it a little bit, added a kwarg to Connection, instantiated it with a CONF and a session/auth established from ks_loading, and succeeded in talking to placement through it. | |
| 18:52:31 | mordred | fried_rice: SWEET! | |
| 18:52:36 | fried_rice | mordred: Permission to upload my changes to your patch so I can create one in nova that depends-on it and proceed? | |
| 18:52:40 | mordred | please do | |
| 18:53:20 | mordred | fried_rice: that's super exciting that it worked and stuff | |
| 18:53:37 | mordred | or, you know "worked" well enough for you to make it actually work | |
| 18:53:39 | fried_rice | mordred: FYI, my ipython session looked roughly like this: | |
| 18:53:39 | fried_rice | import openstack | |
| 18:53:39 | fried_rice | from nova import conf | |
| 18:53:39 | fried_rice | conf.CONF(args=['--config-file', '/etc/nova/nova-cpu.conf']) | |
| 18:53:39 | fried_rice | from keystoneauth1 import loading | |
| 18:53:40 | fried_rice | auth = loading.load_auth_from_conf_options(conf.CONF, 'placement') | |
| 18:53:40 | fried_rice | sess = loading.load_session_from_conf_options(conf.CONF, 'placement', auth=auth) | |
| 18:53:41 | fried_rice | from openstack import connection | |
| 18:53:41 | fried_rice | conn = connection.Connection(session=sess, oslo_conf=conf.CONF) | |
| 18:53:42 | fried_rice | conn.placement.get('/resource_providers').json() | |
| 18:54:01 | fried_rice | and obviously the money shot was that last thing producing the expected json payload. | |
| 18:54:12 | mordred | fried_rice: ++ | |
| 18:55:10 | mordred | fried_rice: fwiw, when you stitch it in to nova - pass app_name and app_version to the parameters (app_name of "nova" I think :) ) - it updates the user agent strings | |
| 18:55:34 | fried_rice | mordred: okay, will do. | |
| 18:55:46 | mordred | but does it via appending - so it'll be like nova/blah openstacksdk/blah keystoneauth/blah | |
| 18:55:47 | fried_rice | mordred: um, maybe will add a TODO | |
| 18:55:49 | mordred | ++ | |
| 18:56:00 | mordred | add a todo - I can followup | |
| 18:56:01 | fried_rice | right now I just want to PoC this sucker. | |
| 18:56:04 | mordred | yup | |
| 18:56:53 | fried_rice | mordred: btw, is the above connection-y stuff how you envisioned this tying together from the pov of the openstacksdk consumer (i.e. nova)? | |
| 18:57:15 | fried_rice | awkward that there's already a kwarg called `config`; I figured `oslo_conf` was adequately explicit. | |
| 18:58:10 | mordred | fried_rice: yeah - I think that totally works. I was originally thinking the user might just use the openstack.config.from_conf or whatever I called it to make a CloudRegion that could be passed to Connection's config parameter ... | |
| 18:58:29 | mordred | fried_rice: but your way makes total sense and I think should make it nicer for other openstack projects to follow suit | |
| 18:58:44 | fried_rice | ight | |
| 18:58:51 | mordred | so "yes" | |
| 18:58:56 | fried_rice | ight | |
| 19:02:50 | sean-k-mooney | melwitt: i have marked https://bugs.launchpad.net/nova/+bug/1801303 as incomplet and subsribed my self to the bug. if i get a responce i will retriage but this likely will end up getting moved to invlaide since its been a few months since it was first reported. | |
| 19:02:52 | openstack | Launchpad bug 1801303 in OpenStack Compute (nova) "VM send DHCP request before openflow is created in br-int" [Low,Incomplete] | |
| 19:03:28 | melwitt | sean-k-mooney: thanks for helping with that. yeah, hopefully we'll get a response | |
| 19:04:55 | mordred | fried_rice: it seems like a slight logic error in Connection ... | |
| 19:05:02 | mordred | but you said it worked for you | |
| 19:05:11 | fried_rice | mordred: what seems like a logic error? | |
| 19:05:25 | mordred | if session: is the first thing, then elif oslo_conf: | |
| 19:05:37 | mordred | fried_rice: but you're passing in an oslo_conf and a session | |
| 19:05:49 | fried_rice | hum, maybe that means it's only using the session and I don't need the conf :) | |
| 19:05:58 | fried_rice | iow I'm not hitting your code at all | |
| 19:06:03 | fried_rice | trying... | |
| 19:06:05 | mordred | yeah. it'll totally work just with teh session | |
| 19:06:46 | mordred | but - if there are any adapter level conf settings - like ... interface, region_name or endpoint_override they'll be ignored | |
| 19:07:12 | mordred | (those being teh ones I could imagine are most likely for someone to set in their nova.conf file | |
| 19:07:55 | fried_rice | ack (and confirmed btw). Will twiddle and retry to make sure it still works :) | |
| 19:08:34 | mordred | cool! I left a comment on the review for posterity | |
| 19:09:20 | fried_rice | ...also works fwiw | |
| 19:09:29 | mordred | \o/ | |
| 19:09:45 | fried_rice | I guess I would need to do something nonstandard with adapter-only settings to make sure it's actually excercising the code, but for now... | |
| 19:09:59 | mordred | or just put ina print statement :) | |
| 19:10:13 | mordred | but yeah - I thnk for now that's fine | |
| 19:10:17 | fried_rice | No, I mean *exercising* | |
| 19:10:40 | fried_rice | like, I should remove the public interface from my service catalog and set my conf to private | |
| 19:10:42 | fried_rice | or something. | |
| 19:10:46 | mordred | yeah. totally | |
| 19:13:22 | mordred | fried_rice: if it's ok with you - I'll start updating that with docs | |
| 19:13:52 | fried_rice | mordred: It's all yours. I'll buzz you if I need to diddle with it any further for local testing purposes, but I think I'm done for now. | |
| 19:17:37 | fried_rice | mordred: What happens if I pass kwargs like microversion and headers into primitives like .get? | |
| 19:18:03 | fried_rice | I think what I'm asking is, do I have to go around and remove all that shit from my placement client to make it go, or can I do that cleanup later? | |
| 19:18:06 | mordred | it works exactly like keystoneauth adaptr (it is a subclass of a ksa adapter) | |
| 19:18:17 | fried_rice | okay, so probably redundant, but harmless | |
| 19:18:34 | mordred | nah - I think you should totally pass those thigns in | |
| 19:19:18 | mordred | conn.placement.get() is pure passthrough ksa.Adapter. it doesn't do anything special with microverions for you - other than doing major version discovery | |
| 19:19:45 | mordred | the higher order methods for other services, like ironic, are where the sdk will be handling microversions and headesr for you | |
| 19:19:56 | mordred | but for placement - just a one-to-one swap should be totally fine | |
| 19:21:55 | openstackgerrit | Eric Fried proposed openstack/nova master: WIP/PoC: Use openstacksdk for placement https://review.openstack.org/643664 | |
| 19:22:05 | fried_rice | mordred: ^ | |
| 19:22:12 | fried_rice | expect that to fail unit/functional but pass tempest etc. | |
| 19:22:21 | fried_rice | assuming Depends-On chain works here... | |
| 19:22:32 | mordred | probably because unit tests mock ksa somehow? | |
| 19:22:40 | fried_rice | yes | |