Earlier  
Posted Nick Remark
#openstack-nova - 2017-03-15
20:51:54 mriedem ^ is essex
20:52:20 bauzas yeah I was an diablo op and I don't remember that feature
20:52:21 melwitt hah, nice
20:52:41 bauzas I just remember Essex added lots of things like that
20:52:54 bauzas but it's very old stories at the corner of the fireplace
20:53:41 bauzas soooo... to answer mriedem's question, I guess that the terrible answer he was afraid was the correct one
20:53:56 bauzas ie. "we planned that for the future"
20:54:31 bauzas just give me a license to kill that AZ hack, and I'll write a specx
20:54:45 melwitt it was maybe mirroring ignore_hosts, which was already there when force_hosts was added
20:55:00 bauzas yeah
20:55:20 bauzas anyway, force_hosts is a legacy from the past, and we should get rid of it
20:55:37 mriedem i'm not necessarily saying let's remove it,
20:55:43 bauzas I'm saying it :p
20:55:55 mriedem but it sure as shit causes a lot of confusion when you're looking at all of the code that uses it, and the API that provides the value, and you see it's not a list
20:56:00 mriedem and you say, wtf am i missing?
20:56:20 bauzas mriedem: you know that the policy differs for that, right?
20:56:25 mriedem yes
20:56:37 melwitt would have to run that by operators because afaik they use that to test new compute host before making it available for scheduling?
20:56:38 mriedem you mean "create:forced_host" right?
20:56:45 bauzas yup
20:56:54 mriedem yeah i thought operators were pretty keen on this,
20:56:59 bauzas I was
20:57:03 mriedem and we've baked it into the migration APIs right?
20:57:11 bauzas in Essex, it was terribly necessary
20:57:40 bauzas but now, we are in a far better place, but at least we should mimic what we merged for the move operations
20:57:53 bauzas ie. having a possible target with a force flag
20:58:24 bauzas which would then verify the filters if the target is set without force
20:58:34 bauzas or totally bypass the scheduler if force
20:58:55 mriedem so, i'm going to just start with a code comment in the request spec object
20:59:04 mriedem so when i look at this in a year, i won't have to do all of the detective work again
20:59:59 bauzas fine by me
21:04:41 openstackgerrit Matt Riedemann proposed openstack/nova master: Add a note about force_hosts only ever having a single value https://review.openstack.org/446175
21:04:42 mriedem there you go ^
21:04:49 openstackgerrit Roman Dobosz proposed openstack/nova-specs master: Provide detailed error information for placement API https://review.openstack.org/418393
21:06:09 mriedem ok, well, back to figuring out how i can mock the scheduler to send build requests to certain hosts in order
21:07:28 bauzas melwitt: https://review.openstack.org/#/c/446175/1 could be worth of interest
21:07:51 bauzas mriedem: what's your concern ?
21:08:06 mriedem bauzas: i'm writing a functional test to recreate https://review.openstack.org/#/c/444106/
21:08:07 bauzas mriedem: you want the scheduler to return you a specific destination ?
21:08:21 mriedem i have 2 hosts, i want the scheduler to send them in order
21:10:34 mriedem i think i can just use the disk weigher and fake it out
21:13:50 mriedem oh now i see a bug in the docs
21:15:28 openstackgerrit Matt Riedemann proposed openstack/nova master: Fix the help for the disk_weight_multiplier option https://review.openstack.org/446177
21:16:31 bauzas mriedem: the scheduler is only returning one host, so 2 calls one after the other ?
21:17:21 mriedem bauzas: i need the test to make the scheduler put the server on the hosts in order, where the first host will fail during driver.spawn which would normally trigger a retry to the 2nd host
21:17:30 mriedem i've got 2 hosts in the test
21:17:45 mriedem i want to trick the scheduler into picking the hosts in order
21:17:52 mriedem so i really just need it to pick the bad one first
21:18:06 mriedem i guess maybe it doesn't matter which order as long as i can keep track of the first host that's called
21:18:18 mriedem i'll just do that
21:19:05 bauzas I see
21:21:32 bauzas mriedem: tbh, just asks the scheduler for one host, kill the spawn and then the reschedule will put that host in the retry list
21:22:02 bauzas in case retry doesn't work, then you'll get the first node
21:22:07 mriedem the scheduler will try to send it back to the same host?
21:22:40 bauzas yup, because the claim will be reversed
21:23:33 bauzas well, there is some random
21:23:52 mriedem ok, so i'm going to try and test this in the non-crazy way
21:24:02 mriedem which is if i have 2 hosts and the first fails, i expect it to go to the 2nd host
21:24:14 mriedem see _add_retry_host in the scheduler utils
21:24:19 mriedem that's why i thought it worked this way
21:24:41 bauzas you can trick the scheduler
21:24:43 mriedem ah RetryFilter
21:24:59 bauzas yeah
21:25:22 bauzas that's why we had NoValidHosts for a spawn issue
21:25:32 bauzas now, it's a separate exception
21:25:57 bauzas but yeah, if we retry and we don't have enough computes, then the RetryFilter will return 0 hosts
21:26:51 bauzas as I said, you can trick what the scheduler returns by avoiding random choice if host_subset_size opt is having a 1 value
21:27:48 bauzas which is the default
21:28:04 bauzas so, that's why the scheduler always returns the same compute
21:29:33 bauzas mriedem: FWIW, I'm tempted to add a section in https://etherpad.openstack.org/p/BOS-Nova-brainstorming saying 'add your name if you want to go to the Summit but still waits for your management" :p
21:30:06 mriedem bauzas: that kind of passive aggressiveness is reserved for midwesterners in the US
21:30:24 mriedem i'm also setting host_subset_size=2
21:30:29 mriedem i'm setting all the things
21:30:39 bauzas if so, you'd random between two hosts
21:31:15 mriedem but the RetryFilter, which is enabled by default, should filter out the first failed host
21:31:28 mriedem anyway, i'll just get this going and see
21:33:39 bauzas mriedem: sure but if we don't have the retry dict, then you could miss the problem
21:34:00 bauzas what you want to cover
21:47:20 edleafe jaypipes: want me to fix the pep8 issue on https://review.openstack.org/441544 ?
21:47:45 jaypipes edleafe: lol, pls do. :)
21:47:52 edleafe k
21:48:14 jaypipes edleafe: serves me right for not tox -epep8'ing.
21:49:39 openstackgerrit Ed Leafe proposed openstack/nova master: virt: implement get_inventory() for Ironic https://review.openstack.org/441544
21:49:47 edleafe jaypipes: fixed ^^
21:50:24 jaypipes cheers, I wallaby'd it.
22:02:33 openstackgerrit Rafael Folco proposed openstack/nova master: DELETE all inventory for a resource provider https://review.openstack.org/416669
22:08:07 jaypipes mriedem, dansmith, melwitt: one of you want some review bait? :) https://review.openstack.org/#/c/444497/
22:14:55 openstackgerrit Sujitha proposed openstack/nova master: Add description to policies in admin_password.py https://review.openstack.org/443957
22:15:14 openstackgerrit Sujitha proposed openstack/nova master: Add description to policies in agents.py https://review.openstack.org/445208
22:15:25 openstackgerrit Sujitha proposed openstack/nova master: Add description to policies in aggregates.py https://review.openstack.org/445230
22:15:44 openstackgerrit Sujitha proposed openstack/nova master: Add description to policies in assisted_volume_snapshots.py https://review.openstack.org/445238
22:32:38 mriedem jaypipes: no more for me today
22:32:50 mriedem melwitt: here is that functional regression test for the retry bug ^
22:32:50 openstack bug 1671648 in OpenStack Compute (nova) "Instances are not rescheduled after deploy fails" [High,In progress] https://launchpad.net/bugs/1671648 - Assigned to Shunli Zhou (shunliz)
22:32:50 openstackgerrit Matt Riedemann proposed openstack/nova master: WIP: Add a functional regression/recreate test for bug 1671648 https://review.openstack.org/446209
22:35:40 melwitt mriedem: cool, will check it out
22:45:18 melwitt jaypipes: +W
23:12:17 mriedem1 aha, the chance scheduler doesn't set filter limits
23:12:22 mriedem1 b/c it doesn't do filtering
23:12:58 mriedem and the scheduler filter uses RequestSpec.from_primitives which defaults 'limits' to {}

Earlier   Later