Thursday, 2017-07-13

openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Make roles ordered  https://review.openstack.org/48314000:34
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Run playbooks with only those roles defined thus far  https://review.openstack.org/48314100:34
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add child roles before parent  https://review.openstack.org/48314200:34
jeblairmordred, pabelanger, jlk, SpamapS: ^00:34
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Run playbooks with only those roles defined thus far  https://review.openstack.org/48314100:39
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add child roles before parent  https://review.openstack.org/48314200:39
openstackgerritTristan Cacqueray proposed openstack-infra/zuul feature/zuulv3: Fix status_url section in zuul.conf-sample  https://review.openstack.org/48316603:11
*** dpawar has joined #zuul03:50
*** dpawar has quit IRC04:07
openstackgerritTristan Cacqueray proposed openstack-infra/zuul feature/zuulv3: Fix status_url section in zuul.conf-sample  https://review.openstack.org/48316605:09
*** dpawar has joined #zuul05:16
*** bhavik1 has joined #zuul05:17
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Add spacing lines and formatting to result dicts  https://review.openstack.org/48304205:24
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Add play recap back in to the end of plays  https://review.openstack.org/48304305:24
*** dpawar has quit IRC05:29
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Log execution phase and include information  https://review.openstack.org/48304405:30
*** dpawar has joined #zuul06:06
openstackgerritTristan Cacqueray proposed openstack-infra/zuul feature/zuulv3: Add /etc/hosts and /etc/nsswitch.conf to the bubblewrap  https://review.openstack.org/48321006:10
openstackgerritTristan Cacqueray proposed openstack-infra/zuul feature/zuulv3: Add /etc/hosts and /etc/nsswitch.conf to the bubblewrap  https://review.openstack.org/48321006:30
*** dpawar has quit IRC06:47
*** dpawar has joined #zuul06:49
*** dpawar has left #zuul06:50
*** isaacb has joined #zuul06:52
openstackgerritTobias Henkel proposed openstack-infra/zuul feature/zuulv3: Fix KeysView object does not support indexing  https://review.openstack.org/48323107:06
openstackgerritTobias Henkel proposed openstack-infra/zuul feature/zuulv3: Fix dictionary change during iteration  https://review.openstack.org/48323207:06
tobiashmordred, jeblair: the zuul_stream patches from yesterday broke logging. ^^ are fixes for that07:06
tobiashmordred, jeblair: was it intended to dump the whole result dict for every task?07:09
tobiashmordred, jeblair: in case yes we should think about also filtering stdout_lines (the synchronize task now produces a huge amount of logs)07:10
*** isaacb_ has joined #zuul07:24
*** isaacb has quit IRC07:26
*** isaacb_ has quit IRC07:29
tobiashcool, just noticed that executor restart doesn't break running jobs but just reexecutes them :)07:34
*** isaacb_ has joined #zuul07:35
openstackgerritTobias Henkel proposed openstack-infra/zuul feature/zuulv3: Document start day of week  https://review.openstack.org/48327909:26
*** bhavik1 has quit IRC10:39
*** jkilpatr has quit IRC11:01
*** jkilpatr has joined #zuul11:39
mordredtobiash: thanks! I went ahead and just aproved those11:42
mordredtobiash: and no - the intent was just to better format the dicts that were being printed at the end of the line already - let me take another pass and see about filtering11:43
mordredoh - you know what - I should put dump-results back in ... one sec11:43
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Fix KeysView object does not support indexing  https://review.openstack.org/48323111:44
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Use _dump_results to filter the results  https://review.openstack.org/48331111:46
mordredtobiash: ^^11:46
mordredtobiash: also - wow on the monday bit - I love it when people reimplement cron except different11:47
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Fix dictionary change during iteration  https://review.openstack.org/48323211:50
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Use package module to install bindep packages  https://review.openstack.org/48258411:58
mordredtobiash: although- you know - there's a part of me that's tempted to stop outputting the results dicts and let people add debug statements12:13
mordredoh - actually - I _think_ I may have just had an idea about how to expose a flag to allow debug to be toggled by the end user12:14
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Use _dump_results to filter the results  https://review.openstack.org/48331112:44
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Emit errors from ansible more cleanly  https://review.openstack.org/48333512:44
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Strip zuul workdir from the play banner line  https://review.openstack.org/48333612:44
mordredok. there's some more cleanups to that stack12:44
tobiashmordred: I'll just try out that stuff... :)12:51
mordredtobiash: awesome - thanks! I'm trying to find the right balacing point between providing enough information and not spamming the logs too terribly12:55
tobiashmordred: dumping the results dict was that spammy that I patched it out temporarily ;)12:57
mordredtobiash: ++12:57
tobiashmordred: is that the tip of your stack? https://review.openstack.org/#/c/483336/112:58
mordredtobiash: yes12:58
tobiashmordred: k, trying out in a few minutes12:58
mordredtobiash: wiht that you should get readable ansible errors, less spammy results dict (except for stat calls which are still ugly to me) and the PLAY lines should bea  little shorter12:59
tobiashmordred: I also thought of adding new lines before tasks instead of after12:59
mordredtobiash: oh yeah? that was actually how the first versoin of the patch worked - could certainly make that change13:01
tobiashmordred: lets first check how the logs look like with your stack13:01
*** deep-book-gk_ has joined #zuul13:01
mordredyes!13:01
tobiashmordred: something is broken in your stack: http://paste.openstack.org/show/615261/13:03
* tobiash is checking13:03
*** deep-book-gk_ has left #zuul13:04
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Use package module to install bindep packages  https://review.openstack.org/48258413:07
mordredtobiash: oh! we don't set work_dir13:08
mordredtobiash: sorry - I had a bad local test13:08
tobiashmordred: the last patch of the stack was broken13:15
tobiashmordred: build log without the last patch: http://paste.openstack.org/show/615264/13:15
tobiashmordred: (notice the too much data from the synchronize task)13:15
tobiashmordred: there it prints *every* file of the repos pushed to the node13:16
*** dkranz has joined #zuul13:18
pabelangermorning13:19
tobiashmordred: regarding the second patch (for e.g. ansible parse error handling): http://paste.openstack.org/show/615265/13:24
tobiashmordred: could be decoded before so we don't have b'...' notation in the log13:24
mordredtobiash: cool - I'll work on fixing both of those things13:25
tobiashmordred: also attached example logs to these changes for reference13:28
mordredtobiash: aha! I think I see the issue13:41
* mordred was wondering why we didn't have this issue before13:41
*** jkilpatr has quit IRC13:42
*** jkilpatr has joined #zuul13:47
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Emit errors from ansible more cleanly  https://review.openstack.org/48333514:15
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Strip zuul work dir from the play banner line  https://review.openstack.org/48333614:15
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Filter and print results more comprehensively  https://review.openstack.org/48331114:15
mordredtobiash: ok. that stack ^^ should be much friendlier (and thanks for the great example cases!)14:15
mordredtobiash: there is one thing though - the synchronize command returns a "msg" in its return value that shows the normal rsync output - I don't think systemically supressing that is the right thing -it would confuse folks - but I fixed the patches to obey no_log like they're supposed to14:16
mordredtobiash: in our base job we marked the synchronize invocations with no_log for that reason - if you do - it should hopefully be the amount of data you'd like :)14:16
mordredtobiash: http://paste.openstack.org/show/615274/ here's some sample output with both no_log and without14:21
tobiashmordred: trying...14:51
* mordred crosses fingers14:52
*** amoralej|off is now known as amoralej14:55
tobiashmordred: http://paste.openstack.org/show/615279/14:59
tobiashmordred: example log including ansible parse error (still with b'...')14:59
tobiashmordred: but this time without errors in the debug log :)15:00
tobiashmordred: I personally would remove the empty line between task start and the log of the task15:01
tobiashmordred: and would add an empty line after the play recap15:01
tobiashmordred: or before PLAY, don't know what's better15:02
jeblairmordred: regarding stripping the path from the playbook -- i like that up to a point, but once we're inside the jobdir, there are multiple possible paths to the playbooks (they are not always run from playbook_0).  would just stripping them down to the jobdir root be okay?15:02
jeblairmordred: also, i change those paths in https://review.openstack.org/483141 and it would be nice to not have to figure out all that manual path munging again.15:05
mordredjeblair: how about we just add a variable that the executor passes in like "canonical_playbook_name" and skip stripping at all?15:06
*** isaacb_ has quit IRC15:06
jeblairmordred: incidentally, after 141 lands, the paths, if stripped down to the jobdir, would look like "trusted/project_0/git.openstack.org/zuul-jobs/playbooks/foo" and "work/src/git.openstack.org/zuul/playbooks/bar"15:06
jeblairmordred: that works.  we can even stick the branch on there too (@master).  can we also add the 'trusted/untrusted' bit of information?  i would find that useful in logs.15:07
mordredjeblair: yah - I think trusted/project_0/ and work/src are interesting to us but not to consumer users - I think git.openstack.org/zuul/playbooks/bar is the 'most' important part - although it's also important to indicate in some manner "playbook from git ref {ref}" if it was trusted and therefore a "real" git ref - or "playbook from speculative git ref" if it was not a playbook ina published state15:08
mordredjeblair: yes - I think trusted/untrusted is great info15:08
mordredjeblair: so maybe lets add a playbook_info section to the executor vars, and then we'll have it to be able to emit things into the logs15:09
mordredtobiash: agree re: blank line locations15:09
jeblairmordred: sounds good.  let's build that on top of 483141 because lots of stuff changes in there.15:10
mordredjeblair: ++15:21
*** jkilpatr has quit IRC15:23
tobiashjust curious, do all of you use (only?) gertty or are you also using the gerrit web ui?15:26
jeblairi use only gertty15:39
pabelangerjeblair: do you have magic shell that will open review.o.o URLs into gerrty, or is that a manual process for you15:40
jeblairpabelanger: i use this: http://gertty.readthedocs.io/en/master/usage.html#terminal-integration15:41
pabelangerjeblair: Thanks, setting it up now15:42
*** bhavik1 has joined #zuul15:45
*** bhavik1 has quit IRC16:18
*** jamielennox has quit IRC16:19
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Add html based websocket client for console stream  https://review.openstack.org/48159916:20
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Add html based websocket client for console stream  https://review.openstack.org/48159917:04
Shrewsmordred: so, that ^^^ is what serving up tobiash's example html looks like from a zuul-web route. I'm not in love with it.17:05
Shrewsoh wait. i just got another idea to try17:07
jlko/17:09
*** jkilpatr has joined #zuul17:18
Shrewsnope, that idea didn't pan out17:22
*** jkilpatr has quit IRC17:26
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Add html based websocket client for console stream  https://review.openstack.org/48159917:26
*** harlowja has quit IRC17:27
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Add html based websocket client for console stream  https://review.openstack.org/48159917:27
jeblairShrews: what don't you love?17:34
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Document start day of week  https://review.openstack.org/48327917:36
Shrewsjeblair: i was trying to find a way to avoid inlining the html by redirecting, but i couldn't find any mechanism in place to do so while passing along the query parameters. Also, parameterizing the inline HTML (for uuid and logfile) meant doubling up the { and } characters17:36
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Fix status_url section in zuul.conf-sample  https://review.openstack.org/48316617:39
mordredShrews: ah... I see - mind if I poke at it for a sec? I have a thought but I'm not sure how to effectively express it other than just writing a few lines in code17:39
Shrewsmordred: plz do17:39
Shrewsi'm actually not even convinced that works with the contained javascript17:41
Shrewsi'm betting it doesn't, actually, now that i think about it17:41
* Shrews *shrugs* ... need to find a way to actually test it with live jobs17:43
openstackgerritBen Kero proposed openstack-infra/nodepool master: Correctly source JenkinsException  https://review.openstack.org/48348017:44
jlkgetting to the point of live jobs is harder.17:45
jlksince you do actually need a nodepool with nodes on it17:45
jlkuntil we land the code that explicitly lets you run jobs entirely on the executor17:45
Shrewsjlk: i was thinking of just asking tobiash to try it since he's on our bleeding edge anyway  :)17:46
jlkthere ya go17:46
* jlk wonders how far Jamie got last night17:46
tobiashShrews: will try this out tomorrow17:49
Shrewsmordred: assuming this doesn't work, i wonder if we should try ditching the example html and try aiohttp's streaming api? http://aiohttp.readthedocs.io/en/stable/streams.html17:49
tobiashShrews: I probably have to patch this slightly as my zuul-web doesn't run in /17:50
mordredShrews, tobiash: so - my thoughts are that we can serve the file without templating and just pass parameters in url ...17:50
mordredbut I wanna poke at it for just a few seconds to make sure I'm not smoking something17:51
tobiashmordred, Shrews: that would mean we also need to pass eventually the root url17:52
tobiashgetting uuid and filename worked pretty well via js17:52
Shrewstobiash: everything served by zuul-web should share the same root. not sure i follow?17:53
mordredShrews: but that root can be rooted below /17:53
mordredShrews: so it could be zuul.example.com/web/console-stream17:53
mordredand zuul.example.com/web/static/stream17:54
openstackgerritBen Kero proposed openstack-infra/nodepool master: Add SSH Host Key Verifier Strategy  https://review.openstack.org/48348517:54
tobiashShrews: I saw an absolute path in the html for opening the socket: var ws = new WebSocket('/console-stream');17:55
tobiashthat wouldn't work well if zuul runs under /zuul17:55
Shrewstobiash: oh, well i don't know js very well.17:56
tobiashShrews: in this variant (line 48 following) the parameters are gathered via js and not baked in statically17:58
tobiashShrews: btw, I'm a js noob, so no guarantee for anything in that ;)17:59
Shrewswell the problem with aiohttp handling the request is that i could not find a way to pass the query params through to your html (the thing i think mordred is trying), so it never got the params. that's why i baked them in and used format() to set them18:00
ShrewsSo I'm either thinking about this *totally* incorrectly (very possible since I'm not well versed in web programming), or this might best be left to a real web server18:01
tobiashShrews: I think you don't have to hand out the query parameters to the browser as the browser already knows them18:01
tobiashShrews: so when handling the uuid and filename in js you could completely ignore them in zuul-web18:03
Shrewsthe thing handling /static/stream knows them, yes. but simply returning your HTML as it was causes them to be lost.18:03
Shrews(i know i'm not explaining this clearly)18:04
* Shrews attempts to think of better words18:04
tobiashShrews: hm, that's surprising18:05
tobiashShrews: I thought that this should work as e.g. I thought apache also doesn't handle the query parameters18:06
tobiashShrews: but I'm no web expert either18:06
*** dmsimard is now known as dmsimard|afk18:08
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Run playbooks with only those roles defined thus far  https://review.openstack.org/48314118:10
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add child roles before parent  https://review.openstack.org/48314218:10
Shrewstobiash: mordred: oh! i just proved myself wrong.18:11
Shrewsoh, no i didn't18:15
Shrewslol18:15
Shrewsformat() tricked me18:16
*** jkilpatr has joined #zuul18:16
* Shrews steps away for some much needed tea18:16
jlkjeblair: haha, i think we're both looking at the same story/task18:25
jlkjeblair: project pipeline addition via in-config speculative change18:26
jeblairjlk: i don't think i'm looking at that?18:26
jlkerm, I need to learn how to read timelines.18:27
jlkyou created it, back in march. My mistake.18:27
jeblairwhew :)18:27
jlkdon't know why I'm so used to newest at the top oldest at the bottom.18:28
jlkbut that's not how storyboard works18:28
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Serve html statically  https://review.openstack.org/48350318:31
mordredShrews: so- the thing I meant is that the link we display in status.json would be something like /stream.html?uuid=uuid - so the user would click that link and it would take them to the page which would have uuid in its query params ... somthing like that ^^18:31
mordredShrews: but tea is much more important :)18:31
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Run playbooks with only those roles defined thus far  https://review.openstack.org/48314118:33
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add child roles before parent  https://review.openstack.org/48314218:33
Shrewsmordred: yup, and that's how it works now18:33
jeblairSpamapS: leaving https://review.openstack.org/483210 for your +318:35
Shrewswell, i mean, status.json doesn't do that yet, but the /static/stream handler is there18:35
mordredShrews: right- but in the code you put up we're processing the url query params in python then doing a server-side template substitution on the html to generate a dynamic page. by pulling them out of the query string in the javascript we can avoid needing to process he file server side  - which means we can add an apache rewrite rule for more complex installs that just serves the static files directly bypassing18:36
mordredzuul-web for the static routes18:36
*** jamielennox has joined #zuul18:37
Shrewsmordred: so... how do i return the HTML so that things are handled client side?18:37
mordredShrews: I has pushed up patch at https://review.openstack.org/48350318:37
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Support relative urls in success-url  https://review.openstack.org/48134218:38
mordredShrews: there's still a few gotchas we need to solve - namely -- oh, wait a sec - I may be overthinking part of something ...18:38
mordredtobiash: you run things on a suburl - do you serve status.json and console-stream from the same sub-url? if you don't, how difficult would it be for you to do so?18:39
tobiashmordred: nope18:39
pabelangermordred: jeblair: are we okay to restart zuulv3 to pickup new zuul_stream changes?18:39
tobiashmordred: I unfortunately have a crazy setup in this regard18:39
mordredtobiash: I ask because _eventually_ we should have zuul-web serve status and console-stream (and all the things) so the intent isn't for them to be differenturls long-term18:39
mordredtobiash: in the future if zuul-web is the one serving all the http traffic, will that be a problem for you? (are they in different places right now because scheduler and zuul-web are different processes?)18:40
tobiashmordred: I have a main url where I server everything, but that runs via a proxy server breaking websockets (and I don't have crontrol of)18:41
tobiashmordred: thus I have the websocket running via a different domain18:41
mordredboo proxy servers that break things!18:41
mordredtobiash: gotcha. so for you at the very least having a place to be able to configure a specific location for the websocket stream is important18:41
tobiashmordred: yes18:42
mordredtobiash: all other non-websocket content are in the same place? so static/stream and status.json are adjacent?18:42
tobiashI have everyting running via e.g. ci.example.com (with this crazy proxy server and authentication stuff and reachable from outside)18:42
tobiashbut need to server websockets via internalci.example.intra (which I have under control)18:43
tobiashmordred: I'm aware that this is a crazy setup and limiting streaming to internal users18:43
mordredok. good to know - I think we've reached the point where I need to write up a quick spec and collection of inputs18:43
tobiashmordred: but it will take me a year or so to change that ;)18:44
mordredtobiash: well, I think you and your users are important andI think we can handle it :)18:44
tobiash:)18:44
tobiashmordred: I have no problem with zuul-web serving all as both endpoints proxy to the same zuul-web in the end, but just need to be able to configure the absolute streaming root url separately18:46
mordredtobiash: cool. I have a hunch you may not be the only one who winds up in that situation18:47
openstackgerritMerged openstack-infra/zuul-jobs master: Use package module to install bindep packages  https://review.openstack.org/48258418:50
Shrewsmordred: yeah, so... that suffers from the same problem18:51
pabelangermordred: jeblair: do you think we are ready to create a post pipeline for zuulv3.o.o and work on publishing jobs (eg: docs)?18:52
Shrewsmordred: the js is not getting executed. I can modify it to set the pagecontent, but nothing happens18:52
Shrewsmordred: i think add_static() is meant more for things like images??18:52
mordredShrews: kk. lemme poke at it a little more - it's triggered my ocd brainhole18:54
*** harlowja has joined #zuul18:54
Shrewsmordred: hrm, might be a js error... lemme try something18:55
Shrewschrome dev tools are actually useful18:56
jlkjeblair: related to earlier conversation, I believe the task https://storyboard.openstack.org/?#!/story/2000898 is already complete, by reading an existing test. Can you validate my findings? If so I'll close the task/story and we'll have one less thing to do for v3 :D18:56
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Support relative urls in success-url  https://review.openstack.org/48134218:58
pabelangermordred: jeblair: we'd create the afs publisher for that, which would need secrets enabled for said pipeline. So, maybe not post pipeline, but pipe-secrets pipeline?18:58
tobiashjlk: I had that use case lately, I was able to add a project to a check pipeline via specilative in-repo config, but not to a gate pipeline19:00
jlkso an independent, but not a dependent?19:00
* jlk alters the test a bit to give that a shot19:00
tobiashjlk: didn't dig deeper, maybe independent vs dependent or maybe submit or not submit19:01
jlknot sure what submit means here19:01
tobiashjlk: I meant including submit in the reporter, but I also guess it's more likely the dependent pipeline which is not triggered19:03
tobiashjlk: possibly to a not yet existing change queue19:03
tobiash(but just guessing)19:03
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Serve html statically  https://review.openstack.org/48350319:06
Shrewsmordred: ok, so that ^^ actually works, short of the websocket url not being valid19:07
jeblairpabelanger: can we get the unit test jobs finished first?19:18
jlktobiash: well in the test, I was able to get the gate to try to trigger the job, but then it didn't trigger because the change could not be merged, for whatever reason. Not sure yet why.19:19
tobiashjlk: interesting19:22
jeblairjlk, tobiash: yeah, i'm leaning toward thinking we have accidentally solved this for independent pipelines.19:25
jeblairand that test does cover that case19:25
jlkoooh, things don't work well when you vim a file in the fixtures git repo, and background the vim process.19:26
jlkgotta close it19:26
jeblairheh19:26
tobiashjlk: hm, sounds somewhat strange as independent pipelines also merge a change19:26
jlkwe should probably avoid bringing in swap files19:26
* tobiash has EOD and empty battery now19:28
jeblairjlk, tobiash: i think the issue we're going to have with dependent pipelines is that they have static shared change queues.  so because the project hasn't been added to the pipeline yet, there's no change queue for it, so there's nothing to add it to.19:28
jeblair(independent pipelines create a new change queue for every change)19:29
jlkmaybe. First I have to track down why zuul thinks this change cannot be merged19:29
tobiashjeblair: that's also what I was guessing19:29
jeblairjlk: it'll need the appropriate votes19:30
jlkahhhh right, derp.19:30
jlkbecause gerrit.19:30
jeblairA.addApproval('code-review', 2)19:31
jeblairself.fake_gerrit.addEvent(A.addApproval('approved', 1))19:31
*** amoralej is now known as amoralej|off19:31
pabelangerjeblair: sure, feels like I have stale on some new jobs and favor of refactoring ansible playbooks (which I understand is important for other zuul systems)19:31
jeblairpabelanger: they are important for openstack too.  we're not going into production with a bunch of shell scripts19:32
jeblairlet's get our unit test jobs running from start to finish the way we like.  then the publishing jobs will be easy to knock out.19:34
pabelangerk19:34
jeblair(and honestly, we're generating enough of a punchlist with just these at the moment that we don't need to go look for new problems yet :)19:34
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: Remove run-cover role  https://review.openstack.org/48352719:37
jlkokay19:38
pabelangermordred: ^ I don't think we use that any place any more19:38
jlk2017-07-13 19:37:41,068 zuul.DependentPipelineManager    DEBUG    Considering adding change <Change 0x7f9177c60080 1,1>19:38
jlk2017-07-13 19:37:41,068 zuul.DependentPipelineManager    DEBUG    Unable to find change queue for change <Change 0x7f9177c60080 1,1> in project org/project19:38
jlkYou're right, this is where it's failing, there is no queue for this.19:39
jeblairjlk: i don't have an immediate answer for that.  the words "special case" come to mind.19:42
jeblairjlk: and there are at least two variations of this19:42
jeblair1) add a project to a pipeline in its own change queue19:42
jlkyeah, either we need to add a dynamic queue for this one shot, or we need to add the project to the pipeline or...19:42
jeblair2) add a project to a pipeline directly into an already existing change queue with another project19:43
jlknod19:43
jeblair3) project is already in pipeline in its own change queue and the change merges it into another19:43
jeblair4) project leaves a change queue it's a part of19:43
jlkthat's an ugly set of possibilities. :(19:43
jeblairand yeah, it's *at least* two.  :)19:44
jlkso.. do we want to support this on dependent pipelines, or not?19:44
jeblair5) project leaves pipeline.  this one seems easy.  :)19:44
jlk(project leaves pipeline, should that dequeue any existing change that would be in that pipeline?)19:45
jeblairjlk: i think the biggest difficulty is that without some kind of support for this, a project could never add itself to a gating system.  we'd have to have bootstrap entries in a config repo.19:46
jeblairjlk: it's worth noting that we do correctly handle all cases of updating the queues once a change lands.  so if a change removes itself, once it lands, all the others will be removed too.19:46
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Serve html statically  https://review.openstack.org/48350319:47
jlkokay, so don't need to worry about that part.19:47
jeblairjlk: so one solution to this would be to try to run the re-enqueue process on changes like this.19:47
jlka project couldn't speculatively add itself to the dependent pipeline. It'd have to get merged, then used upon next change (or any existing changes)19:48
mordredpabelanger: ah - my bad - actually I think we want to go the other way19:49
jeblairjlk: another solution might be to just handle the special case of change adding itself to a dependent pipeline.  don't worry about shared change queues, etc.19:49
jlkcould be a good first step at least.19:50
jeblairjlk: so for that one special case, dynamically create a non-shared change queue just for that change.19:50
jlknod19:50
mordredpabelanger: so - the thing I did last week was to suck in the content of the various jenkins slave scripts into shell sections of roles - so that we could have self-contained patches where we refactor away from calling those scripts to just having it be in the roles19:50
mordredpabelanger: (so that we don't have any more of this 'script baked in to image' stuff)19:50
mordredpabelanger: I believe that what we want there is actually to update tox-cover to use run-cover instead of just setting tox_environmnet: cover ... and then we want to hack on run-cover until it's not just a script blob19:51
jeblairjlk: i think i'd start with that.  i *think* it's tractable (though still not easy), and would file off this really rough edge.  all the other edge cases (you won't share a queue until the change lands, etc) are all things we can live with as documentation footnotes.  :)19:51
mordredpabelanger: same with run-tarball and run-wheel - although we probably want to think about those, becuase those are making tarballs and wheels in a very openstack specific way, rather than in a general "make a tarball for a python project" kind of way19:52
jlkyeah, I updated the story and will try throwing some code at the wall after lunch.19:52
jeblairjlk: cool.  dig into the two different kinds of change queue context managers that the dependent and independent pipelines use19:52
jlkwill do19:53
mordredpabelanger: it's worth us thinking about whether the thing we're doing there is actually needed - what a shared base job for python tarballs and python wheels would look like and whether we want/need an openstack specific version of those things too19:53
mordredpabelanger: (in short, we have much bikeshedding to do!)19:53
pabelangermordred: right, the main difference with run-cover role is some NOSE and upper contraints today19:53
mordredShrews, tobiash: https://review.openstack.org/483503 I think that should provide some options to deal with tobias' proxy/split-host situation, and also to plumb through info to the executor so that links have hte right info19:54
pabelangerthen, pip freeze stuff19:54
jeblairjlk: there's a remote possibility you could actually just have the dependent pipeline manager generate a dynamic change queue in this special case and just have it work.  maybe?  <shrug>19:54
mordredpabelanger: yah. the upper-constraints part is obviously very openstack specific19:54
jlkit kind of looks that way, that was going to be my first attempt19:54
jeblairjlk: and i will lunch now too :)19:54
pabelangermordred: let me quickly stab at upper-contraints.txt, I think we can do that pretty easy from openstack-zuul-jobs19:55
pabelangermordred: just need a project that actually uses it :D19:55
mordredpabelanger: yah- maybe we can have an openstack-cover in openstack-zuul-jobs that has tox-cover as a parent perhaps?19:56
mordredpabelanger: haha19:56
mordredpabelanger: maybe add it to zuul for now so we can watch it19:56
pabelangermordred: right, openstack-cover is what I was just about to create19:57
mordredpabelanger: ++19:57
Shrewsmordred: i think you overwrote my fixes19:57
mordredpabelanger: we're at a super fun and existential place with a few of these where thinking about some of them in an openstack vs. world sense is needed19:58
mordredShrews: oh - sorry - I did not see that you'd made them - one sec, lemme fix19:58
Shrewsmordred: i think you might just need to s/STATIC_PATH/STATIC_DIR/19:59
mordredyah- that's what the diff looks like19:59
pabelangermordred: ++19:59
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Serve html statically  https://review.openstack.org/48350319:59
*** dmsimard|afk is now known as dmsimard20:00
mordredShrews: I think I want to remove one of the config settings I added in that patch - I thnk it's actually a bad idea20:04
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Serve html statically  https://review.openstack.org/48350320:09
mordredShrews: k- that cleans out the bits I added that were really overthinking things20:09
mordredtobiash: I'm assuming you are not having any issues with cross-domain things with your different websocket location?20:12
mordredtobiash: (wondering if we need to add CORS support)20:12
mordredtobiash: but if you can serve static.html from ci.example.com and have it connect to the websocket at internalci.example.intra - I think that's the only example we have so far of possibly needing CORS support (so far, I have one in mind but we can get to it later) - so if you don't have that problem we can defer actually implementing it20:14
mordredjlk: how strong is your callback-fu?20:18
*** harlowja has quit IRC20:19
*** timolo has joined #zuul20:20
*** harlowja has joined #zuul20:22
*** timolo has quit IRC20:32
jeblairpabelanger: did you restart zv3.o.o?20:38
pabelangerjeblair: I have not20:40
jeblairpabelanger: cool, i'll do it now20:40
pabelanger++20:40
jeblairdone20:42
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: DNM - add upper-constraints to tox  https://review.openstack.org/48354820:43
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: DNM - add upper-constraints to tox  https://review.openstack.org/48354820:43
jeblairmordred, jlk, pabelanger: 483140, 483141, 483142 are all ready now whenever you have a moment.  now that all the stuff blocking the base job move has merged, i'm going to start work on moving it.20:45
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add documentation for project shadowing  https://review.openstack.org/48355220:52
pabelangermordred: thanks, job-output.txt looks much nicer now: http://logs.openstack.org/48/483548/2/check/e2d9f45/job-output.txt21:01
mordredpabelanger: WOOT!21:01
mordredpabelanger: indeed - I think we need to add no_log: true to our synchronize call21:01
mordredpabelanger: so that we don't get that giant amount of output21:02
mordredpabelanger: oh - actually- I have three more changes that fix all of that21:02
pabelangermordred: however, I think I see an issue. no_log: true was outputted21:02
pabelangerya21:02
pabelangerit is added, but no longer used21:02
mordredpabelanger: yup. we need to get the next three patches in21:04
pabelangerk, looking now21:04
pabelangermordred: actually, it would be helpfully if no_log: true did output if the task failed21:04
pabelangerso we can see what the reason for failure was21:04
mordredpabelanger: https://review.openstack.org/#/c/483311/321:04
mordredpabelanger: we can't do that - it's a security feature21:05
mordredpabelanger: however - I have thoughts - one sec, phone call21:05
pabelangermordred: Ya, I was thinking maybe submitting a patch to ansible for no_log: on_failure21:05
pabelangeror something like that21:05
mordredpabelanger: I ahve a whole thing planned I'll tell you about in just a sec21:05
pabelangerack21:06
jlkmordred: not super strong, but I can hum a few bars.21:11
jeblairmordred: i'm looking at moving the base job over.  what's your current thinking on validate-host?  a) do you want to move it into zuul-jobs with the base job along with the openstack-specific stuff and have it broken until we implement site-local vars.  b) put a base job in zuul-jobs without validate host, and override the job locally with validate host.  c) put validate host in the zuul-jobs base vars, but override the base job locally and set ...21:24
jeblair... those as job variables?21:24
jeblairmordred: http://git.openstack.org/cgit/openstack-infra/project-config/tree/playbooks/base/pre.yaml21:24
jeblairoh by "broken" in (a) i meant "broken for non-openstack"21:25
jeblairthere's a lot of openstack specific stuff that needs either site-local variables or job variables, not just that.  so i'm going to go with b for now.21:29
jeblairwe'll have roles in zuul-jobs, and a skeleton base job, but the bulk of our base job will still be in project-config for a little longer.21:30
jeblairmordred: in the README for validate-host, it says:21:34
jeblairThis is unsafe to run in Trusted jobs as it will write any secrets to the log.21:34
jeblairmordred: that kind of suggests that it shouldn't be in the base job.21:35
mordredjeblair: sorry - was on phone - reading21:44
mordredjeblair: yah - I think you're right wrt b21:55
jeblairmordred: cool.  we should probably bump site local vars up on the list if we think it's a thing.  it's probably the next big blocker for reusable zuul-jobs.21:55
jeblairmordred: what about the validate host trusted jobs thing?  is that true, or is that a docs error?21:55
mordredjeblair: it's ... what it does is output all of the hostvars for each host21:58
mordredjeblair: variables that we set , like secrets, show up as hostvars21:59
mordredjeblair: and as of right now we don't have a mechanism to mask those21:59
jeblairokay, so if we added a secret, it's instant exposure.21:59
jeblairthis is a good thing to know.21:59
mordredjeblair: we could maybe add a variable to what we pass in that lists the names of secrets21:59
mordredjeblair: and update that to filter out anything that matches the list of secrets - since we do know the names of all secrets we pass in22:00
mordredjeblair: we could also skip the hostvars output completely - we also copy the inventory into the logs dir now22:01
jeblairmordred: yep.  no to be too contrary here, but given that we copy the.... yeah that.  :)22:01
mordredjeblair: testing something real quick ...22:02
jeblairtbh, i prefer that unless there's a compelling reason to do the other.  it's simpler, and i worry about accidentally breaking the masking.22:03
mordredjeblair: I have a better fix22:03
mordredwhich is not to output hostvars at all - but instead to run the setup module and write out its output22:04
mordred(the whole point of that thing is to record the information about the remote host that ansible knows)22:04
mordredsetup does NOT display the hostvars of the host22:04
jeblaircool22:04
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Switch to using setup instead of hostvars  https://review.openstack.org/48358522:08
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Switch to using setup instead of hostvars  https://review.openstack.org/48358522:08
mordredsorry- it was on top of an unrelated patch22:08
mordredjeblair: oh - also - the other things where I have the note about site-local in validate-host should fail open22:12
mordredjeblair: which is to say - if those variables are not set, the role should still work22:12
jeblairmordred: ok22:12
mordredjeblair: same with bindep - although I need to finish the stack that removes support for fallback22:12
*** mattclay has quit IRC22:13
*** mattclay has joined #zuul22:13
mordredjeblair: I tried to make them so that they work fine, but if you want to set a few variables (which we could set as variables on our base job) it'll do stuff with them22:13
*** Shrews has quit IRC22:13
*** Shrews has joined #zuul22:13
openstackgerritJames E. Blair proposed openstack-infra/zuul-jobs master: Move some base job roles from openstack-zuul-roles  https://review.openstack.org/48358722:14
jeblairremote:   https://review.openstack.org/483591 Update base-test to use new zuul-jobs roles22:17
jeblairmordred: cool, i'll look at doing that in a later stage.  turns out stage one is big enough.  :)22:17
jeblairfyi, pabelanger and i are mid-stream on some URL stuff, so zuulv3 log links are slightly broken right now.  just delete the last directory component from the link and you'll be good.22:19
jeblairmordred, jlk: ^22:19
jlkokay22:19
* Shrews now sports the ansible/staff /whois Cloak of Invisibility and gains 10 experience points22:19
jlkhah22:20
Shrewsmordred: k on the config stuff. i need to thoroughly review that still22:20
pabelangerShrews: nice22:23
mordredShrews: also, feel free to either tell me to go away - or to tell me I touched it last and you're going to look at something else - both are understandable ;)22:23
Shrewsmordred: that wouldn't be very sporting of me, either way. can i offer you a drink instead?22:24
ShrewsKetel and cran, iirc22:25
mordredShrews: yes!22:26
mordredI accept22:26
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Filter and print results more comprehensively  https://review.openstack.org/48331122:27
mordredjeblair, Shrews, pabelanger, jlk: we actually need to get that landed - otherwise our logging leaks stuff marked no_log22:27
mordredpabelanger: (also, I haven't forgotten to follow up with you on next steps in my brainhole re: logging - but I have a spate of late-day calls today)22:28
jlkreviewing22:28
jlkwas "impotant" on purpose in the commit message?22:28
mordredit wasn't - I can respin real quick ...22:29
pabelangermordred: np, we can pick it up in the morning if you want22:29
jlknot super necessary22:29
jeblairmordred: you run validate-host in the unittest pre playbook as well as the base job22:30
jeblairmordred: this has the curious effect of actually making your host info change somewhat self-testing22:30
mordredjeblair: leftovers22:30
mordredjeblair: hah. nice22:30
jeblairmordred: http://logs.openstack.org/85/483585/2/check/tox-py35-on-zuul/5aa9bf2/zuul-info/22:30
pabelangermordred: +322:30
jeblairmordred: *both* versions are there22:30
jeblairmordred: ansible- from base, and host- from unittests22:31
jeblairmordred: it kind of freaked me out because i was not expecting that to be self testing22:31
mordredjeblair: and you can see that host- has interesting info without having variables that aren't set by ansible22:31
jeblairi had to go manually remove all the output that your log output patch removes to see the play structure.  :)22:31
mordred:)22:32
jeblairmordred: it's a shocking amount of information.  :)22:32
mordredpabelanger: the tl;dr is make our text log output file friendly and easy to read without too much extra crap in it - and then to ALSO emit a json log that has all of the things in it that we can have html/javascript present for the user with the ability to show/hide various kinds of info22:32
mordredpabelanger: so that for live-streaming we have a readable thing22:33
mordredpabelanger: but we collect all the info so that people can find all the data they need as they need to22:33
openstackgerritJames E. Blair proposed openstack-infra/zuul-jobs master: DNM: use base-test in unittest jobs  https://review.openstack.org/48359322:34
mordredpabelanger: both of those will still obey no_log though - since that one is an important way for tasks to indicate they contain sensitive information22:34
mordredpabelanger: BUT - it should allow us to mark many fewer things as "no_log" - since we won't have to use it to prevent things just from being chatty like we do today22:34
pabelangerack, understood22:35
mordredpabelanger: I got the beginnings of the json thing today (unfortunately can't just use the json callback from ansible itself as is)22:35
mordredbut should have that ready to go for tomorrow22:35
pabelangercool22:37
jeblairpabelanger: does our puppet reconfigure zuul-scheduler on tenant config file (main.yaml) changes?22:39
pabelangerlet me look22:40
jeblairpabelanger: i think based on the zuul logs the answer is no22:40
pabelangerYa, I don't think we added the logic for that, mostly because I wasn't sure what was needed22:41
openstackgerritJesse Keating proposed openstack-infra/zuul feature/zuulv3: Support dynamic dependent pipeline additions  https://review.openstack.org/48359722:41
jeblairpabelanger: just like the old layout.yaml change.  SIGHUP22:41
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Filter and print results more comprehensively  https://review.openstack.org/48331122:41
jeblairi just sighupped zuulv3.o.o so it should have the shadow configuration now22:41
jlkjeblair: that does the simple dynamic change queue add, which seems to pass tests (including the test I added for the failing case).22:42
jeblairpabelanger, mordred: that means we're ready to land 483587 and 48359122:42
jeblairjlk: wow!22:42
pabelangerHmm22:42
pabelangerwe should have called /etc/init.d/zuul-scheduler reload22:42
pabelangerwhen /etc/zuul/layout changes22:43
jeblairpabelanger: zuul-scheduler doesn't have socket command listener yet22:43
jeblairi would like to add one22:43
pabelangerk, so we have a bug22:43
jeblairbut haven't had time.  anyone else should feel free.  :)22:43
jeblairpabelanger: yes, it's also why stop doesn't work.22:43
jlkjeblair: I want to play with that function in future changes a bit more, to see how it handles adding to an existing named queue, or adding a brand new named queue, and maybe adding a change that dependsOn a change that adds to a queue, and...22:44
jeblairjlk: ++22:44
pabelangerjeblair: k, I'll get a patch up in the morning to SIGHUP for now22:44
jeblairpabelanger: yeah, the zuul-scheduler init script looks like the zuul-executor init script.  which i would *love* to be the case, but that just hasn't been implemented yet.  it should still work just like the v2 scheduler init script22:45
pabelanger+2 on patches from above22:46
jeblairjlk: just skimming that really quick, you may need to removeQueue in deQueueItem (like in independent pipeline manager)22:47
jlkoh I thought I grabbed that, oops!22:47
jeblairer "dequeueItem"22:48
jlkohhhh need to make sure we only remove a dynamically added one though, right? since empty queues are a "normal" thing?22:49
jeblairjlk: yep22:49
jeblairjlk: and that's probably a good end-of-test assertion too22:49
jlkyup22:49
jlkcool, I'll add that bit22:49
jeblairpeek at layout.pipeline[].queues or whatever22:49
mordredjeblair: landing22:51
openstackgerritMerged openstack-infra/zuul-jobs master: Move some base job roles from openstack-zuul-roles  https://review.openstack.org/48358722:52
pabelangerjeblair: mordred: maybe we should raise an exception some how in zuul, if we are not able to find the playbook for pre-run, run, post-run.  Right now, we just get RETRY_LIMIT failures23:21
pabelanger483548,2 for example23:21
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: DNM - add upper-constraints to tox  https://review.openstack.org/48354823:22
jeblairpabelanger: that is story 200110523:22
pabelangerhad to log into ze01 to see what was going on23:22
pabelangerjeblair: Nice!23:22
pabelangerjeblair: how did we fix the 60s timeout issue with bubblewrap between playbooks?23:28
mordredpabelanger: we have not yet - that's also a story ...23:29
mordredpabelanger: https://storyboard.openstack.org/#!/story/200107223:30
pabelangermordred: oh, odd. things seem faster now23:31
pabelangeror maybe I am just used to the delay now23:31
mordredpabelanger: I agree - they do23:31
mordredI wonder if the switch to the local key has somehow made it better23:31
pabelangerOh, have we done something new with SSH keys?23:32
mordredpabelanger: first step in the base playbook now is to generate keys, add them to agent and delete the reference to the original key23:32
pabelangerAh, nice. So we did implement that23:33
mordredpabelanger: http://git.openstack.org/cgit/openstack-infra/zuul-jobs/tree/roles/add-build-sshkey23:33
pabelangermordred: do we keep the private key around inside bwrap for a reason? Doesn't look like we delete that23:35
pabelangerso, possible for somebody to output that during job run time to access node23:36
mordredpabelanger: don't know - although I've been thinking we should go ahead and distribute the private key to the remote hosts too so that it's easy for folks to make jobs that talk been nodes23:37
mordredpabelanger: seems like a good thing to talk through in both directions :)23:38
mordredpabelanger: actually - a person could just write a job to install their existing public key on the nodes without stealing the existing private key - so I don't think we can actually protect against that attack23:38
pabelangermordred: ya, I'll have to think about it more23:40
mordredpabelanger: in fact, people could do that today in v2 by proposing a patch to devstack that wget's a key from a remote location23:41
mordredpabelanger: and in the 5 years of devstack-gate, I don't think anyone has ever tried ;)23:42
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: WIP: add environment for tox shell  https://review.openstack.org/48360823:43
mordredpabelanger: I'd be more worried about it if it was a more general key that could be used potentially to connect to servers we care about23:43
mordredpabelanger: ^^ ++ to that patch23:43
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: DNM - add upper-constraints to tox  https://review.openstack.org/48354823:43
pabelangermordred: ya, I might do some renaming of tox role variable23:43
pabelangermordred: want to see if it works first23:43
mordred++23:44
pabelangermordred: so, I am no longer seeing ansible output in executor-debug.log, is that expected now?23:51
pabelangerOh, hmm, I see some23:52
pabelanger[Zuul] Log Stream did not terminate23:53
pabelangerthat is new23:53
pabelangeralso notice: http://paste.openstack.org/show/615329/23:53
jeblairpabelanger: mordred said that was showing up on jobs which don't output anything to stdout, so we may need to fix something in the log streamer23:54
jeblairor the stream callback23:54
pabelangerjeblair: okay, thanks23:54
jeblairpabelanger: that was re 'did not terminate'23:54
pabelangerI think that make sense, I don't think we stdout shell any more23:54
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: gzip console log before uploading it  https://review.openstack.org/48361123:56
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: WIP: add environment for tox shell  https://review.openstack.org/48360823:57
mordredpabelanger: we definitely don't put the stdout stream into the executor-debug log23:58

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