| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2017-07-12 | |||
| 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 | Gonna hack on this a li'l bit ... | |
| 20:27:46 | jdandrea | biab | |
| 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 | |
| 21:03:30 | jaypipes | edleafe: the alternates are meant to be opaque structures. the selected host is the host identifier. the allocation requests are alternate things that can be passed to placement to claim resources if the original destination host fails to fully launch the instance. | |
| 21:04:14 | jaypipes | edleafe: or are you asking to just have a list where the first element of the list is a WeighedHost and the other elements of the list are allocation request blobs? | |