Thursday, 2017-02-02

*** valw has joined #craton00:25
*** Syed__ has quit IRC01:05
*** VW has joined #craton04:13
*** VW has quit IRC04:18
*** VW has joined #craton04:18
*** valw has quit IRC04:39
*** VW has quit IRC04:39
*** valw has joined #craton05:39
*** valw has quit IRC05:44
*** lcastell has quit IRC06:13
*** lcastell has joined #craton06:15
*** valw has joined #craton07:41
*** valw has quit IRC07:46
*** valw has joined #craton09:42
*** valw has quit IRC09:46
tojuvoneProposed openstack/nova-specs master: Add Host Details  https://review.openstack.org/42807010:10
tojuvoneNeed to add better link there for the use case later.10:11
tojuvoneTiming is still quite ok in history of Nova doing BP review.10:14
suloo/10:40
sulojimbaker: thats fair comment on https://review.openstack.org/#/c/427717/ .. we need to circle back to that11:52
sulojimbaker: actually, resolved vars in this case might not make sense11:54
git-harryI would have thought you'd want to be able to search both ways11:54
sulojimbaker: resolved vars say in hosts = all hosts11:54
sulosince its coming from one step up11:54
sulogit-harry: how do you mean both ways ?11:57
sulolike --resolved=false11:57
suloor --resolved=true we do for vars in general ?11:57
git-harrysulo: yeah, so you may want to know which devices have a particular value so see what their current config is, but if changing config it's possible that you may want to set something at a higher level and be sure it is going to be applied everywhere you expect. If the device and say cell both have the same value, when the cell is updated the device won't inherit the correct value. I think it would be preferable to12:00
git-harryknow that ahead of time.12:00
sulogit-harry: rgr, yeah that sounds like the right use case to go for12:02
sulogoing to create a bug for now12:02
* sulo thinks we need to put a bit more thought and work into /networks /network-devices and /network-interfaces design12:35
*** VW has joined #craton12:37
*** VW has quit IRC12:45
sulonow here is a question, re: https://github.com/openstack/craton/blob/master/craton/api/v1/schemas.py#L44212:52
sulodo we need to require ip_address to make a network interface ?12:52
*** valw has joined #craton13:43
*** VW has joined #craton13:47
*** valw has quit IRC13:48
jimbakersulo, re required ip_address, surely in some form, right?14:25
jimbakerthe only counterexample i can think of is needing to create a placeholder before the ip address is specified14:26
thomasemDepends on the type of interface. That's L2, so IP address shouldn't be required if you're wanting to represent an actual network interface.14:36
thomasemSome types of interfaces have no IP address, only MAC.14:36
thomasemThink trunk ports and such14:36
sulothomasem: exactly, its not that they dont need it ... you can have an interface without ip associated yet14:36
thomasemAbsolutely14:36
jimbakerthomasem, sulo, got it14:37
thomasemThe coupling of the two caused a HUGE problem in Neutron when trying to handle nested ports and there was a desire for "late-binding", though I can't remember the use-case.14:37
thomasemShared IPs work was impacted pretty heavily by that limitation14:37
thomasemSince only one interface was supposed to have the allocated IP at a time.14:38
thomasemBut N interfaces could potentially have it.14:38
thomasem:thumbsup:14:38
jimbakerso the intent here is simple for craton: we want to have a simple model of networks, which can then connect into the device tree (i would assume at the switch level, possibly we care about cabinet networking as well but i see that as unlikely, it's implied by the switch)14:39
jimbakerso the network interface shows that switch-1 is on the same network as switch-2, switch-3, ...; and it has some useful properties we want to break out as db columns14:40
jimbakerso basic topology14:41
thomasemWould we also be indicating which host is plugged into which switch?14:42
jimbakermore importantly, that we have enough info to go to a source of truth (an actual network manager tooling, something like neutron); and that as desired we could supplement with extra variables as a cmdb14:42
jimbakerthomasem, we could, but it seems to be implied by the device tree14:43
thomasemOh, so you'd have region -> cabinet -> switch -> host14:43
jimbakercorrect me if i'm wrong, but the typical cab is a top-of-rack switch + a bunch of physical hosts14:43
thomasemMight be a little more complicated with multiple switches for, like, HA.14:44
thomasemBut, I'm not as familiar. I'd need to go bug the network architects. :P14:44
jimbakerthomasem, in that case, we could model the networks separately14:44
thomasemYeah, I'm wondering if we need the ability to represent them as peers and parents to the same hosts.14:45
*** VW has quit IRC14:45
thomasemWhat do you mean by model networks separately?14:45
thomasemjimbaker: ^^14:46
jimbakerthomasem, in general, we have resisted arbitrary graphs because they make queries more expensive; and you rapidly get into "multiple inheritance" like problems14:46
thomasemBecause of the possibility of two TORs on a cab?14:46
jimbakerso the only true graph like structure we support is a network14:46
jimbakerbut variable resolution is not available from a network to its interfaces to its devices...14:47
*** VW has joined #craton14:48
jimbakerthomasem, any host/device can connect to a network via a network interface in the model14:48
jimbakeri'm just asking if that's always desired, because the real intent is to look at this at the level where we really start to see a network emerging14:49
thomasemHmmmm14:50
jimbakerthat is, at the cab level14:50
jimbaker(assuming non redundancy in the cab)14:50
thomasemWell, I think the network a host can connect to depends on the cab its in by being limited to the TOR(s) in that cab.14:51
thomasemYou wouldn't plug a host in cab a into a switch in cab b.14:51
thomasemAt least, I don't imagine one would.14:52
sulojimbaker: i suggest we change <>-get/set-vars to <>-vars-get/set14:52
suloill suggest that in your patch14:52
jimbakersulo, to better reflect the hierarchy? yeah, that makes sense14:53
suloits easier to type from one to the other :)14:53
jimbakersulo, and similar with host-labels-set/host-labels-get; and <resource>-roles-set/resource-roles-get14:54
suloyeah14:54
jimbakernext obvious things to add as we get to them14:54
jimbakeralso presumably <resource>-vars-delete, although i was think that something like host-vars-delete x= y= could be a synonym, since it's unambiguous14:55
jimbakersorry, i meant to sa14:56
jimbakersay14:56
jimbakerhost-vars-set x= y=14:56
jimbakeralthough perhaps confusing for command line usage; export FOO= is not the same as unset FOO14:58
jimbakerso maybe host-vars-set x= y= is the same as saying x=null, y=null15:04
jimbakersulo, thoughts?15:04
suloi like -delete15:05
sulolike: host-vars-delete x15:06
jimbakeryeah, keep it simple15:06
jimbakerand there's no way to do delete using json from stdin, host-vars-set < cannot-delete-only-set-values.json15:08
suloyeah15:08
jimbakerthe only downside is there's no way to delete AND set in a single transaction. but i see that more interesting with respect to say multiple hosts. anyway, if we find grouping ops that make sense for single unit of work, we can expose at the rest api level, down to cli15:10
jimbakerby with respect to multiple hosts, i mean you might want to atomically set x=up for host1 AND set x=down for host2 to show that host1 is taking over for host2. something like that. anyway, that's highly speculative fornow15:12
*** VW has quit IRC15:28
tojuvonejimbaker, sulo I once had CLI with "start transaction" and "end transaction". Otherwise single CLI call was one transaction.15:29
*** VW has joined #craton15:30
tojuvonebut that worked with cli commands read from a file, or when run under on shell, not bash15:32
tojuvoneguess not openstackish way to use15:32
sigmavirusjimbaker: why wouldn't cannot-delete-only-set-values.json look like `["x", "y", ...]`?15:33
*** valw has joined #craton15:44
jimbakersigmavirus, good point15:47
jimbakera list could be used at the top level, since it's not legal otherwise15:48
*** valw has quit IRC15:48
jimbakertojuvone, also not a good REST practice, in terms of the underlying API support15:55
*** jovon has joined #craton16:14
*** VW has quit IRC16:18
*** VW has joined #craton16:18
*** VW has quit IRC16:18
*** VW has joined #craton16:19
*** Syed__ has joined #craton16:43
jimbakersulo and i may be joining a bit late the upcoming meeting in one min16:59
suloi am going to miss it16:59
jimbakerok, here17:08
jimbaker#startmeeting craton17:08
openstackMeeting started Thu Feb  2 17:08:20 2017 UTC and is due to finish in 60 minutes.  The chair is jimbaker. Information about MeetBot at http://wiki.debian.org/MeetBot.17:08
openstackUseful Commands: #action #agreed #help #info #idea #link #topic #startvote.17:08
openstackThe meeting name has been set to 'craton'17:08
suloi am going to have to miss the meeting today .. need to take care of something ..17:08
sulowill read the scrollback in an hour17:08
jimbaker#chair sigmavirus sulo jimbaker17:08
openstackCurrent chairs: jimbaker sigmavirus sulo17:08
jimbaker#link https://etherpad.openstack.org/p/craton-meetings17:09
jimbakergit-harry, jovon, sigmavirus, Syed__, thomasem, hi17:09
git-harryhi17:10
jovonhey17:10
sigmavirushi there17:11
Syed__O/17:11
jimbakerso we just another demo, and we had some great questions from brian stein in particular17:11
Syed__Did we prepare a document or something for that ?17:12
jimbakerthe meeting?17:12
Syed__Yeah or notes, will be handy to know17:12
jimbakerSyed__, we presented a few slides from our pres at openstack barcelona - architecture, some motivation from rackspace public cloud17:13
Syed__Ohh i see17:13
thomasemo/17:13
jimbakerwe then went through a demo of current functionality available from the CLI, including how variables work17:13
jimbakershowing overrides. could have mentioned the motivation from the openstack ansible team, but we didn't17:14
jimbakerin terms of notes17:14
jimbakerfirst, we will continue our focus on the cmdb/inventory aspects. multitenancy is a key differentiator for this project; as well some specific knowledge of how clouds should be managed17:15
jimbakerthomasem, your work on project vars, and projects in general, will be helpful sooner than later17:16
thomasem+117:16
jimbakerso thanks for your first change, and we will work that through and get it in17:16
thomasemYeah, I think I'm close to fixing that one problem, then it'll be writing tests (hopefully)17:16
jimbakerit would be helpful for future demos to show navigation through projects; and being able to search accordingly by vars17:17
jimbakeranother thing that came up is being able to search via labels, and then make corresponding changes17:17
jimbakerbut the key thing i heard is "how do we manage a lot of special snowflakes"17:18
jimbakereach project (= a customer cloud) has its own needs; but we need to manage efficiently17:18
jimbakeranother key thing i heard is, what specifically are we doing to help in fact manage these snowflakes17:19
Syed__jimbaker: sorry to interrupt, what do you mean by snowflakes ?17:19
Syed__as in environment snowflakes ?17:20
jimbakeras in, each snowflake is different17:20
Syed__ok17:21
jimbakerhttp://www.keplersdiscovery.com/SixCornered.html17:21
Syed__cool, will go through it17:21
jimbakerwhich is one of the first works of mathematical physics17:21
jimbakeri don't want to elaborate too much on snowflakes, per se :)17:22
Syed__+117:22
thomasemLol17:22
jimbakerbut snowflakes may all be different, but they share commonality17:22
jimbakerthe point of craton is to manage the different snowflakes of how clouds are setup; but to know that they share certain features17:23
jimbakerand much of what drives stuff for us, like variables and how they resolve - that's commonality17:23
jimbakersame with having strong opinions on how to relationally look at the world - the project/region/cell hierarchy (and we forgot to mention, cells are optional and there can be just a single region)17:25
jimbakeretc etc17:25
jimbakeranyway, i expect further questions and demos to come up to address what was discussed today17:25
jimbakerfarid, thomasem, anything else you want to add?17:26
thomasemNothing else from me. :)17:27
jimbakeranother ask from toan: we need to show the device tree with the CLI. hopefully by next week17:27
jimbakerbasically "containers should be addressable" (i think that's close to what he said)17:28
faridjimbaker: not at the moment thanks17:28
jimbakerbut i think the demo went reasonably well. tough questions, but people respected the work we put in17:30
jimbakerperhaps the biggest question is: are we effectively biting off more than we can chew, so to speak?17:30
jimbakerbut again, that's why we are focusing on cmdb for the time being, and then expanding that out (so "inventory fabric" is still a next step for us)17:31
Syed__hmm ..17:31
jimbakerok, that's everything i got17:31
jimbakeranything else? i didn't prepare a specific agenda for today, because we were focused on this earlier meeting that i summarized17:33
Syed__i am good right now17:34
jimbakercool, please look at the outstanding reviews in https://review.openstack.org/#/q/status:open+craton17:35
jimbakerand we can all get back to work17:36
jimbaker#endmeeting17:36
openstackMeeting ended Thu Feb  2 17:36:23 2017 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)17:36
openstackMinutes:        http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-02-02-17.08.html17:36
openstackMinutes (text): http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-02-02-17.08.txt17:36
openstackLog:            http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-02-02-17.08.log.html17:36
jimbakergit-harry, thanks for putting together the var api spec. i will closely review. but i know after going through the round of working on the var setters/getters for resources in the client and CLI that this spec is something we certainly need!17:38
jimbakeralso hopefully we can write some good general purpose code to simplify adding variable support to any resource in our api; we will want the same for rbac soon enough17:38
jimbakerin particular, this impacts work like thomasem's on https://review.openstack.org/#/c/427777/17:39
thomasemYeah. It's a whole lot of tracing around trying to figure out each piece that has to be added.17:40
git-harryjimbaker: yeah, it will be good to bounce some ideas around and see what we come up with.17:40
jimbakerthomasem, yeah, and we need to make that less the case. because as i noted in the bug, variables are sort of our default way to offer the flexibility that craton needs to support as a cmdb17:41
jimbakerhttps://bugs.launchpad.net/craton/+bug/164862617:41
openstackLaunchpad bug 1648626 in craton "Projects should support variables, which other entities use in resolution" [Wishlist,In progress] - Assigned to Thomas Maddox (thomas-maddox)17:41
jimbakerit comes up with project because it's at the top of all the current and possible resolution hierarchies discussed there17:41
thomasemYerp17:42
thomasemWell, what I'm noticing is when I create the project from the REST API, variables seems to work fine.17:42
jimbakerand it's absolutely essential to get the "different snowflake" work as expected17:42
thomasemSo, it's the backchannel for this test data that seems to be causing some fuss here.17:42
jimbakerbut not the starter project?17:42
thomasemCorrect17:42
jimbakergot it17:42
jimbakerthat is more reassuring17:42
thomasemHaha, yeah17:43
thomasemI was so confused, because I basically followed the other implementations17:43
thomasemSo, getting there. :)17:43
jimbakerbecause the starter project is sort of a cheat, with respect to using the db to create17:43
thomasemAhhhhhh17:44
thomasemThat would definitely do it.17:44
thomasemBecause it doesn't get the entry in variable_associations17:44
thomasemwhich breaks the relationship and causes project.variables to be None instead of {}17:44
thomasemfrom the DB17:44
jimbakeryes!17:44
jimbakeryou are so right17:44
thomasemvariable_association*17:44
jimbakeryep, that's absolutely necessary17:44
jimbakernormally sqlalchemy is doing this mgmt for us17:45
thomasemYep17:45
jimbakerbut we bypass by doing the raw sql17:45
thomasemThat's what I wanted to exercise with the REST API create17:45
*** valw has joined #craton17:45
jimbakerso.... really good!17:45
thomasemWon't the project get created automatically via the call in validators.py?17:45
jimbakeras i said just now, when you noticed the diff, "that is more reassuring"17:45
thomasemWhich did seem like an odd location to be doing DB CRUD.17:45
thomasemhttps://github.com/openstack/craton/blob/master/craton/api/v1/validators.py#L29117:46
jimbakerthomasem, yeah, that's not good17:46
thomasemWith that, what's the reason to bypassing and going with raw SQL?17:47
jimbakerautomagically creating projects is just a little too special for these snowflakes17:47
jimbakerthomasem, purely historical17:47
jimbakerthat usage needs to die17:47
thomasemOkay. I'll open a bug.17:47
jimbakerthomasem, cool17:48
jimbakeri do believe the root user needs to stay on a little longer17:48
jimbakerhowever, we shouldn't create the demo user that way17:48
*** valw has quit IRC17:49
thomasemYeah... we could stand to move this all to the gen script.17:51
thomasemProblem is, I think there's a bug with the Projects REST API where if you try to provide an ID it's expecting an Integer, not UUID.17:51
thomasemSo, that's two bugs, now17:52
jimbakerthomasem, so it should be something like mysql -ucraton -pcraton craton -e "INSERT into users (created_at, updated_at, project_id, username, api_key, is_root, is_admin) values (NOW(), NOW(), 1, 'root', 'root', true, true)"17:52
thomasemSo we're wanting to give demo user root/admin17:52
thomasemfor now17:52
jimbakerthomasem, i'm pretty sure it can take a uuid, but not one that has additional encoding in it17:52
jimbakernamely internal hyphens17:53
jimbakerbut one or the other, it's a bug17:53
jimbakerthomasem, actually i don't want the demo user to have those privileges17:53
jimbakerwe just need a root user17:53
thomasemjimbaker: {"errors": ["'f247fd60391b4c819726bf409f0885ca' is not of type 'integer'"], "message": "Unprocessable Entity"}17:53
jimbakermaybe call it the bootstrap user17:53
thomasemjimbaker: that's what I was thinking. I'll add a create for admin17:54
jimbakerthomasem, cool, so that's what we we fix17:54
thomasemWhy not root?17:54
jimbakeri like "bootstrap"17:54
jimbakerbecause in the future, this whole root stuff, etc, goes away with actual rbac17:54
thomasemEh, not the hill I'm going to die on. I'll make it so.17:54
jimbakerbut we will still need a privileged user to start everything off, then it's effectively never used again17:55
thomasemRight17:55
jimbaker"bootstrap" sort of conveys that. maybe "bootstrap-user-do-not-use-if-you-are-not-bootstrapping-got-it" might be better17:55
jimbaker;)17:56
*** VW has quit IRC17:56
thomasembootstrap is fine ;17:57
thomasem;)17:57
jimbakeryeah, i think so too17:57
*** VW has joined #craton17:57
thomasemXD I need to step away. I've been going too long and am making silly mistakes now. bbiab.18:25
Syed__jimbaker: you around ?19:04
jimbakerin meeting19:05
Syed__okay19:05
jimbakerSyed__, hi19:24
*** valw has joined #craton19:46
*** valw has quit IRC19:50
Syed__sorry for delayed response jimbaker19:54
Syed__i actually was looking into https://bugs.launchpad.net/craton/+bug/165942819:55
openstackLaunchpad bug 1659428 in craton "CLI requires region id for commands" [Undecided,New]19:55
suloback20:04
sulothomasem: the find_or_crate_project is only for keystone context20:07
jimbakerSyed__, i fixed that in https://review.openstack.org/#/c/427032/20:07
jimbakermay need to pull it out, but pretty minor change20:08
jimbakerpull it out into a separate change20:08
jimbaker(i was focused more on ensuring we had something that demoed as well as possible... so needed to compact some work i suppose)20:09
Syed__Okay, should i pull that into a seperate change ?20:09
Syed__Or should we just reference that into the same oncme20:10
Syed__One^20:10
thomasemsulo: Okay, so, I guess that's for if we're going through Keystone instead of the Users table in Craton?20:11
thomasemIt'll then create said project in Craton20:11
sulothomasem: yeah, but i do agree that its a bit odd to do that20:11
suloi think there is a reason why sigmavirus had to do that .. cant remember now20:12
thomasemFeels prone to orphans, too.20:12
suloyeah20:12
sigmavirussulo: thomasem because we have tables with FK constraints iirc20:12
sigmavirusand they index on that constraint as well20:12
*** VW has quit IRC20:13
suloah yeah .. is that user check20:14
thomasemGotcha20:15
sulothomasem: https://github.com/openstack/craton/blob/master/craton/api/middleware.py#L91 .. so maybe we need to circle back to this20:15
suloi think what we need is first to decide what root/admin/normal users mean20:16
thomasemERROR 1452 (23000) at line 1: Cannot add or update a child row: a foreign key constraint fails (`craton`.`users`, CONSTRAINT `users_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`id`))20:16
thomasemGotcha20:16
thomasemI'll take a closer look at that in a bit here. Under the hood on my patch.20:17
suloso maybe with proper rbac we dont need this check20:17
suloand that will take most of this crazy code out20:17
sulorgr20:18
jimbakerSyed__, it's two line of changes or so. i don't think we will separately change20:25
Syed__jimbaker: Roger that20:25
jimbakermore important is getting column order sorted properly in say region-list or host-list20:26
suloyeah that needs to be fixed in all20:27
jimbakerhttps://bugs.launchpad.net/craton/+bug/165942720:27
openstackLaunchpad bug 1659427 in craton "CLI is inconsistent in ordering columns" [Undecided,New]20:27
jimbakerrelated high priority item is json support20:27
jimbakerhttps://bugs.launchpad.net/craton/+bug/165943820:28
openstackLaunchpad bug 1659438 in craton "CLI does not support formatting options" [Undecided,New]20:28
jimbakersulo, so getting the device tree exposed down to the CLI was a high priority item for tuan20:29
jimbakerit is in dbapi; https://github.com/openstack/craton/blob/master/craton/db/sqlalchemy/models.py#L348 and related ancestors20:30
jimbakerthe following property after that line20:30
suloyeah so there is quite a bit of work on that front20:30
jimbakeryeah20:30
sulowe need to maybe rework network/-x related functions too20:30
jimbakeri don't think it's so much, just a question of doing the navigation20:30
jimbakerin the python client20:30
suloso i guess first we need to decide if we need to expose any more data on api side20:31
suloi dont think we are even sending out parent_id right now20:32
jimbakera related question is the CLI should take a hostname, etc instead of the id as its arg. this will improve ergonomics, as i mentioned in the WIP branch on var getter/setters20:32
suloand even if we did .. is that sufficient .. do we need to expore more than that and actually make a parent-child tree and send that out20:32
jimbakersulo, if we just expose to REST API thast would suffice20:32
jimbakerclient can take care of navigation from there20:32
sulobut that would be multiple calls vs one if api did that20:33
jimbakerwe could provide some API helpers to get trees, but parent/child suffices for now20:33
sulosine some folks are already talking about hammering the api to test etc .. might be better to have db do this redily20:33
suloreadily even20:34
sulothe other thing is the "cab" view20:34
jimbakeri'm not too concerned about these types of links20:34
jimbakersulo, ahh, yes, so this is interesting, and there could be a valid helper for this20:35
jimbakerany such "cab view" should use existing resources in the python client20:35
jimbakeras it walks the returned result20:36
jimbakerbut i see this view as particularly important; and ideally would be efficient20:36
jimbakervs just arbitrary trees being returned20:36
jimbakerthat could capture other combo queries20:36
sulojimbaker: so i think we have a few really important buch of work that needs completion asap in my view20:39
sulo1) rabc20:40
sulo2) this parent/child tree, cab view20:40
sulo3) cleaning up the project/user stuff20:40
jimbakerso in order of effort and also priority (fortunately they the same here as i see it): #2, #3, #120:41
jimbakercleaning up user would also be helpful so we can get the principal stuff implemented as part of the work for #1 - it would be nice to be prepped for that20:42
sulo3 cant be done without 120:42
jimbaker#3 is extremely important to the multitenant concerns; #1 is the completion20:43
jimbakerto the full extent yes. i guess it depends on what is meant by "cleaning up"20:43
suloits not possible to really clenup projec and especially user without rbac20:43
jimbakersulo, i understand where you are coming from. we just need to finish up that work i started with that blueprint20:44
jimbakerhttps://blueprints.launchpad.net/craton/+spec/craton-rbac-support20:44
jimbakerthe scoped role assignments work well, i just need to update that patch and put it in WIP20:45
suloyeah push it out as WIP .. more ideas can flow then20:45
jimbakeryep20:45
suloill start looking at 220:45
jimbakercool, that will free me up, since i was planning to look at it :)20:45
suloi want to look at this network - cab view anyway so it will be same type work20:46
jimbakerand i will let you take back that fake data generation stuff for network interfaces20:46
sulojimbaker: yeah no worries, you should finish up the rbac stuff .. that will open a whole new set of bp's20:46
jimbakerthomasem should have some good ideas here too20:46
jimbakeryes, i just need to focus on it20:46
jimbakerthere is a bunch of other cool stuff to do20:47
jimbaker(secrets, auditing/notification, virtualized variables... but need to focus right now on rbac)20:47
jimbakerok, that's a good high level description of what we need to do next. i like it20:48
*** valw has joined #craton20:55
sulopalendae: https://github.com/openstack/craton/blob/master/doc/source/dev/install.rst20:56
palendaesulo: Nice! Could a link/ref to that go in the readme?20:58
suloyeah i think its not clear, so we could add links there20:58
palendaeSweet, thanks!20:59
palendaeI didn't look close enough, didn't realize there was a docs dir20:59
*** valw has quit IRC21:00
*** harlowja has quit IRC21:00
thomasemAhhh, man... we also generate the same test data in the functional test setup21:19
thomasemThat confused me. I was trying to use the bootstrap user from docker_run.sh that I created, but I guess that doesn't happen for the functional tests?21:20
thomasemSo, had to also add it to the test setup.21:20
thomasemI'm not sure I understand why the Docker container setup in the tests don't cause docker_run.sh to run and set things up for us?21:23
jimbakerthomasem, actually recent change sulo made to make things more isolated21:23
jimbakerin those functional tests21:23
thomasemGoootcha21:23
jimbakeri could see having an initial data set could be a good idea for those tests, such as what's in fake data21:24
sulojimbaker: thomasem:we were doing fake data run .. but i took that off21:24
jimbakerbut most importantly, we need them isolated21:24
thomasemOh, yes. We need users and such set up. I was just more wondering why I was having to add things in so many places. :)21:24
sulodidnt make sense to test create ... by external script creating sutff etc .. also needed to make each test isolated21:25
thomasemRiiight21:25
thomasemAgreed21:25
thomasemBut why doesn't docker_run.sh run when you create the container in the functional tests?21:25
thomasemI'm clearly missing something.21:25
jimbakerbut a better fixture setup that would be nice21:25
suloit does21:25
sulothomasem: it does21:26
sulothomasem: if you looking for project to exist .. then i took that off too :)21:26
thomasemsulo: OH I see21:26
thomasemit runs, THEN we delete it in the tests and bootstrap ourselves.21:26
thomasemhttps://github.com/openstack/craton/blob/master/craton/tests/functional/__init__.py#L14521:27
thomasemShould have eyeballed that note a bit closer.21:27
thomasemNah, I need a root user21:27
thomasemTo do /projects stuff for functional tests21:27
jimbakersulo, so this is the "bootstrap" user we were discussing earlier on the log21:27
thomasemYeah, I didn't want to impact the existing demo user with new privileges21:27
thomasemin case we want to test specifically that - privileges.21:28
sulothomasem: so i suggest you do that as part of test setup21:28
thomasemI am21:28
jimbakerpresumably it's only needed to get us to real users once we have rbac21:28
thomasemJust added that21:28
sulogotcha21:28
thomasemAnd my functional test passed from doing so21:28
thomasemSoooo, now for the rest21:28
thomasem:)21:28
sulosorry .. otherwise the docker_run.sh user/project would be problem .. because to cleanup db i would have to leave those two tables21:28
suloit was cleaner to just nuke all table and do each test isolated21:29
thomasemNah, I hear ya. We'll iterate on it. No problemo.21:29
suloso user/project test had one extra bit to bootstrap them as part of the setup21:29
thomasemAs we get RBAC and such added, we'll have to re-imagine some of this and I think it'll get easier to work with in the long-run.21:30
suloyeah agreed21:30
thomasemStill, my hat's off for how easy it was for me to get started. Probably the quickest start to bug fix in history for me.21:31
thomasemAnd that was even with my own dev environment shenanigans getting in my way.21:31
sulocool :)21:32
jimbakerthomasem, really appreciate the feedback. let's keep it this way, it took us a while to get here!21:37
*** VW has joined #craton21:38
jimbakernext step is to add something like `tox -e integration` to python-cratonclient which runs integration tests from the client to the craton service. or a project that pulls from both, doesn't matter to me21:38
*** harlowja has joined #craton22:25
*** harlowja has quit IRC22:32
*** harlowja has joined #craton22:33
-openstackstatus- NOTICE: Restarting gerrit due to performance problems22:50
*** VW has quit IRC22:52
*** VW has joined #craton23:07

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