Wednesday, 2016-12-21

jamielennoxi'm wondering on the remaining value of keeping the connections something handled by zuul core vs an implementation detail of a driver00:00
jamielennoxand whether that patch is a complete proposal or a step on the way to a larger refactor00:01
jeblairjamielennox: i'd say it's a structurally complete proposal -- the thing i'm hand-wavey on is whether the api should be duck-typed, or abstract base classes, or straight up inheritance... these things i expect us to settle on in a followup change.  the thing i'd like to nail down here is the relationships between all those classes -- exactly the kind of question you asked.  :)00:09
jeblairjamielennox: to the queston, i think there are a few things that lead me here....00:10
jeblair1) connections are defined in zuul.conf, so it seemed reasonable for them to be a first class object that the scheduler knows about (and creates/destroys as needed on reconfiguration)00:10
jeblair2) the reporters/triggers/etc are likely to be created/destroyed far more often as pipeline configurations change, whereas connections are long lived, so keeping those separate made sense.00:12
jamielennoxyea, connection reconfiguration i hadn't seen a way around yet, re zuul.conf that wouldn't seem to be a big problem for now because you have a 1-1 relationship for driver->connection with the same name so the transition case is easy there00:13
jeblairjamielennox: but i think i see what you're getting at... if we pass in zuul.conf to driver initialization, it can set up the connections on its own, and 'driver.getTrigger(pipeline_config)' would then have enough information to fetch the right connection from its own internal connection registry00:14
jamielennoxright, and really reconfiguration of triggers/sources can be done by basically dropping all existing triggers/sources and asking for a new one from the driver with new config00:15
jeblairjamielennox: right00:16
jamielennoxso looking at the connectionregistry we do:00:16
jamielennox#     def getSource(self, connection_name):00:16
jamielennox#         connection = self.connections[connection_name]00:16
jamielennox#         return connection.driver.getSource(connection)00:16
jamielennox(which i commented to see where it was used)00:16
jamielennoxwhich would seem to be a backwards relationship to me00:17
jeblairwell, connectionregistry is awkwardly named at this point :)00:17
jamielennoxit seems to mostly be config and connection_name is coming from layout.yaml/zuul.yaml00:17
jamielennoxyea00:18
jamielennoxbut at this point do you think the name in zuul.yaml refers to a connection or a driver?00:18
jeblairoh but that's a good point i didn't think of00:18
jeblairit refers to a connection, unless the driver is connectionless, in which case it's the driver00:18
jeblairso 'openstack_gerrit' from the gerrit driver; 'zuul' from the (connectionless) zuul driver00:19
jamielennoxso if a driver is named and has one getConnection method how does the driver name come to differ from the connection name?00:19
jeblairit zuul.conf you say "[connection openstack_gerrit]\n driver=gerrit"00:20
jamielennoxoh, derp, gerrit as a driver can connect to multiple different gerrit instances with different names00:20
jamielennoxright00:20
jeblairyeah, so having connections as something zuul knows about lets it look up the driver based on the connection specified in a trigger, in that code snippet you pasted00:21
jamielennoxso why do we instantiate a driver as an object with different connections rather than create an Instance of the Gerrit driver per connection?00:22
jamielennoxi guess that's harder to manage when doing a reconfigure00:22
jeblairthat's to facilitate things like the zuul and timer triggers which maintain truly global state (other drivers might end up having some global state too)00:23
jeblair(example, the timer trigger wants to have a single apscheduler instance, even across tenants, that is never destroyed)00:24
jeblairin a nutshell, the approach gives us global state, connection state, and pipeline state00:25
jamielennoxdo tenants play into this? can a driver/connection exist within only a tenant?00:25
jeblairconnections are currently global across all tenants00:26
jeblaircontinuing the example the timer driver is tenant aware and knows to remove all the timer events for a tenant if it is reconfigured00:27
jamielennoxok, that clears up a few things i was thinking about incorrectly - thanks00:29
jamielennoxi'll keep having a poke through that review00:29
jeblairjamielennox: thanks!  this was helpful :)00:30
jamielennoxyea, i see what you mean, the inter-relationship between connections and triggers, sources is a bit funny now00:31
openstackgerritJames E. Blair proposed openstack-infra/zuul: Add FakeNodepool test fixture  https://review.openstack.org/41329600:47
jeblairfirst zuul <-> nodepool interaction :)00:48
openstackgerritJames E. Blair proposed openstack-infra/zuul: Add FakeNodepool test fixture  https://review.openstack.org/41329600:49
*** harlowja has joined #zuul01:06
*** harlowja has quit IRC01:44
Shrewsjeblair: i'm feeling like maybe we should just have zuul import nodepool and use the zk.py from there03:41
Shrewsmaintaining that code in two places will quickly become tiresome03:42
*** abregman has joined #zuul06:16
*** willthames has quit IRC07:33
*** openstackgerrit has quit IRC07:48
*** pleia2_ has joined #zuul08:09
*** pleia2 has quit IRC08:16
*** mmedvede has quit IRC08:16
*** abregman is now known as abregman|mtg08:20
*** mmedvede has joined #zuul08:23
*** abregman|mtg has quit IRC08:24
*** mmedvede has quit IRC08:50
*** mmedvede has joined #zuul09:16
*** abregman has joined #zuul09:27
*** herlo has quit IRC09:29
*** bhavik1 has joined #zuul09:35
*** bhavik1 has quit IRC09:39
*** abregman has quit IRC09:42
*** abregman has joined #zuul09:44
*** openstackgerrit has joined #zuul10:27
openstackgerritIan Wienand proposed openstack-infra/nodepool: Add glean libs-from-git install  https://review.openstack.org/41354610:27
*** abregman is now known as abregman|mtg10:57
openstackgerritIan Wienand proposed openstack-infra/nodepool: Add glean libs-from-git install  https://review.openstack.org/41354610:58
*** persia has quit IRC11:07
*** persia has joined #zuul11:09
*** hashar has joined #zuul12:06
*** abregman|mtg is now known as abregman12:51
*** pleia2_ is now known as pleia213:54
*** abregman is now known as abregman|intervi13:57
*** abregman|intervi has quit IRC13:57
dmsimardHey zuul people, I'm going to be working on ARA during the holidays so I'm collecting wishlist/ideas/comments -- I've already started prototyping a UI refactor in case you want to have a look at where I might be going: https://www.youtube.com/watch?v=h3vY87_EWHw14:18
*** abregman has joined #zuul15:19
*** herlo has joined #zuul15:22
*** herlo has joined #zuul15:22
*** jamielennox is now known as jamielennox|away15:46
*** bhavik1 has joined #zuul15:46
*** openstackgerrit_ has joined #zuul15:48
*** openstackgerrit_ has quit IRC15:49
*** jamielennox|away is now known as jamielennox15:54
*** openstack has quit IRC17:02
*** openstack has joined #zuul17:07
*** abregman has quit IRC17:25
*** bhavik1 has quit IRC17:50
*** hogepodge has quit IRC18:46
*** hogepodge has joined #zuul19:12
*** abregman has joined #zuul19:23
* SpamapS wishes the diff command had a '--ignore-timestamps' mode19:33
* SpamapS makes one with python and vimdiff19:43
SpamapSadam_g: did I see you saying something about the conflict pipeline yesterday?20:00
adam_gSpamapS: maybe?20:00
adam_gSpamapS: one sec, distracted20:02
SpamapSadam_g: np20:02
Shrewsjeblair: ah, kazoo has an API that automatically re-registers watches for you. seems to work nicely in simple testing20:02
SpamapSIndeed, I'd expect most zk libs to do that.20:04
SpamapSas long as you have record of users asking for something... keep doing it.20:04
adam_gSpamapS: theres https://review.openstack.org/40937620:05
adam_gSpamapS: and https://review.openstack.org/411467 deals with conflicts as well20:06
SpamapSadam_g: k, I am working on a test that seems to depend on that stuff, so I may rebase on one or both of those.20:09
adam_gSpamapS: which one?20:11
adam_gSpamapS: those kind of put me down a rabbit hole i have yet to come out of20:12
*** Shuo has joined #zuul20:12
SpamapSadam_g: hah yeah20:16
SpamapSadam_g: test_dependent_behind_dequeue20:16
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul: Re-enable test_dependent_behind_dequeue  https://review.openstack.org/41376820:22
SpamapSadam_g: ^ fails because of missing jobs in conflict pipeline20:24
adam_gSpamapS: one min ill poke at it.i think in one of my patches i moved relevant config into a different config fixutre, and grouped merge-related tests into a class that uses that20:28
SpamapSadam_g: this one is just counting jobs that ran in the common single-tenant config .. and right now there are just missing pipelines.20:29
SpamapSadam_g: so if you're not going to add those back to the common config then I can just adjust my counts. :)20:29
adam_gSpamapS: huh, that one test you pushed seems to pass here?20:46
adam_goh wait20:47
adam_gi ran the wrong one heh20:47
adam_gSpamapS: where does this test use the conflict pipeline you mentioned?20:51
SpamapSadam_g: when I run it in master, it runs some stuff in conflict21:05
SpamapSI think21:05
adam_gSpamapS: so that test shouldnt need any of the merge conflict fixes i was adding. 'A.fail_merge = True' is a different merge failure, just gerrit basically saying the thing failed to merge on that side21:05
adam_gSpamapS: i think the issue is, the v2 test was using tests/fixtures/layout.yml and the one you enabeld is using the single-tenant one, and the projects in there dont have the same jobs configured, so the counts will be off21:05
adam_git looks like its doing the right thing otherwise, i think21:06
SpamapSadam_g: yeah, I suppose I could just add some of the tests back in.21:06
adam_gSpamapS: that may screw with counts on other tests tho21:07
SpamapStrue21:07
SpamapSand agreed, it looks like it does the right thing in most places21:07
adam_gi just quickly added the missing jobs in but still get the ABORTED off by 3 (instead of 6), maybe i missed something21:07
SpamapSThere's such a mountain of logs21:08
SpamapSI wrote some python one-liners and am using vimdiff to try and make sense of the changes21:08
adam_gi usually just redirect to a file somewhere if i dont have a breakpoint to stop it first21:10
jeblairShrews: yeah, i recall we discussed possibly making it a library later, or just having zuul import nodepool.zk as you suggest might be an option.  at the moment, i don't want to sweat it too much because i *think* there might be very little overlap.  (it still might be a good idea, even in that case, but i think it lowers the urgency some)21:12
jeblairShrews: re watches -- that's cool, i think we'll be in a position to try them out pretty soon in the zuul code21:13
*** Shuo has quit IRC21:30
openstackgerritMerged openstack-infra/nodepool: Add glean libs-from-git install  https://review.openstack.org/41354621:35
*** abregman has quit IRC21:43
openstackgerritJames E. Blair proposed openstack-infra/zuul: Add FakeNodepool test fixture  https://review.openstack.org/41329622:04
jeblairi just discovered the zookeeper admin protocol -- telnet to the client port and type text, just like gearman :)22:10
openstackgerritJames E. Blair proposed openstack-infra/zuul: Add FakeNodepool test fixture  https://review.openstack.org/41329622:17
*** vikk has joined #zuul22:46
*** vikk has left #zuul22:47
openstackgerritIan Wienand proposed openstack-infra/nodepool: Switch devstack job to Xenial builds  https://review.openstack.org/41379922:51
*** saneax-_-|AFK is now known as saneax23:09
jamielennoxso in the 0.4 nodepool we removed the image-update command, is there an equivalent?23:16
clarkbjamielennox: image build and image upload I think23:20
clarkbupdate was a carry over from snapshot building that got mangled to deal with local builds23:21
jamielennoxclarkb: there's not an image-upload i can see23:22
jamielennoxbasically i need a way to manually re-trigger an image-build/upload because the current image is bad23:22
clarkbindeed, I guess the idea is once an image is built it should be automatically uploaded?23:24
clarkbso I think you can image-delete any bad images23:24
clarkband image-build new ones23:24
clarkband then uploads will be autoperformed aggressively until successful23:24
jamielennoxok, well build is in progress so i'll check how uploads go23:28
jamielennoxthanks23:28
jamielennoxseems very agressively uploaded, thanks clarkb23:33
pabelangerI've just been using dib-image-delete ubuntu-xenial23:36
pabelangerthat will delete all uploads, dib on disk, then kick off a new build and upload23:36
openstackgerritPaul Belanger proposed openstack-infra/nodepool: [WIP] Reduce min-ram for ubuntu images for devstack testing  https://review.openstack.org/41380723:40
SpamapSadam_g: yes, I redirected to a file, but it was just too much to process with human power alone23:41
SpamapSadam_g: so I stripped the timestamps, and ran vimdiff. ANd it's actually _REALLY_ helpful.23:41
*** willthames has joined #zuul23:45
*** hashar has quit IRC23:50

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!