/srv/irclogs.ubuntu.com/2011/04/15/#ubuntu-ensemble.txt

=== niemeyer_away is now known as niemeyer
niemeyerHi all!04:15
jimbakerniemeyer, hi04:15
niemeyerjimbaker: Hey man04:19
jimbakerniemeyer, hi. just working on algebra with my 10 year old daughter04:40
jimbaker(which incidentally is a lot of fun)04:42
niemeyerjimbaker: Nice, I can imagine04:45
TeTeTsuccess! after adding a key with ssh-keygen as hazmat recommended, the bootstrap did succeed: http://pastebin.ubuntu.com/594364/08:18
TeTeThmm, I followed the example and now seem to have 3 instances running - how do I figure out on which instance my wordpress instance resides?08:22
TeTeTah, figure that machine: 2 refers to the list of instances ...08:23
TeTeThttp://ec2-184-72-176-29.compute-1.amazonaws.com/?p=308:26
TeTeTthere we go!08:26
niemeyerGood morning all13:34
hazmat niemeyer good morning13:47
niemeyerhazmat: Yo!13:51
niemeyerhazmat: How's... Shago!?  Not sure that's the proper way to pronounce the name13:52
hazmatniemeyer, the workflow-state-client review suggestions sound great, thanks. i'm doing some write ups this morning on the async watch and constructors from yesterday. 13:52
niemeyerhazmat: Ah, sweet, you're welcome13:53
hazmatniemeyer, chego (as short for manchego) is doing great.. he's a getting a little older, but still quite playful. i moved a pillow next to my chair for him :-)13:53
niemeyerhazmat: Re. the write up, thanks, looking forward to check it out13:54
niemeyerhazmat: Aha, ok13:54
niemeyerhazmat: Heard him barking the other day, and reminded of him13:54
niemeyerhazmat: It's actually quite amazing how motivated he really is, given his age13:55
hazmatniemeyer, indeed, he's pretty awesome, we started doing some regular short runs for him13:55
hazmat0.5 miles13:56
hazmator long walks13:57
niemeyerNeat, he must be enjoying it13:57
niemeyerhazmat: Btw, this is interesting: http://xph.us/2011/04/13/introducing-doozer.html14:01
hazmatniemeyer, interesting14:05
niemeyerhazmat: This is the most interesting thing from the whole announcement for us: "However ZK is getting a minitransaction API in the spirit of Sinfonia which should satisfy this need..."14:11
niemeyerhazmat: It feels bad that the guy hasn't done a basic homework on ZooKeeper to understand how it works, though14:20
hazmatniemeyer, agreed14:21
niemeyerhazmat: Man, this is awesome: https://issues.apache.org/jira/browse/ZOOKEEPER-96514:25
niemeyerIt will make our life so much easier14:25
hazmatniemeyer, indeed, we could actually construct transactions for our interactions14:49
hazmatthat would be awesome14:49
hazmatniemeyer, i'm wondering if we also need service level relation data.. along the lines of service-config, but for relations.14:58
hazmati suppose we could say such is derived from the service-config14:59
niemeyerhazmat: In which sense?14:59
hazmatin the sense of making the relation between services take user defined config15:00
niemeyerhazmat: Yeah, this is a case we have to discuss more15:01
niemeyerhazmat: I hope we don't have to add something like this.. in a sense having less "buckets" of data is better for understanding15:02
niemeyerhazmat: Use cases will tell, though15:02
hazmatniemeyer, yeah.. its not clear that we do.. i'm just brainstorming15:02
hazmat still trying to figure out some of the machine/policy configuration in writing15:02
hazmatgoing to take a walk around the block bbiab15:03
niemeyerhazmat: Enjoy15:05
hazmatniemeyer, that transaction stuff would be gold for the upgrade cli command, its piecemeal writing approach still makes me concerned about interruptions scenarios15:50
niemeyerhazmat: Yeah, definitely15:51
niemeyerhazmat: I don't think we have any real problems in terms of races, though15:51
niemeyerhazmat: At least I don't see a reason yet15:51
=== niemeyer is now known as niemeyer_lunch
_mup_ensemble/unit-agent-formula-upgrade r223 committed by kapil.thangavelu@canonical.com16:42
_mup_resolve some merge conflicts16:42
=== niemeyer_lunch is now known as niemeyer
hazmathmm.. constructors with like 10 arguments are a little ugly..17:42
niemeyer"a little" :)17:44
jimbakerthere should be a pep17:47
hazmatniemeyer, re the workflow-state-client concrete bases, have a look at this and let me know what you think.. https://pastebin.canonical.com/46240/17:55
niemeyerLooking17:59
jimbakerhazmat, definitely a nicer separation at first look18:01
jimbakeralso for the testing of status, it looks like i can just use ZookeeperPersistentWorkflowStateBase without having to no-oping the disk methods, which  is much nicer18:05
hazmatjimbaker, there's still a read only client there18:07
hazmatand it does have to no-op the store18:07
jimbakerhazmat, sure, that's what i need for the status18:08
niemeyerhazmat: I still don't understand why this is so complex, to be honest18:08
jimbakerwhat i'm describing is what is necessary for setup of testing for ensemble status18:08
hazmatyup.. it was there before.. main difference functionally now is that its using classmethod constructors18:08
hazmatbefore in that branch that is18:08
jimbakerin this case i need the info stored to zk, preferably without just directly writing into the nodes, since there's a fair amount of logic re the history18:09
niemeyerhazmat: Conceptually, the problem is so simple18:09
jimbakerhazmat, but i would prefer to ignore storing to disk if possible18:09
hazmatniemeyer, indeed, there are four operations and two sets of parameters and we want to configure and combine the behaviors.18:10
niemeyerhazmat: Which four operations?18:10
hazmatjimbaker, sure.. the state client classes should do what you want, effectively just with UnitWorkflowStateClient.from_domain_object(client, unit)18:11
hazmatniemeyer, read state disk, write state disk, read state history, write state history, read zk state, write zk state.18:11
niemeyerhazmat: There are two operations: write and read18:12
jimbakerhazmat, yes, that also looks simpler18:12
niemeyerhazmat: and the "combine" is actually "doing something in addition to"18:12
niemeyerhazmat: Also, why is the state format different depending on where it's stored?18:12
hazmatniemeyer, because on disk the state file is specific to the domain object, in zk we share with the rest of the domain objects of the unit (ie unit and relations states in one node)18:13
niemeyerhazmat: No reason for the format to be different, even then18:13
jimbakerhazmat, but i still need ZookeeperPersistentWorkflowStateBase in my case, since i want the test setup to store in zk, for the status collector to then read later with UnitWorkflowStateClient, etc18:13
hazmatniemeyer, its not differently stored18:14
hazmatniemeyer, each is a yaml serialization of the state dict18:14
niemeyerhazmat: It is18:14
hazmatwhere its stored is within the file is different, in zk we store in a node with other states, in the fs we own the file.18:14
niemeyerhazmat: Well, the behavior is different18:14
niemeyerhazmat: 18:14
niemeyer        content = self._read_state_file()18:15
niemeyer        if content is None:18:15
niemeyer            return {"state": None}18:15
niemeyer        return yaml.load(content)18:15
niemeyerhazmat: It's write and read, really18:15
niemeyerhazmat: The difference is where the data comes from18:15
hazmatniemeyer, that same bit should be on the zk _load as well18:16
niemeyerhazmat: Let me try provide a sketch18:16
hazmatits not finished18:16
niemeyerhazmat: I won't code it.. I'll try to demonstrate what I mean with a non-functional sketch18:18
hazmatniemeyer, also out of curiosity did you see my mail to the list re async watchers and their creators?18:20
niemeyerhazmat: Yes, I've already read it.. still thinking about it18:21
hazmati've been mucking with my outbound mail setup the last few days18:21
hazmatcool18:21
niemeyerhazmat: Re. what I said above, this is what I meant:18:21
niemeyer        returnValue(18:21
niemeyer            yaml.load(unit_data.get("workflow_state", {}).get(18:21
niemeyer                self._zk_state_key, "")))18:21
niemeyerThe stored value is different.. it feels like it could be the same18:21
hazmatniemeyer, if i push workflow to a separate node sure18:22
hazmatfor each domain object18:22
niemeyerhazmat: Or add the node to the other side18:22
niemeyers/node/key18:22
niemeyerBut that's minor I think18:22
niemeyerLet me finish the sketch18:22
niemeyerhazmat: http://paste.ubuntu.com/594567/18:34
hazmatniemeyer, looks good18:36
niemeyerhazmat: It's probably broken, but I think it can be made to work along those lines18:36
hazmatniemeyer, yeah.. that cleans up the rest of the minor method dispatch18:37
hazmats/minor/excessive 18:38
hazmatniemeyer, the one part that's missing is picking up the state directory to construct the path for fs_workflow_identity18:40
hazmatbut i can just pass in the directory as arg as it is now18:40
_mup_ensemble/status-workflow r204 committed by jim.baker@canonical.com18:44
_mup_Modified test setup in build_topology for test_status such that unit relation states are now created18:44
niemeyerhazmat: Yeah, to the constructor of Disk, specifically18:47
jimbakerhazmat, niemeyer, yes the proposed sketch looks even nicer to work with in terms of separating out disk storage concerns18:47
hazmatniemeyer, looks good thanks18:47
niemeyerhazmat: You're welcome, glad we're pushing this18:48
jimbakeralso it looks much easier to construct a desired state in the system w/o having to munge workflows - just transition it as desired. nice for testing, maybe even for the repair case that's also motivating things18:48
hazmatthe api was the same, but the sketch makes the code much nicer, consolidating  extraneous methods.18:48
hazmatbcsaller, jimbaker, niemeyer standup?19:02
bcsallercan I have 10 minutes?19:02
hazmatsure19:02
jimbakerhazmat, bcsaller, that works for me19:02
niemeyerI'm good with skipping it today in the name of pushing things forward19:05
niemeyerI'm having some trouble updating the Ubuntu Go packages, and still want to clear up the review queue before the end of my day19:05
jimbakerniemeyer, also good for me19:07
bcsallergustavo: yeah, fine for me as well19:08
hazmatsounds good19:16
_mup_ensemble/unit-status-remote r201 committed by kapil.thangavelu@canonical.com19:33
_mup_refactor the internals of unit and unit relation workflows to make the implementation simpler, per review and suggestion by gustavo.19:33
_mup_ensemble/unit-status-remote r202 committed by kapil.thangavelu@canonical.com19:43
_mup_use a single workflowstateclient for both units and unit relations.19:43
jimbakerhazmat, just tried your new branch19:52
jimbakeri'm getting WorkflowStateClient object has no attribute _workflow, which makes sense since this class var is not being set19:53
_mup_ensemble/unit-agent-formula-upgrade r224 committed by kapil.thangavelu@canonical.com19:53
_mup_resolve merge conflict from unit-state-remote19:53
jimbakernew *version* of branch19:53
niemeyerhazmat: Do you mind to compress these class names?19:57
hazmatniemeyer, you mean we dont want State everywhere ;-)19:57
niemeyerhazmat: It doesn't feel like ZookeeperPersistentWorkflowStateBase is better than ZookeeperWorkflowState19:57
hazmatniemeyer, sounds good19:58
niemeyerhazmat: Thanks!19:58
_mup_ensemble/unit-agent-formula-upgrade r225 committed by kapil.thangavelu@canonical.com19:59
_mup_bring back unit workflow methods, missed in conflict resolution.19:59
jimbakerhazmat, just setting this classvarible to anything ("foo") allows for the WorkflowStateClient to work19:59
hazmatjimbaker, yeah.. i added that in the last sec19:59
jimbakerhazmat, cool20:00
hazmatjimbaker, i'll fix that up20:00
_mup_ensemble/unit-status-remote r203 committed by kapil.thangavelu@canonical.com20:08
_mup_loosen workflow assertion in workflowstate.20:08
hazmatjimbaker, fixed20:08
_mup_ensemble/status-workflow r205 committed by jim.baker@canonical.com20:10
_mup_Change to support WorkflowStateClient20:10
_mup_ensemble/status-workflow r206 committed by jim.baker@canonical.com20:11
_mup_Merged upstream20:11
_mup_ensemble/unit-status-remote r204 committed by kapil.thangavelu@canonical.com20:11
_mup_simplify base classes names.20:11
hazmatniemeyer, done20:11
_mup_ensemble/status-workflow r207 committed by jim.baker@canonical.com20:15
_mup_Resolved conflicts20:15
_mup_ensemble/unit-agent-formula-upgrade r227 committed by kapil.thangavelu@canonical.com20:16
_mup_pep8 cleanup20:16
jimbakerthat's odd, somehow my last merge pulled in trunk instead of kapil's branch. so my branch is very confused now20:17
jimbakertime to recreate20:17
jimbakeractually that's not quite what happened - it pulled in an earlier version of kapil's branch. even worse20:17
hazmatjimbaker, those branches are current with regard to trunk fwiw.20:19
jimbakerhazmat, the problem was that somehow the old version of the clients (+ supporting code) was merged into my branch when i tried merging in your new code20:22
jimbakerweird20:22
jimbakeranyway, i just rebuilt the branch, which was easy since there were no common files20:23
jimbakermaybe it got confused when i did the intermediate fix. no idea20:24
_mup_ensemble/status-workflow-client r205 committed by jim.baker@canonical.com20:24
_mup_Rebuilt branch from status-workflow20:24
_mup_ensemble/unit-status-remote r205 committed by kapil.thangavelu@canonical.com20:32
_mup_additional doc strings, and sample usage for workflowstateclient.20:32
niemeyerhazmat: I still don't see the reason for us to introduce the action_id concept in Transition20:38
niemeyerhazmat: We already have a transition id which should uniquely identify the transition, which means we can address that transition unambiguously an an action method20:38
hazmatniemeyer, we probably don't need it,  with the workflow / lifecycle factoring the savings is pretty minimal from it20:38
niemeyerhazmat: Cool, I'll add a point there suggesting the removal then20:39
hazmatniemeyer, it was there when i had bunch of loop transitions, and they all wanted to do the same action.20:39
hazmatbut those are gone now20:39
niemeyerhazmat: Sweet, that sounds good too :)20:40
hazmatniemeyer, the alias thing, i'll probably going to use for the ensemble resolved --retry20:41
hazmatthe sans retry case requires some more thought to add a no hook mode for the scope of a transition.20:42
niemeyerhazmat: Cool, it looks nice20:42
niemeyerhazmat: I think it's just another transition20:42
niemeyerhazmat: A simpler one, actually20:43
hazmatniemeyer, the retry_upgrade.. specifically needs to restart hook execution20:44
niemeyerhazmat: Ah, sorry, I understood it the other way around20:44
hazmatmost of the bookeeping by the lifecycle.start/stop also still needs to happen, its just we want to avoid doing user hooks, just bookeeping/accounting for the state transition.20:44
hazmatniemeyer, after ugprade and debug-hook, should i continue on to ensemble resolved, or start in on some of the useability items?20:46
niemeyerhazmat: resolved sounds good.. you have the whole context in mind, so it should be easy to get through it20:47
hazmatniemeyer, indeed.. i'll start in on it.20:47
niemeyerhazmat: That sounds awesome, thank you!20:49
_mup_ensemble/unit-agent-formula-upgrade r228 committed by kapil.thangavelu@canonical.com20:53
_mup_add missing test_formula module20:53
_mup_ensemble/unit-status-remote r206 committed by kapil.thangavelu@canonical.com21:09
_mup_update unit agent signature21:09
_mup_ensemble/trunk r196 committed by kapil.thangavelu@canonical.com21:14
_mup_merge unit-status-remote [r=niemeyer][f=759981]21:14
_mup_Refactors the unit and unit relation workflow state internals, and introduces21:14
_mup_a WorkflowStateClient that can be used to retrieve workflow state for21:14
_mup_units, or unit relations from the cli.21:14
_mup_ensemble/state-machine-enhancements r212 committed by kapil.thangavelu@canonical.com21:20
_mup_yank transition action_id support21:20
niemeyerhazmat: Just had a full read on the unit-agent-formula-upgrade branch.. it looks very good.  I'm not going to provide a full review now because I'm getting a bit sleepy by now.  I'll read it over again and on Monday and get the review in place, if that's alright.21:30
hazmatniemeyer, sounds good21:30
hazmatniemeyer, i've got some missing docs i'm going to add the branch to update the upgrade spec.21:34
niemeyerhazmat: Cool21:42
niemeyerAlright, I'll step out and take a nap21:44
niemeyerHave a good weekend!21:44
=== niemeyer is now known as niemeyer_away
_mup_ensemble/unit-agent-formula-upgrade r231 committed by kapil.thangavelu@canonical.com23:13
_mup_doc fixes and move clearing the flag earlier in the upgrade operation sequence.23:13
_mup_ensemble/status-workflow-client r206 committed by jim.baker@canonical.com23:26
_mup_Merged trunk23:26

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