Thursday, 2017-03-02

cloudnullin building the deployment framework do i need to worry about zookeeper / redis ?00:16
cloudnulllooking at http://craton.readthedocs.io/en/latest/architecture.html00:17
*** VW has joined #craton00:49
*** Syed__ has quit IRC00:55
*** VW_ has joined #craton02:59
*** VW has quit IRC02:59
openstackgerritMerged openstack/craton master: Fake data: Generate child container per host  https://review.openstack.org/43984603:36
*** VW_ has quit IRC04:34
openstackgerritOpenStack Proposal Bot proposed openstack/craton master: Updated from global requirements  https://review.openstack.org/44003405:26
openstackgerritOpenStack Proposal Bot proposed openstack/python-cratonclient master: Updated from global requirements  https://review.openstack.org/44009405:35
sulocloudnull: you dont have to worry about zk right now .. and possibly never. There might be some other msg broker server involved though. It will come into play when we start doing workflows (automated audits/remediation).10:00
sulocloudnull: antonym: also re: https://github.com/openstack/craton/blob/master/tools/docker_run.sh#L38-L46 ... yes its mostly for testing/demo, and yes the need for local project/user etc is when not using keystone.10:11
sulocloudnull: antonym: we do have a chicken and egg problem when it comes to bootstrapping the project in the sense that a root user is expected. We do that right now though extenal script .. but work in underway to make that a part of the init migration.10:12
*** VW has joined #craton11:33
*** VW has quit IRC12:03
*** VW_ has joined #craton12:03
*** VW_ has quit IRC12:03
*** VW has joined #craton12:04
*** VW has quit IRC12:27
*** VW has joined #craton12:36
*** VW has quit IRC13:00
*** VW has joined #craton13:02
cloudnullsulo: understood, thanks for the follow up. makes sense now.13:34
cloudnullshould we expect admin user management to be done within the craton-manage cli in the future?13:34
*** VW_ has joined #craton13:40
*** VW_ has quit IRC13:40
*** VW_ has joined #craton13:41
*** VW has quit IRC13:41
sulocloudnull: yes, project mgt is actually in cratonclient already, just need to work out the right way to do so with the root user that gets created when the project is bootstrapped13:53
cloudnullcool. thanks sulo13:57
openstackgerritIan Cordasco proposed openstack/craton master: Update schema definition for network interfaces port  https://review.openstack.org/43983213:59
openstackgerritIan Cordasco proposed openstack/craton master: Update schema definition for network interfaces port  https://review.openstack.org/43983214:15
sigmavirussulo: maybe +2 things after the tests finish running? :P14:17
sigmavirusAlthough I appreciate your enthusiasm14:17
sulosigmavirus: hah, yeah i relise no test result after, the patch looked good to me locally though14:20
sulosigmavirus: did it fail ?14:20
sigmavirusYeah I did a stupid in the functional tests :)14:20
faridhi all14:22
sulosigmavirus: rgr, ill be more careful14:23
sulohi farid14:23
* farid never claimed powerpoint skills14:23
sigmavirusfarid: who said otherwise?14:23
* sigmavirus shakes fist at zuul14:23
cloudnullo/ farid14:23
sigmavirusI want my test results for Patchset 314:23
faridlol, just messing, I put together a set of slides for the monday demo, still needs work though14:23
sigmavirusfarid: I hear spit, elbow grease, and shoe shine help14:23
faridtotally14:24
thomasemfarid: Reviewing those slides right now, actually. Got a question or two queued up that might help us clarify some things. :P14:26
thomasemWill reply to the thread, though.14:26
sigmavirushm14:26
thomasemOr I can ask here, I suppose14:27
faridthomasem: awesome, yeah either way works14:27
faridsigmavirus: I'll send those over14:27
thomasemfarid: "Enable ADM and Support/Ops Rackers to quickly obtain an inventory listing of devices, Openstack version and Projects on the account" seems a little confusing. I thought Account == Project?14:27
thomasemDo we mean to communicate Clouds in a Project rather than Projects in an Account?14:27
thomasems/in/on/14:28
openstackgerritIan Cordasco proposed openstack/craton master: Update schema definition for network interfaces port  https://review.openstack.org/43983214:28
faridI think yeah clouds in an account, the way we've been working it14:30
faridthink there were comments in that word document regarding same, lemme check14:31
thomasemGotcha14:35
thomasemYeah, just want to be sure we're not communicating some additional concept that doesn't quite map.14:36
sigmavirusokay sulo +2, to your heart's content14:36
*** wirehead_ has quit IRC14:49
*** wirehead_ has joined #craton14:50
*** VW_ has quit IRC14:52
openstackgerritThomas Maddox proposed openstack/python-cratonclient master: WIP: CLI and client support for get/set/delete of resource vars  https://review.openstack.org/42703214:54
openstackgerritThomas Maddox proposed openstack/python-cratonclient master: WIP: CLI and client support for get/set/delete of resource vars  https://review.openstack.org/42703214:56
openstackgerritSulochan Acharya proposed openstack/python-cratonclient master: Add vars filtering to region-list  https://review.openstack.org/44061114:59
*** VW has joined #craton15:00
*** VW has quit IRC15:01
*** VW has joined #craton15:01
openstackgerritgit-harry proposed openstack/python-cratonclient master: Add table formatter sort key  https://review.openstack.org/44061715:06
openstackgerritgit-harry proposed openstack/python-cratonclient master: Add devices-list to support /v1/devices  https://review.openstack.org/43856115:08
*** valw has joined #craton15:10
*** valw has quit IRC15:11
*** valw has joined #craton15:11
faridthomasem: changed project to clouds in the doc, said you were editing I hope that doesn't step over any changes.15:12
thomasemfarid: Nope, I had to open it to copy/paste. Not making edits. :P15:12
thomasemIt wouldn't let me copy/paste from the rendered presentation.15:12
farid:|15:14
openstackgerritMerged openstack/craton master: Updated from global requirements  https://review.openstack.org/44003415:23
thomasemfarid: Looking at UC 5 where it references the hierarchy being country region > customer > cloud > cloud region > ... Where does "country region" fit into the overall scheme of things as it relates to Craton?15:24
thomasemWe don't have that concept since the top-most is Project (customer).15:24
faridwe had discussed of using labels for that stuff iirc thomasem15:26
faridsince we didn't have that in the hierarchy proper15:26
thomasemGotcha15:26
thomasemThanks farid!15:31
faridyeppers, hope jimbaker / sulo can confirm but I'm pretty sure that was the discussion.15:37
jimbakerfarid, thomasem, or perhaps more likely through variables. incidentally i have the underlying code now working, will work on making it possible to use in the overall query filter that is built, including with pagination15:49
jimbakerspecifically the code for https://bugs.launchpad.net/craton/+bug/166122615:50
openstackLaunchpad bug 1661226 in craton "Filter by variables lacks resolved variables" [Critical,Confirmed] - Assigned to Jim Baker (jimbaker)15:50
*** valw has quit IRC15:57
git-harryjimbaker: fyi https://bugs.launchpad.net/craton/+bug/166949316:06
openstackLaunchpad bug 1669493 in craton "Filtering with multiple variables returns an empty list" [Undecided,New]16:06
thomasemsigmavirus: good feedback, I'll fix this up. Thanks!16:10
thomasemsigmavirus: but is that more the approach we were going for overall?16:12
sigmavirusI think so16:12
thomasemsans my silliness16:12
thomasemOkay, great. Thanks!16:12
*** Syed__ has joined #craton16:15
*** jovon has joined #craton16:17
jimbakergit-harry, not surprising. i pretty much thought the existing vars would not work in that way16:18
jimbakerfortunately my code does the right thing in this case16:19
sulohttps://bugs.launchpad.net/python-cratonclient/+bug/166950816:36
openstackLaunchpad bug 1669508 in Craton's Python Client "Resource GET calls need to allow filtering" [Undecided,New]16:36
git-harrythomasem: https://bugs.launchpad.net/python-cratonclient/+bug/166822116:54
openstackLaunchpad bug 1668221 in Craton's Python Client "Random NoneType() < int() error from cli" [High,In progress] - Assigned to git-harry (git-harry)16:54
thomasemAhhhh16:55
sigmavirusthomasem: git-harry I still haven't reproduced that but I think I know what the caus eis16:58
sigmavirusOh is that what you're trying to fix with that patch git-harry ?16:58
sigmavirusthat's a very indirect way to fix that16:58
git-harry?16:58
thomasem#startmeeting craton17:00
openstackMeeting started Thu Mar  2 17:00:38 2017 UTC and is due to finish in 60 minutes.  The chair is thomasem. Information about MeetBot at http://wiki.debian.org/MeetBot.17:00
openstackUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.17:00
openstackThe meeting name has been set to 'craton'17:00
thomasem#chair sigmavirus sulo jimbaker thomasem17:00
thomasem#link https://etherpad.openstack.org/p/craton-meetings17:00
openstackCurrent chairs: jimbaker sigmavirus sulo thomasem17:00
thomasem#topic Roll Call17:01
jimbakero/17:01
thomasemo/17:01
Syed__o/17:01
sigmavirusgit-harry: the root cause of that bug is that the columns are not fixed so we sometimes sort on columns that have none in them17:01
sigmaviruso/17:01
sigmavirusif we had consistent column ordering, that would be better17:01
git-harrysigmavirus: no, that is related but not the root cause17:01
jovono/17:01
thomasemsulo: you have time for this meeting?17:02
suloyes .. iam here17:02
thomasemawesome17:02
thomasemI think we can skip action items. All are being punted.17:03
jimbakerso some topics: demo monday, and its support (data ingest, tmux/other access)17:03
openstackgerritgit-harry proposed openstack/python-cratonclient master: Add table formatter sort key  https://review.openstack.org/44061717:03
jimbakerplus critical bugs17:03
Syed__jimbaker: would appreciate if you can send the invite for demo17:03
jimbakerfarid, ^^^17:04
* thomasem would really like for us to make a habit of adding topics to the etherpad17:04
jimbakerthomasem is entirely right!17:04
* farid ack's17:04
openstackgerritgit-harry proposed openstack/python-cratonclient master: Add devices-list to support /v1/devices  https://review.openstack.org/43856117:04
thomasem#topic Demo Monday17:05
thomasemSo, as I understand it we're going to go down the list of use-cases from Bjoern and map them to a demonstrable thing in Craton17:06
jimbakerthomasem, ack17:06
thomasemWe have farid's ppt in flight17:06
sigmavirusthomasem: to be fair, I don't oft have topics to add ahead of time =P17:06
sigmavirusBut I agree17:07
thomasemThat is fair, indeed. :P17:07
jimbakerit's the nature of collab - we figure this out as we go at times17:07
thomasem#topic bug  https://bugs.launchpad.net/python-cratonclient/+bug/166822117:07
openstackLaunchpad bug 1668221 in Craton's Python Client "Random NoneType() < int() error from cli" [High,In progress] - Assigned to git-harry (git-harry)17:07
thomasemSo sigmavirus and git-harry were chatting about this one, let's get that chat resolved17:08
sigmavirusSo this is related to (at least) the fact taht we don't have a consistent column ordering17:08
sigmaviruswhat that means is that we always sort on the first column17:08
sigmavirusso there are times where the first column has the potential to have None in it as well as another type.17:09
jimbakerahh. and why are we sorting in the client?17:09
jimbakershouldn't this respect what the api produces, given pagination?17:09
sigmavirusIf we pick a consistent column ordering and consistent column to sort on, then that negates the need to take into consideration None17:09
sigmavirusjimbaker: so this formatter is a reimplementation of something ripped off from the rest of openstack17:09
git-harrysigmavirus: --fields17:10
sigmavirusWe can default it to order based on what's returned17:10
jimbaker+117:10
sigmavirusgit-harry: --of-gold17:10
jimbaker:)17:10
jimbakeri feel like the stuff that has been ripped out from the rest of openstack has been of unfortunate dubious quality. sorry17:10
sigmavirusjimbaker: no offense taken. I didn't rip it off17:11
sigmavirus=)17:11
git-harrysigmavirus: you can order the columns to try and work around the issue and that will likely work most of the time but if someone specifies a set of fields that will nullify the workaround17:11
jimbakerindeed17:11
sigmavirusgit-harry: which is why jimbaker and I agree that no ordering on anything by default makes sense17:11
jimbakerexactly, this problem just goes away17:11
jimbakerand py2 vs py3 sorting issues17:12
jimbakermagically gone17:12
git-harrywait, are you suggesting stripping the client-side sorting and and just taking it from the api?17:12
jimbakeryes17:12
jimbakergiven pagination, does it even make sense? no17:12
git-harryokay, then yes I agree17:12
sigmavirusgit-harry: the entire concern about sortby_index goes away17:13
jimbakerit can mean we should default some cols to sort on, etc, in the api req17:13
jimbakerso the api does the right thing17:13
sigmavirusjimbaker: the API defaults to [id, created_at]17:13
jimbakersigmavirus, got it, otherwise pagination would just NOT work17:13
jimbakeras it is now17:14
sigmavirusjimbaker: correct17:14
jimbakerso yeah, we are good17:14
thomasemOn that topic, for projects we probably need to just sort on created_at or name or something other than ID, lol.17:14
jimbakerthomasem, well that's a separate question: maybe we should default to name, ..., instead of id17:15
sigmavirusthomasem: right, we should update the API to that default17:15
jimbakerin general17:15
thomasemyes17:15
sigmavirusjimbaker: meh17:15
sigmavirusordering on id makes enough sense for most17:15
jimbakerok, a bikesheddable moment it seems :)17:15
sigmaviruslol17:15
sigmavirusI agree it's silly for UUIDs17:15
thomasemRuh roh, Scoob. Just a passing comment!17:15
jimbakermoving on!17:15
thomasem#topic vars support in CLI17:16
thomasemjimbaker: you had questions?17:16
* sigmavirus will brb17:16
jimbakeryes, just wanted to find out if code is ready to try out17:16
jimbakersans testing and all of course17:16
thomasemOh, just for projects. I will be adding the support to the others sometime soon here.17:17
jimbakeri did take a look yesterday, and it was very much WIP, which is fine17:17
jimbakerok, that works for me17:17
jimbakerthomasem, also - could you update the commit message if you haven't already for specific usage17:17
sigmavirusjimbaker: that seems like a bit too much to ask =P17:17
thomasemYes, mind making a note of that on the review?17:17
jimbakerthat's the one place it's been documented. other docs elsewhere are fine - but stripped down in the commit msg is fine17:18
* thomasem should have requested acceptance criteria17:18
jimbakerthomasem, we changed the acceptance criteria yesterday17:18
jimbakermidflight, love it17:18
thomasemHow can we change what does not exist?17:19
thomasem;)17:19
thomasemAnywho, please note on the review things you'd like to change. Keep in mind time constraints, though, please. I don't wish to scope creep this thing into oblivion.17:19
jimbakerthere was some degree of acceptance criteria in the bug, or something. but regardless: just want to ensure we communicate how we use the var manager to work with vars. that's all17:19
thomasemSure17:20
jimbakerthomasem, well, all i ask is get the ability to get/set/delete vars with respect to a resource. the hows, i don't care too much about17:20
thomasemSounds good17:20
jimbakerok, i will try out after this meeting and ask thomasem if i run into problems17:20
jimbakerdone?17:21
thomasemyeppers!17:21
thomasemLemme know what blows up17:21
jimbakerwill do17:21
thomasemexcellent17:21
thomasemAny other topics?17:21
thomasemfolks wish to discuss17:21
jimbakerdata ingest17:22
thomasem#topic data ingest17:22
jimbakerantonym, cloudnull, sulo, zz_pwnall1337, this is relevant to your work17:22
thomasemSo, where does this all live right now? The scripts.17:23
jimbakerthat's my first question17:23
jimbakeras well17:24
jimbakerthomasem, my ideal is we can have a rosetta stone of sorts17:24
cloudnullI'd appreciate a way to POST with a list of devices for ingest.17:24
cloudnullthat way i can do imports a cab at a time17:24
jimbakerthree different ways to accomplish this import17:24
cloudnullor something similar17:24
cloudnulliterating through the client is error prone and clunky.17:25
jimbakercloudnull, yeah, so we will have that in https://bugs.launchpad.net/craton/+bug/166171417:25
openstackLaunchpad bug 1661714 in craton "Bulk endpoint for working with resources" [High,Confirmed] - Assigned to Thomas Maddox (thomas-maddox)17:25
jimbakerthomasem, still plan to work on that? (after other work?)17:25
thomasemjimbaker: Absolutely, but I do not want to prevent someone else from working on it if others' have bandwidth and no higher priority.17:26
thomasems/others'/others/17:26
jimbakerre rosetta stone and 3 ways: 1. REST API; 2. python client; 3. CLI. and of course the bulk endpoint is sort of the real way to do this17:26
cloudnulldo we need an endpoint for this specifically though ?17:27
jimbakeranyway, just wanted to make sure we look at this usage from a completeness perspective17:27
thomasemSome questions around that, actually.17:27
thomasemSo, bulk endpoint in API - we wouldn't want it to block would we?17:27
cloudnullif we call the hosts endpoint i should be a post a list and the api do the right thing17:27
jimbakercloudnull, this gets into overloading with respect to v1/hosts17:27
jimbakeretc17:27
cloudnulloverloading ?17:28
jimbakerdoes POST v1/hosts (etc) take a single resource; or it can also a take a list of resources17:28
jimbaker?17:28
cloudnullI17:28
jimbakeror am i misconstruing your request?17:29
cloudnull**imo it should take a list?17:29
cloudnullit can be a list of 117:29
cloudnullor many17:30
jimbakeri think the opposite consideration is, we have a number of collections that require to be updated; and that's why we were looking at a bulk endpoint17:30
jimbakereg, you will want to post a cloud of 1-of-more-regions, etc, ... down to the vars17:30
cloudnullyes.17:30
thomasemYeah, I understood it as someone wanted to import an entire, say, project.17:30
jimbakerthomasem, very valid way of thinking about it from a scoping perspective17:31
cloudnullbut if im thinking of this like a DC, I'd like to POST a cab at a time17:31
cloudnullso something like importing 22 nodes17:31
cloudnull**hosts17:31
jimbakerso maybe v1/projects is the bulk endpoint....17:31
cloudnullthen the network gear for tha cab17:32
cloudnulletc17:32
thomasemHmmmmm17:32
jimbakerright. it should be easy to add a new cab17:32
cloudnullIE if i had to create the project, cell, etc, with a single api call... so be it.17:32
thomasemSo, here's my problem with this17:32
cloudnullbut not having the option to POST many hosts at a time is bummer17:32
jimbakersure, we get that17:33
thomasemBulk won't scale well and if we're uploading a huge cloud, it could be a problem if we're expecting to block on that operation.17:33
jimbakerthomasem, well i look at this as the same problem as pagination17:33
thomasemUnless we want to use more like "job" semantics around it.17:33
jimbakerwe don't let you download the whole cloud now either, so to speak17:33
thomasemjimbaker: The problem is we want an import to be atomic.. no?17:34
cloudnullthomasem: the api should return 202 once the payload has been recieved and get to work behind the scenes17:34
cloudnullthere should be no need to block on the client17:34
thomasemCorrect, but what if something fails halfway through?17:34
jimbakerright, no need to block on the client. but we are just doing db ops17:34
jimbakerthese are not long running tasks of bring stuff up17:34
jimbakeras it is, we already assume that long running stuff is treated differently, in workflows17:35
thomasemSo this would be long-running17:35
jimbakerthomasem, i didn't say bulk was easy :)17:35
jimbakerthomasem, i very much disagree with that premise. here's an alternative way we could have done pagination17:35
jimbakerwe could have kept a cursor open17:35
cloudnullthomasem: if it forked and moved the request over to a transaction id which could be queied then we could pull to see when the op was completed.17:35
jimbakerthen page through it17:35
thomasemExactly17:35
jimbakerthat is a terrible idea17:35
cloudnullif it failed we would know .17:35
git-harrycan anyone point me to the script that has been written for doing this on the client side?17:36
thomasemcloudnull: that's exactly my point... We want to communicate the success/failure of the import17:36
thomasemand handle it accordingly17:36
jimbakergit-harry, right, we just asked about this17:36
thomasemif something goes wrong, we'll want to undo what we've already done.17:36
git-harryjimbaker: yes, and I didn't see an answer17:36
jimbakeri know that we discussed putting this in a osic ops repo17:36
thomasemBut, then, why not submit to a /v1/imports resource?17:37
cloudnullcouldn't we just not commit the insert and report back via the transaction id that the pOST failed ?17:37
thomasemThat will create an import "job" and give you back a place you can watch17:37
jimbakerthomasem, so the question is: what's the maximum size of the submitted resource for that import job?17:37
cloudnulli mean we can control the payload size within the api17:38
jimbakerwe are going to do it in some batch. how do we size this batch?17:38
thomasemI don't imagine the client needs to care?17:38
jimbakerthomasem, currently it does with pagination, however...17:39
jimbakerjust asking - what's the difference?17:39
thomasemHow do you break up an entire cloud import?17:39
thomasemWhat would that look like?17:39
jimbakeri didn't say it was trivial :)17:39
thomasemjimbaker: I know17:39
thomasemI never expected it was17:40
sigmavirusheh17:40
thomasemThe difference is in pagination it's a list of resources of the same type17:40
jimbakeranyway... here's the takeaway: we have to think about this more17:40
thomasemRather, they're equal in the hierarchy of the response.17:41
jimbakeri did like our discussion re graphql17:42
jimbakeralthough i don't know if it solves for import. it certainly helps with export17:42
cloudnullnot to say we should do exactly this but Miguel (he a racker) has a fairly straight forward approach to doing async w/ flask -- https://blog.miguelgrinberg.com/post/using-celery-with-flask -- in that way we could have a simple-ish solution to the issue of bulk import and being able to release a client call.17:42
cloudnullwhich would should scale fine .17:43
cloudnullwithout also needing us to reinvent this wheel17:43
jimbakeri doubt the problem turns on async or not17:43
cloudnulljimbaker: re: [11:33] <thomasem> Bulk won't scale well and if we're uploading a huge cloud, it could be a problem if we're expecting to block on that operation.17:44
thomasemcloudnull: I totally agree it should be async.17:44
jimbakerand hence my discussion of pagination...17:44
jimbakerand analogs of17:44
thomasemBut I don't think pagination solves this. Anyway, we can get into the details of that design.17:45
thomasemBut it sounds like that's not today?17:45
jimbakermost certainly not17:45
cloudnullyea, im not sure pagination is what we're looking for here.17:45
*** ediardo has left #craton17:46
thomasemAlrightyo. Any other topics folks want to discuss?17:46
thomasemOr right into Open Discussion?17:46
jimbaker+117:46
thomasem#topic Open Discussion17:46
thomasemcrickets17:48
thomasemOkay, heads down, everyone?17:49
jimbakeryes17:49
faridzz_pwnall1337: around ?17:49
thomasem#endmeeting17:49
openstackMeeting ended Thu Mar  2 17:49:14 2017 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)17:49
openstackMinutes:        http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-03-02-17.00.html17:49
openstackMinutes (text): http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-03-02-17.00.txt17:49
openstackLog:            http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-03-02-17.00.log.html17:49
jimbakerthanks everyone!17:49
thomasemDanke!17:49
jimbakerhttp://www.reactivemanifesto.org/17:50
jimbakerwith concrete specs here: http://www.reactive-streams.org/17:51
jimbakeri don't know if anyone has looked at this specifically from a python perspective, but certainly related work with respect to async/await17:52
faridgit-harry: zz_pwnall1337 has the script, trying to find that17:53
jimbakeranyway, just wanted to put this out there, because it has a great body of work that can offer ideas. eg, backpressure17:53
jimbakeri personally don't think it applies to craton fwiw...17:54
faridgit-harry: https://gist.github.com/pwnall1337/ef023192ebe7eeb5e41c69203551315417:54
fariddon't think that's the latest though17:54
jimbakerok, hopefully we will get visibility on that17:54
jimbakerit's all about making things reproducible with respect to this import work17:55
*** VW_ has joined #craton17:55
*** VW has quit IRC17:55
git-harryfarid: thanks17:57
faridgot hold of zz_pwnall1337 , he said this one has parent/child import but is missing labels which he's working on still17:58
faridthe one I gisted earlier17:58
faridgit-harry: sent e-mail with the code sulo had replied with as well for comparison18:02
faridhe said in the message his has labels18:02
faridshould be in a repo somewhere.18:02
sulogit-harry: that script didnt work for me unfortunately18:04
suloassuming we are talkign about the import script18:04
* sulo wasnt paying attention here18:04
git-harrysulo: farid just sent me your version18:05
sulogit-harry: i dont have a version ... i commented out the bits that didnt work .. and just added some temp stuff to get containers imported18:05
git-harryah18:06
openstackgerritThomas Maddox proposed openstack/python-cratonclient master: WIP: CLI and client support for get/set/delete of resource vars  https://review.openstack.org/42703218:06
jimbakersulo, so if we can see that script somewhere... just want to have visibility into work on data ingest18:07
jimbakerand hopefully collaboration18:07
faridso what was the decision on the nested vars btw ?18:08
sulojimbaker: need to ask Tim to post it somewhere18:09
sulofarid: nested vars ?18:10
faridyeah like ansible facts that are nested18:10
sulowhat about it ? ... sorry wasnt paying attention here .. missing context18:11
faridtim is thinking of inserting all ansible facts as a single json blob18:11
faridwhich I don't think will be useful for filtering for example18:11
suloyeah thats not useful18:11
faridcloudnull: think you started looking at this too ?18:11
suloyou would want to do k:v  .. if the value is nested then thats that18:11
faridcorrect me if wrong plz18:11
suloif you do one k:v then its not searchable18:12
faridsulo: so if the value is nested it would be k.k.k:v ?18:12
cloudnullfarid: yes.18:12
suloyes ... and thats not searchable right now18:12
sulojson support right now is limited18:12
faridcloudnull: cool thanks18:13
cloudnullaccording to jimbaker the vars backend is simple json so we should be able to store "all the json" as is.18:13
faridsulo: yeah but k.k.k:v would be searchable right ?18:13
cloudnullas for search idk if it can dive into the nested structure18:13
suloyes thats true .. but searching is different18:13
sulofarid: no .. we sont have that right now .. mysql does support it (and getting better with 8)18:14
*** VW_ has quit IRC18:14
sulofarid: not sure we will never though18:14
sulonot saying18:15
sulowe should improve that as we go18:15
cloudnullsulo: you may be able to implement something like this https://github.com/cloudnull/cruton/blob/master/cruton/data_store/drivers/cassandra/utils.py#L95-L14018:15
cloudnullallowing the app to recursively search the data18:16
sulocloudnull: yes, if we are doing it client side (client to db) we can18:16
sulocloudnull: maybe we can steal some of that :)18:17
cloudnullplease do18:17
jimbakercraton is indifferent about the nesting; but searching is currently limited to k=v. the next step would be add to json path support, which is straightforward, i think the biggest concern was how to represent with a url18:24
jimbakerin terms of any desired query18:25
jimbakeralso this doesn't consider searches that look at this from full text. but a separate issue, presumably to handled by using searchlight18:25
jimbakerthomasem, so a couple of things on https://review.openstack.org/#/c/427032/18:31
thomasemjimbaker: mhmm?18:32
thomasemjimbaker: can we note them inline?18:32
jimbaker1. python client update and get work well. the interface is nice. i haven't figured out delete yet, but will look at project-vars-delete to see if i can figure18:32
jimbakerthomasem, yes, i will also do that there18:33
jimbakerdon't worry, dude!18:33
thomasemjimbaker: awesome18:33
thomasemhaha okey doke :P18:33
jimbakerjust wanted to go to irc first to see if i can get clarification18:33
thomasemcraton project-vars-delete <id> <key> <key> <key> was what I thought we were going for there?18:33
thomasemOh, yeah. No worries.18:33
jimbakerso should it be project.variables.delete('foo', 'bar'), or something else18:33
thomasemAhhh, I see what you mean.18:34
jimbakerright now that just causes crazy url construction18:34
thomasemUnfortunately that is project.variables.delete(json=['foo', 'bar'])18:34
jimbakeralso project-vars-set key=value calls DELETE on v1/projects/<id>/variables? not certaun18:35
thomasemjimbaker: You know what? It probably should only do that if there are any to delete.18:36
thomasemGood call.18:36
thomasemjimbaker: ^^18:36
thomasemSome of this is awkwardness with passing a list as a body to DELETE18:36
thomasemAnd trying not to break the interface for all of the other delete calls18:37
thomasemWhere you could do resource.delete(id)18:37
thomasemMaybe if we change DELETE to accept something like {"keys": [...]}?18:38
jimbakerthomasem, next up. let's get __repr__'s written for VariableManager, Variables, Variable18:38
thomasemOkay. Is there a particular pattern you would prefer I follow for those __repr__'s?18:39
jimbakerthomasem, possibly18:39
jimbakerwell just be informative :)18:40
jimbakereasy enough, right?18:40
thomasem"THIS IS A VARIABLE OBJECT, SHEESH!"18:40
jimbakeractually there's something similar on the backend18:40
jimbakerin the models18:40
thomasemWe'll see when I write them and get feedback to change them. :P18:40
thomasemCool, I'll check 'em out.18:40
thomasemThanks18:40
jimbakerbut in general, for Variables i would expect that it repr as a dict, with its wrapper18:40
thomasemRight18:41
jimbakeryou know, the usual - give me how i could be constructed18:41
thomasem+118:41
jimbakerbut awesome work, looks great18:41
thomasemThanks!!18:42
jimbakerlet's hammer out project first, then we can add in the rest on the next pass18:42
thomasemSounds good18:42
jimbakerok, i will add my comments to the latest iter of the patch18:43
thomasemDanke mein Freund18:43
thomasemOh wow... didn't realize what time it wsa18:44
jimbakerbtw, back to the delete stuff - my ideal would be, update and delete should be halves of just doing JSON PATCH18:44
jimbakerso if at some point we implemented JSON PATCH18:44
jimbakerit could just transparently work with existing code18:45
jimbakerpipe dream? just an ask18:45
thomasemRight, delete would be a patch call on update?18:46
thomasemfor variables18:46
jimbakerupdate/delete really are just parts of patch, right?18:46
thomasemUnless you're deleting the whole resource18:46
jimbakerbut then it's done at the resource level18:47
thomasemPATCH /v1/<id>/variables makes sense for deleting variables18:47
thomasemRight18:47
jimbakerassuming a certain bug is fixed by yours truly.... :)18:47
jimbakeranyways, just something to think about. i don't know the answers, just wanted to ask this question18:48
thomasemGotcha18:48
thomasemOkay, food!18:49
jimbakerlater!18:50
*** VW has joined #craton18:53
*** valw has joined #craton19:11
*** valw_ has joined #craton19:14
*** valw has quit IRC19:15
sigmavirusgit-harry: should I pick up https://bugs.launchpad.net/python-cratonclient/+bug/1668221?19:18
openstackLaunchpad bug 1668221 in Craton's Python Client "Random NoneType() < int() error from cli" [High,In progress] - Assigned to git-harry (git-harry)19:18
* sigmavirus interprets silence as acquiesence19:21
*** valw_ has quit IRC19:23
openstackgerritMerged openstack/python-cratonclient master: Updated from global requirements  https://review.openstack.org/44009419:27
jimbakersigmavirus, +119:31
jimbakeri believe that was the net of our earlier meeting, given that sorting is out of the client19:31
* sigmavirus nods19:33
sigmavirusjimbaker: can you look at 439832 ? sulo had +2'd it but I fubar'd the tests (not the fix)19:33
thomasemBeautiful day outside. My goodness.19:33
jimbakeryeah, i had noticed :)19:34
farida walk out there may be necessary19:41
jimbakerbest part of my ack response is that it could apply to either sigmavirus or thomasem...19:46
jimbakersigmavirus, +2'ed that minor, thanks!19:46
openstackgerritMerged openstack/craton master: Update schema definition for network interfaces port  https://review.openstack.org/43983219:52
openstackgerritSyed Ahsan Shamim Zaidi proposed openstack/craton master: Documentation Fix for Region Create  https://review.openstack.org/44079020:03
jimbakerthomasem, here it is, early access to the underlying query we need for search by resolved vars, https://gist.github.com/jimbaker/3c2d3acdc49940444417914ae0ad951a20:39
jimbakernext steps: 1. do obvious generalization; 2. write as a subquery, much like https://github.com/openstack/craton/blob/master/craton/db/sqlalchemy/api.py#L262 ; 3. pull it all together; 4. tests somewhere in that process20:40
jimbakerthomasem, one reason i like to do this in the context of a gist is that it shows how we can explore with the existing API, before committing to some specific impl details20:41
thomasem+120:50
openstackgerritSulochan Acharya proposed openstack/craton master: Allow resolved vars in details list calls  https://review.openstack.org/43917520:58
openstackgerritIan Cordasco proposed openstack/python-cratonclient master: WIP: Make column ordering consistent and predictable  https://review.openstack.org/44081021:01
*** VW has quit IRC21:04
openstackgerritThomas Maddox proposed openstack/python-cratonclient master: WIP: CLI and client support for get/set/delete of resource vars  https://review.openstack.org/42703221:16
*** VW has joined #craton21:17
thomasemjimbaker: added __repr__'s and made it so VariableManager.delete(...) can take just a list of keys to delete (it wraps crud.CRUDClient's delete(...))21:18
jimbakernice!21:19
jimbakerand before i could comment on that stuff on the review21:19
jimbakerit's ok21:19
jimbaker:)21:19
thomasemSo, now you'd do something like cc.projects.get(id).variables.delete('key1', 'key2')21:19
thomasemVerrrrry funny21:20
thomasem:P21:20
jimbakerthomasem, ok, just a quick mention - take a look at the __repr__ for Variable, because i get stuff like this Variable(name="baz", value="88")21:24
jimbakeri checked the variables from the rest api and it's actually 8821:24
jimbakerso probably want to use %r or something like that21:25
thomasemOh gotcha, good point21:25
jimbakeralso want to be able to support nested json in general. but that's just a __repr__ question. it's fine in terms of variable.value21:26
jimbakerin terms of maintaining its type21:26
thomasemOh gotcha, good point21:26
thomasemOops, mt21:26
thomasemLemme test. I'm pretty sure that'll work, though.21:27
thomasem<Variables test=Variable(name=u'test', value=2), thomas=Variable(name=u'thomas', value={u'what': Variable(name=u'what', value={u'on': Variable(name=u'on', value=u'earth')})}), foo=Variable(name=u'foo', value=u'bar'), zoo=Variable(name=u'zoo', value=u'ba21:28
thomasemShows nested21:28
thomasemjimbaker: ^^21:28
thomasemThere are sigmavirus's comments here, too: https://review.openstack.org/#/c/427032/15/cratonclient/common/cliutils.py21:36
thomasemI am converting some of those to using oslo_utils.strutils, but I can't find one that does "none" or "null" to None, also that's a good question regarding escaping quotes... we might want to consider if someone wishes to actually set these values to the string "none", for instance.21:37
thomasemI have to do none4='"NONE"' to get  "none4": "\"NONE\"",21:40
thomasemBut, that does work.21:40
openstackgerritThomas Maddox proposed openstack/python-cratonclient master: WIP: CLI and client support for get/set/delete of resource vars  https://review.openstack.org/42703221:47
*** wirehead_ has quit IRC21:55
*** wirehead_ has joined #craton22:02
*** wirehead_ has quit IRC22:06
*** mhayden has left #craton22:08
*** wirehead_ has joined #craton22:15
openstackgerritThomas Maddox proposed openstack/python-cratonclient master: WIP: CLI and client support for get/set/delete of resource vars  https://review.openstack.org/42703222:38
openstackgerritThomas Maddox proposed openstack/python-cratonclient master: WIP: CLI and client support for get/set/delete of resource vars  https://review.openstack.org/42703222:46
thomasemAlright, I need to run. Have a lovely evening, everyone!!22:50
jimbakerthomasem, take care!23:02
faridwell ajaxterm doesn't look all that fabulous for a demo23:53

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