| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-07-12 | |||
| 19:30:55 | openstackgerrit | Matt Riedemann proposed openstack/python-novaclient master: WIP: Microversion 2.50 - fix quota class sets resource usage https://review.openstack.org/483060 | |
| 19:32:42 | gheorghe_ | mriedem it works now | |
| 19:43:10 | mriedem | gheorghe_: cool - if you have something to fix up the config options help text within nova, that would be appreciated | |
| 19:43:27 | mriedem | or was it libvirt config that you changed? | |
| 19:43:40 | gheorghe_ | i will show you my config for deploying hosts | |
| 19:43:49 | gheorghe_ | it configs nova AND libvirt for migration | |
| 19:43:52 | gheorghe_ | wait a sec | |
| 19:44:57 | gheorghe_ | check at the bottom: https://paste.gnome.org/p9vruj0zw ... as you will see here, this is the unsecure resolution. but it will enable you to migrate. also, it greps IP from a subnet deployed within my test environment | |
| 19:45:38 | gheorghe_ | i just this on every kvm node and it enables nova-compute and migration for kvm | |
| 19:45:47 | gheorghe_ | *i just RUN this | |
| 20:14:21 | jdandrea | For "nova boot" how does one specify metadata with a dictionary value? | |
| 20:14:26 | jdandrea | Trying --meta foo='{"bar": ["baz"]]}}' and it seems to arrive in the scheduler plugin's instance properties as a dict of the form {'foo': '{bar:[baz]}'} instead. | |
| 20:14:36 | jdandrea | Which is not valid JSON nor YAML. Maybe I'm doing something wrong on the cmd line? | |
| 20:15:03 | jdandrea | (I should say the value for foo isn't valid JSON nor YAML.) | |
| 20:15:40 | openstackgerrit | Merged openstack/nova master: doc: Remove cruft from conf.py https://review.openstack.org/478468 | |
| 20:19:18 | mriedem | jdandrea: i think you specify --meta multiple times | |
| 20:19:46 | jdandrea | mriedem - how do you do that to reference a nested key though? | |
| 20:20:01 | jdandrea | So I'd say --meta level_1_key=... something and then somehow refer to a level below level_1_key? | |
| 20:20:15 | mriedem | oh, no | |
| 20:20:46 | jdandrea | I want to provide a value that is itself a dict. So I figure I'd send in a JSON string enclosed in single quotes, but that doesn't quite work. | |
| 20:20:57 | openstackgerrit | Matt Riedemann proposed openstack/python-novaclient master: WIP: Microversion 2.50 - fix quota class sets resource usage https://review.openstack.org/483060 | |
| 20:20:58 | jdandrea | And I can't remove the single quotes without it going sideways. | |
| 20:21:33 | jdandrea | My problem is what I get on the inside doesn't appear to be valid JSON or YAML, so I can't even string load it. | |
| 20:23:21 | mriedem | the CLI isn't expect the value to be itself a dict, so it does a single split and assumes it's a string, which it is - and it's not going to unpack that | |
| 20:23:26 | mriedem | return dict(v.split('=', 1) for v in metadata) | |
| 20:23:29 | mriedem | is what the cli code is doing | |
| 20:24:07 | jaypipes | jdandrea: who let you in here!? :P | |
| 20:24:15 | jdandrea | jaypipes - STOP FOLLOWING ME. :p | |
| 20:24:19 | jaypipes | hehe | |
| 20:24:21 | jdandrea | lol | |
| 20:25:11 | jdandrea | mriedem Right, that makes sense. So the trick is to encode it such that it lands in the plugin as something that can be converted sanely. | |
| 20:25:21 | openstackgerrit | Merged openstack/nova master: doc: Use consistent author, section for man pages https://review.openstack.org/482960 | |
| 20:25:56 | openstackgerrit | Merged openstack/nova master: doc: Remove dead plugin https://review.openstack.org/478469 | |
| 20:26:40 | mriedem | jdandrea: hmm, do you need to encode it somehow? | |
| 20:26:49 | mriedem | i'm not sure what's goofing it up when it gets over into the API | |
| 20:27:10 | jdandrea | mriedem Yeah, I'm not either. Pondering. | |
| 20:27:18 | mriedem | urlencode? | |
| 20:27:22 | jdandrea | Mayyyyybe. | |
| 20:27:25 | jdandrea | Plausible. | |
| 20:27:31 | mriedem | i'm totally guessing | |
| 20:27:32 | openstackgerrit | Merged openstack/nova master: api-ref: mark instance action events parameter as optional https://review.openstack.org/480792 | |
| 20:27:33 | jdandrea | But messy, I admit. | |
| 20:27:46 | jdandrea | biab | |
| 20:27:46 | jdandrea | Gonna hack on this a li'l bit ... | |
| 20:29:34 | melwitt | guh, more random "OpenStackApiAuthenticationException: Authentication error" functional test fails | |
| 20:29:39 | melwitt | gonna have to figure that out soon | |
| 20:32:33 | melwitt | in the gate | |
| 20:32:43 | mriedem | eventlet | |
| 20:33:05 | mriedem | it's something with the compute api and placement api client helper things in the functional tests getting screwed up over eventlet, i think | |
| 20:33:22 | mriedem | cdent had a patch at one point for a related issue where he put a yield in there | |
| 20:33:32 | melwitt | oh, that sounds familiar | |
| 20:33:39 | mriedem | i'm sure i can find it | |
| 20:33:47 | mriedem | like a hog hunting for truffles | |
| 20:33:54 | melwitt | lol | |
| 20:40:13 | mriedem | https://review.openstack.org/#/c/459735/ is what we went with | |
| 20:40:30 | mriedem | https://review.openstack.org/#/c/459733/ was cdents | |
| 20:41:18 | melwitt | hm | |
| 20:41:57 | mriedem | maybe we should set that globally, | |
| 20:42:04 | mriedem | if it's failing on other tests that aren't using the integrated helpers stuf | |
| 20:42:07 | mriedem | *stuff | |
| 20:42:17 | melwitt | oh yeah, lemme see what this one was | |
| 20:42:40 | mriedem | i had one earlier here http://logs.openstack.org/22/454322/37/check/gate-nova-tox-functional-ubuntu-xenial/76cbda6/console.html#_2017-07-12_17_44_14_514884 | |
| 20:42:42 | melwitt | api_sample_tests, thought those were using integrated_helpers http://logs.openstack.org/74/467774/7/gate/gate-nova-tox-functional-ubuntu-xenial/4a00841/testr_results.html.gz | |
| 20:42:56 | mriedem | api sample tests are yeah | |
| 20:43:58 | mriedem | mine was something else | |
| 20:44:00 | mriedem | NoValidHost | |
| 20:44:17 | mriedem | i think because the compute node never checked in | |
| 20:44:20 | mriedem | because of some eventlet timeout | |
| 20:48:21 | jaypipes | mriedem, dansmith, edleafe: did we want to return a list of alternates *for each instance in num_instances*? of a single list of alternate allocation requests for the entire request? | |
| 20:48:31 | jaypipes | s/of a single/or a single/g | |
| 20:48:37 | jdandrea | mriedem jaypipes So what I did was look at the value and if it is a string, I try to json.loads the thing. If that fails, I leave it as is. Mischief managed. | |
| 20:49:09 | dansmith | jaypipes: well, if all of them can be rescheduled max_attempts time, then it needs to be num_instances * max_attempts | |
| 20:49:39 | dansmith | jaypipes: but we could also take some percentage or something, and provide some number of bet-hedging alternates, but not enough for all of them to be rescheduled max times | |
| 20:50:25 | jaypipes | dansmith: no, sorry, I meant should I return a single list of alternate allocation requests for the entire call to select_destinations() or should I return a list of alternate allocation requests for each host returned by select_destinations()? | |
| 20:51:00 | dansmith | jaypipes: independent of the number? | |
| 20:51:12 | dansmith | jaypipes: an alternate has to go with a given primary host, because it has to be the same cell, | |
| 20:51:29 | dansmith | so a single list of num*max alternates won't help us once we lose context of which host is in which cell | |
| 20:51:39 | jaypipes | right | |
| 20:51:47 | jaypipes | ok, that answers that | |
| 20:52:25 | melwitt | cells meeting in 8 minutes | |
| 20:52:34 | dansmith | melwitt: correction | |
| 20:52:46 | dansmith | melwitt: short-ass cells meetinglet in 8 minutes | |
| 20:54:26 | melwitt | meetinglet, I like it | |
| 20:56:34 | edleafe | jaypipes: yeah, I think that a single list per instance is best, where each list is the selected (claimed) host followed by the alternates. | |
| 20:56:54 | efried | In Portuguese, meetazinho. In Spanish, meetito. In French, meetette. In German, meetchen. | |
| 20:57:05 | dansmith | ooh, meetito is great | |
| 20:57:29 | dansmith | like dorito, but less yummy | |
| 20:57:42 | efried | Nothing is less yummy than a cooler ranch dorito | |
| 20:57:48 | jaypipes | edleafe: I'm going for a dict, keyed by instance_uuid, of two-tuples where the tuple is (WeighedHost(claimed_host), list(alternate allocation requests)) | |
| 20:57:57 | jaypipes | edleafe, dansmith: ^^ make sense to you? | |
| 20:58:08 | dansmith | sure | |
| 20:59:16 | efried | jaypipes Is this yet another thing we're going to regret not being an object later? | |
| 20:59:19 | melwitt | efried: phew, that was close. I misread at first that you were saying cooler ranch was the best dorito | |
| 20:59:46 | efried | melwitt Rest easy. | |
| 21:00:00 | edleafe | jaypipes: this is what scheduler is returning to the conductor? | |
| 21:00:35 | jaypipes | edleafe: well, not *yet*... I'm currently referring to what filter scheduler _schedule() returns to filter scheduler's select_destinations() call. | |
| 21:00:45 | jaypipes | edleafe: still need to figure out what's best for the RPC changes. | |
| 21:01:01 | jaypipes | edleafe: it *may* be that structure... | |
| 21:01:12 | jaypipes | haven't fully thought the RPC layer changes through yet | |
| 21:01:26 | edleafe | jaypipes: I'm still not clear why the selected host has to be in a separate structure than the alternates | |