*** markmcclain has joined #openstack-oslo | 00:01 | |
*** markmcclain1 has quit IRC | 00:02 | |
*** mriedem has joined #openstack-oslo | 00:05 | |
*** dims has joined #openstack-oslo | 00:08 | |
*** dims has quit IRC | 00:11 | |
*** dims has joined #openstack-oslo | 00:12 | |
*** dims_ has quit IRC | 00:12 | |
*** alexpilotti has quit IRC | 00:13 | |
*** dims has quit IRC | 00:16 | |
*** zzzeek has quit IRC | 00:20 | |
*** yamahata has joined #openstack-oslo | 00:23 | |
*** zzzeek has joined #openstack-oslo | 00:25 | |
*** tsekiyam_ has joined #openstack-oslo | 00:25 | |
*** zzzeek has quit IRC | 00:26 | |
*** tsekiyama has quit IRC | 00:29 | |
*** tsekiyam_ has quit IRC | 00:30 | |
*** dims has joined #openstack-oslo | 00:31 | |
openstackgerrit | Davanum Srinivas (dims) proposed a change to openstack/oslo.messaging: Make tests pass with random python hashseed https://review.openstack.org/114079 | 00:57 |
---|---|---|
clarkb | wow I forgot that check is still a thing | 00:58 |
clarkb | dims: thank you for fixing | 00:58 |
openstackgerrit | Monty Taylor proposed a change to openstack-dev/pbr: Handle single short sha versions https://review.openstack.org/114093 | 00:58 |
dims | my pleasure | 00:58 |
*** dims has quit IRC | 01:02 | |
*** dims has joined #openstack-oslo | 01:02 | |
*** dims has quit IRC | 01:05 | |
*** dims has joined #openstack-oslo | 01:05 | |
openstackgerrit | Alex Xu proposed a change to openstack/oslo-incubator: Add support for policy configration directories https://review.openstack.org/105362 | 01:06 |
openstackgerrit | Monty Taylor proposed a change to openstack-dev/pbr: Handle single short sha versions https://review.openstack.org/114093 | 01:09 |
*** Krast has quit IRC | 01:17 | |
*** Krast has joined #openstack-oslo | 01:17 | |
*** celttechie has quit IRC | 01:21 | |
*** markmcclain1 has joined #openstack-oslo | 01:29 | |
*** markmcclain has quit IRC | 01:30 | |
*** markmcclain1 has quit IRC | 01:36 | |
*** arnaud__ has quit IRC | 01:37 | |
*** dims has quit IRC | 01:40 | |
*** dims has joined #openstack-oslo | 01:41 | |
*** dims has quit IRC | 01:45 | |
*** dims has joined #openstack-oslo | 01:56 | |
*** dims has quit IRC | 02:16 | |
*** dims has joined #openstack-oslo | 02:16 | |
*** dims has quit IRC | 02:20 | |
*** dims_ has joined #openstack-oslo | 02:20 | |
*** arnaud has joined #openstack-oslo | 02:22 | |
*** dims_ has quit IRC | 02:34 | |
*** dims has joined #openstack-oslo | 02:34 | |
*** stevemar has joined #openstack-oslo | 02:36 | |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Teach pbr about post versioned dev versions. https://review.openstack.org/80449 | 02:38 |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Raise an error if preversion versions are too low https://review.openstack.org/108269 | 02:38 |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Look for and process sem-ver pseudo headers in git https://review.openstack.org/108270 | 02:38 |
*** celttechie has joined #openstack-oslo | 02:38 | |
*** dims has quit IRC | 02:39 | |
*** pcm__ has quit IRC | 02:39 | |
*** tongli has quit IRC | 03:06 | |
*** mriedem has left #openstack-oslo | 03:09 | |
*** nealph_ has joined #openstack-oslo | 03:49 | |
*** jraim__ has joined #openstack-oslo | 03:49 | |
*** wendar_ has joined #openstack-oslo | 03:49 | |
*** arnaud has quit IRC | 03:51 | |
*** sreshetn1ak has joined #openstack-oslo | 03:52 | |
*** toabctl_ has joined #openstack-oslo | 03:52 | |
*** ttx` has joined #openstack-oslo | 03:52 | |
*** jraim has quit IRC | 03:52 | |
*** toabctl has quit IRC | 03:52 | |
*** lbragstad has quit IRC | 03:52 | |
*** toabctl_ is now known as toabctl | 03:52 | |
*** mgagne has quit IRC | 03:52 | |
*** jroll has quit IRC | 03:52 | |
*** sreshetnyak has quit IRC | 03:52 | |
*** wendar has quit IRC | 03:52 | |
*** ttx has quit IRC | 03:52 | |
*** nealph has quit IRC | 03:52 | |
*** lbragstad_ has joined #openstack-oslo | 03:52 | |
*** lbragstad_ is now known as lbragstad | 03:52 | |
*** jraim__ is now known as jraim | 03:52 | |
*** mgagne has joined #openstack-oslo | 03:53 | |
*** mgagne is now known as Guest54676 | 03:53 | |
*** jroll has joined #openstack-oslo | 03:54 | |
*** arnaud has joined #openstack-oslo | 04:05 | |
*** ildikov has quit IRC | 04:16 | |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Teach pbr about post versioned dev versions. https://review.openstack.org/80449 | 04:18 |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Raise an error if preversion versions are too low https://review.openstack.org/108269 | 04:18 |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Look for and process sem-ver pseudo headers in git https://review.openstack.org/108270 | 04:18 |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Handle more local dev version cases https://review.openstack.org/114093 | 04:18 |
openstackgerrit | Monty Taylor proposed a change to openstack-dev/pbr: Handle more local dev version cases https://review.openstack.org/114093 | 04:46 |
openstackgerrit | Monty Taylor proposed a change to openstack-dev/pbr: Handle more local dev version cases https://review.openstack.org/114093 | 04:57 |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Teach pbr about post versioned dev versions. https://review.openstack.org/80449 | 04:58 |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Raise an error if preversion versions are too low https://review.openstack.org/108269 | 04:58 |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Look for and process sem-ver pseudo headers in git https://review.openstack.org/108270 | 04:58 |
openstackgerrit | lifeless proposed a change to openstack-dev/pbr: Handle more local dev version cases https://review.openstack.org/114093 | 04:58 |
openstackgerrit | Zhi Kun Liu proposed a change to openstack/oslo.messaging: Add parameter to customize Qpid receiver capacity https://review.openstack.org/112536 | 05:12 |
*** praneshp has quit IRC | 05:19 | |
*** toabctl has quit IRC | 05:20 | |
*** SridharG has joined #openstack-oslo | 05:21 | |
*** toabctl has joined #openstack-oslo | 05:25 | |
*** amotoki has joined #openstack-oslo | 05:38 | |
*** celttechie has quit IRC | 05:43 | |
*** praneshp has joined #openstack-oslo | 05:47 | |
openstackgerrit | OpenStack Proposal Bot proposed a change to openstack/oslo.vmware: Imported Translations from Transifex https://review.openstack.org/113785 | 06:08 |
*** ajo has joined #openstack-oslo | 06:20 | |
*** AAzza_afk is now known as AAzza | 06:27 | |
*** k4n0 has joined #openstack-oslo | 06:30 | |
*** stevemar has quit IRC | 06:31 | |
*** praneshp has quit IRC | 06:47 | |
*** noelbk has joined #openstack-oslo | 06:49 | |
*** AAzza has quit IRC | 06:51 | |
*** rpodolyaka_afk has quit IRC | 06:55 | |
*** alexpilotti has joined #openstack-oslo | 06:56 | |
*** AAzza has joined #openstack-oslo | 06:59 | |
*** ildikov has joined #openstack-oslo | 07:11 | |
*** arnaud has quit IRC | 07:17 | |
*** AAzza is now known as AAzza_afk | 07:37 | |
*** ttx` is now known as ttx | 07:39 | |
*** ttx has quit IRC | 07:40 | |
*** ttx has joined #openstack-oslo | 07:40 | |
*** mrda is now known as mrda-away | 07:46 | |
*** rpodolyaka has joined #openstack-oslo | 07:56 | |
*** ihrachyshka has joined #openstack-oslo | 08:03 | |
*** alexpilotti has quit IRC | 08:06 | |
openstackgerrit | Christian Berendt proposed a change to openstack/oslo.version: Add hacking as test requirment https://review.openstack.org/107998 | 08:15 |
*** yamahata has quit IRC | 08:26 | |
openstackgerrit | Joshua Harlow proposed a change to openstack/taskflow: Use explicit WBE request state transitions https://review.openstack.org/114162 | 08:27 |
*** markmc has joined #openstack-oslo | 08:53 | |
*** jaosorior has joined #openstack-oslo | 08:54 | |
openstackgerrit | A change was merged to openstack/oslo-incubator: Set python hash seed to 0 in tox.ini https://review.openstack.org/114052 | 09:00 |
*** alexpilotti has joined #openstack-oslo | 09:12 | |
*** yamahata has joined #openstack-oslo | 09:16 | |
*** noelbk has quit IRC | 09:50 | |
*** ihrachyshka has quit IRC | 09:50 | |
*** alexpilotti_ has joined #openstack-oslo | 09:54 | |
*** alexpilotti has quit IRC | 09:55 | |
*** alexpilotti_ is now known as alexpilotti | 09:55 | |
*** alexpilotti has quit IRC | 09:57 | |
*** linkid has joined #openstack-oslo | 10:17 | |
sheeprine | Hi, I've got a quick question about oslo-messaging and the notifiers, I can't get it to do asynchronous messaging. I use notification_lister with the eventlet executor, threads are running but it's not calling my endpoints untill I use wait() | 10:19 |
YorikSar | bnemec: Around? | 10:21 |
*** YorikSar_ has joined #openstack-oslo | 10:28 | |
*** YorikSar has quit IRC | 10:32 | |
*** pblaho has joined #openstack-oslo | 10:41 | |
Alexei_987 | markmc: Hi so you think that https://review.openstack.org/#/c/109143/ is not good enough without the test? | 10:42 |
*** ihrachyshka has joined #openstack-oslo | 10:44 | |
openstackgerrit | A change was merged to openstack-dev/pbr: Handle more local dev version cases https://review.openstack.org/114093 | 10:47 |
*** ildikov has quit IRC | 11:05 | |
*** yamahata has quit IRC | 11:09 | |
*** dims has joined #openstack-oslo | 11:11 | |
*** dims has quit IRC | 11:11 | |
*** dims has joined #openstack-oslo | 11:11 | |
*** dims has quit IRC | 11:16 | |
*** dims has joined #openstack-oslo | 11:16 | |
openstackgerrit | Davanum Srinivas (dims) proposed a change to openstack/oslo-incubator: Fix MemcachedKeyCharacterError when keys have spaces https://review.openstack.org/113537 | 11:22 |
*** AAzza_afk is now known as AAzza | 11:27 | |
*** sreshetn1ak has quit IRC | 11:31 | |
*** sreshetnyak has joined #openstack-oslo | 11:31 | |
*** Krast has quit IRC | 11:31 | |
*** pcm_ has joined #openstack-oslo | 11:32 | |
*** tongli has joined #openstack-oslo | 11:36 | |
*** alexpilotti has joined #openstack-oslo | 11:44 | |
*** amotoki has quit IRC | 11:48 | |
openstackgerrit | A change was merged to openstack/taskflow: Allow a jobs posted book to be none by default https://review.openstack.org/106915 | 11:54 |
*** dims has quit IRC | 11:55 | |
*** dims has joined #openstack-oslo | 11:56 | |
*** dims has quit IRC | 12:00 | |
*** pcm_ has quit IRC | 12:08 | |
*** dims has joined #openstack-oslo | 12:16 | |
*** ildikov_ has joined #openstack-oslo | 12:20 | |
*** Alexei_9871 has joined #openstack-oslo | 12:24 | |
*** pcm_ has joined #openstack-oslo | 12:24 | |
openstackgerrit | OpenStack Proposal Bot proposed a change to openstack/oslo-incubator: Updated from global requirements https://review.openstack.org/114063 | 12:39 |
*** pblaho_ has joined #openstack-oslo | 12:41 | |
*** pblaho has quit IRC | 12:44 | |
*** gordc has joined #openstack-oslo | 12:53 | |
*** pblaho_ has quit IRC | 12:57 | |
*** pblaho_ has joined #openstack-oslo | 12:57 | |
*** pblaho_ is now known as pblaho|afk | 13:17 | |
openstackgerrit | Dmitry Tantsur proposed a change to openstack/oslo-incubator: Add field_labels parameter to cliutils.print_list https://review.openstack.org/113978 | 13:18 |
*** mriedem has joined #openstack-oslo | 13:20 | |
*** pblaho|afk is now known as pblaho_ | 13:24 | |
*** pblaho__ has joined #openstack-oslo | 13:28 | |
*** pblaho_ has quit IRC | 13:29 | |
*** pblaho__ is now known as pblaho | 13:29 | |
*** pblaho is now known as pblaho|meeting | 13:32 | |
*** bknudson has joined #openstack-oslo | 13:34 | |
*** jecarey has joined #openstack-oslo | 13:41 | |
openstackgerrit | Dmitry Tantsur proposed a change to openstack/oslo-incubator: Add field_labels parameter to cliutils.print_list https://review.openstack.org/113978 | 13:42 |
*** jecarey has quit IRC | 13:49 | |
*** jecarey has joined #openstack-oslo | 13:49 | |
*** AAzza is now known as AAzza_afk | 13:51 | |
*** arnaud__ has joined #openstack-oslo | 13:53 | |
*** AAzza_afk is now known as AAzza | 13:53 | |
*** jecarey has quit IRC | 14:04 | |
*** jgrimm has joined #openstack-oslo | 14:12 | |
*** mriedem has quit IRC | 14:23 | |
*** markmcclain has joined #openstack-oslo | 14:25 | |
*** markmcclain has quit IRC | 14:25 | |
*** zzzeek has joined #openstack-oslo | 14:26 | |
*** markmcclain has joined #openstack-oslo | 14:27 | |
*** mriedem has joined #openstack-oslo | 14:38 | |
*** stevemar has joined #openstack-oslo | 14:41 | |
*** k4n0 has quit IRC | 14:45 | |
*** nealph_ is now known as nealph | 14:48 | |
*** ihrachyshka has quit IRC | 14:50 | |
*** tsekiyama has joined #openstack-oslo | 14:57 | |
*** HenryG_ has joined #openstack-oslo | 15:01 | |
*** jecarey has joined #openstack-oslo | 15:02 | |
*** HenryG has quit IRC | 15:03 | |
*** HenryG_ has quit IRC | 15:06 | |
*** HenryG has joined #openstack-oslo | 15:07 | |
*** pblaho|meeting is now known as pblaho | 15:08 | |
*** pblaho has quit IRC | 15:08 | |
*** pblaho has joined #openstack-oslo | 15:08 | |
mriedem | dhellmann: do you have any idea how to fix this? http://logs.openstack.org/46/97946/12/check/gate-nova-docs/936832e/console.html#_2014-08-13_22_09_57_331 | 15:10 |
mriedem | it's complaining about this docstring https://review.openstack.org/#/c/97946/12/nova/db/migration.py | 15:10 |
mriedem | i've tried a few things by adding blank lines toward the end but that's not helping | 15:10 |
*** linkid has left #openstack-oslo | 15:14 | |
*** pblaho_ has joined #openstack-oslo | 15:16 | |
dhellmann | mriedem: looking | 15:17 |
mriedem | might have found it, i think it wants a blank line between @param and @return | 15:17 |
dhellmann | mriedem: change "@param" to ":param" and see if making that a field list fixes it | 15:17 |
dhellmann | mriedem: also @return -> :return | 15:17 |
mriedem | yeah was going to try that next | 15:17 |
mriedem | thanks | 15:17 |
dhellmann | I'm not sure about that @ syntax, if that's a thing | 15:17 |
*** pblaho has quit IRC | 15:20 | |
dims | mriedem: back now, yeah the sphinx errors are not that great | 15:23 |
mriedem | well the : got me past the one issue, now a new one, so looking again | 15:24 |
Alexei_9871 | zzzeek: Hi do you have a minute? | 15:26 |
mriedem | dims: 251_instance_uuid_non_nullable.process_null_records:5: ERROR: Unexpected indentation | 15:26 |
mriedem | between the first and 2nd paragraphs in the docstring | 15:27 |
mriedem | no idea why that's a problem | 15:27 |
*** yamahata has joined #openstack-oslo | 15:27 | |
dims | mriedem: you need a title then 2 paragraphs i think | 15:29 |
*** pblaho_ has quit IRC | 15:30 | |
*** tong_ has joined #openstack-oslo | 15:31 | |
mriedem | a title for a method description? | 15:32 |
mriedem | boo | 15:32 |
*** jecarey_ has joined #openstack-oslo | 15:32 | |
mriedem | oh i see first line has to be single sentence, not paragraph | 15:33 |
mriedem | gd, docstring nazis | 15:33 |
*** HenryG has quit IRC | 15:37 | |
*** markmc_ has joined #openstack-oslo | 15:37 | |
*** SridharG has quit IRC | 15:37 | |
*** jecarey has quit IRC | 15:40 | |
*** tongli has quit IRC | 15:40 | |
*** markmc has quit IRC | 15:40 | |
*** HenryG has joined #openstack-oslo | 15:43 | |
*** HenryG has quit IRC | 15:57 | |
*** markmcclain has quit IRC | 16:05 | |
*** markmc_ has quit IRC | 16:06 | |
*** Guest54676 is now known as mgagne | 16:30 | |
*** mgagne has joined #openstack-oslo | 16:30 | |
*** ildikov_ has quit IRC | 16:31 | |
openstackgerrit | Rossella Sblendido proposed a change to openstack/oslo.db: Retry query if db deadlock error is received https://review.openstack.org/109549 | 16:31 |
zzzeek | Alexei_9871: sure | 16:32 |
Alexei_9871 | zzzeek: I'm thinking about adding a method in oslo.db that would allow EngineFacade to be constructed from url with parameters | 16:33 |
Alexei_9871 | zzzeek: e.g. sqlite:///?max_retries=10&... | 16:33 |
Alexei_9871 | zzzeek: what do you think about such an option? It may be usefull to create an engine without passing CONF object | 16:34 |
zzzeek | i havent dug into enginefacade too much just yet under what context is it used | 16:34 |
Alexei_9871 | zzzeek: in most places it's from_config method is used | 16:34 |
Alexei_9871 | zzzeek: but for ceilometer for example it's much more convinient to pass params as part of the url | 16:35 |
zzzeek | Alexei_9871: is it used: in tests, at server startup, when running migrations, all of the above ? | 16:35 |
Alexei_9871 | zzzeek: all | 16:35 |
zzzeek | its likely that when i do dig into enginefacade im probably goign to want to change the whole approach anyway | 16:36 |
zzzeek | ive seen a little bit of it and it looks contorted | 16:36 |
zzzeek | overall, im not too keen on adding many ways to do the same thing. an app should start up with a databse connecvtion, and those configs should come from exactly one place | 16:37 |
Alexei_9871 | zzzeek: I agree but it's idea is that it allowed to port existing code to oslo.db with minimal changes | 16:37 |
zzzeek | Alexei_9871: what rules do you have in mind for params + CONF at the same time | 16:38 |
Alexei_9871 | zzzeek: it's not constructed with both | 16:38 |
Alexei_9871 | zzzeek: we have method Facade.from_config | 16:38 |
zzzeek | Alexei_9871: OK, so you hjust want to add a “url’ arguemnt and that’s it | 16:38 |
Alexei_9871 | zzzeek: I plan to add method Facade.from_extended_url | 16:38 |
zzzeek | Alexei_9871: ok what’s an extended URL | 16:38 |
Alexei_9871 | sqlite:///?max_retries=10&... | 16:38 |
zzzeek | thats just a URL | 16:39 |
zzzeek | ?x=y is included | 16:39 |
zzzeek | :) | 16:39 |
Alexei_9871 | it's extended in terms that we use this parameters to configure engine | 16:39 |
zzzeek | Alexei_9871: however, in oslo.db session.create_engine() takes a bunch of other arguments | 16:39 |
Alexei_9871 | yeah and this would be in url | 16:39 |
zzzeek | Alexei_9871: ah. OK that is more controversial | 16:40 |
zzzeek | Alexei_9871: ceilometer is already doing this? making their own URL format and pulling out parameters that don’t get passed to sqlalchemy create_engine() ? | 16:40 |
Alexei_9871 | so we get 'mysql://root:root@localhost/ceilometer?max_retries=10' and we convert it to call to create_engine('mysql://root:root@localhost/ceilometer', max_retries=10) | 16:40 |
zzzeek | Alexei_9871: OK and what is the use case for the single string URL like that | 16:41 |
Alexei_9871 | zzzeek: https://review.openstack.org/#/c/111990/ | 16:41 |
Alexei_9871 | zzzeek: ceilometer supports multiple backends | 16:41 |
Alexei_9871 | zzzeek: and sqla is only one of them | 16:41 |
Alexei_9871 | zzzeek: rest of the backends are configured from url (mongodb, hbase, etc.) | 16:41 |
Alexei_9871 | zzzeek: would be good to do the same for sqla cause right now we have to pass CONF object which is not good | 16:42 |
*** jaosorior has quit IRC | 16:42 | |
*** arnaud__ has quit IRC | 16:42 | |
zzzeek | and in the case of those backends are arguments being extracted from the URL and being passed to different levels of abstraction? keep in mind the great danger here is that you cannot guarnatee a future release of SQLAlchemy will add a new URL argument that matches the name of one of your own | 16:42 |
zzzeek | Alexei_9871: the issue of not using CONF vs. the issue of passing a url or a url plus extra k/v pairs separately are two different issues | 16:43 |
Alexei_9871 | zzzeek: that will be part of my patch.. we'll extract args defined in oslo.db.options | 16:43 |
Alexei_9871 | and let others fall through | 16:43 |
zzzeek | Alexei_9871: what if SQLAclhemty adds an argument “max_retries" | 16:43 |
*** yamahata has quit IRC | 16:43 | |
Alexei_9871 | zzzeek: IMHO if we'll have 2 options with same name it will be same option | 16:44 |
Alexei_9871 | zzzeek: it's passed to sqla in create_engine call | 16:44 |
zzzeek | Alexei_9871: how can you possibly guarantee that ? | 16:44 |
zzzeek | sqlalchemy’s max_retries could be an entirely different function ! | 16:44 |
Alexei_9871 | zzzeek: in that case we'll have to fix oslo.db | 16:44 |
Alexei_9871 | zzzeek: and rename it's option to something else | 16:45 |
zzzeek | Alexei_9871: at the very least you need to prefix these arguemnts: driver:///db?oslo_db.max_retries=5 | 16:45 |
Alexei_9871 | zzzeek: yeah it could be an option | 16:45 |
zzzeek | Alexei_9871: im pretty hard core on not mixing togehter potentially incompatible namespaces | 16:46 |
Alexei_9871 | zzzeek: well I'm ok with prefixes. the only problem is that URL could be quite long | 16:46 |
Alexei_9871 | zzzeek: not a big issue IMHO | 16:46 |
zzzeek | URLs can go up to what, 4K ? | 16:46 |
zzzeek | Alexei_9871: nope | 16:46 |
Alexei_9871 | zzzeek: Ok I'll upload patch with prefixes :) | 16:47 |
zzzeek | Alexei_9871: if it were me I’d keep them out of the URL entirely but you seem to be pretty focused on having a single argument | 16:47 |
zzzeek | Alexei_9871: e.g. whatever configurational system sets up this URL in the 1st place would support additional args. doesnt matter that it is used for other backends that’s irrelvant | 16:47 |
Alexei_9871 | zzzeek: the real problem is stevedore | 16:47 |
zzzeek | Alexei_9871: ah | 16:47 |
zzzeek | Alexei_9871: OK | 16:47 |
zzzeek | Alexei_9871: havent dealt with that | 16:48 |
Alexei_9871 | zzzeek: we cannot provide different args for different implementations | 16:48 |
zzzeek | Alexei_9871: OK | 16:48 |
Alexei_9871 | zzzeek: cause of this we have to pack them in 1 arg | 16:48 |
zzzeek | Alexei_9871: how does stevedore related to oslo.config | 16:48 |
zzzeek | Alexei_9871: OK that’s a better reason. | 16:48 |
Alexei_9871 | zzzeek: it's not related. It's related to how most projects load their plugins | 16:48 |
zzzeek | Alexei_9871: that’s what i was looking for up top. where are these URLs coming from. i havent dug into these systems as of yet | 16:49 |
Alexei_9871 | url is coming from CONF. then we use driver part to determine needed pluging. we load it's class and pass url to it | 16:49 |
Alexei_9871 | zzzeek: if we would have better DI system we would not need this at all | 16:50 |
zzzeek | Alexei_9871: ive looked into the stuff with get_backend() and I disklike it | 16:51 |
zzzeek | Alexei_9871: very hacky | 16:51 |
Alexei_9871 | zzzeek: do you see a better way? | 16:51 |
zzzeek | Alexei_9871: sure, i could riff on all kinds of ways :) | 16:51 |
Alexei_9871 | zzzeek: easy way* | 16:51 |
zzzeek | Alexei_9871: it looked like its only purpose was to be able to load a module full of functions and apply a decorator to all of them | 16:52 |
Alexei_9871 | zzzeek: yeah it's quite wierd | 16:52 |
zzzeek | Alexei_9871: it just looked what I call seat-of-the-pants | 16:52 |
zzzeek | someone got something quick and dirty to just work, then nobody ever thought to change it | 16:52 |
Alexei_9871 | zzzeek: that's the way we have it in openstack :) | 16:53 |
zzzeek | Alexei_9871: that’s a big problem | 16:53 |
zzzeek | Alexei_9871: so i am happy that I am able to work on it and identify tehse things | 16:53 |
Alexei_9871 | zzzeek: you should check oslo.config when you'll have time | 16:53 |
zzzeek | Alexei_9871: but i work from the inside out. so far im only doing engine connectivity | 16:53 |
zzzeek | Alexei_9871: i have. i think there is hope for it, it needs some better inspection capabilities | 16:53 |
Alexei_9871 | zzzeek: IMHO it should be changed a lot :) | 16:54 |
Alexei_9871 | zzzeek: at least to provide normal nesting | 16:54 |
zzzeek | Alexei_9871: its just a little backwards. but changing that will be a lot of work as everyone uses it | 16:54 |
zzzeek | Alexei_9871: anyway when ive proposed touching things that arent dataabase, people are biting my hand off, so going to leave that for now | 16:54 |
Alexei_9871 | zzzeek: ok so what do we decide about params in url? | 16:55 |
zzzeek | prefix them with oslo_db.<name> | 16:55 |
Alexei_9871 | zzzeek: ok will do | 16:55 |
Alexei_9871 | zzzeek: thanks for your time | 16:56 |
zzzeek | yjpu | 16:56 |
*** harlowja has joined #openstack-oslo | 16:56 | |
Alexei_9871 | zzzeek: could you decode that? | 16:58 |
zzzeek | decode what | 16:58 |
zzzeek | oh | 16:58 |
zzzeek | “yup” | 16:58 |
zzzeek | just act like you are an iphone spelling checker | 16:58 |
Alexei_9871 | zzzeek: :-D | 16:58 |
zzzeek | programmers.... | 16:58 |
dhellmann | zzzeek, Alexei_9871 : the challenge with the URL scheme is it makes it hard(er) to document what all of the valid options are for different drivers | 17:00 |
zzzeek | dhellmann: I’d prefer the URL remain a clean SQLAlchemy URL and not have other parameters added. do you have an alternative? im not familiar with the stevedore package | 17:01 |
zzzeek | dhellmann: because yes id prefer oslo.db argument remain as kw args to methods/functions and are passed through to session.create_engine() | 17:02 |
dhellmann | Alexei_9871: you could give stevedore a URL and a config object, and the driver could pull out the options it needs | 17:02 |
*** markmcclain has joined #openstack-oslo | 17:02 | |
Alexei_9871 | dhellmann: yeah but in ceilometer other backends doesn't need a CONF object | 17:02 |
Alexei_9871 | dhellmann: cause they use URL | 17:02 |
Alexei_9871 | dhellmann: so we'd have to write different init code depending on backend | 17:03 |
Alexei_9871 | dhellmann: it's possible but it means that we don't use stevedore | 17:03 |
dhellmann | zzzeek: we need to hide the configuration options defined by oslo.db and its drivers from the applications. Using a URL to embed all of those values was one option. The other way we've done it in oslo.messaging is to let the driver pull its options out of the config object itself. | 17:03 |
*** ildikov has joined #openstack-oslo | 17:04 | |
dhellmann | Alexei_9871: the fact that other drivers don't need the conf object for their connection isn't really important, they can just ignore the argument | 17:04 |
Alexei_9871 | dhellmann: I personally don't like writing code that ignores arguments | 17:04 |
* dhellmann shrugs | 17:04 | |
Alexei_9871 | dhellmann: it's either needed or not | 17:04 |
zzzeek | dhellmann: in this area I havent formed strong opinions yet because i havent dug into how apps are configuring. up above you can see im not thrilled with EngineFacade overall but I havent focused on it yet | 17:04 |
dhellmann | it's part of the driver API, how do you know what options future drivers might want? | 17:05 |
Alexei_9871 | dhellmann: cause of 2nd option we have to pass CONF object all around the app | 17:05 |
zzzeek | Alexei_9871: code that allows arguments to pass through is a very common and necessary technique. that’s why python has *args **kwargs | 17:05 |
dhellmann | zzzeek: yeah, as Alexei_9871 said the facade was a requirement to avoid having to rewrite a bunch of apps that were using the old db API | 17:05 |
dhellmann | Alexei_9871: how many different places are really loading drivers, though? | 17:06 |
Alexei_9871 | zzzeek: and it's very evil technique cause python dzen says that explicit is better than implicit | 17:06 |
zzzeek | Alexei_9871: that rule, and many others, are widely misinterpreted and overused | 17:06 |
dhellmann | zzzeek: yeah, in this case passing a single conf arg is much better, because it means the option definitions don't have to be part of the public API for oslo.db | 17:06 |
Alexei_9871 | dhellmann: in case of ceilometer it's 1 place | 17:06 |
dhellmann | Alexei_9871: so why are you passing conf "all around the app"? | 17:07 |
Alexei_9871 | dhellmann: that's 1 central place where driver is created.. however it's called from many other places (app.init, tests, etc) | 17:08 |
Alexei_9871 | dhellmann: and all this places have to construct a correct CONF object to pass it | 17:08 |
Alexei_9871 | dhellmann: and it's only needed by sqla backend | 17:09 |
dhellmann | Alexei_9871: I don't see the problem. You're passing the configuration data to the drivers in case they need it. | 17:09 |
dhellmann | Alexei_9871: as a driver API, that makes perfect sense to me | 17:09 |
Alexei_9871 | https://github.com/openstack/ceilometer/blob/master/ceilometer/storage/__init__.py#L85 | 17:10 |
Alexei_9871 | dhellmann: problem is that X drivers don't need it and 1 driver does | 17:11 |
dhellmann | Alexei_9871: as the designer of the API, you shouldn't be worried with the implementation details of the specific drivers. You should be concentrating on what drivers *might* need so you can be sure they have it at the right point in time. | 17:11 |
Alexei_9871 | dhellmann: not sure I understand the 2nd part | 17:12 |
Alexei_9871 | dhellmann: how do we know what driver *might* need if it's a plugin? | 17:12 |
Alexei_9871 | dhellmann: we don't have control about what drivers will be used by end users | 17:12 |
harlowja | jd__ thanks for fixing up tooz (now in requirements!) woot | 17:13 |
jd__ | harlowja: you're welcome | 17:13 |
harlowja | jd__ ok to wait on https://review.openstack.org/#/c/113753/ (would like to see where that other review goes) | 17:13 |
harlowja | hopefully thats fine with u :-p | 17:13 |
jd__ | harlowja: yep, I think it's ok but I can wait | 17:14 |
jd__ | no rush needed | 17:14 |
harlowja | kk | 17:14 |
harlowja | it should be all fine to go (the python26 error i think isn't related to anything real) | 17:14 |
jd__ | harlowja: did you wonder if it was possible to implement the rest of the driver with the SysV IPC module btw? | 17:14 |
harlowja | i started to think about that, ha | 17:14 |
jd__ | is it timeout-ing again? | 17:14 |
jd__ | hehe | 17:14 |
harlowja | 'Build timed out (after 70 minutes). Marking the build as failed.' | 17:14 |
harlowja | so i guess yes, timeout | 17:15 |
jd__ | weird | 17:15 |
harlowja | jd__ i think with a combination of semaphores and files, the rest of the driver probably can be created | 17:15 |
jd__ | cool | 17:15 |
dhellmann | Alexei_9871: pretend you don't know how any of the drivers work right now, or that none of them exist. Think about it more abstractly. What do drivers do when they start up? They need to get their connection paramters and other settings, and connect to the database. The driver might define options for controlling how that works that you don't want the application to know about, because you don't want every driver to have to support them. So | 17:15 |
dhellmann | you need a generic way to pass those options. **kwds is no good, because you don't know what values to get out of the conf object. Using the global config object is no good because it makes unit tests harder. That's why you pass a config object to the driver. | 17:15 |
harlowja | jd__ don't use the sysv message queues though, heard those things are really messed up, haha | 17:15 |
harlowja | *heard/read | 17:15 |
* jd__ takes note | 17:16 | |
harlowja | apparently u can only put like 2048 bytes in one queue (total bytes) | 17:16 |
harlowja | weird stuff, lol | 17:16 |
harlowja | i wonder if something like sqllite for message queues should/could be created | 17:16 |
harlowja | mqlite | 17:16 |
Alexei_9871 | dhellmann: yeah but in such case we make an assumption that driver knows about what oslo.config is | 17:16 |
dhellmann | Alexei_9871: yes, we do, because that is the API we are giving the driver for loading configuration settings | 17:17 |
dhellmann | Alexei_9871: we don't want the driver choosing its own way to do that, because we want the application to get all of its options in the same way | 17:17 |
Alexei_9871 | dhellmann: It would be ok for me if CONF would be a real dict.. I don't like it now cause we expose *ALL* options to any CONF user | 17:18 |
Alexei_9871 | dhellmann: and your driver could potentially use passsword, etc. that don't belong to him | 17:18 |
Alexei_9871 | dhellmann: in case of dict like CONF it would only receive some part of config that is related to this driver and not all data | 17:18 |
openstackgerrit | Davanum Srinivas (dims) proposed a change to openstack/oslo.serialization: Use oslo libraries - i18n and utils https://review.openstack.org/113347 | 17:19 |
openstackgerrit | Davanum Srinivas (dims) proposed a change to openstack/oslo.serialization: Fix docs build to run properly https://review.openstack.org/113351 | 17:19 |
Alexei_9871 | dhellmann: for me that's a security vulnerability and that's why I don't like passing CONF around | 17:19 |
dhellmann | Alexei_9871: we have to have some trust in the driver code | 17:19 |
Alexei_9871 | dhellmann: why do we have to do it? | 17:20 |
dhellmann | Alexei_9871: if you don't trust the driver, you'd better not load it at all, because it can get to that global config object just as easily as any other code | 17:20 |
harlowja | jd__ i assume u are ok with the hash collission problem | 17:20 |
harlowja | knowing that the same situation affects https://review.openstack.org/#/c/113753 | 17:20 |
jd__ | harlowja: yeah sounds like good enough to me | 17:20 |
Alexei_9871 | dhellmann: that's why I don't like global CONF object :) | 17:20 |
jd__ | and I guess we can also give it a better try later if we have a better idea | 17:21 |
harlowja | jd__ agreed | 17:21 |
Alexei_9871 | dhellmann: so what do you think we should do in our case? | 17:21 |
Alexei_9871 | dhellmann: just pass CONF object to all drivers? | 17:22 |
dhellmann | Alexei_9871: yep, which is why you don't have to use it, but when you don't you have to pass the config object around :-) | 17:22 |
dhellmann | Alexei_9871: yes, the code that loads drivers should pass the conf object to the driver as it is instantiated | 17:22 |
dhellmann | off the top of my head, I don't know if that's on load, or on the first call, or what | 17:22 |
Alexei_9871 | dhellmann: Ok. However I still don't like CONF object :) | 17:23 |
Alexei_9871 | dhellmann: it's making it much more complicated to debug everything cause of this implicit passing of global state | 17:25 |
zzzeek | Alexei_9871: “trust” of passwords within a Python application is pointless. The Python environemnt is 100% open | 17:26 |
dhellmann | Alexei_9871: it's not implicit if it's an argument to the function, though | 17:26 |
Alexei_9871 | dhellmann: I mean you don't have real control of what options are used and when they are used | 17:26 |
zzzeek | Alexei_9871: a malicious application could just walk up stack frames and get whatever it wants | 17:26 |
Alexei_9871 | dhellmann: cause some long forgotten part of the code can use some option from config | 17:27 |
zzzeek | Alexei_9871: CONF is a little awkward but I’ve found it straightforward to use. it can be improved to be nicer. | 17:28 |
Alexei_9871 | dhellmann: I find java dependency injection much more convinient when I look on what we have | 17:28 |
dhellmann | Alexei_9871: the config library includes a mechanism for "hiding" options using a filter http://docs.openstack.org/developer/oslo.config/cfgfilter.html | 17:29 |
Alexei_9871 | zzzeek: problem with CONF usage is that we start to depend on import order and object creation order and many other tricky things that break our apps | 17:29 |
*** HenryG has joined #openstack-oslo | 17:29 | |
zzzeek | Alexei_9871: i dont know about any of that. | 17:30 |
Alexei_9871 | zzzeek: rpodolyaka can tell you about hack that we have to put in nova to make it start correctly | 17:30 |
zzzeek | Alexei_9871: ive found that if i have a URL and i want to use it, i say CONF.set_default(“connection”, url, “database”) | 17:30 |
zzzeek | Alexei_9871: that sounds like a separate issue | 17:31 |
zzzeek | Alexei_9871: CONF as a global, yes I can see that might be an issue | 17:31 |
dhellmann | Alexei_9871: if options are registered at runtime instead of import time, those ordering problems go away | 17:32 |
Alexei_9871 | zzzeek: it's really hard to get rid of global CONF since we need to change a ton of code to make sure that CONF is passed everywhere and is properly initialized | 17:32 |
dhellmann | Alexei_9871: IOW, if you have an import order dependency, you're using the library wrong | 17:32 |
zzzeek | Alexei_9871: yes global CONF cant be fixed quickly | 17:32 |
Alexei_9871 | dhellmann: I agree that we are using it wrong | 17:33 |
zzzeek | so why not fix that first | 17:33 |
Alexei_9871 | zzzeek: cause it will take several years to land this patches | 17:33 |
zzzeek | introducing features to work around technical debt == bad | 17:33 |
Alexei_9871 | zzzeek: and we would have to stop all other work for this | 17:33 |
YorikSar_ | bnemec, harlowja: Hi. I'd like to move our discussion on lockutils from bug+CR to ML. I'm preparing etherpad with list of options and will send a message to ML when I'm done. | 17:33 |
Alexei_9871 | as I already said I would prefer to use some reliable DI system to construct objects with needed parameters and in well defined moments at runtime | 17:34 |
harlowja | YorikSar_ thats fair | 17:34 |
YorikSar_ | bnemec, harlowja: I think we can find some of the options good enough so that we can have either file or SysV locks that would suit us. | 17:35 |
*** YorikSar_ is now known as YorikSar | 17:35 | |
zzzeek | Alexei_9871: I dont know enough to comment on the issue but from a generalist perspective, “we have to stop all other work to fix this” is the chorus of the technical debt song :) | 17:35 |
zzzeek | if you never stop to improve on debt you just keep making more of it | 17:36 |
zzzeek | which makes everyhitn down the road take three times longer and then you have *less* time! | 17:36 |
Alexei_9871 | zzzeek: 120% agree but it's not acceptable from busyness perspective | 17:36 |
Alexei_9871 | business * | 17:36 |
zzzeek | Alexei_9871: if i accomplish anything working on opentsack it would be to fix that issue | 17:37 |
Alexei_9871 | zzzeek: spice mush flow | 17:37 |
harlowja | YorikSar it'd be nice if tooz (or other) would allow u to pick which one you want knowing your applications requirements | 17:37 |
Alexei_9871 | must* | 17:37 |
zzzeek | Alexei_9871: either by banning host companies who only add to technical debt and never take time to clean it up….or..i dunno | 17:37 |
Alexei_9871 | zzzeek: we need a good dictator for openstack :) | 17:37 |
harlowja | zzzeek +1 to technical debt song | 17:37 |
harlowja | i volunteer myself! | 17:37 |
harlowja | lol | 17:37 |
harlowja | overlord josh | 17:38 |
Alexei_9871 | I propose to hire linus for couple of years | 17:38 |
zzzeek | dhellmann: from an openstack org perpsective, its a recipe for failure if openstack is developed by host companies that only rush to throw new features in at top speed but don’t offer any resources to clean up on technical debt that they introduce | 17:38 |
YorikSar | harlowja: I really don't think tooz should be used for host-local locks... We should have clear separation: tooz for distributed locks, lockutils for local ones. | 17:38 |
harlowja | YorikSar u might want to comment on https://review.openstack.org/#/c/113753/ ;) | 17:38 |
*** praneshp has joined #openstack-oslo | 17:39 | |
harlowja | YorikSar the problem is lockutils isn't made in a generic manner :-/ | 17:39 |
bnemec | YorikSar: That's fine with me. | 17:39 |
* bnemec now wants to shoot semaphores in the head | 17:39 | |
harlowja | lol | 17:39 |
bnemec | Whoever designed those apis had no clue what they were doing. | 17:39 |
harlowja | bnemec it amazes me a little that such a crappy locking system (posix_ipc, sysv_ipc) ever made it in | 17:39 |
harlowja | crazy | 17:39 |
YorikSar | harlowja: Well... It covers host-local locking well. | 17:39 |
bnemec | I mean, POSIX semaphores are completely broken for interprocess locking. | 17:39 |
dhellmann | zzzeek: you're preaching to the choir in this chat room :-) | 17:39 |
clarkb | who can I bug about oslo.messaging test failures with random python hashseeds? (looks like the entire oslo-core group is in the messaging core) | 17:40 |
bnemec | The sysv api is a total mess. | 17:40 |
harlowja | bnemec ya its totally weird | 17:40 |
dhellmann | clarkb: markmc, flaper87|afk, and sileht are the primary devs on messaging | 17:40 |
zzzeek | dhellmann: I’m intentionally working quite a bit on technical debt issues. glad my sponsor is OK with that | 17:40 |
clarkb | https://review.openstack.org/#/c/114079/ is the change I am interested in merging to prevent oslo.messaging from breaking next week | 17:40 |
clarkb | dhellmann: thanks | 17:40 |
*** pcm_ has quit IRC | 17:40 | |
harlowja | YorikSar sure, it has code that covers host-local locking well, it just sucks in a bunch of dependencies that don't make sense to be used by libraries | 17:40 |
clarkb | as an alternative we can hard set a hashseed of 0 but it was only this one test that seemed to fail so I figured we could fix the test instead | 17:41 |
dhellmann | clarkb: i'll put that on my review list, too, but it may be a few hours before I can get to it | 17:41 |
dhellmann | oh, easy change, hang on | 17:41 |
*** pcm_ has joined #openstack-oslo | 17:41 | |
harlowja | zzzeek i think most of this room is onboard with the tech debt stuff ;) | 17:41 |
harlowja | here to serve! | 17:41 |
harlowja | ha | 17:41 |
clarkb | dhellmann: do read the commit message, I am not sure if this has uncovered an actual bug | 17:41 |
YorikSar | bnemec: POSIX semaphores a really strange indeed (although they work fine unless process die). SysV semaphores are actoally semaphore arrays, so if we use them as such, we can overcome issues with them. | 17:41 |
harlowja | *reducing tech debt stuff, haha | 17:41 |
dhellmann | clarkb: +2 | 17:41 |
clarkb | dhellmann: it isn't clear to me if the order there is important | 17:41 |
harlowja | YorikSar how would that work, a set of program would get its own array? | 17:42 |
* YorikSar smells another place that will burn with lockutils discussion, runs to etherpad to save the channel | 17:42 | |
harlowja | with the 32000 limit (this one is weird to even exist, why 32000) | 17:42 |
YorikSar | harlowja: Let me finish the etherpad. I think it might get clear how we can use arrays from it :) | 17:43 |
bnemec | I don't know, but that's what it is on my system. | 17:43 |
harlowja | kk | 17:43 |
harlowja | bnemec its on a couple of systems i've sen also | 17:43 |
harlowja | *seen | 17:43 |
bnemec | Concurrency is hard enough to get right without sucky apis underlying it. | 17:44 |
harlowja | yup | 17:44 |
harlowja | so how about that zookeeper (u could just tell people to run it locally, haha) | 17:44 |
harlowja | ;) | 17:44 |
*** Alexei_9871 has quit IRC | 17:44 | |
harlowja | it doesn't work, cough cough | 17:45 |
dhellmann | clarkb: I suspect the issue there is the stevedore manager using a dictionary internally | 17:45 |
dhellmann | clarkb: I'm also not sure if order is important. I'll take a closer look. | 17:46 |
clarkb | dhellmann: thank you, we can always go the other route if we need more time too | 17:47 |
dhellmann | clarkb: which python version are you using for the test there? | 17:50 |
clarkb | dhellmann: python2.7 with tox1.7.2 | 17:50 |
dhellmann | ok | 17:50 |
dhellmann | clarkb: the method _get_drivers_for_message() returns a list created from a set, so order can't be important there | 17:52 |
clarkb | dhellmann: awesome that makes my change a reasonable fix | 17:53 |
dhellmann | clarkb: it's not clear why when we mock that to return a list it doesn't come out in the same order, yet | 17:53 |
clarkb | dhellmann: well the mock takes a list of lists | 17:54 |
clarkb | dhellmann: and I thought the conversion from list of lists to lists may haev caused it | 17:54 |
dhellmann | clarkb: ah, the thing that calls that mock also uses a set() | 17:54 |
dhellmann | clarkb: so your change seems safe | 17:54 |
dhellmann | clarkb: I think using side_effect like that on the mock causes separate return values for multiple calls, but I'd have to verify that in the docs | 17:55 |
dhellmann | clarkb: no, I think I'm making that up | 17:57 |
dhellmann | clarkb: ooh, no, I was right! http://paste.openstack.org/show/95136/ | 17:59 |
clarkb | oh I see, and those end up in a set? | 17:59 |
dhellmann | clarkb: yeah, notify() buids a set of driver names | 18:01 |
*** pcm_ has quit IRC | 18:09 | |
*** pcm_ has joined #openstack-oslo | 18:10 | |
*** pblaho_ has joined #openstack-oslo | 18:33 | |
amrith | YorikSar, do you have a second? | 18:33 |
*** nealph_ has joined #openstack-oslo | 18:33 | |
YorikSar | amrith: Will be with you in couple minutes - writing message to ML... | 18:33 |
amrith | thx | 18:34 |
*** linkid has joined #openstack-oslo | 18:34 | |
*** nealph has quit IRC | 18:36 | |
YorikSar | bnemec, harlowja: http://lists.openstack.org/pipermail/openstack-dev/2014-August/043090.html | 18:40 |
harlowja | YorikSar great | 18:40 |
YorikSar | amrith: I'm back. | 18:41 |
harlowja | YorikSar very nice etherpad +2 | 18:41 |
harlowja | :) | 18:41 |
harlowja | YorikSar ok if i add some stuff to etherpad? | 18:41 |
YorikSar | harlowja: +2 to etherpad or to all its contents? ;) | 18:41 |
harlowja | YorikSar +2 to it looks nice ;) | 18:41 |
YorikSar | harlowja: Sure. That's what etherpad is for. | 18:41 |
amrith | yoriksar, I was trying to implement what you suggested in your review; I had hit a pothole. In https://review.openstack.org/#/c/110933/7/tests/unit/test_processutils.py,unified you had suggested that rather than creating a mock object explicitly I should instead use kwargs side_effect to MonkeyPatch. | 18:41 |
amrith | I get that. | 18:41 |
amrith | I don't follow how you are suggesting I verify the call_count. | 18:41 |
*** AAzza is now known as AAzza_afk | 18:42 | |
YorikSar | mock = self.useFixture(MonkeyPatch(....)).mock; <do stuff>; assertEquals(42 mock.call_count) | 18:42 |
YorikSar | amrith: ^ | 18:42 |
amrith | I've tried that | 18:43 |
amrith | i get an error | 18:43 |
YorikSar | What error? | 18:43 |
amrith | let me re-run | 18:43 |
YorikSar | Note that you need to use fixture.mock, not fixture itself (that gets returned from useFixture) | 18:44 |
amrith | AttributeError: 'MonkeyPatch' object has no attribute 'call_count' | 18:44 |
YorikSar | amrith: ^ | 18:44 |
YorikSar | You forgot .mock, I guess. | 18:44 |
amrith | .mock ... | 18:44 |
amrith | one second | 18:44 |
YorikSar | useFixture gets fixture, runs its setUp and then returns it. We don't need fixture itself, but in its setUp it sets self.mock to a mock that will be used. So we get that mock and use it later to verify call_count. | 18:45 |
amrith | YorikSar, this is what I'm doing https://gist.github.com/amrith/3b8fa07c8c5249e3563b | 18:46 |
amrith | ok, I see the differences. let me retry | 18:46 |
YorikSar | You should do: mock = self.useFixture(fixtures.MonkeyPatch('subprocess.Popen.communicate', side_effect=OSError(errno.EAGAIN, 'fake-test'))).mock | 18:47 |
YorikSar | No need to explicitely create Mock object there. And you should add .mock after useFixture(..) | 18:47 |
YorikSar | Btw, there's also no need to store mock in self. It's just a local mock for your test. | 18:48 |
* amrith tries again | 18:48 | |
amrith | so, fixtures.MonkeyPatch says side_effect is an unexpected argument | 18:49 |
amrith | that's the reason I had put it in a mock.Mock() | 18:49 |
YorikSar | That's strange... Let me check. | 18:49 |
amrith | i put a comment on the gist | 18:50 |
amrith | with that error | 18:50 |
YorikSar | amrith: Oh, you should use Patch fixture from openstack.common.fixtures.mockpatch | 18:50 |
amrith | ok, one second | 18:51 |
YorikSar | fixtures.MonkeyPatch work w/o mock afaik | 18:51 |
amrith | openstack.common.fixture.mockpatch, trying that. will let you know how that goes | 18:52 |
amrith | interesting ... I don't see anyone in openstack using it (I was looking for a simple sample) | 18:52 |
amrith | never mind | 18:53 |
amrith | typo | 18:53 |
amrith | fixture not fixtures | 18:53 |
amrith | YorikSar, much more better. works like a champ. thanks! | 18:57 |
YorikSar | amrith: Great :) | 18:57 |
YorikSar | harlowja: Ah... I've almost caught that sentence! :) | 19:01 |
harlowja | ;) | 19:01 |
harlowja | etherpad battle ftw, ha | 19:01 |
YorikSar | harlowja: it's 11pm, time to go home. I'll come back tomorrow or maybe later today. Can you move Zookeeper option to the main list (option D, I guess) and add pros/cons? | 19:02 |
harlowja | don't forget to look at C4 YorikSar | 19:02 |
harlowja | ah, sure | 19:02 |
openstackgerrit | amrith proposed a change to openstack/oslo-incubator: Handle a failure on communicate() https://review.openstack.org/110933 | 19:06 |
amrith | YorikSar, new bits for you when you are able ... https://review.openstack.org/#/c/110933/. thanks for your help! | 19:08 |
harlowja | YorikSar ok, added some pros/cons to zookeeper option | 19:15 |
openstackgerrit | Arnaud Legendre proposed a change to openstack/oslo.vmware: Add methods to the Datastore objects https://review.openstack.org/109160 | 19:32 |
*** stevemar has quit IRC | 19:35 | |
*** stevemar has joined #openstack-oslo | 19:36 | |
*** markmc has joined #openstack-oslo | 19:41 | |
*** alexpilotti has quit IRC | 20:09 | |
Alexei_987 | dhellmann: Hi are you still here? | 20:16 |
dhellmann | Alexei_987: here | 20:19 |
Alexei_987 | dhellmann: coming back to discussion of URL vs CONF | 20:19 |
Alexei_987 | dhellmann: right now ceilometer can open 2 different DB connections | 20:19 |
Alexei_987 | dhellmann: cause they separated alarm and storage backends | 20:20 |
dhellmann | ok | 20:20 |
Alexei_987 | dhellmann: in CONF case it becomes quite hard to support such schema since you need 2 different config sets | 20:20 |
Alexei_987 | dhellmann: what would you advise in such case? | 20:20 |
openstackgerrit | A change was merged to openstack/oslo.vmware: Imported Translations from Transifex https://review.openstack.org/113785 | 20:21 |
openstackgerrit | A change was merged to openstack/oslo.messaging: Make tests pass with random python hashseed https://review.openstack.org/114079 | 20:21 |
Alexei_987 | dhellmann: it seems to me that this is fundamental limitation of oslo.config | 20:22 |
Alexei_987 | dhellmann: since it assumes that you only have 1 instance of configured object | 20:22 |
Alexei_987 | dhellmann: + options group hack | 20:22 |
Alexei_987 | dhellmann: so for oslo.db for example there is no way to create 2 engines with different config | 20:25 |
Alexei_987 | zzzeek: Hi if you are still here you advice is also very welcome ^^ | 20:29 |
zzzeek | Alexei_987: I know nothing about the config system. in oslo.db, i can call session.create_engine() as many times and get that number of engines :) | 20:30 |
dhellmann | Alexei_987: sorry, local interruption, reading the scrollback | 20:30 |
zzzeek | Alexei_987: if CONF is global and has one “connection”, then yeah, unless you cahnge it at runtime (which is what a lot of test suites do) | 20:30 |
dhellmann | Alexei_987: each db handle would use a different group with the same option definitons, so the driver needs to be given some group name to use to load the options separately (you can do this, and some other projects do) | 20:30 |
zzzeek | Alexei_987: however, for testing, there’s a whole different way to get at engines that should be used. its not fully merged yet :) | 20:30 |
Alexei_987 | dhellmann: so you are saying that oslo.db should accept 'group' as a parameter and read options from it? | 20:31 |
Alexei_987 | zzzeek: I know and I would like to get to it. Some time ago I've made a lot of hacking in ceilometer to make tests work with db connections well | 20:32 |
Alexei_987 | dhellmann: https://github.com/openstack/oslo.db/blob/master/oslo/db/sqlalchemy/session.py#L753 ? | 20:34 |
openstackgerrit | A change was merged to openstack/oslo-incubator: Specify namedtuple_as_object=False when using simplejson https://review.openstack.org/113760 | 20:35 |
zzzeek | Alexei_987: the test gets set up with self.engine, and i think self.session | 20:35 |
Alexei_987 | zzzeek: executing a test inside of a transaction would be a great step forward :) | 20:37 |
zzzeek | Alexei_987: its all ready to be merged | 20:37 |
zzzeek | Alexei_987: if you can get your test to use self.engine, you’re in | 20:38 |
Alexei_987 | zzzeek: for tests it's rather simple (just do a proper mock) | 20:38 |
dhellmann | Alexei_987: yes, probably, with "group" being some name that is meaningful to the application (like "alarm" and "samples" maybe) | 20:39 |
*** pcm_ has quit IRC | 20:39 | |
Alexei_987 | dhellmann: yeah I guess we'll have to go this way | 20:39 |
dhellmann | Alexei_987: so you would have an "alarms_db" group with a "url" option and then whatever other options oslo.db uses, and similarly "samples" | 20:40 |
dhellmann | or samples_db, I guess | 20:40 |
Alexei_987 | dhellmann: and if CONF would be a normal dict you could just create an engine with Facade.from_config(conf['storage']) | 20:40 |
Alexei_987 | dhellmann: so no changes in oslo.db would be required :) | 20:40 |
dhellmann | Alexei_987: you can also pass an option group in, but I don't know if the config filter works with that | 20:41 |
dhellmann | Alexei_987: how would the application know what to put in that dictionary? | 20:41 |
dhellmann | Alexei_987: keep in mind a mongo driver might have different options than an SQL driver | 20:41 |
Alexei_987 | dhellmann: application should not care... user will configure it. application should now what to get from there and fail if something is missing | 20:41 |
dhellmann | Alexei_987: but some piece of code needs to build the dictionary if you're going to pass it to the driver. Where is that logic? | 20:42 |
Alexei_987 | dhellmann: not sure I understand. If you configure engine from external config it's user responsibility to fill it. | 20:43 |
Alexei_987 | dhellmann: and if you create an object internally you should now what object you are creating and what options should be there | 20:43 |
dhellmann | Alexei_987: something reads the config file, and then creates a dict() with some things in it, and then passes that to the driver. How does it know what parts to take out of the config and put into the dict? | 20:43 |
Alexei_987 | dhellmann: ah.. for ceilometer for example it should be storage.get_connection method | 20:44 |
Alexei_987 | dhellmann: it would get proper dict from config and pass it to underlying driver | 20:44 |
Alexei_987 | dhellmann: so something like a factory method | 20:44 |
dhellmann | Alexei_987: so get_connection() now has to know which options each driver needs? | 20:45 |
dhellmann | Alexei_987: because until the options are registered, the values are not visible in the config object (even though they are present) | 20:45 |
Alexei_987 | dhellmann: It doesn't know the options itself. just the group where they are stored | 20:45 |
Alexei_987 | dhellmann: in case of plain dict it's not a problem | 20:46 |
dhellmann | Alexei_987: but then there's no validation of the config | 20:46 |
Alexei_987 | dhellmann: validation should be in driver object | 20:46 |
Alexei_987 | dhellmann: driver gets a CONF slice with options | 20:47 |
dhellmann | Alexei_987: right, that's why the drivers register their options and then access them :-) | 20:47 |
Alexei_987 | dhellmann: and registers it's own | 20:47 |
Alexei_987 | yeah but now driver has to register them in certain namespace | 20:47 |
dhellmann | Alexei_987: so maybe we need an API to register options in a group | 20:47 |
Alexei_987 | dhellmann: and if it would only receive a slice of CONF it would register them assuming that options are on root level | 20:47 |
dhellmann | Alexei_987: that's reasonable, but it still won't be a dict() | 20:48 |
Alexei_987 | (like validating a dict against some filters) | 20:48 |
Alexei_987 | dhellmann: it may not be a dict from impl point of view | 20:48 |
Alexei_987 | dhellmann: but it could look like a dict | 20:48 |
openstackgerrit | A change was merged to openstack/oslo-incubator: Make graduate.sh commit filtering more correct https://review.openstack.org/109779 | 20:48 |
Alexei_987 | dhellmann: so driver would do something like conf.validate_opts(driver_opts) | 20:49 |
Alexei_987 | dhellmann: and later assume that conf is a dict | 20:49 |
Alexei_987 | dhellmann: I even imaging a "ConfigurableMixin" that would do this | 20:50 |
Alexei_987 | dhellmann: and end user object would simply access normal kwargs | 20:50 |
*** dims has quit IRC | 20:51 | |
*** dims_ has joined #openstack-oslo | 20:51 | |
Alexei_987 | s/imaging/imagine | 20:51 |
dhellmann | Alexei_987: we don't need to change the API of the conf object to accomplish any of that, though, except to add the ability to register options directly on a group if that isn't already possible (it might be, I'm not sure) | 20:52 |
Alexei_987 | dhellmann: yeah it's true | 20:53 |
Alexei_987 | dhellmann: that's what I said in Atlanta | 20:53 |
Alexei_987 | dhellmann: however everyone was too busy to discuss it | 20:53 |
dhellmann | ok, I don't remember that but I believe you | 20:53 |
dhellmann | that rings true, we had a lot to figure out about graduation then | 20:53 |
dhellmann | want to write a spec for kilo? | 20:53 |
Alexei_987 | dhellmann: so maybe we could file a spec in oslo.config? | 20:53 |
Alexei_987 | dhellmann: yeah should be reasonable | 20:54 |
Alexei_987 | dhellmann: My vision is that Configurable class may look like sqlalhemy.Model definition and with little help of metaclasses magic validate incoming options | 20:54 |
*** mrda-away is now known as mrda | 20:55 | |
dhellmann | Alexei_987: I would like to see more detail, and figure out if there's a way to make this work a little better. Look at the existing API to make sure it doesn't support what you want (even if the API itself isn't what you like) before proposing a new implementation, but do write a spec for kilo. | 20:56 |
Alexei_987 | dhellmann: sure.. I will do a spec and prepare a small POC | 20:57 |
dhellmann | Alexei_987: awesome :-) | 20:57 |
Alexei_987 | dhellmann: just need to fix urgent bugs :( | 20:57 |
dhellmann | Alexei_987: yeah, sure, focus on bugs -- this would be for kilo anyway | 20:57 |
openstackgerrit | Dolph Mathews proposed a change to openstack/pycadf: jsonschema based model validation https://review.openstack.org/114356 | 21:00 |
*** stevemar has quit IRC | 21:10 | |
*** zzzeek has quit IRC | 21:23 | |
*** tongli has joined #openstack-oslo | 21:23 | |
*** tsekiyam_ has joined #openstack-oslo | 21:24 | |
*** tong_ has quit IRC | 21:26 | |
*** tsekiyama has quit IRC | 21:26 | |
openstackgerrit | Dolph Mathews proposed a change to openstack/pycadf: jsonschema based model validation https://review.openstack.org/114356 | 21:34 |
jogo | dhellmann:stevedore lolz: http://logs.openstack.org/30/114030/1/check/check-tempest-dsvm-full/d1f636f/logs/ | 21:34 |
jogo | n-api 8.6MB | 21:34 |
jogo | wow http://logs.openstack.org/30/114030/1/check/check-tempest-dsvm-full/d1f636f/logs/?C=S;O=D | 21:35 |
openstackgerrit | Dolph Mathews proposed a change to openstack/pycadf: jsonschema based model validation https://review.openstack.org/114356 | 21:35 |
*** zzzeek has joined #openstack-oslo | 21:36 | |
*** dims has joined #openstack-oslo | 21:42 | |
dhellmann | jogo: ? | 21:43 |
jogo | dhellmann: loos like stevedore is a big chunk of those logs | 21:44 |
dhellmann | jogo: ah, logging too much? yeah, file a bug for me? | 21:44 |
dhellmann | jogo: I'm about done for the day and headed to a meetup, but I can look at it tomorrow morning | 21:44 |
*** dims has quit IRC | 21:45 | |
jogo | dhellmann: I was going to add it to the list of libs to set to INFO log level | 21:45 |
*** dims_ has quit IRC | 21:45 | |
dhellmann | jogo: I'm not sure we want to turn off all debugging, though, so maybe we just want to set the default output level for stevedore to info? yeah | 21:45 |
*** dims has joined #openstack-oslo | 21:45 | |
dhellmann | jogo: if you submit a patch I can +2 it and we'll be half way there :-) | 21:45 |
jogo | dhellmann: cool if your happy with setting it to INFO in nova I'll push up the patch | 21:45 |
dhellmann | jogo: yep, makes a lot of sense, and we can look at stevedore to see if maybe some of the messages should be at a different level | 21:46 |
jogo | cool, oslo patch comming soon | 21:46 |
*** openstackgerrit has quit IRC | 21:46 | |
dhellmann | jogo: thanks! | 21:47 |
dhellmann | jogo: is there a bug I should track, too, or just the patch? | 21:47 |
*** openstackgerrit has joined #openstack-oslo | 21:47 | |
jogo | dhellmann: just a patch that I am working on right now | 21:47 |
jogo | want a bug too? | 21:47 |
dhellmann | jogo: nah, if there's not already a bug the patch is enough | 21:47 |
dhellmann | jogo: post the link there so it's not lost in my inbox? | 21:48 |
openstackgerrit | Joe Gordon proposed a change to openstack/oslo-incubator: Set stevedore log level to WARN by default https://review.openstack.org/114368 | 21:49 |
jogo | dhellmann: ^ | 21:50 |
jogo | dims: ^ | 21:50 |
dims | lgtm | 21:51 |
jogo | dims: thanks | 21:52 |
*** mriedem has quit IRC | 21:53 | |
dhellmann | jogo: warn not info? that's probably ok, it's consistent with the others | 21:53 |
dhellmann | jogo: +2a | 21:54 |
*** linkid has left #openstack-oslo | 21:54 | |
* dhellmann signs off for the python meetup | 21:54 | |
openstackgerrit | Joshua Harlow proposed a change to openstack/taskflow: Use explicit WBE request state transitions https://review.openstack.org/114162 | 21:55 |
*** markmcclain has quit IRC | 21:57 | |
jogo | n-api is 33 MBs uncompressed | 21:57 |
*** jecarey_ has quit IRC | 21:58 | |
openstackgerrit | A change was merged to openstack/oslo-incubator: Set stevedore log level to WARN by default https://review.openstack.org/114368 | 22:06 |
*** dims has quit IRC | 22:14 | |
*** dims has joined #openstack-oslo | 22:15 | |
*** dims has quit IRC | 22:19 | |
openstackgerrit | Dolph Mathews proposed a change to openstack/pycadf: jsonschema based model validation https://review.openstack.org/114356 | 22:23 |
*** markmc has quit IRC | 22:25 | |
*** tpatil__ has joined #openstack-oslo | 22:32 | |
*** jgrimm has quit IRC | 22:37 | |
*** tpatil__ has quit IRC | 22:37 | |
openstackgerrit | Dolph Mathews proposed a change to openstack/pycadf: jsonschema based model validation https://review.openstack.org/114356 | 22:41 |
*** tpatil_ has joined #openstack-oslo | 22:45 | |
*** gordc has quit IRC | 22:54 | |
*** tpatil_ has quit IRC | 23:01 | |
*** bknudson has quit IRC | 23:05 | |
*** dims has joined #openstack-oslo | 23:16 | |
openstackgerrit | Dolph Mathews proposed a change to openstack/pycadf: jsonschema based model validation https://review.openstack.org/114356 | 23:26 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!