Thursday, 2017-03-23

*** VW has quit IRC00:49
*** VW has joined #craton00:49
jimbakeranonymike, works for me00:54
*** VW has quit IRC01:40
*** VW has joined #craton01:40
openstackgerritJim Baker proposed openstack/craton master: Updates Alembic migration to better match SQLAlchemy models  https://review.openstack.org/44164404:16
anonymikerunning into some errors with dbsync :/  I'm gonna mess around for another hour or so05:08
*** openstackgerrit has quit IRC09:03
suloyawn12:20
sigmavirusbelated mornings12:41
thomasemHi!12:47
tojuvonegood afternoon12:59
sigmavirusthomasem: reading scrollback, are we really going to constrain variables like that?13:30
sigmavirusI can imagine folks writing some integration with craton from clojure (or another lisp) and wanting to use hyphenated var names13:30
sigmavirus(in which hyphenated var/function names are perfectly valid)13:31
sigmavirusI guess, I'm wondering if we want to restrict the functionality of the service purely because the first client written for it was written in a specific language13:31
thomasemsigmavirus: it's part of the API WG guidelines, though?13:36
thomasemIt's an openstack API where fields are snake_case13:36
sigmaviruslink?13:36
sigmavirusbut variables aren't fields13:36
sigmavirusvariables are user-defined data13:36
sigmavirus&/ user-defined metadata13:36
sigmavirusIf you look at other openstack services that allow for user-defined metadata there's no such restrictions13:36
sigmavirusIn fact, there's also Glance's Metadefinitions service that has things lke OS::Nova::InstanceType::....13:37
thomasemOkay, then why was jimbaker saying that variable keys are supposed to be constrained to Python identifiers?13:37
thomasemIf that's not the case, I'm cool w/ supporting hyphenated and going through that exercise, but I was under the impression that that was already decided upon as the direction.13:38
thomasemAnd adding complexity for what "might be" seemed a bit unwise right now. We could lift those restrictions later on if we find that we want to add that, though. I'm personally fine either way, it's a matter of what use-cases we have.13:39
sigmavirusSo, right now, ansible/salt only allow variables with _s13:41
*** VW has quit IRC13:41
sigmavirusI'm checking chef and puppet given that ruby symbols can have hyphens and could ostensibly be used for variables13:41
sigmavirusI wasn't aware that this was already decided direction13:41
*** VW has joined #craton13:42
thomasemThat's the impression I got. But, of course, I don't have the history that y'all do on the project.13:42
sigmavirusI guess my question to you/jimbaker is: What value to the user(s) is restricting variable keys in that manner providing? What benefit do we see from restricting values that way? Why would we restrict users from specifying CamelCase or even StuDlYCase variables?13:42
sigmavirusI also miss conversations about direction that happen in IRC given how not durable it is13:43
sigmavirus(And I forget discussions from the past)13:43
thomasemLol, don't we all.13:43
thomasemIt's all good. I'm glad you're bringing it up.13:43
sigmavirusWould that this was communicated over the mailing list, that'd be great =P Or via a specification13:43
thomasemYeah, this should have been in a specification to begin with.13:44
sigmavirushonestly, having a spec to describe the direction taken at the end of this would be valuable to end-users13:44
thomasemPressure to deliver and such13:44
sigmavirusYeah, doesn't seem there's a spec around variables: https://craton.readthedocs.io/en/latest/specs/index.html Although I could have sworn one was sort of written before13:44
thomasemYeah, git-harry was working on one, iirc.13:44
thomasemAnd then variables just... happened13:45
sigmavirusWas that spec just abandoned?13:45
thomasemYep13:46
sigmavirusIf so that's a crying shame13:46
thomasemThat's what happens when people want things out the door _now_.13:46
thomasemunfortunately13:46
thomasemSo, we need to pick it back up and finish it, imo.13:46
thomasemAnd generate from that any changes to get things consistent and how we want them to be.13:47
*** openstackgerrit has joined #craton13:47
openstackgerritIan Cordasco proposed openstack/craton master: Update status of existing specifications  https://review.openstack.org/44915713:47
sigmavirusRight13:47
sigmavirusAny constraints on variable names and values should be enumerated in that spec13:47
sigmavirusTo be clear, I really want reasoning as to *why* we want to restrict them in such a way13:48
thomasemAgreed.13:48
sigmavirusWhat value does Craton derive from that? What value do the users derive from that? etc.13:48
thomasemWell, atm, it'd simplify the implementation while covering the most immediate use-case.13:49
thomasemBut, that feels like a cop-out.13:49
sigmavirusWell the fact that itertools chain existed and simplified variables resolution was the reasoning for using a python-specific resolution ordering so13:50
sigmavirus¯\_(ツ)_/¯13:50
anonymikeChrome does NOT like owa  :/13:54
thomasemsigmavirus: yeah... Lemme refactor this a bit and it might be a non-issue.13:55
thomasemThis is helpful: https://dev.mysql.com/doc/refman/5.7/en/json-path-syntax.html13:55
thomasemExcept for we do need to agree on something here.13:55
thomasemanonymike: :(13:57
fsaadhi guys14:05
sigmavirusSo Im' looking at the spec language for valid ECMA identifiers14:07
sigmavirusI'm 90% sure that - isn't allowed, but jsonpath also supports "strings"14:07
sigmavirusWhich says that -'s are fine14:07
thomasemYes, you have to wrap the key in quotes.14:07
thomasemSo, things like $."hyphenated-key"14:08
thomasemOr $."hyphenated-key"[*].key14:08
thomasemand so on14:08
sigmavirusHyphens are in the "Punctuation, Dash" unicode category fwiw14:09
sigmavirus(Makes sense, if you know all the categoreis)14:09
sigmavirusSo while hyphens complicate the experience for users, I don't think that's a valid reason for restricting it inherently14:09
sigmavirusRather, it is valid from a "don't give users footguns" but also seems like not very convincing reasoning to me14:10
sigmavirusEspecially if we appropriately provide documentation on how to use the variable searching functionality14:10
thomasemsigmavirus: Are you suggesting that we would expect the user to quote it in the query?14:11
thomasemI was thinking we'd just handle that on our side so the user doesn't have to care... but, that may be one of those cases where you harm them by trying to be helpful in the long-run.14:12
sigmavirusYeah, in the face of ambiguity like that, I tend to lean towards "educate the user about their life choices"14:12
thomasemYeah. I was considering that we could just error when they give us something that the DB doesn't understand.14:13
sigmaviruslike, as far as I can tell, we're already exposing them to jsonpath query language, right?14:13
thomasemBasically.14:13
sigmavirusI mean, we're going to document these queries, we may as well provide several examples covering use-cases14:14
sigmavirusBesides, I'm not sure we really want to tell users that the variable naming scheme their config management project uses is not storeable in craton14:14
sigmavirusif someone stores sshKeyId and someone else stores ssk_key_id, do we really need to care?14:14
thomasemWe don't.14:15
thomasemIt only becomes a problem when you start clashing with special characters for the language, naturally.14:15
thomasemSo, really, we need to just handle the DB error and tell them they did it wrong.14:16
sigmavirussure, but the way we're doing this in python right now doesn't clash with anything14:16
sigmavirusYep14:16
sigmavirusWe could even detect -s and suggest they try adding quotes14:16
sigmavirus(if we want to be fancy)14:16
thomasemWell I'm a fancy guy, so.14:16
sigmavirusI've not seen you wax your mustache, so I've no evidence of that =P14:17
thomasemLOL14:17
sigmaviruswhere are your tophat and monacle? eh?14:18
anonymikeha14:18
thomasemI had to stow them away because I became another person when I wore them.14:18
thomasemI criticized peoples' choice of beverage and blew cigar smoke in the direction of people I disagreed with.14:19
sigmavirusah, as long as you didn't rove around london at night with a different name maiming people14:20
thomasem... Who are you?14:20
thomasemAnd what do you know?14:20
thomasem:P14:22
sigmavirusI know NOTHING! https://i.imgur.com/nQdCiwp.jpg14:22
thomasemLol, who's that?14:27
anonymikerelocating, bbiab14:48
sigmavirusthomasem: you're making me feel old14:59
sigmavirusI'm not even 30 yet14:59
sigmavirusthomasem: https://www.youtube.com/watch?v=UgcxGFmYyPs15:00
sulosigmavirus: thomasem: fsaad: i might miss the meeting today .. i need to step our for a bit .. might not be back in time.15:03
sigmavirusokay sulo15:03
fsaadok thanks for heads up sulo15:10
thomasemsigmavirus: LOL I've never seen this show.15:11
thomasemsulo: No worries!15:12
sigmavirusthomasem: I (obviously) only ever saw it in re-runs15:13
sigmavirusWas on when my dad was a kid15:13
sigmavirusSargent Schultz is one of his favorite characters on the show15:13
sigmavirusIt's about British and American POWs in a Nazi run POW camp15:14
anonymikelol I've never heard of this show15:14
sigmavirusThe humor is corny but it is still funny15:15
anonymikesometimes I like to have that kind of stuff playing in the background while I work on other projects15:16
sigmavirusanonymike: ah, but some of the jokes are fairly subtle15:16
sigmavirusSo, you'll miss part of it15:16
anonymikei like the   a e s t h e t i c15:17
sigmavirus¯\_(ツ)_/¯15:17
sigmavirusI'm not a cop, I'm just a sign15:17
anonymikelol15:17
jimbakersigmavirus, thomasem, we are restricting variables names beyond possibly python identifiers?15:32
jimbakernews to me15:32
sigmavirusjimbaker: no, I'm wondering why we want to restrict them to valid python identifiers15:33
thomasemjimbaker: We aren't restricting anything yet. I was suggesting that we define a restriction. We discussed (I think last week) and it sounded like the expectation was that variable key names are supposed to be valid python identifiers?15:33
thomasembut, at this point, I agree that there's little need to restrict them to valid python identifiers.15:33
sigmavirusjsonPath has no such restriction15:34
thomasemhttp 'http://localhost:8080/v1/hosts?details=all&resolved-values=false&vars=foo.foo."nested-int":1' $CRATON_HTTP_HEADERS works just fine, btw.15:34
sigmavirus^bingo15:34
jimbakerit has come up that it might be a good idea15:34
thomasemOf course, without the quotes it's returning 500, which I'm handling right now.15:34
sigmavirusjimbaker: what's the argument behind it being a good idea though? that's what I want to understand15:35
sigmavirusI've seen no reasoning behind that assertion personally15:35
openstackgerritMerged openstack/craton master: Update status of existing specifications  https://review.openstack.org/44915715:35
jimbakersigmavirus, i think it was with respect to 1. we want to reserve some nomenclature for namespaces - but even then it's just using the fact that there is no restriction15:36
jimbaker2. we may want to have some sort of reserved keys15:36
jimbaker3. for client usage, there was a consideration that attribute form could be nice. but we didn't implement that15:37
sigmavirusSo I think attribute form would be a nightmare on the client side15:37
thomasem"attribute form" or "that attribute form"?15:37
jimbakersigmavirus, in other words, there has not been a strong arg for restriction, or at least not strong enough15:37
jimbakerthomasem, being able to say obj.var1, obj.var215:37
jimbakerdidn't implement, not going to implement15:38
sigmavirusRight now our crud.Resource object can handle anything that's a valid Python identifier, yes, but I would only abuse that for things that are knonw15:38
sigmavirusAs in, users generally know what attributes are on a host/cloud/region/etc.15:38
jimbakerexcept in an intermediate form when we were first trying out client vars15:38
sigmavirusThere's likely not a good way to know that for variables15:38
jimbakersigmavirus, correct15:38
sigmavirusI think namespaces are something that we don't have a concrete use-case for (unless I'm missing the UC)15:38
thomasemHence the reason we had to go the route we did, no?15:38
thomasemWrt the MutableMapping15:38
jimbakernamespaces do have concrete use cases15:39
sigmavirusAnd reserved keys could absolutely be implemented regardless of whether variables are valid python identifiers15:39
jimbakerhttps://blueprints.launchpad.net/craton/+spec/craton-namespaces15:39
sigmavirusjimbaker: I'm not saying there's no use case, I'm saying in the list of dusty's use-cases, I've not seen it15:39
sigmavirusjimbaker: variables can presently be nested15:39
jimbakersigmavirus, right, dusty's stuff is not likely to go into that detail15:40
sigmavirusdoes that not solve the namespace issue?15:40
jimbakersigmavirus, no - namespaces are for us to implement custom functionality like secrets or maintenance15:40
sigmavirusas in things that we don't return to the user?15:40
jimbakerit's not about nesting15:40
jimbakersigmavirus, they would be returned to the user15:41
sigmavirusso we'd migrate vars to be `user/foo`15:41
sigmavirusor have an implicit `user/` namespace?15:41
jimbakersigmavirus, that's the implicit idea15:41
jimbakerbut nothing has been worked out15:41
jimbakerso malleable clay15:41
sigmavirusYeah, I think namespacing needs a good specification. I'm still not seeing how namespacing requires restriction to valid python identifiers15:41
jimbakerper blueprint, it doesn't make that claim either15:42
jimbakerat most it says reserve /15:42
jimbakerand give it special meaning15:42
jimbakersigmavirus, btw - is tox against python-cratonclient supposed to run on OSX?15:44
jimbakeri would assume that should be possible, even if tox -e functional doesn't run on OSX15:45
thomasemFYI: http://eavesdrop.openstack.org/irclogs/%23craton/%23craton.2017-03-09.log.html#t2017-03-09T19:34:0715:45
jimbakerfor craton itself15:45
sigmavirusjimbaker: it runs on OSX for me15:45
thomasemThis is where we were discussing the JSON path stuff, initially15:45
thomasemfor context15:45
jimbakersigmavirus, ok, just trying to get it to run. not certain what i'm missing15:46
sigmavirusjimbaker: what errors are you seeing?15:46
sigmavirusjimbaker: hop into Craton-Recordable quickly and screen-share?15:46
jimbakersigmavirus, i will give you a paste15:46
jimbakersure, we can do that too15:46
sigmavirusI'm in there, but whatever you'd prefer works for me15:47
jimbakerthomasem, so at this point, i think we can avoid the identitfiers must be python, since we haven't found a good reason for them to be15:47
jimbakersigmavirus, one moment15:47
jimbakerclearly i don't hop as fast as you ...15:48
thomasemjimbaker: that sounds good to me.15:48
sigmavirusI attribute my hop speed to having to hop as fast as twin 4yr olds and a 2yr old15:49
jimbakerat best, restricting to identifiers should not use / would probably be fine for users, just so we can use in the future as desired - and i think it only impacts them if they use a registered namespace15:49
jimbakerwhich actually gets convention first, then more functionality later15:50
sigmavirusjimbaker: fair, but "valid python identifiers" is far more restrictive than not using /15:50
jimbakerie you can use ssh/ now, but it's not a real secret store. in the future, it becomes one. bonus for your upgrade15:50
sigmavirusthomasem: have you run the cratonclient tests on osx?15:51
jimbakersigmavirus, so i think we have already concluded we cannot come up with a good reason to "say valid python identifiers"15:51
sigmavirusyeah, so the arbitrary restrictions we imply should be enumerated better than what I expect was the intent when that phrase was first bandied about15:52
jimbakerother than a natural, maybe we want to reserve something. this gets into the sort of space of course: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Reserved_keywords_as_of_ECMAScript_201515:53
sigmavirusjimbaker: right, Craton can have a list of reserved symbols/keywords/etc.15:53
sigmavirusAs long as they're well documented and published somewhere15:53
jimbakersigmavirus, sure. an obvious one: "craton/"15:54
sigmavirusOstensibly a 400 resulting in finding one of those would also inform the user of their honest mistake to make it easier to debug15:54
jimbakerso anything with that prefix is reserved15:54
sigmavirusjimbaker: so what's the error you're seeing with tox in python-cratonclient?15:55
jimbakersigmavirus, re-running15:55
jimbakeri can share my screen now15:55
jimbakerlet me hop in that vidyo15:55
thomasemsigmavirus: I have not.15:59
thomasem#startmeeting craton16:00
thomasem#chair sigmavirus sulo jimbaker thomasem16:00
thomasem#link https://etherpad.openstack.org/p/craton-meetings16:00
openstackMeeting started Thu Mar 23 16:00:09 2017 UTC and is due to finish in 60 minutes.  The chair is thomasem. Information about MeetBot at http://wiki.debian.org/MeetBot.16:00
openstackUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.16:00
thomasem#topic Roll Call16:00
openstackThe meeting name has been set to 'craton'16:00
openstackCurrent chairs: jimbaker sigmavirus sulo thomasem16:00
thomasemo/16:00
anonymikeo/16:00
thomasemjimbaker: sigmavirus:?16:02
sigmaviruso/16:02
thomasemgit-harry: ?16:02
jimbakero/16:02
fsaado/16:02
git-harryhi16:03
thomasemtojuvone: ?16:03
tojuvonehi16:03
thomasem#topic Stand Up16:03
thomasem#info each team member briefly describes what they are working on this week, and describes blockers (if there are any)16:03
thomasem#topic Stand Up :: thomasem16:03
thomasemWorking on JSON Path some more. Really far along, I'm keeping it up-to-date here: https://review.openstack.org/#/c/443941/. I see git-harry reviews and appreciate his comments (and agree, I was on the fence anyway about the JSON approximation)16:04
thomasemAdding handling for invalid JSON path expressions so we're not returning 500s over it and finishing up testing. Looking into the bug that git-harry found in that patch, too.16:05
thomasemdone16:06
thomasem#topic Stand Up :: anonymike16:06
anonymikeWorking on setting up my environment and getting familiar with the code. I've submitted a few updates to the installation docs and I'm currently working on touching up the "wrapper functions" script to quick launch craton  and easily hit the api.16:06
anonymikedone16:06
thomasem#topic Stand Up :: sigmavirus16:06
sigmavirusWrapping up cratonclient docs/betamax work for tomorrow (which is my last day)16:07
sigmavirusTrying to do reviews for others16:07
sigmavirus</fin>16:07
fsaad:'(16:07
jimbakerwe will miss sigmavirus16:07
sigmavirusnah, I'm a pain in the toe16:07
thomasemindeed16:08
anonymike:(16:08
sigmavirusthanks for taking my side thomasem16:08
sigmavirus=P16:08
jimbakerminor pain, still can run with that pain in toe16:08
thomasemsigmavirus: see, it could be an answer to both.16:08
thomasem:P16:08
thomasem#topic Stand Up :: jimbaker16:08
antonym:/16:08
sigmavirusclever16:08
jimbakerreviews, trying to understand betamax16:08
jimbaker(and why it's failing for me - sigmavirus and i were just going through a debug on that)16:09
jimbakerneed to finish up alembic16:09
jimbakerdone16:09
thomasem#topic Stand Up :: fsaad16:09
fsaad'grats on yesterday's demo I think it went well regardless of what it seemed like :)16:10
antonym+116:10
thomasem:) Thank you!16:10
fsaadI'll be poking support for that subset of variables that would be useful to have in the host show16:10
git-harryfsaad: I didn't attend that, are there any action items from it?16:11
fsaadand also procuring hardware for the craton server today16:11
fsaaddone16:11
fsaadgit-harry: I think so, we can chat after standup!16:11
thomasem#topic Stand Up :: git-harry16:11
git-harryMostly review related stuff.16:12
git-harrydone16:12
thomasem#topic Stand Up :: tojuvone16:12
tojuvoneOPNFV summit CFP and Nova side of the planned host maintenance.16:12
tojuvonedone16:12
thomasem#topic Stand Up :: antonym16:12
antonymdid some doc work and working on getting my provisioning env with craton set up in physical server lab (has graduated from running on fusion), also thought about putting together some docs with ansible use cases like using the uri module with craton for people to have some examples to start from16:13
antonymdone16:13
thomasem+1!16:14
thomasem#topic git-harrry's question regarding action items from demo yesterday16:14
thomasemWow, Harry, you got an extra "r" on the house.16:14
jimbakerblame autorepeat setting...16:15
sigmavirusI bet harry thought to himself, "arrrrrr matey"16:15
thomasemI have mine set pretty high.16:15
thomasemor low... as the case may be.16:15
jimbakerjust giving you cover that's all16:15
thomasemAnyway, the question was "11:11 git-harry: fsaad: I didn't attend that, are there any action items from it?"16:15
thomasemThanks jimbaker! :P16:15
jimbakerso two items16:16
jimbaker1. get the exact data loaded that support requested16:16
jimbaker2. be able to show a subset of variables16:16
jimbakerit also prompted some side conversations i had with thomasem re possibility of adding elasticsearch support to craton earlier than later16:17
git-harryI thought we'd already sourced the right data, what was wrong with it this time?16:18
fsaadI'd say we focus on #216:18
fsaadcan work with Tim on #116:18
thomasemgit-harry: it was missing, like, package information, iirc.16:18
jimbakerright, the craton's team focus is on #216:18
fsaadbut if one of you feel like working on data loading while he's out, his script is publicly accessible too16:18
fsaadyeah16:18
jimbakerthere were are also some other questions raised by tim - such as how to work with large result sets in the client16:19
sigmavirusI'm glad we're at the point where we recognize this isn't craton's problem per-say16:19
jimbakerbasically he was using --limit, but not --marker16:19
thomasemsigmavirus: which part?16:19
thomasemjimbaker: I think he was expecting it to just paginate automatically to the specified limit.16:20
jimbakerthomasem, exactly16:20
sigmavirusthomasem: the part of loading in package info16:20
jimbakerwhich the client could readily do if we wanted to have that support16:20
sigmaviruscratonclient's shell can autopaginate if we want16:20
jimbakergiven underlying generator16:20
sigmavirusthat's like a 1 line change16:20
jimbakeryeah, sounds about right16:21
sigmavirusor maybe 5 (one for each -list command, idk)16:21
antonym#link https://github.com/pwnall1337/ops-generic/tree/master/osops_common16:21
thomasemHe also ran into some bug with --limit when it was kind of low? I don't know what the boundaries there are, but he was getting 400s all of a sudden.16:21
thomasemI don't think he filed a bug about it yet, though?16:21
jimbakerno bug16:21
thomasemLike --limit 2 was giving 400s?16:22
jimbakerright, that's a real bug16:22
jimbakergiven --limit passes straight through16:22
git-harryNo, I think the schema enforces a minimum16:22
thomasemYeah, it was weird.16:22
jimbakerahh, good point git-harry. still might be worth having limit have a min of say 116:23
git-harryYeah, minimum is 1016:23
thomasemThen we need better messaging around that, or to remove the minimum... why have a minimum?16:23
thomasemAhhhh16:23
jimbakerthat's a useful limit16:23
git-harryThe client doesn't expose error messages16:23
thomasemmin of 1 is, yes.16:23
jimbakeri just want ONE item16:23
thomasemmin of 10 I'm not sure I understand.16:23
jimbakerso two bugs here, plus a feature change16:23
jimbakeror something like that16:23
thomasemlol16:24
jimbaker1. client should report errors precisely from api server; 2. limit of 1 is fine; 3. limit of anything is also fine, and should use underlying autopaginate16:24
jimbakerso that will fix up some usability issues16:26
thomasemFor the issue with <resource>-show: https://bugs.launchpad.net/python-cratonclient/+bug/1675410 and I'll be creating another (or adding to this one) regarding affording for specifying variables to extract, and possibly RegEx support later on.16:26
openstackLaunchpad bug 1675410 in Craton's Python Client "Add fields selector to <resource>-show commands" [Undecided,New]16:26
jimbakerthomasem, +1, this is the big ask from support16:27
jimbakerand easy enough to support16:27
thomasemAlright. Any other questions on that topic?16:28
jimbakeri should mention that one more thing that came up related to variables is that loading from ansible is not always going to produce highly useful things to search against16:28
thomasemor comments/concerns16:28
jimbakeri forget the exact one, but this was with respect to a list of processor strings. or was it even a list - could have been one big string16:28
thomasemAnd, not sure about what the environment looked like, but the search was pretty slow over a really small amount of data with the nested var search.16:28
git-harryjimbaker: that sounds like a user problem16:29
thomasemWould be good to figure out JSON column indexing and how that might help us. Again, this is where I think Elasticsearch would outshine our nested var searching.16:29
jimbakerthomasem, yeah, because we have no indexing on that json stuff. it's even worse because the alembic change i have under review did add a useful index for k/v search16:29
jimbakerto at least make that part work better16:29
jimbakerso must get alembic change in, even subsetting with respect to keys would be far better16:30
thomasemI still think at some point we're going to have to set some defined boundaries on what this nested stuff can do and say that for everything else, we need to use ES.16:30
thomasemGotcha16:30
jimbakerthomasem, agreed about elasticsearch16:30
jimbakeri think we could readily do the following for craton16:30
jimbakerelasticsearch + kibana16:31
jimbakeras a dashboard16:31
jimbakerjust requires a small amount of work to aggregate docs into elasticsearch16:31
jimbakerthere are some issues here, such as how do we integrate our security model with elasticsearch16:32
jimbakerbut it would demo well before we get to that point16:32
anonymike+116:32
jimbakerbut it would be a fairly simple matter of programming to iterate over resources; dump into elasticsearch with the python interface it supports (use bulk mode)16:33
jimbakeri bet anonymike could get this going in an afternoon...16:33
jimbaker:)16:33
anonymike;)16:33
thomasemYeah, we can address the "how" more when we get someone dedicated to getting that running and documenting it.16:33
jimbakeri suggest we just do a little skunkworks to try out something16:34
thomasemOkay16:34
jimbakerthen we can go back & figure out proper integration16:34
jimbakergiven we know that elasticsearch has everything we need for security integration, plus keeping stuff live via its replication model16:34
thomasemjimbaker: I believe git-harry mentioned that the variable bloat from loading useless things from Ansible was a user concern.16:35
jimbakerthomasem, but that's more of a question of filtering i think16:35
jimbakernothing i have seen is even close to something that would be expensive to manage in a database, assuming proper indexing16:35
jimbakerbut it's super painful right now from the CLI16:36
thomasemThe comment was specifically about loading variables from Ansible, though. "related to variables is that loading from ansible is not always going to produce highly useful things to search against"16:36
jimbakerit only takes a few kilobytes to be too much on the CLI. but megabytes... mysql has no problem16:36
jimbakerthomasem, agreed. lots of chaff16:37
thomasemWhich I believe is where git-harry's comment came from. Basically: Cool, don't load variables you don't care about.16:37
sigmavirusgot distracted, fwiw, the pagination minimum amount was agreed upon in the specification16:37
jimbakerright. and at least know what you want to filter on/search for/and be reasonable about you organize16:37
thomasemsigmavirus: interesting. I'll have to go look and see the rationale.16:37
sigmavirusso y'all need to update the spec in addition to updating the code =)16:37
jimbakerthomasem, and it could be more of the CLI should just the smart thing16:38
sigmavirusjimbaker: showing better messages from the CLI is absolutely a good goal too =)16:38
jimbakeryou want --limit=1 - fine, i will just give you the first item16:38
sigmavirusBut yeah, I think ES is also necessary for everything we're talking about16:38
sigmavirusalso, I wanted to do the limitations on 'limit' in a pre-processing function instead of the schema but was directed to use the schema16:39
sigmavirusdoing it in code would have allowed us to just return 10 instead of returning a 40016:39
jimbakeryep, so anonymike, sound like a fun task for you? seems like right up your alley16:39
jimbakerin terms of elasticsearch16:39
anonymikejimbaker: elasticsearch?16:40
anonymikeyezzir16:40
thomasemExcellent!16:40
jimbakerawesome16:40
sigmavirusanonymike++16:40
jimbakernew guy, gets to work on fun stuff. what can be better? :)16:40
anonymike:D16:40
jimbakerseriously, it's pretty good, because we need more eyeballs on that python client16:40
jimbakerand this is a good place to try it out16:41
jimbakerand if by chance we have something to demo next week, well i would never complain about that...16:41
thomasemOkay, cool. So, we have some bugs to write, it sounds like.16:42
anonymikeI better get started :) haha16:42
thomasemAnd BPs16:42
* sigmavirus nods16:42
jimbakeryep16:42
sigmavirusmight be worth updating the spec template to include a place to log updates16:42
jimbakerexcept for you anonymike - you can just figure stuff out, and report back to us16:42
thomasemsome amendments section16:43
sigmavirus(since it sounds like you'll be updating the pagination-spec and something like that might be useful to track the documents changes for people without their hands on the git repo)16:43
sigmavirusthomasem: exactly16:43
anonymikejimbaker: sure, sounds good16:43
thomasemjimbaker: you want to take the BP for ES/Kibana and feature change for "limit", and I'll take writing up the client bugs?16:45
jimbakeranonymike, at some point, we will also want to look here - https://github.com/noplay/python-mysql-replication16:45
jimbakerthomasem, no BP yet for ES/kibaba16:45
thomasemkk16:45
jimbakerwe are going to skunkworks this first, just to get an understanding of what's there16:46
thomasemLol, okay. It's either/or, to me. I just wanted something to communicate what anonymike is working on, is all, and a place to put notes and such for what's found.16:46
thomasemAnyway, however we wish to run this deal.16:47
anonymikejimbaker: something like this? https://github.com/scharron/elasticsearch-river-mysql16:47
jimbakeranonymike, it is, but rivers are now deprecated in ES16:47
anonymikeha yeah, last update 5 yrs16:48
jimbakerin general, we have to do this at a higher level16:48
jimbakerthe notification can say - the underlying doc needs to be updated16:48
jimbakerbut it has to understand the model of the system16:48
jimbakervs just raw table stuff16:48
jimbakerso i think this starts getting more into blueprint level considerations - and why pushing this aspect out a bit16:49
thomasemAlright, we're coming up on 10 minutes left. Any other topics folks want to bring up before we run out of time?16:49
jimbakerbut a huge advantage of ES/kibana is we see changes over time16:50
jimbakerthomasem, i'm good16:50
thomasem#topic Open Discussion16:50
thomasemAlright. Sounds like we've got a plan and a lot of good ideas came out of the demo.16:51
jimbakeryep16:51
thomasemPriorities are modifying the loading script and affording for the client to configure `--fields` with some variable selection, too?16:52
thomasemOnce existing priorities are sorted, of course, being the Alembic stuff, nested var search, and...16:52
fsaad+116:53
thomasemI think that's it that's remaining?16:53
thomasemFrom Monday's meeting.16:53
thomasemSo let's finish it up.16:53
thomasemAnd move on to the priorities from our demo16:53
fsaadthomasem / all: so does https://bugs.launchpad.net/python-cratonclient/+bug/1675410 mean we don't need to wait for support to provide a list of default fields to show in host-list ?16:53
openstackLaunchpad bug 1675410 in Craton's Python Client "Add fields selector to <resource>-show commands" [Undecided,New]16:53
jimbakerright such as fix client up with respect to --limit=1 to whatever - no change needed in rest api16:53
fsaador still would be nice to have ?16:53
jimbakerfsaad, i think we can skip that for the moment16:54
thomasemfsaad: it'd be nice to have, but I'm hoping it'll make it so they can get whatever variables they care about themselves.16:54
thomasemwhatever fields/variables16:54
jimbakerthomasem and i were discussing that this gets into a more general conf system16:54
jimbakerfor client expectations16:54
jimbakerotherwise it feels sort of ad hoc16:55
thomasemImagine how bad --details will look in a host-list, though?16:55
thomasemassuming that causes it to include the variables...16:56
jimbakerthomasem, indeed, megabytes!16:56
jimbakerlooks great with --format=json16:56
jimbakerhowever16:56
thomasemHaha, right16:56
thomasemtabled, though... ouch16:56
jimbakerthere is no good answer here. but again i think the idea you proposed of putting stuff in columns by --field is a great one16:56
thomasemcool16:57
jimbaker(does it imply details btw)16:57
thomasemI suppose... but isn't all that --details does is include variables?16:57
jimbakerfor now16:57
thomasemGotcha16:57
thomasemOkay16:57
jimbakerit should also include labels etc16:57
thomasemAhhh right16:57
thomasemokay16:57
jimbakerthe underlying thing is ?details=all - with the implication that it could be mean less16:58
thomasemWells, I'll finish fleshing out the bug(s) and we can discuss from there16:58
jimbakeror some interesting subset16:58
jimbakerwhat are my role assignments? etc etc16:58
thomasem--fields id, name, roles, var:host_facts.os16:58
jimbakerchildren...16:58
jimbakerlots of possible stuff to show16:58
jimbakeranyway, probably wrap up. not going to do all that today16:59
thomasemAlright, coming up on close of meeting.16:59
thomasem3...16:59
thomasem2...16:59
thomasem1...16:59
thomasem#endmeeting16:59
openstackMeeting ended Thu Mar 23 16:59:37 2017 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)16:59
openstackMinutes:        http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-03-23-16.00.html16:59
openstackMinutes (text): http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-03-23-16.00.txt16:59
openstackLog:            http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-03-23-16.00.log.html16:59
jimbakerthanks!16:59
thomasemCheers!16:59
jimbakersigmavirus, https://gist.github.com/jimbaker/8b1b6ccbef5368adaf84ff685383318517:05
jimbakerso both outputs, from the branch i pulled as well with git review -d Ic4e342cf01be288b7a7c453659580c57169b1022 (looks like identical pulls, but no gerrit expert am i)17:06
jimbakerthomasem, iirc, you have no problem with testing python client on OSX right?17:07
jimbaker(also all CRATON_DEMO_* envvars are not set - so purely going against recorded cassettes)17:07
thomasemjimbaker: I haven't tried. I set up a remote dev box because of all of the problems I ran into running functional tests for craton on OS X.17:07
jimbakerthomasem, ahh, that makes sense17:07
jimbakeryes, it works fine there. well, other than some minor problem with netiface or something like that not building on python 3.5, but that's a completely separate issue17:08
jimbakeri did notice in our tox stuff on python-client however that we only test against 2.7, 3.4, as well as pypy. we should do this for 3.5 at the very least, and presumably 3.6. maybe drop 3.417:09
thomasemjimbaker: tox -e py35 always worked for me?17:10
jimbakernetiface also doesn't build on py3.4 for me17:10
jimbakerthomasem, i will give that specific invocation a try on ubuntu17:10
jimbakerhowever, i would like betamax to run on osx, given that we should work there for client code17:10
jimbakerbut i believe for sigmavirus, it works for him. just need to get it to work for at least another person or two17:11
jimbakergit-harry, could you respond to http://lists.openstack.org/pipermail/openstack-dev/2017-March/114425.html ? want to wrap up voting here17:12
sigmavirusjimbaker: 3/4 active cores would generally be good enough for any other project =P17:13
jimbakersigmavirus, yeah17:13
jimbakerbut 4/4 sounds even better to me17:13
jimbakeri will just call the election over in the next hour or two - it's possible git-harry has quite reasonably gone home for the day17:14
sigmavirusif git-harry hasn't, I'll be disappointed17:14
sigmavirusalso well within his rights to abstain17:14
jimbakersigmavirus, good point17:14
sigmavirusalso well within his rights to not want to participate on the ml =P17:15
openstackgerritMichael Porras proposed openstack/craton master: Adding wrapper functions to tools  https://review.openstack.org/44923017:18
anonymikejimbaker: ^ my proposed solution. I can also add something for user defined config locations. But this allows me to swap back and forth between direct and docker with ease17:22
jimbakeranonymike, looking forward to trying out your proposed improvements!17:23
* anonymike jumps into elasticsearch17:23
thomasemlunch17:27
sigmavirusanonymike: did you secure a rope for easy escape?17:29
sigmavirusd34dh0r53: still hasn't escaped the great elasticsearch openjdk leap of 201417:29
anonymikesigmavirus: I did not!17:29
sigmavirusRIP anonymike17:29
d34dh0r53lol, and it just sucked me back in17:29
d34dh0r53s/ELK/MegaMaid/g17:29
sigmavirusd34dh0r53: I weep for your family17:30
tojuvonejimbaker, should we finish CFP on monday. I'll have time till tuesday morning (my time) to upload.17:30
git-harryjimbaker: done17:32
jimbakertojuvone, i'm going to spend some time on that today17:33
jimbakeralso try out the lab access you gave me17:33
jimbakergit-harry, thanks!17:33
suloback, o/17:34
suloso just reading the scrollback, i wasnt clear what the outcome of the demo was fsaad, what are the action items that we agreed to work on from that ? i see 3 things listed up there17:34
sulobut wasnt clear what was requested as work item17:35
jimbakersulo, we need to "flip the bit" for thomasem, we now have 4 out of 4 +1s for him to become core! (counting active cores)17:35
sulojimbaker: awesome17:35
jimbakernow need to read up on docs to actually do this flipping...17:36
sulojimbaker: i can add him, sec17:36
jimbakersulo, even better!17:36
sulodone17:36
jimbaker:)17:36
sulothomasem: ^17:36
jimbakerthomasem, use your powers for good, and not for evil17:37
anonymike\o/17:38
fsaadbjoern updated https://bugs.launchpad.net/python-cratonclient/+bug/1675410 btw17:38
openstackLaunchpad bug 1675410 in Craton's Python Client "Add fields selector to <resource>-show commands" [Undecided,New]17:38
jimbakersulo, getting back to your question - i think this hopefully will be clarified in the bug reporting17:39
sulojimbaker: ah thats even better, its good that folks are creating bug reports as request17:39
fsaadsulo: the demo went really well, the outcome was a few items of feedback to work on, one was host-show (*-show?) being too polluted when many variables exist17:39
jimbakeralso i asked anonymike to look into figuring out what it means to do an initial elasticsearch integration - pure prototype, let's see what the issues are17:40
fsaadaction items for client load which tim is looking at17:40
jimbakerthen we will circle back and figure out this more formally, including blueprints17:40
tojuvonejimbaker, ok17:40
fsaadalso for the first, bjoern suggested limiting the output of host-show variables to a subset of all, but believe consensus is to allow flexibility on fields to show by making configurable17:40
sulofsaad: cool, jimbaker: what are we trying to get out of elasticsearch integration ?17:41
suloi mean user stories wise17:41
jimbakerbetter search, chance of using kibana as a dashboard onto craton17:41
fsaadsulo: also, the search was noticeable slow while demoing, especially to only have had one customer17:41
fsaadso looking into that I believe prompted the elasticsearch conversation17:41
jimbakerso such things as approx search17:42
sulofsaad: heh, thats expected17:42
fsaadgranted we don't know what the demo box specs were, so a lot may improve just by tuning mysql, it was out of the box install conf I know that17:42
jimbakerwe can solve the speed issue with indexing17:42
fsaadcool I imagined that was the case, just not familiar with json fields in mysql17:42
sulofsaad: iirc we dont index properly right now17:42
jimbakeri think nested var search as implemented is fine for automation (assuming we do obvious speedups)17:42
fsaadsounds like low hanging fruit17:42
suloyeah, some of it will be solved by index17:42
jimbakerbut elasticsearch gives us a better support experience17:43
jimbakerso both are good17:43
anonymikepeople love dashboards17:44
suloso elasticsearch just for variables ?17:44
jimbakersulo, everything17:44
sulohmm .. whats stopping anyone from just doing that now ?17:44
jimbakerbut we will see what anonymike can do in terms of feeding elasticsearch in such a way that it's useful17:44
suloes has good api and search support17:44
jimbakersulo, i think it's very straightforward17:44
jimbakerwe have the resource listing on the craton client side; and ES has a good python client, including bulk loading17:45
jimbakerso it's a pretty small investment of our time to try it out and see what the actual issues are. i'm mostly thinking schema type considerations17:46
jimbakerthere are other aspects such as integrating with our rbac; plus driving changes into ES; but let's postpone those for the moment17:46
sulojimbaker: i am not doubting it will work, or that is pretty simple, i am just saying whats stopping someone who is deploying craton with es to just es for everything - craton17:47
jimbakersulo, because i think this is a useful integration for us to support17:47
jimbakeras anonymike said, everyone loves a dashboard. and better search would get over the last hump in terms of usability17:48
jimbakerbut we can think about this more once we look at what is readily possible to look at. given anonymike's previous work on galaxy, etc, i think he has a good sense of what could be showed17:49
jimbakerespecially with respect to defining kibana views17:49
sulojimbaker: well kibana/grafana is good, but i dont knwo that it would be a great UI for craton .. although, i've seen that get used in public cloud as that17:49
jimbakersulo, yeah, hence prototype17:49
suloi personally think, ppl like alerts.othree type dash thats infra specific17:49
jimbakeri'm pretty sure we can get something similar to that in kibaba17:50
suloso this has become a priority item now ?17:50
suloor is that becasue of search?17:50
jimbakersearch is the driver of the ES discussion17:50
sulogotcha17:50
jimbakerbut i look at it as something that can get anonymike some experience on the python client17:51
jimbakerso easy to justify17:51
sulosure, i mean do we know what was slow, why, if its fixable on the db side first .. or the decision has been made that its going to be elasticsearch ?17:52
jimbakersulo, there were certain queries that were not readily expressible using json path17:53
jimbakerthat were being raised17:53
jimbakerbasically regex type queries. but also more generally approx queries. we can address by saying - load your data better17:54
jimbakerand that's a reasonable answer to a certain extent17:54
jimbakerbut at some point we don't want to keep investing a lot of time on making search more powerful. we are not going to put the years of engineering into search that has been done for ES17:55
thomasemsulo: Ultimately, ES is designed for the sort of searching people want to do. I think we'll be wasting our time if we start chasing all of the ways they may want to search the data, when there's already a perfectly good solution in ES.17:55
sulomaybe we should just switch db to something that supports all this .. i mean i like ES .. i like the integration idea too .. but i dont know if this is a good move .. as a systems person .. if you ask me to maintain a mysql cluster + es cluster to run this i will frown17:55
anonymikeI agree we need to tweak the db and better explain to users how to query, but i think a few days of work to have a polished ui to demo is important17:55
sulosure both mysql and es are widely used etc17:55
jimbakerES is not a config database17:55
jimbakereach has advantages17:55
jimbakeri mean it would be interesting to put craton on crate.io - https://crate.io/17:56
jimbakerjust for the pure fun of that17:56
anonymikewhoa17:56
jimbakerbut crate.io is eventually consistent17:56
jimbakerand all of my instincts related to config databases are, this is a bad idea17:57
sulothomasem: jimbaker: its easy to make it so, so like i was saying myabe we need to explore casandra, mongodb etc ?17:57
jimbakeri don't think mongodb or cassandra are good ideas for what we are doing17:58
anonymikeI <3 mongo but that'd be quite the refactor no?17:58
jimbakercompletely awesome for other use cases17:58
jimbakerfwiw, here's what i'm hoping we can use long term17:58
jimbakerhttps://github.com/pingcap/tidb17:59
jimbakersort of like cockroachdb, but with mysql interface18:00
* anonymike has not heard of half these dbs18:00
anonymiketidb looks cool18:01
jimbakeralthough cockroachdb apparently is somewhat similar to postgresql - https://www.cockroachlabs.com/blog/building-application-cockroachdb-sqlalchemy-2/18:01
jimbakerso some possibility there18:01
thomasemI can't say I know enough about these to express an opinion either way yet.18:01
jimbakertidb is written in a combo of go and rust18:01
jimbakerrust for the distributed kv store18:02
jimbakergo for the mysql frontend18:02
jimbakerthomasem, all i know is that we have some choices for strongly consistent, scaled out SQL databases18:02
jimbakermultiple implementations of the F1 paper from google18:02
jimbakerhttps://research.google.com/pubs/pub41344.html18:03
thomasemWhat's the beef with running ES, though? Is there really that much of an operational burden?18:03
thomasemCould be supplementary, but not required.18:03
jimbakerthomasem, agreed18:04
anonymike+118:04
thomasemFor environments where folks want that sort of searchability18:04
anonymikeand visualization18:04
thomasemYeah18:04
jimbakerit's exactly the sort of thing that's easy to put together with docker compose18:04
jimbakeranonymike, if you have a few extra minutes, feel free to do that too. so we can all play18:05
jimbaker;)18:05
sulothomasem: jimbaker: ah so it optional ?18:05
jimbakersulo, absolutely optional18:05
sulothomasem: yes it is opertional burden , by adding es we are asking folks to run es cluster18:05
jimbakeri want to address a specific support question18:05
thomasemWhat's involved in running an ES cluster?18:05
sulothomasem: same as running mysql cluster18:05
suloyou need to maintain it .. nothing wrong with it18:06
sulobut it needs to be maintained18:06
anonymikejimbaker: sounds good, a lot to learn! :)18:06
jimbakeranonymike, i think you are going to be doing this anyway, that's all. at least standup ES with docker18:07
anonymikeyep yep, that was the plan18:07
jimbakeranonymike, so the next obvious step is to just say, standup two docker thingies (ES and craton). hence docker compose18:07
thomasemWhy don't we ask the support folks? I wonder what the operational cost of, say, Cassandra is compared to MySQL + ES?18:08
sulothomasem: yes good idea18:08
thomasemI am not an operator of any of these, so I don't lknow.18:08
thomasemknow*18:08
thomasemWould be useful information.18:08
jimbakerlet's just not have cassandra be an option. it's not18:08
thomasemBut, there are consistency concerns.18:08
sulothomasem: i come from ops world, so i love to run as less as possible18:08
jimbakerperfectly valid option for timeseries data18:09
jimbakerwhen running at scale, you have to multiple systems18:09
jimbakeroptimized by capability18:09
thomasemsulo: The problem to me comes more down to a question of right tool for the right job.18:09
thomasemBut, I can see how those would be at odds in this scenario. When Craton goes to a more distributed model, I really only imagine one ES cluster at the global level.18:09
thomasemFor support18:09
sulothomasem: sure, and thats what i am syaing too .. what is the problem, can we solve it without adding anything ... etc18:10
jimbakermysql 8 does have some enhanced functionality that's nice such as builtin memcached support18:10
jimbakeri don't know if we want to use that vs redis18:10
sulothomasem: not sure CDC model will works with that18:10
jimbakerso CDC doesn't have this issue18:11
thomasemsulo: why not? Isn't it all supposed to be replicating up to a global Craton?18:11
thomasemAnd, if so, could we not pull from that to populate ES?18:11
jimbakeronly need ES where there's support18:11
sulothomasem: yes ,, but we are adding this so folks can search18:11
sulothomasem: search is local ?18:11
jimbakersearch should not be local18:11
jimbakerin CDC case18:11
jimbakerCDC only needs to run automation18:12
sulojimbaker: how do you mean ?18:12
jimbakerpeople are not going to be seaching there, dashboarding stuff18:12
sulojimbaker: why not ?18:12
thomasemThey're already constrained on what can be run in CDC... do any of these other solutions even work for that case?18:12
jimbakerif they do, then assume greater costs. i don't see RPC doing this18:12
sulothomasem: yeah good question18:12
jimbakerit really doesn't make sense18:12
jimbakerCDC by definition is already small18:13
sulojimbaker: i think its more of a restriction question18:13
sulojimbaker: na cant assume that18:13
jimbakerwe don't want support personnel having to log into a CDC to do a search18:13
sulojimbaker: and afaik, its not18:13
jimbakersulo, when i say small, i mean just one or maybe a few tenants18:14
jimbakerit can be readily handled by a mysql cluster, with proper indexing18:14
thomasemLet's lay out, specifically, the fundamental reasons for not doing Mongo, Cassandra, Redis, etc. be it consistency concerns, scalability, what have you... and put that information somewhere so we can avoid this chat we've had several times already. :P18:14
sulothomasem: +118:14
jimbakerand most importantly, people are not directly looking at the craton instance. the whole point of this is we aggregate up to an overall support cluster, so they can run queries there18:14
jimbakerit's in the use case from support :)18:15
jimbakerUC1?18:15
jimbakersulo, thomasem, worthwhile doing for sure18:15
jimbakeri'm always glad for assumptions to be challenged however18:15
thomasemAnd it'd be good to reference specific documentation of the problem that is at odds with Craton's goals.18:15
thomasemBecause one person says consistency, another says it's an operational problem, another says X, but we're never going to put it to bed until it's documented.18:16
suloi would really like to understand the problem fist, see options etc ... we can continue with es stuff .. but i feel like this just came about because one seach was slow .. the data for search right now is tiny .. smaller than tiny18:17
jimbakerit is not about the speed18:17
jimbakerwe already know that the query can be optimized18:17
sulojimbaker: so whats it then ?18:17
sulosearchability ?18:17
jimbakerit's about the human aspect of search18:17
suloexample ?18:18
jimbakerbeing able to do an approx type of search18:18
thomasemIt seemed like support was worried about not having all of the information. So, they'd like a full-text search approach. Fuzzy searching, not knowing full values...18:18
jimbakeragain, no way do we even have time to do this type of investment in searching18:18
jimbakerwe have many other issues to solve18:19
jimbakerand support directly using craton in this way was not an original goal. instead automation was the goal. (hence why strong consistency. fortunately we can have cake & eat too18:20
jimbakerwith a little integration work18:20
sulowell, adding a new component to solve this does not sould like the right approach to me18:20
sulonot saying its not the right solution18:21
thomasemBecause of the operational overhead?18:21
sulojust saying .. we need more info before jumping in18:21
sulothomasem: thats one apect for sure18:21
jimbakerit's worthwhile to point out that this is the openstack approach, namely searchlight; although searchlight is tightly bound to horizon as i understand it18:21
thomasemI think that's fair. We could use more information. It was kind of a passing comment yesterday.18:21
jimbakerhaving said that, any ES work could support searchlight in the future18:22
jimbakerso we are not at all treading on new ground here18:22
jimbakerok, i think we are good for now. biab, going to get a run in!18:24
suloanyway, good discussion here ... i would definitely like to see what support wants written somehere, with examples  etc ... and what thomasem said ^ re: why not mongo etc18:25
jimbakerhttp://mysqlserverteam.com/indexing-json-documents-via-virtual-columns/18:26
jimbakerthomasem, something we can look into18:26
jimbakerbut first, we should reload data using the alembic update i have18:26
jimbakerok, really going for that run now :)18:26
openstackgerritMichael Porras proposed openstack/craton master: Adding wrapper functions to tools  https://review.openstack.org/44923018:32
anonymikegrabbing lunch and heading home18:40
anonymikebrb18:40
sigmavirusjimbaker: did you figure out your issues with betamax yet?19:28
jimbakersigmavirus, not yet, but haven't looked since posting that gist19:54
jimbakeri'm ok with it just works on ubuntu for now19:54
thomasemmy brother just got in, so I need to step away. I'll catch up laters!21:01
anonymikelater thomasem!21:01
jimbakerthomasem, take care!21:02
jimbakeranonymike, so with respect to the python client21:08
anonymikeyes?21:08
jimbakeryou can get the dict of the json resource, possibly further extended from lazyloading, with21:08
jimbakerresource.to_dict()21:08
jimbakersorry, meant to say, of the *crud* resourfce21:09
jimbakeralthough of course it was originally json for our purposes21:09
jimbakereg: >>> host.to_dict()21:09
jimbaker{'region_id': 1, 'cloud_id': 1, 'project_id': 'ffc2a2e0-260e-43e8-9b71-207ab54584c9', 'created_at': '2017-03-23T21:05:10.000000', 'active': True, 'parent_id': 1, 'device_type': 'server', 'name': 'host0.ORD135.C0001.C-1.example1.com', 'links': [{'href': 'http://127.0.0.1:7780/v1/network-devices/1', 'rel': 'up'}], 'id': 2, 'note': None, 'ip_address': '192.168.1.5', 'cell_id': 1, 'updated_at': None}21:09
jimbakerso this should be something you can directly post in ES21:10
anonymikeoh nice,21:10
anonymikeperfect21:10
jimbakeryeah, don't want tedim if we can avoid. also, something like this is perhaps more convenient:21:11
jimbaker>>> hosts = list(craton.hosts.list(details='all'))21:11
jimbaker>>> hosts[0].to_dict()21:11
jimbaker{'region_id': 1, 'cloud_id': 1, 'project_id': 'ffc2a2e0-260e-43e8-9b71-207ab54584c9', 'created_at': '2017-03-23T21:05:10.000000', 'active': True, 'parent_id': 1, 'device_type': 'server', 'name': 'host0.ORD135.C0001.C-1.example1.com', 'links': [{'href': 'http://127.0.0.1:7780/v1/network-devices/1', 'rel': 'up'}], 'id': 2, 'note': None, 'variables': {'openstack_release': 'juno', 'console_host': '10.10.1.100', 'nova_console_type': 'novnc', 'tempest_pub21:11
jimbakerlic_subnet_cidr': '192.168.1.0/22', 'neutron_l2_population': True, 'glance_default_store': 'swift', 'cell_capabilities': 'flavor_classes=performance2'}, 'ip_address': '192.168.1.5', 'cell_id': 1, 'updated_at': None}21:11
jimbakercraton.hosts.list returns a generator (possibly could be better named....)21:12
jimbakerdetails='all' means grab all variables21:12
jimbakeri suspect in the future we may offer a way to get the "blame" instead21:12
jimbakerwhich is the specific hierarchy of variables21:13
jimbakeranyway, the point of this is, you need json docs to populate ES21:13
jimbakerand here's the most direct way to do so :)21:13
anonymikelol21:13
anonymikethank you21:13
anonymikei hadn't seen the blame stuff21:13
anonymikeinteresting21:13
jimbakeranonymike, can be found here: >>> hosts = list(craton.hosts.list(details='all'))21:15
jimbaker>>> hosts[0].to_dict()21:15
jimbaker{'region_id': 1, 'cloud_id': 1, 'project_id': 'ffc2a2e0-260e-43e8-9b71-207ab54584c9', 'created_at': '2017-03-23T21:05:10.000000', 'active': True, 'parent_id': 1, 'device_type': 'server', 'name': 'host0.ORD135.C0001.C-1.example1.com', 'links': [{'href': 'http://127.0.0.1:7780/v1/network-devices/1', 'rel': 'up'}], 'id': 2, 'note': None, 'variables': {'openstack_release': 'juno', 'console_host': '10.10.1.100', 'nova_console_type': 'novnc', 'tempest_pub21:15
jimbakerlic_subnet_cidr': '192.168.1.0/22', 'neutron_l2_population': True, 'glance_default_store': 'swift', 'cell_capabilities': 'flavor_classes=performance2'}, 'ip_address': '192.168.1.5', 'cell_id': 1, 'updated_at': None}21:15
jimbakeroops, wrong paste21:15
jimbakerhttps://github.com/openstack/craton/blob/master/craton/db/sqlalchemy/models.py#L20421:15
jimbakeranonymike, that is just a taste of the sort of functionality around "governance" we want to offer in the future21:16
jimbakerwho set the var? when? why? what were recent values? etc21:16
jimbakerwe think these are important questions to answer in a cmdb21:17
anonymikeexactly! something people were asking for in galaxy but I never got around to even investigating21:17
jimbakeryeah, so still stuff to build, but at least a place to hook this onto21:17
jimbakernext up from me, i'm working on rbac so we can control access to read/write at a fine-grained level21:18
anonymikei was reading through the models code  a few days ago and missed the polymorphic associations blog, gonna read up on that tonight21:18
jimbakerpolymorphic assoc stuff is huge for us21:19
jimbakersignificant code minimization, makes queries much easier to write21:19
jimbakerat the cost of an extra assoc table21:19
jimbakerbut in practice it's fine, because we really care about where we get the var from - it would be exceedingly tedious to write queries to answer that question without the use of polymorphic assoc21:20
jimbakeranonymike, best bet, go through with a mysql client and see how they are created21:21
jimbakeralso highly useful, you can print a query at any time21:21
anonymikegood idea21:21
jimbakershould also share with you some code i use to literalize a query from params - could be a useful debugging tool that could live somewhere - just not in craton itself21:22
anonymikeI'd love to see that21:22
jimbakercool, will put together that gist, and we can go from there21:23
anonymikethanks!21:23
jimbakernp!21:24
openstackgerritThomas Maddox proposed openstack/craton master: JSON Path-like querying for variables  https://review.openstack.org/44394122:48
openstackgerritThomas Maddox proposed openstack/craton master: JSON Path-like querying for variables  https://review.openstack.org/44394122:49
openstackgerritThomas Maddox proposed openstack/craton master: JSON Path-like querying for variables  https://review.openstack.org/44394122:50

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