/srv/irclogs.ubuntu.com/2015/06/12/#juju-dev.txt

thumperwallyworld: I'm going to be out for lunch during our normal call time00:53
thumperwallyworld: catch up with you later in the afternoon?00:53
wallyworldsure00:53
wallyworldjust ping me00:53
thumperkk00:53
dpb1wallyworld: https://pastebin.canonical.com/133053/ -- I tried to write out the environment.yaml as 'agent-version: $(juju --version)'01:09
wallyworldlooking01:10
wallyworlddpb1: i think the agent version is 1.23.301:12
wallyworldnot the full juju version wich includes the series and arch01:12
wallyworldso you'll need to awk or sed it01:13
axwwallyworld: you wanted me to ping you when I got back I think? I can't remember why... :)01:13
axwwallyworld: no wait, I think you just wanted me to send info to perrito66601:14
wallyworldaxw: not that i recall, i think i mentioned some 1:1 topis01:14
wallyworldyes01:14
wallyworlda couple of metadata examples for filesystem storage on ebs and cinder etc to use in CI tests01:14
axwyup01:14
wallyworldand some notes on what to test if any apart from the stuff we discussed01:15
dpb1wallyworld: sure, but in that email thread it was mentioned that $(juju --version) was correct.01:24
wallyworlddpb1: we will make it correct for bootstrap, i'm not sure if it's currently supported like that. i'll need to review the emails to be sure of what the context was01:25
dpb1ok, I'll reply on thread, just wanted to check if I was way off base.01:26
wallyworlddpb1: not offbase, setting the agent-version attribute needs to just be 1.23.4 etc01:26
dpb1k01:27
wallyworlddpb1: hopefully next week we'll start the --no-auto-upgrade (or whatever we call it) option for bootstrap01:27
wallyworldand/or $(juju version)01:27
dpb1wallyworld: ok, understood01:30
wallyworlddpb1: also, with 1.24, bootstrap will not return until it knows there are no upgrades to be done - so in the case of deployer, we will hopefully avoid the situation where deployer gets disconnected because just as it starts its work, the agent restarts from underneath it01:36
wallyworldso even if one of those implicit upgrades happens, deployer won't start and then get a disconnect error01:37
dpb1wallyworld: OK, I wasn't aware that made it into 1.24, thanks for letting me know.01:37
wallyworldsure, np01:37
axwwallyworld: just spilt tea everywhere, will be a bit late01:58
wallyworldoh, no01:59
wallyworldjust ping me01:59
=== natefinch-afk is now known as natefinch
axwwallyworld: I'm in02:06
mupBug #1464470 opened: A subordinate charm hook scheduled to run(but it is waiting for the principal charm hook to release the lock) goes to an error state after the principal charm triggers a reboot. <1.24> <1.25> <juju> <juju-core:New> <https://launchpad.net/bugs/1464470>02:49
menn0thumper: http://reviews.vapour.ws/r/1921/03:42
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
=== kadams54 is now known as kadams54-away
wallyworldmenn0: still onine?05:33
menn0wallyworld: yep05:33
wallyworldmenn0: i forgot to ask you about bug 146433505:34
mupBug #1464335: debug-log does not work with local provider <debug-log> <local-provider> <regression> <vivid> <juju-core:Triaged> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1464335>05:34
wallyworldthis has been reported against 1.2405:34
* menn0 is looking05:34
wallyworldlooks like all-machines log is missing05:34
wallyworldmaybe i should have asked thumper05:35
wallyworldas it is claimed inthe bug he was involved05:36
menn0wallyworld: i didn't do it</simpson name=bart>05:36
thumper:(05:36
thumperwasn't me05:36
thumperbut I recall it05:36
thumperit not working that is05:37
wallyworldit was claimed as a regression of 120268205:37
wallyworldbug 120268205:37
mupBug #1202682: debug-log doesn't work with lxc provider <cts-cloud-review> <debug-log> <landscape> <local-provider> <papercut> <ssh> <ui> <juju-core:Fix Released by thumper> <https://launchpad.net/bugs/1202682>05:37
wallyworldbut i haven't dug in05:37
thumperwallyworld: someone broke it again05:37
wallyworldhuzaar05:37
* wallyworld sighs05:38
wallyworldthat tells me our tests are fooked05:38
* menn0 spins up an env to have a quick look05:38
thumperwallyworld: file permission problem05:47
wallyworldsudo !05:47
thumperwallyworld: menno had the same problem and his ~/.juju was 070005:47
thumpermine is 075505:47
thumperand all is good05:47
wallyworldhmmm, ok05:47
thumperhe changed his permissions and an all-machine.log turned up05:48
wallyworldhuh05:48
wallyworldmaybe juju init is wrong05:48
thumperthe syslog user couldn't see the config file05:48
wallyworldor there was an old .juju05:48
thumperwell, the .pem cert actually05:48
wallyworldthanks for looking05:49
* wallyworld goes back to spec writing05:49
thumperwallyworld: actually...05:49
thumperwallyworld: the rsyslog files were in the log dir, and natefinch moved them recently to the datadir05:49
thumperwallyworld: since the log dir is in /var/log/....05:49
thumperthe syslog user could access05:50
thumperalso...05:50
* wallyworld waits with baited breath05:50
thumpernah, that's it05:51
thumperI changed my mind05:51
thumperwas thinking of apparmor05:51
thumperbut menno's one started working05:51
thumperso it wasn't that05:51
wallyworldok05:51
wallyworlddo you recall if juju init is wrong?05:51
wallyworldwill need to check05:51
thumperit was the move of the cert from the logdir to datadir that broke it05:51
thumpersome people like locking down their home dirs05:51
thumperwe can't guarantee this05:51
wallyworldah05:52
thumperlets just log to the db and fix all this05:52
thumper:)05:52
wallyworldsure, but for 1.24.105:52
wallyworldso what do you suggest?05:52
menn0well thumper, interesting that mention it....05:52
thumperwell, we have two choices05:52
thumpertell people to change permissions everywhere05:53
thumperor move the files back out to the log dir05:53
thumperor05:53
thumpersome other dir05:53
thumperperhaps make /var/lib/juju-<namespace>05:53
thumper/var/lib/juju/local/<namespace> for config files05:53
wallyworldcan't we just create log dir with correct permissions05:53
thumperit isn't the log dir that is the problem05:54
thumperthe cert that rsyslog uses is in the local provider datadir05:54
thumperwhich defaults to $JUJU_HOME/<namespace>/05:54
wallyworldsorry, i meant the datadir05:54
thumperthis would mean changing the default datadir for the local provider05:55
thumperit is effectively requiring moving the datadir out of the home dir05:55
thumperso...05:55
thumperto main options05:55
wallyworldcan't we just change permissions on ~/.juju05:55
thumper1) move the rsyslog conf back to the logdir05:55
wallyworldno :-(05:55
wallyworldthat would be bad05:55
thumper2) move local provider datadir out of $JUJU_HOME05:55
wallyworldrm -rf logs and you break everything05:56
thumper3) tell everyone to change the permissions on their home dirs and .juju05:56
thumperthat's about it05:56
menn0wallyworld: changing their perms on ~/.juju isn't enough... their home dirs have to be open too05:56
wallyworldcan we just change permissions on .juju05:56
wallyworldah05:56
wallyworldoption 2 maybe05:57
wallyworldi can't see option 1 as any good at all05:57
wallyworldcan be fixed next week05:57
wallyworldcan you update bug? maybe someone in US timezone will pick it up, we should maybe even assign to nate05:58
menn0wallyworld: to be really sure I just confirmed the problem still happens when ~/.juju's perms are open but $HOME is restricted06:00
wallyworldyeah, bollocks06:00
menn0wallyworld: ticket updated06:20
wallyworldtyvm06:20
urulamawallyworld: let me reboot07:03
wallyworldok07:04
tasdomascould someone take a look at http://reviews.vapour.ws/r/1888/ ?07:55
voidspacedooferlad: discovered that those tests had a failing assert that was stopping the test but not marking it as a failure09:52
voidspacedooferlad: and that six other tests had the same issue - and some of them fail if you actually run them!09:52
voidspacedooferlad: so we have failing tests on master that aren't being reported...09:53
dooferladvoidspace: yikes!09:54
voidspaceyeah :-/09:54
perrito666Voidspace which ones?10:02
voidspaceperrito666: lxcBrokerSuite in workker/provisioner/lxc-broker_test.go10:05
voidspaceperrito666: the problem is in startInstance10:05
voidspaceperrito666: anything that calls that just halts - there's actually an assert failure but the test is marked as a pass10:05
mattywrogpeppe1, ping?10:15
rogpeppe1mattyw: pong10:15
mupBug #1464600 opened: Juju 1.22.5: pending LXC containers <cloud-installer> <landscape> <juju-core:New> <https://launchpad.net/bugs/1464600>10:38
fwereadesorry, I seem to keep dcing from freenode10:40
fwereadecanonical irc seems fine though10:40
mupBug #1464616 opened: destroy-machine --force no longer forceably destroys machine <juju-core:New> <https://launchpad.net/bugs/1464616>10:45
=== kadams54 is now known as kadams54-away
mupBug #1464616 changed: destroy-machine --force no longer forceably destroys machine <juju-core:New> <https://launchpad.net/bugs/1464616>10:54
mupBug #1464616 opened: destroy-machine --force no longer forceably destroys machine <juju-core:New> <https://launchpad.net/bugs/1464616>11:09
mupBug #1464633 opened: juju status should show if an upgrade is available <juju-core:Triaged> <juju-core 1.24:Triaged> <https://launchpad.net/bugs/1464633>11:45
=== mwenning is now known as mwenning-wfh
mupBug #1464665 opened: backupsSuite setup failed <ci> <intermittent-failure> <unit-tests> <juju-core:Incomplete> <juju-core jes-cli:Triaged> <https://launchpad.net/bugs/1464665>13:30
=== anthonyf is now known as Guest45939
Syed_AHello folks, I was wondering how the lxc template "juju-trusty-lxc-template" is generated ?13:37
Syed_Ajamespage: Hello !13:38
Syed_APlease correct me if i am wrong, but the way juju spawn containers is that first it will transfer the "juju-trusty-lxc-template" to the target host13:40
Syed_Aand then juju will use this template to spawn new conatiners from this template.13:40
Syed_AI want to change the "juju-trusty-lxc-template" before it is transferred to the target host for the lxc container. Is it possible to do it ?13:42
dimiternSyed_A, the template container is created, when lxc-clone is true (the default) in environments.yaml for the environment, the first time an lxc container is deployed on the machine (of the given series)13:48
dimiternSyed_A, it is possible to change the template container, but why do you need that? juju also changes it in some cases13:49
mupBug #1464671 opened: clientSuite setup fails <ci> <unit-tests> <juju-core:Triaged> <https://launchpad.net/bugs/1464671>13:51
Syed_Adimitern: I want the containers to have 3 nics and take ip addresses from three bridges on the hosts. Right now i have to manually edit the template. but if somehow i can edit the template on the juju machine, then whenever a new machine clone this template it has all the values for the 3 bridges.13:51
dimiternSyed_A, it's better to do that by deploying a charm (principal or, better, subordinate) to each container; that charm can contain scripts to add NICs and other things13:52
Syed_Adimitern: Right now i have to log inside the machine hosting the container and edit the template manually. I want to edit the template on juju node so that edited template gets transferred whenever i add a new machine to start containers on it.13:54
dimiternSyed_A, how about what I suggested above?13:54
dimiternSyed_A, with a charm that does the custom config, you can write it once and then use it on every machine13:55
Syed_Adimitern: that make sense. But i have never written a charm before.13:56
dimiternSyed_A, it can be very simple, e.g. take the ubuntu charm as a base and just add some scripts in the hooks/install13:57
dimiternSyed_A, https://jujucharms.com/ubuntu/trusty/3 - there's a "Download zip" link on the right; then, unzip this in a dir with the following structure: mycharms/trusty/ubuntu13:58
Syed_Adimitern: opening it.13:59
dimiternSyed_A, then inside the ubuntu dir, add a "hooks" dir and inside it an "install" script (bash or python, but needs to be executable)13:59
dimiternSyed_A, in that install hook, you can do things like:14:00
dimiternSyed_A, stop a given container, change the lxc.conf it uses to add more networks, restart it14:01
katconatefinch: standup14:02
dimiternSyed_A, finally, to test this, use: juju deploy local:trusty/ubuntu --repository <path/to/mycharms> --to 1 (or later juju add-unit ubuntu --to X - machine id)14:02
natefinchkatco: coming14:02
dimiternSyed_A, there are lots of folks in #juju which can help you with your charm, and there's the online docs about it - https://jujucharms.com/docs/stable/getting-started14:03
Syed_Adimitern: This sounds like a great plan but alternatively if i could just edit the template on juju node itself then i will be good to go.14:05
dimiternSyed_A, you can try - it's in /var/lib/lxc/juju-trusty-lxc-template/config (and int the same dir, rootfs/etc/network/interfaces needs to be changed)14:06
dimiternSyed_A, changing the template and then deploying another lxc (the first one you deployed, which triggered the template creation you can destroy) will use the changed template14:07
Syed_Adimitern: Yes, this is what i was doing.14:08
dimiternSyed_A, however, beware this is not supported and your mileage may vary14:08
Syed_Adimitern: Changing /var/lib/lxc/juju-trusty-lxc-template/config on every host14:08
Syed_Adimitern: This file will only be present on a machine if you start a container on it.14:09
dimiternSyed_A, that's the only way manually (still can be automated somewhat by using "juju run" or "juju ssh"/"juju scp"), using a charm allows you to take advantage of juju's automation14:09
dimiternSyed_A, hmm, something occurred to me now14:10
Syed_Adimitern: My question is from where does this "/var/lib/lxc/juju-trusty-lxc-template/" comes from ?14:10
dimiternSyed_A, if all your machines are more or less the same, you could potentially do this once on one machine and then just copy the template to /var/lib/lxc and try if it will work14:10
dimiternSyed_A, it's created using lxc-create --debug --userdata <path/to/file/generated/by/juju> --hostid <e.g. juju-trusty-lxc-template> -r trusty14:12
Syed_Adimitern: I can do that but then juju might overwrite it ? Probably there could be a semaphore ?14:12
dimiternSyed_A, and then once it boots it's shutdown and cloned14:12
Syed_Adimitern: lxc-create -n juju-trusty-lxc-template21 \14:12
Syed_A  -t ubuntu-cloud \14:12
Syed_A  -f /var/lib/juju/containers/juju-trusty-lxc-template/lxc.conf \14:12
Syed_A  -- --debug \14:12
Syed_A  --userdata /var/lib/juju/containers/juju-trusty-lxc-template/cloud-init \14:12
Syed_A  --hostid juju-trusty-lxc-template \14:12
Syed_A  -r trusty14:12
dimiternSyed_A, juju checks if juju-trusty-lxc-template is present and uses it, it won't overwrite it14:12
Syed_Adimitern: Sorry about the paste.14:13
Syed_Adimitern: If that's the case then it will be a really easy and good solution.14:14
dimiternSyed_A, well, you never know until you try I guess :)14:15
Syed_Adimitern: Yep! ;)14:16
dimiternSyed_A, anyway, I hope it works and if you have other questions, here or in #juju someone will be able to help you14:17
Syed_Adimitern: Thanks!14:17
mupBug #1464679 opened: juju status oneline format missing info <landscape> <status> <juju-core:New> <https://launchpad.net/bugs/1464679>14:21
natefinchwwitzel3: let me know when you're around.... not a huge fan of the ContextComponent's using of interface{} everywhere15:08
wwitzel3natefinch: I'm around15:10
wwitzel3natefinch: by everywhere, you mean in the Get and Set fields?15:12
wwitzel3natefinch: or are there other places of concern?15:14
natefinchwwitzel3: sory, hyperbole... but just not a fan of not-type-safe code15:15
natefinchwwitzel3: so I'd like to know what this is buying us15:16
wwitzel3natefinch: it is type safe because we explicitly check that the type conversion works in the component side and error if it doesn't.15:17
wwitzel3natefinch: but what it buys us is the ability to register components without the hook context needing to know implementation details about the components (and there for, not import that as a package)15:18
wwitzel3natefinch: so the ContextComponent interface is our intersection between juju internals and the external component15:18
natefinchwwitzel3: do you want to jump in a hangout... I feel like i'm behind on a lot of the decisions made in the spec, so I'd like to understand better about the use cases the spec solves15:47
wwitzel3sure, katco if you're interested, we are heading in to moonstone15:49
katcowwitzel3: yeah be there in a sec15:50
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
wwitzel3alexisb: you'll be happy to know, there is a ceiling fan in my office now :)16:32
alexisblol16:33
alexisbnice wwitzel316:33
katcowwitzel3: i think natefinch needs those tabs for godoc16:41
wwitzel3katco: ah, ok, I thought it could be spaces too and i was just going for consistency16:42
natefinchspaces or tabs work16:43
natefinchtab is fewer keystrokes16:43
natefinchhttps://godoc.org/github.com/natefinch/godocgo#hdr-Formatting16:44
katconatefinch: ah that's what i was looking for. didn't know you could use spaces as well16:44
wwitzel3I just hate tabs16:44
wwitzel3lol16:44
katcowwitzel3: tabs in emacs alllll day. come at me!16:45
wwitzel3I'll sneakily edit your config at gophercon so your tabstop is 3216:45
natefinchI love tabs.  Their whole point is to indent.  And you never have to backspace or hit space multiple times to indent.  Plus, everyone can set their tabs to be whatever width they want, and no one else has to complain they're too big or small16:45
katcowwitzel3: good luck with that. my config is currently 1409 lines long and source controlled ;)16:46
wwitzel3katco: I wouldn't be able to actually do it anyway, I don't know how to boot emacs16:47
katcowwitzel3: quantum computing is coming. i'm hoping those machines will be able to run it16:48
natefinchif you don't already have it, I highly recommend getting the hub tool from github.  It wraps git and does a lot of awesome github-specific things from the command line.  Like making it super easy to checkout the code for a PR, or make a PR from your command line, etc16:51
natefinchand it's written in Go.... go get github.com/github/hub16:52
natefinchit wraps git, so you can actually replace git with it entirely16:54
natefinchsinzui: about that "SIGABRT uninstalls jujud" bug - why do we have any signal that tells juju to uninstall?  why is that a feature?17:08
sinzuinatefinch: I think that is the mechanism that Other engineers decided was the right way to clean up. It used to be another more common sig. axw changed it to ABRT last year17:09
natefinchfwereade: I don't suppose you're around?17:43
pmatulisdoes 'juju generate-config' work on linux and windows alike, ito of dir/file being created?17:51
natefinchpmatulis: yes, it works on both.17:52
natefinchpmatulis: not sure what the second half of your question was supposed to be17:52
pmatulisnatefinch: this command creates ~/.juju/environments.yaml on linux (if not presetn). does it do the same on windows for %LOCALAPPDATA%/Juju ?17:55
=== kadams54 is now known as kadams54-away
natefinchpmatulis: yes17:56
natefinchpmatulis: the client is totally compatible between linux, windows, and OSX, following all the normal conventions of each OS.17:57
natefinchpmatulis: er, when I say compatible, you still need the OS-specific binary, but it all comes from the same code and they are treated as equally important17:58
cheryljkatco: ping?18:09
pmatulisnatefinch: thank you18:10
katcocherylj: pong18:16
cheryljkatco: I have a process question / comment for you18:17
katcocherylj: sure what18:17
katcowhat's up?18:17
cheryljkatco: I know we close bugs that have no activity for 60 days18:17
cheryljbut I saw a bug that got closed because of that with a tag of tech debt18:18
cheryljand I'm thinking that maybe tech debt bugs shouldn't be closed because of inactivity18:18
katcocherylj: i agree with that... and feature requests18:19
cheryljkatco: do you know who owns the bot or whatever that closes these bugs?18:19
cheryljit may also be the case that this has been fixed.  The bug I'm looking at was closed last year18:20
katcocherylj: almost certainly CI (ping sinzui)18:20
cheryljkatco: will do, thanks!18:20
sinzuicherylj: Launchpad doesn’t care about tags. Lp’s 60 day expiration is based on incomplete status witth no one ot other task assigned18:22
sinzuicherylj: incomplete mean there isn’t enough information to accept this issue as work.18:23
sinzuiSO tech-debt cannot be incomplete by definition18:23
=== Syed_A_ is now known as Syed_A
cheryljsinzui: ah, thanks for clarifying.18:27
=== Syed_A_ is now known as Syed_A
fwereadenatefinch, heyhey, have I missed you?19:40
natefinchfwereade: nope19:40
natefinchfwereade: I have a few questions about why we're doing things in the way we are... which I probably already know the answer to, but want to make sure I understand19:41
fwereadenatefinch, sure, can you manage a slightly laggy irc conversation about them?19:42
natefinchfwereade: that's fine L(19:43
natefinchfwereade: er :)19:43
natefinchfwereade: what's up with github.com/juju/schema ?  It seems like we're reimplementing what the yaml and json parsers already do to take yaml and shove it in a struct.  Seems like we could strip out a ton of code that uses schema and just deserialize into a struct19:44
* fwereade is excavating his mind19:47
fwereadenatefinch, well, you *could* do more sophisticated things than we usually do, but I don't think there's a 100% overlap with "just deserialize into a struct"19:49
* perrito666 imagines fwereade fiddling with a spoon19:49
fwereadenatefinch, I would have no objection to replacing schema with something simpler where it's too unwieldy a hammer for the situation19:50
fwereadenatefinch, but I'm not convinced it's completely unhelpful across the board19:51
fwereadenatefinch, do you have particularly egregious examples off the top of your head?19:51
natefinchfwereade:  looking...19:53
fwereadenatefinch, I do know that last time I thought I wanted to use the schema package I got tied up in knots trying to make a self-referential one that would turn nested map[interface{}]interface{} into nested map[string]interface{}19:54
natefinchyeah,... it seems like you should never need map[interface{}]interface{} ... map[string]interface{} should always be sufficient.  I don't think anything uses non-strings as keys, do they?19:55
natefinchfwereade: anyway, my other question is about the hook context code20:01
natefinchfwereade: there's a bunch of interfaces that seem to only be used for testing... so I wanted to make sure that they had no other function other than to make the code easier to test: https://github.com/juju/juju/blob/master/worker/uniter/runner/jujuc/context.go#L4520:02
natefinchwwitzel3: btw, when you get back, I think I have a solution to the generics problem with the ContextComponent stuff20:03
natefinchfwereade: looking at git blame, the one big interface recently got refactored into a bunch of smaller ones... but it doesn't change the fact that it seems like there's no one using it outside the tests.20:05
fwereadenatefinch, I am entirely comfortable with exposing functionality behind interfaces by default, for all sorts of reasons20:10
fwereadenatefinch, ease of testing is certainly one of them20:10
fwereadenatefinch, but the Context interface is, I think, an important thing in itself20:11
fwereadenatefinch, it's the bottleneck through which all hook communication needs to happen20:11
fwereadenatefinch, it keeps the hook tools unaware of more distant layers20:12
fwereadenatefinch, and all those things push towards it being an interface20:12
=== Syed_A_ is now known as Syed_A
natefinchfwereade: have you seen Eric and Wayne's ideas for Components?20:19
fwereadenatefinch, not sure I have actually -- hwere were they?20:20
katcofwereade: you have. this is the whole intersection of features with layers of architecture discussion20:20
fwereadekatco, ah, right20:21
natefinchfwereade: the reason I brought it up is because of what you said about hook tools not needing to know about distant layers.  While that's true... it's also true that you're likely to write the action-set hook tool at the same time as the action API call, etc.  So it's actually not terrible if the action-set tool knows about the action API... what's actually better is not requiring *everyone else* to know about those things20:23
natefinch... which I think is what the Component idea is trying to push.20:23
natefinchI don't know what my point was there, though20:23
fwereadenatefinch, strongly disagree20:23
fwereadenatefinch, it is terrible if the hook tools know about the api20:24
fwereadenatefinch, makes it impossible to understand and maintain them in isolation20:24
katconatefinch: the idea is that you have an adapter where features and architectural layers intersect, so that neither are strongly coupled to the other20:25
fwereadenatefinch, I am all for improving horizontal boundaries, but not at the cost of the vertical ones20:25
katconatefinch: these are the "abstraction" cards on our kanban20:25
natefinchyes, sorry, saying it wasn't terrible was hyperbole.  Certainly keeping things decoupled is good.20:25
fwereadenatefinch, katco: so I frequently articulate this poorly20:26
fwereadenatefinch, katco: but I think a good model *is* to cluster feature-specific code into a package or small closely-connected group of packages20:27
fwereadenatefinch, katco: those bits define the juju entities and how they act; other model code defines how model entities can/should interact20:27
katcofwereade: yep20:28
fwereadenatefinch, katco: and then, as much as possible, we use those same model representations wherever we can20:28
fwereadenatefinch, katco: so the business logic doesn't need to be rewritten in subtly different ways at every level20:28
fwereadenatefinch, katco: the trouble is20:29
katcofwereade: yeah, i think we're still on the same page20:29
fwereadenatefinch, katco: that many of our business rules are encoded at the storage level and aren't likely to move any time soon20:30
katcofwereade: right, we've also identified that as the hardest piece20:30
fwereadenatefinch, because it's really damn difficult to extract the business rules without dragging nasty gobbets of persistence concerns with them20:30
katcofwereade: we're not planning on doing a whole lot there atm b/c it's such a large effort20:31
katcofwereade: but we are going to introduce a few small bits which will hopefully chip away at the problem20:31
fwereadenatefinch, katco: so, yeah, I think we're all on the same page. so long as you keep the layers separated as much as you can, I'm happy :)20:32
katcofwereade: yes :) we have that in the forefront of our mind for sure :)\20:32
natefinchyep20:33
=== lazyPower is now known as lazyPower|eow
natefincheod.  happy weekend all20:48
wwitzel3bah21:17
wwitzel3just missing him21:17

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