/srv/irclogs.ubuntu.com/2016/03/15/#juju-dev.txt

ericsnowwallyworld: does anything need to change in core for the addition of resources to the bundle metadata?00:18
wallyworldericsnow: the native bundle deployment code i would expect00:19
wallyworldthere will be changes to upstream repos bundlechanges and charm as well00:19
ericsnowwallyworld: where is the native bundle deployment code?  are you talking about cmd/juju/service/bundle.go?00:20
wallyworldyeah00:20
ericsnowwallyworld: k00:20
=== natefinch-afk is now known as natefinch
davecheneyThe program 'i' is currently not installed. You can install it by typing:01:33
davecheneysudo apt-get install iprint01:33
davecheneywho does shit like this ?!? seriously01:33
menn0\o/ well that's a milestone. I just triggered a migration and the model was successfully serialised and imported into the target controller.01:33
menn0still lots to do though01:33
natefinchmenn0: nice!01:36
davecheneyw00t01:36
menn0next big milestone is to get the agents to switch over to the target controller01:36
natefinchmenn0: that should be the easy part, right?01:38
menn0natefinch: maybe slightly easier...01:42
axwwallyworld: http://reviews.vapour.ws/r/4163/diff/02:01
wallyworldlooking02:02
axwwallyworld: no test, because it involves the filesystem + raciness. could test if we moved setting current controller to jujuclient, but I think that's not a worthwhile use of time right now02:02
wallyworldaxw: could you add a todo before landing?02:03
axwmenn0: nice work :)  is model migration doing any per-provider post-migration steps? something I brought up with thumper before, is that the hosted models in azure use resources in the controller resource group02:04
axwmenn0: so if they're moved to a separate controller, each controller will need to run some code to move things about02:04
axwwallyworld: sure02:04
menn0axw: yep, that's been thought of (as per your conversation with thumper)02:05
menn0axw: I can't remember if it's in place yet (I *think* it is) but it's definitely getting done02:05
axwmenn0: cool02:05
axwmenn0: BTW, there's a new "controller-uuid" config attr that applies to all providers now02:05
axwfairly new02:06
mupBug #1557102 changed: Cannot unregister from a controller <docteam> <juju-core:New> <https://launchpad.net/bugs/1557102>02:06
mupBug #1557124 changed: Controller is orphaned for remotely registered user <docteam> <juju-core:Invalid> <https://launchpad.net/bugs/1557124>02:06
menn0axw: what's that for?02:06
axwmenn0: it's used by azure only atm. azure needs the uuid to identify the controller resource group02:07
menn0axw: ok cool.02:11
natefinchmna, github.com/juju/cmd has a ton of assumptions about how it'll be used that make it really ugly to unit test02:32
mupBug #1557216 opened: MADE-model-worker stale master <block-ci-testing> <ci> <juju-core:Incomplete> <juju-core made-model-workers:Triaged> <https://launchpad.net/bugs/1557216>02:39
mupBug #1557254 opened: Move current-controller management to jujuclient <tech-debt> <juju-core:Triaged> <https://launchpad.net/bugs/1557254>02:39
mupBug #1557264 opened: feature-resources is too stale to test <block-ci-testing> <ci> <juju-core:Incomplete> <juju-core feature-resources:Triaged> <https://launchpad.net/bugs/1557264>02:39
wallyworldaxw: do you have a minute to discuss add-credentials? standup hangout?02:55
axwwallyworld: ok, just getting a drink, brt02:55
bradmcan someone tell me I'm doing something wrong here, please?  trying to do a juju deploy <charm> --to lxc:# I get an error03:10
bradmERROR adding new machine to host unit "ubuntu/0": cannot add a new machine: machine 0 cannot host lxc containers03:10
bradmthis is using xenial with juju 1.25.3 on canonistack-lcy02, but the same thing happens with maas03:10
axwwallyworld: actually, USSO probably doesn't fit into accounts.yaml. they're not controller-specific.03:12
axwwallyworld: unless we store things not keyed by controller in there too?03:12
wallyworldaxw: i was thinking we might03:12
wallyworldif it is juju related03:12
wallyworldeasier to manage for the user, less droppings all over their machine03:13
axwwallyworld: it's a bit overloaded though. an account currently means "a user in a controller"03:13
wallyworldfair point03:13
wallyworldaxw: i think we need to see what the total surface area of this stuff is going to be and make a call when we know fully what we're dealing with03:13
cmarswallyworld, hey, thanks for the reviews on 4131. if you're ok with http://reviews.vapour.ws/r/4131/diff/6-8/, i'll go ahead and land it in model-acls03:45
cmarspushed those after your last review03:45
cmarswallyworld, also, is there a good shining example of a BaseSuite test that sets up an APICaller for api client tests I could cheat off of?03:46
wallyworldcmars: one quick thing that i see - can we code isGreaterAccess() to do the right thing with read/write/admin upfront?03:47
wallyworldshould be minimal extra effort03:47
wallyworldcmars: with the apicaller thing - i thought the tests were all correctly set up and you simply needed s/JujuConnSuite/BaseSuite . if not then leave for another pr03:47
cmarswallyworld, i'm hesitant to actually define the ModelWriteAccess until we actually implement it03:48
cmarswallyworld, however, i think we're forward compatible with such a change when we're ready to make it03:48
cmarswallyworld, ^^ state.ModelWriteAccess, that it03:48
cmarswallyworld, i'd like the state to reflect reality, which is, you're either read-only, or full-blown admin03:49
cmarswallyworld, that way, when we do add more nuanced access values, they match existing state03:49
cmarsmake sense?03:49
wallyworldcmars: sort of. so right now, if we happen to save "AccessWrite" in to state for a user. that isGreaterAccess() will fail if new access is "admin"03:50
wallyworldisn;t that a trap we can easily avoid?03:50
cmarswallyworld, do you mean if we added state.ModelWriteAccess? because right now, that value is not defined in state.03:52
cmarswallyworld, the state package doesn't give callers the language to phrase such a condition (unless you went and casted arbitrary strings to state.ModelAccess)03:52
cmarswallyworld, i think when we do make the distinction between "write" and "admin", we'll need to then improve the logic in the apiserver/modelaccess03:54
wallyworldok. fair enough. maybe a todo next to where the constants are defined that if a new one is added, gp and update isGreaterAccess()? i'll leave to you to do or not03:54
cmarswallyworld, +1 for a TODO, i was on the fence about that03:54
wallyworldcmars: for the api example, cmd/juju/storage/add__test.go (assuming you can't just drop JujuConnSuite for BaseSuite with no other changes). if it's not that easy change, do in another pr so as not to block this work03:55
cmarswallyworld, my command tests use mocks like that, but I need to mock an apiserver to test the api client.04:05
wallyworldcmars: ah, right sorry, let me get another example04:06
wallyworldcmars: see "apiCaller := basetesting.APICallerFunc(" in juju/api/storage/client_test.go04:07
cmarswallyworld, awesome. yep, that's what I needed!04:09
wallyworldgreat :-)04:10
wallyworldgo and cargo cult  that sucker04:10
natefinchwallyworld: got a minute?04:37
wallyworldsure04:38
natefinchwallyworld: I was looking at the channel code... it still looks like roger & co are ignoring the CharmRepo wrapper, so channels aren't getting added to those interfaces04:39
natefinchwallyworld: for example: https://github.com/juju/charmrepo/pull/71/files04:40
wallyworldlooking04:40
mupBug #1557302 opened: juju and jujud have grown to >100MB  <juju-core:Triaged> <https://launchpad.net/bugs/1557302>04:42
wallyworldnatefinch: it may be time to pull CharmStore into core and look at what's needed moving forward - maybe we only need the extra header attrs it allows us to add when querying revision information; maybe we use csclient directly for most everything else?04:43
wallyworldmaybe we extra the caching stuff and use where needed04:43
wallyworldextract04:43
wallyworldseparate to the use of the client itself04:44
natefinchwallyworld: I actually like the wrapper, so the command code doesn't have raw calls to client.Put(some_Url) in it... so those are all consolidated in the helper library04:45
natefinchwallyworld: I'm fine if csclient is that wrapper... I just don't want to ever see wallyworld: I shouldn't ever see client.Put("/"+id.Path()+"/publish", val) outside one API wrapper library...04:46
natefinchoops, ignore that second wallyworld in the middle.. copy paste error :)04:46
wallyworldnp, agree with not using the low level stuff directly04:47
wallyworldso i guess core is the only place using the CharmStore wrapper04:47
wallyworldhence it's going to be up to us to maintain it. it would be easier to do that if it were in core04:48
natefinchit seems wise to have it outside of core, in case other tools want to use the same cache... however, maybe we should be focusing on putting non-caching commands right on csclient04:50
wallyworldnatefinch: depends on the semantics i think. do you have a list of the commands we need to add that core needs?04:52
natefinchwallyworld: ListResource, GetResource, UploadResource... and I made a Publish method so the CLI code wouldn't have to hardcode the url in it.04:54
wallyworldnatefinch: so comapring what's there on csclient.Client for charms - we have UploadCharm() and UploadBundle(). I guess we use Meta() for a list type operation? and Get(path) for getting charms?04:57
wallyworldactually GetArchive()04:58
wallyworldis used to get a charm i think04:58
wallyworldeither a charm or bundle04:58
natefinchyeah04:58
wallyworldnatefinch: so adding thise resource methods to client seems ok doesn't it04:58
natefinchwallyworld: yep04:59
wallyworldok, sgtm04:59
natefinchwallyworld: ok, cool04:59
wallyworldthanks for thinking it through04:59
natefinchwallyworld: np04:59
natefinchok, I'm done.  g'night all05:15
menn0axw: ping?07:21
axwmenn0: pong07:22
menn0axw: would you mind taking a looking at this one? http://reviews.vapour.ws/r/4169/07:22
menn0axw: it's trivial07:22
axwsure07:23
menn0axw: and should help get a bless for the MADE-state-workers branc07:23
axwmenn0: LGTM07:24
menn0axw: thanks07:24
frankbanmgz: ping, are those errors spurious? http://reports.vapour.ws/releases/375108:33
frankbanmgz: (and morning)08:33
mupBug #1557380 opened: help text for juju add-ssh-key needs improving <helpdocs> <juju-core:New> <https://launchpad.net/bugs/1557380>09:10
frobwaredimitern: ping, 1:1? Can skip if you're busy and sync later. I'm currently merging master again.09:17
dimiternfrobware, hey, sorry got carried away09:21
dimiternfrobware, but I'm close to getting multi-nic working09:21
frobwaredimitern: then I will NOT disturb you. \o/ :)09:23
dimitern:) cheers09:27
TheMuemorning o/10:10
voidspacefrobware: actually, I have coffee and some motivation - will crack on now and take a break later10:18
voidspacefrobware: need to make a decision how to have the gomaasapi test server support 1.x *and* 2.x10:19
voidspacefrobware: obviously the urls have the api version in them and the test server does have a version field10:19
voidspacefrobware: but in terms of code structure10:19
voidspacefrobware: branching inside every method isn't ideal but maybe the path of least resistance10:20
voidspacefrobware: changing the server to an interface and having two implementations would be painful as the server have lots of fields and they would all need accessor methods10:20
frobwarevoidspace: at first blush having a branch seems easier, at least initially. You can always revise a little as you see how things pan out.10:32
voidspacefrobware: heh, so the first problem is the change to the capabilities output10:33
voidspacefrobware: but calling "version" from the maas command line is broken (I've filed a bug)10:33
voidspacefrobware: so having to write gomaasapi code to see the output of the version api call (that gets us the capabilities)10:34
frobwarevoidspace: sweet10:34
voidspacefrobware: dimitern: so, if we're dropping support for maas < 1.9 there are two choices10:38
voidspacefrobware: dimitern: detect the unsupported version early and error out10:39
voidspacefrobware: dimitern: or just assume we're on a supported version10:39
voidspacefrobware: dimitern: I assume the first option is preferable10:39
dimiternvoidspace, I think we should report an error10:39
voidspacedimitern: yep10:39
frobwarevoidspace: as 1.8 is around, drop out early.10:39
voidspaceyeah, cool10:39
voidspacedimitern: so, supportsDevices, supportsStaticIPs and supportsNetworkDeploymentUbuntu can all go away10:40
voidspaceand NewEnviron can just do a version check10:40
voidspacefrobware: it looks like it might be cleaner to do that first10:41
dimiternvoidspace, yeah - either NewEnviron or even at lower level - getMAASClient10:42
voidspacedimitern: that method just returns the client, which is created in SetConfig, which is called from NewEnviron10:43
voidspacedimitern: and NewEnviron already does the capabilities checks10:44
voidspacedimitern: so replacing the capabilities checks with a version check in NewEnviron seems sensible10:44
dimiternvoidspace, sounds good, yeah10:46
voidspacedimitern: the client does need to change as we need to switch between 1.0 api and 2.0 api depending on maas version10:46
voidspacedimitern: hah, however - you need to know the maas api version in order to be able to ask maas which version it is...10:49
voidspacedimitern: if you call /api/1.0/version/ on a 2.0 server you get "null" back10:49
voidspacedimitern: shall I report a bug for that do you think? they ought to have an api version independent version endpoint10:50
dimiternvoidspace, yes please, that should be a bug - i.e. maas should report a sensible error for /api/1.0/ requests10:56
mupBug #1557470 opened: juju reads from wrong streams.canonical.com location <simplestreams> <juju-core:Triaged> <juju-core 1.25:New> <https://launchpad.net/bugs/1557470>11:34
voidspacedimitern: frobware: old code removed, 50 additions and 653 deletions11:37
voidspacedimitern: frobware: it compiles, but tests need checking & fixing11:37
voidspacesatisfying though11:37
voidspacehttps://github.com/juju/juju/compare/maas-spaces2...voidspace:drop-maas-1.8?expand=111:38
frobwarevoidspace: nice11:38
mupBug #1557470 changed: juju reads from wrong streams.canonical.com location <simplestreams> <juju-core:Triaged> <juju-core 1.25:New> <https://launchpad.net/bugs/1557470>11:46
dimiternvoidspace, nice, but that's going into a feature branch first, right?11:49
voidspacedimitern: why not land it?11:50
voidspacedimitern: long lived feature branches are a pain11:50
dimiternvoidspace, well, there's a lot to clean up, but doing now will make my life a little hell :/11:51
dimiternwith all the changes I'm making for multi-nic11:51
voidspacedimitern: so you'd rather make my life hell merging yours instead...11:51
dimiternvoidspace, nope, I'd rather drop the legacy code later and just disable it for now ?11:52
voidspaceif your changes conflict there's hell for someone...11:52
dimiternvoidspace, I will happily deal with the conflicts, just if possible I'd like to do that next week11:54
voidspacedimitern: fine11:54
voidspaceI don't mind dealing with them either :-)11:54
voidspacesomeone has to do them11:54
voidspaceit should just be deleting more code11:54
voidspacedimitern: I really loathe long lived feature branches though and it has become our standard way of working11:54
voidspacedown to 38 test failures :-/11:55
voidspace108 were panicing a minute ago, so that is progress11:55
mupBug #1557470 opened: juju reads from wrong streams.canonical.com location <simplestreams> <juju-core:Triaged> <juju-core 1.25:New> <https://launchpad.net/bugs/1557470>11:55
frobwaredimitern: how close are you to maas-spaces2 tip? (on your feature branch)11:58
frobwaredimitern: seem to have lots of unit test failures today11:59
frobwaredimitern: and the last CI run was way worse than I expected11:59
dimiternfrobware, not so close anymore12:00
dimiternfrobware, 5 days behind12:01
frobwaredimitern: which coincides with when I started merging master. hmm.12:01
frobwaredimitern, voidspace: I think we'll need to set 'juju_bridge_all_interfaces=1' to 0 in maas-spaces2. We made this 0 on master to make tests pass, but they will of course continue to fail on maas-spaces2. Can I suggest that if you need multiple bridges you set this explicitly in your feature branch until we have everything in place.12:15
dimiternfrobware, sounds good12:16
frobwaredimitern, voidspace: http://reviews.vapour.ws/r/4172/12:29
frobwarehopefully as easy as it gets12:29
dimiternfrobware, LGTM12:29
perrito666dimitern: would you please merge my goose package? I lack super powers12:31
dimiternperrito666, doesn't $$merge$$ work there?12:32
mupBug #1556483 changed: ERROR invalid config: no addresses match <juju-core:Invalid> <https://launchpad.net/bugs/1556483>12:40
perrito666dimitern: iirc, last time I tried to merge the bot did not respond to me12:41
dimiternperrito666, now it did - but the tests failed12:48
* perrito666 goes check what happened12:49
frobwaredimitern, voidspace: master merge, http://reviews.vapour.ws/r/4173/13:04
dimiternfrobware, looks good13:13
frobwaredimitern: thanks for the review13:13
frobwaredimitern: so, devices... next :)13:14
dimiternfrobware, I have lxc working locally13:15
dimiternwell a bit unstable and only with lxc-clone: false, but still13:15
frobwaredimitern: sounds interesting; want to sync before I go grab some lunch?13:16
dimiternone more live test and I'm pushing what I have to my PoC branch13:16
dimiternfrobware, sure13:16
dimiternfrobware, standup HO13:18
frobwareomw13:18
frobwaredimitern: well, that's weird. the master merge was quite flaky running the unit tests locally, but passed first time on the CI machines.13:54
dimiternfrobware, I guess CI is rock solid then :)13:55
frobwaredimitern: brings new meaning to "Ship It!"13:56
dimitern:D13:57
mupBug #1557540 opened: Missing help for payloads <juju-core:New> <https://launchpad.net/bugs/1557540>13:59
perrito666dimitern: would you give me another little push? :) I still lack the credentials to command merge bot (the error was because the patch was against liberty but proposed against v1, I fixed that)14:10
mupBug #1557540 changed: Missing help for payloads <juju-core:New> <https://launchpad.net/bugs/1557540>14:11
dimiternperrito666, sure - done14:13
perrito666tx14:13
mupBug #1557540 opened: Missing help for payloads <juju-core:New> <https://launchpad.net/bugs/1557540>14:17
katconatefinch: ericsnow: hey14:21
ericsnowkatco: yo14:22
ericsnowkatco: we should get together and point those cards in our iteration backlog14:22
katcoericsnow: yes, unfortunately i cannot talk still14:23
ericsnowkatco: :(14:23
katcoericsnow: natefinch: also, unfortunately mark did not like push-resources. he wants it to be "attach-resources"14:24
dimiternfrobware, pushed the changes so far - https://github.com/juju/juju/compare/maas-spaces2...dimitern:maas-spaces2-multi-nic-lxc14:24
dimiternfrobware, lxc now works14:24
ericsnowkatco: k14:24
dimiternfrobware, tried with 2 on the same machine, now will try a few more14:24
frobwaredimitern: will take a look in a bit, just looking at the brokeness of maas-spaces214:25
frobwaredimitern: but really cool though! \o/14:26
dimiternfrobware, yeah :) \o/14:27
dimiternfrobware, there's 2m delay at boot due to the cloud-init-nonet :/ but otherwise seems to work once only the primary NIC has a gateway set in both /e/n/i and lxc.conf14:28
frobwaredimitern: very nice. congrats!14:29
dimiternfrobware, thanks :) we all deserve a pat on the back14:30
natefinchkatco: lol.. well, at least command name changes are trivial14:30
katconatefinch: yeah14:30
dimiternfrobware, I'll start splitting of chunks of that branch and propose them against maas-spaces214:30
frobwaredimitern: are you considering just the state changes, or more?14:31
ericsnowkatco: are you tackling merging master into feature-resources? (bug #1557264)14:31
mupBug #1557264: feature-resources is too stale to test <block-ci-testing> <ci> <juju-core:Incomplete> <juju-core feature-resources:Triaged> <https://launchpad.net/bugs/1557264>14:31
katcoericsnow: i can definitely take care of that14:32
dimiternfrobware, state changes definitely, and some stuff in networkingcommon14:32
ericsnowkatco: suh-weet14:32
dimiternfrobware, but the other bits need better testing14:32
katcorick_h__: so i think the last loose-end on resources is the progress indicator for fetching resources14:33
rick_h__katco: ok, did you look at the current output locations and see if we can fit anything in place on the existing tabular output?14:33
ericsnowkatco, natefinch: FYI, http://reviews.vapour.ws/r/4160/14:34
katcorick_h__: we talked about maybe having it under "juju list-resources <service> --details"14:35
katcorick_h__: probably not in an existing column, but maybe a new section14:36
rick_h__katco: do you have sample output we can peek at please?14:36
katcorick_h__: let me cook one up14:36
rick_h__katco: ty14:37
frobwarealexisb: see progress on multi-NIC from dimitern ^^14:44
katcorick_h__: possibly this: http://pastebin.ubuntu.com/15392044/14:44
frobwarevoidspace: this looks so much better now "has interface addresses: [local-cloud:10.17.20.215@default(id:0) local-cloud:192.168.10.102@internal(id:1) local-cloud:192.168.12.102@db(id:3) local-cloud:192.168.11.102@public(id:2)" - thanks!14:46
alexisbdimitern, very very cool!14:46
dimiternalexisb, cheers :)14:47
=== urulama_ is now known as urulama
rick_h__katco: looking14:52
rick_h__katco: can we also track upload progress on local ones?14:53
katcorick_h__: isn't that kind of strange since the CLI will block when uploading?14:54
katcorick_h__: you'd have to flip to a new terminal and do a watch14:54
natefinchit's a lot easier than tracking progress on unit downloads14:54
natefinchkatco: I assume he just means have the CLI output progress indications while it blocks14:55
rick_h__katco: thoughts on http://paste.ubuntu.com/15392141/14:55
rick_h__natefinch: no, I mean if I were in another terminal or another user I'd see that status14:55
katcorick_h__: ah i didn't think about the multi-user implications14:55
katcorick_h__: what happens when we do "deploy --resources"? does that status show up as well?14:56
natefinchrick_h__: personally, I would find it very weird for other people to be notified when you're uploading a file.  systems don't generally do that... it's just either not there or it's there14:56
frankbanrick_h__: urulama, hatch, perrito666: for instance, this is the current unit info from master's megawatcher: http://pastebin.com/U51reeY4 (just FYI)14:56
rick_h__natefinch: but that's what I'm asking, if you do it when getting a file from a remote location, why not a local location?14:56
rick_h__natefinch: it's kind of the same thing to a second user "this thing is updating and in progress..."14:57
frankbanrick_h__: urulama, hatch, perrito666: so I guess we'll need to fetch what we need from AgentStatus and WorkloadStatus14:57
katcorick_h__: you would still see the download progress for a local resource... the upload is to the controller, not individual units14:57
frankbanperrito666: is AgentStatus going to be renamed there as well?14:57
katcorick_h__: so you wouldn't see an upload progress, but you would still see a download progress14:57
rick_h__katco: ok, so download would be from the controller down, fiar enough14:57
perrito666frankban: gimme a moment and ill be with you14:58
rick_h__katco: ok, what are folk's thoughts on the in-line?14:58
natefinchrick_h__: there's two different transfers, from charmstore/local to controller, and from controller to unit.  I had only been thinking of updates on the latter.14:58
katcorick_h__: the "REVISION" heading seems kind of strange to me now14:58
rick_h__katco: yea, it says it's downloading rev9, we know that ahead of time right?14:58
katcorick_h__: as in "what revision? downloading"14:58
natefinchditto... it's already overloaded14:58
katcorick_h__: yes, through the same mechanism we'll have to provide progress14:59
katcorick_h__: we first know about the metadata: rev, size, fingerprint, and then we download14:59
rick_h__katco: right, ok so it's not completely out of place and why I made sure ot keep the revision info in the fetching messagfe14:59
natefinchrick_h__: the thing is, then you lose information about what that unit is actually running right now, since it's not running 9 right now, it's running whatever it downloaded previously14:59
rick_h__natefinch: true, but it's for some download window of time. Is it significant?15:00
rick_h__natefinch: and I'd expect the yaml/json status to be full details15:00
natefinchrick_h__: is the progress indicator significant, by that measure? :)15:00
rick_h__natefinch: e.g. different fields15:00
natefinchrick_h__: also keep in mind it'll be this for downloading uploaded resources: http://paste.ubuntu.com/15392199/15:01
rick_h__natefinch: rgr, /me goes into call will slow down replies15:02
natefinchrick_h__: personally, I find it really hard to read having all that extra data embedded in that column.  I'd much rather have a separate section like katco proposed15:02
perrito666so first of all, frankban hatch urulama https://github.com/juju/juju/blob/juju-1.26-alpha1/state/status_model.go#L27215:02
perrito666that was the old translate function15:03
perrito666frankban: urulama, hatch  second, the change of agent-status -> juju-status is meant to be only  a presentation thing, just user facing, internally we still hold the names that make sense for the internal juju terminology, so my first intuition would be to say that it will remain agent-status unless someone disagrees15:04
hatchperrito666: I don't really understand the 'juju-status' key in UnitStatus but ok :)15:05
frankbanperrito666: cool, I agree15:06
hatchthe logic doesn't 'look too complex so that's good :D15:06
natefinchrogpeppe1: I see a lot of calls like client.Put("/"+id.Path()+"/meta/perm/read", []string{params.Everyone, id.User}) ... how come you guys aren't wrapping that stuff in helper methods on charmrepo/csclient.Client?15:07
frankbanperrito666: but FYI in the current master mega-watcher units have AgentStatus and WorkloadStatus, machines have JujuStatus and MachineStatus :-)15:07
rogpeppe1natefinch: we could do, yeah15:07
frankbanperrito666: so is this going  to stay like that?15:07
perrito666hatch: so, the differentiation between juju-status  and workload-status is because the former shows information about the juju agent and the later about the charm15:08
rogpeppe1natefinch: feel free to add PutId, SetPerm etc15:08
perrito666frankban: aghh, then expect it to change to juju-status wil be consistent there15:08
frankbanperrito666: for beta3? and what about Workload vs Machine?15:09
rogpeppe1natefinch: it's always a trade-off between adding useful methods and adding a helper method for every single endpoint in the store15:09
rogpeppe1natefinch: i'm not sure the maintenance burden of the latter is worth it15:09
perrito666frankban: workload and machine remain the same, agent changes to juju, hopefully in a couple of hours tops15:10
natefinchrogpeppe1: I would call a helper for every single endpoint in the store useful :)  As someone writing a CLI client, I really don't ever want to have to know what HTTP method I should be using.. someone should have wrapped that stuff away in a helper library, IMO.15:10
rogpeppe1natefinch: especially given the way that so much of this stuff can be combined in arbitrary ways with the bulk endpoints15:10
frankbanperrito666: ok so units will have JujuStatus and WorkloadStatus, machines will have JujuStatus and MachineStatus?15:10
rogpeppe1natefinch: the way i look at it is the HTTP API really is the API - the client library is a thin (and not opaque) layer above it15:11
perrito666correct15:13
frankbanperrito666: ok, do you also have the conversions functions used for StatusInfo and StatusData?15:13
rick_h__natefinch: my issue is that the other sectino isn't meaningful without trying to match unit/resource name in the first section so I find it hard to process.15:13
perrito666frankban: passthrough unless there is error in workload status, there we would show the error message in info iirc15:15
perrito666but I dont recall where it was15:15
natefinchrogpeppe1: I see what you're saying... but I think the client code is a lot easier to read and understand when I see client.Publish(id, channels, resources)  rather than client.Put("/"+id.Path()+"/publish", params.PublishRequest{Channels: channels, Resources:resources})15:15
=== mhilton-lunch is now known as mhilton
rogpeppe1natefinch: as i said, it's a trade-off15:16
rogpeppe1natefinch: there are hundreds of endpoints15:16
rogpeppe1natefinch: well... lots anyway15:16
rogpeppe1natefinch: and thousands of potential combinations15:16
frankbanperrito666: so StatusInfo was the error message and StatusData is current WorkloadStatus?15:16
rogpeppe1natefinch: ok, so 60+ endpoints15:18
rogpeppe1natefinch: i think that having a reasonable grasp of the HTTP API saves quite a bit of work overall15:18
frankbanperrito666: so I think old StatusInfo was WorkloadStatus.Message15:19
perrito666frankban: the exact name was StatusInfo ?15:19
natefinchrogpeppe1: maybe for you, not so much for me ;)15:19
frankbanperrito666: and old StatusData was AgentStatus.Data15:19
perrito666frankban: so, now I remember15:20
perrito666StatusData was AgentStatus.Data15:20
frankbanperrito666: I think the old logic is in https://github.com/juju/juju/blob/juju-1.26-alpha1/state/allwatcher.go#L29415:20
perrito666StatusInfo was AgentStatus.Message15:20
rogpeppe1natefinch: come on, that call isn't hugely much more verbose than client.SetPerm(id, channels, resources)15:21
perrito666frankban: yes, that was the conversion done, when error we did something different otherwise we would just agentStatus fields15:21
frankbanperrito666: I see, let me try to formalize that15:21
rick_h__natefinch: katco http://paste.ubuntu.com/15392403/ please15:23
rick_h__natefinch: katco I think that's the best of both worlds as close as I can think up atm15:23
mupBug # changed: 1553298, 1553299, 1553303, 155330815:26
ericsnowkatco, natefinch, rick_h__: perhaps we can go with something in the middle:  http://pastebin.ubuntu.com/15392433/15:27
rick_h__ericsnow: the thing is the extra column that comes/goes I think is bad for cli imo. Maybe I'm wrong on that front.15:28
katcorick_h__: i agree15:28
rick_h__ericsnow: and I do think that the YAML has to have the data spelled out as it's machine data15:28
ericsnowrick_h__: I'd agree if we expected folks to be parsing the tabular output15:28
rick_h__ericsnow: right, but some folks will do simple "status | grep | xxx"15:29
rick_h__ericsnow: vs parsing the yaml/json15:29
katcoericsnow: it's some ux principal i can't remember: don't have elements of the ui appear/disappear based on state15:29
katcoprinciple15:29
rick_h__katco: +1, especially if it could be fast moving. "What was that blip? oh, wtf, nothing there now"15:29
rick_h__as soon as download completes/etc15:30
perrito666frankban: im starting with the agent->juju change now, willping you when its done15:31
dimiternfrobware, please ping me before you're about to test the PoC branch btw15:35
frobwaredimitern: stuck in maas-spaces2 land. I cannot bootstrap on there right now... :(15:35
dimiternfrobware, I found a few more things to fix and will push some updates as soon as the current live test passes15:35
dimiternfrobware, oh :/15:36
dimiternfrobware, xenial-related?15:36
frobwaredimitern: yeah, going back in history. don't think so.15:36
frankbanperrito666: ty15:36
natefinchrick_h__: to be fair, any progress indicator we make is going to blip away once the download is done :)15:36
dimiternfrobware, that's before or after the last master merge?15:37
rick_h__natefinch: true enough15:38
frobwaredimitern: gone back to bc2914e5af162baa0f6ec1ffed69859fcc3e7633 (Fri Mar 11 12:00:01 2016 +0000)15:38
ericsnowrick_h__: here's an iteration on your last one that I find a little less busy:  http://pastebin.ubuntu.com/15392511/15:39
rick_h__ericsnow: my only concern there was "is it safe to assume it's always fetching the expected"?15:39
voidspacefrobware: cool15:40
ericsnowrick_h__: my gut says yes :)15:40
ericsnowrick_h__: that would be a pretty tight race to be otherwise15:41
natefinchericsnow, rick_h__: if the problem with a separate table is mapping between the two, why not an unobtrusive indicator in the top table? http://pastebin.ubuntu.com/15392537/15:41
ericsnowrick_h__: to be safe, a slight tweak:  (fetching 9: 96%)15:42
rick_h__ericsnow: ok, if we have verified that it's a safe assumption including in the world where we can pass arbitrarty version numbers then I'm +115:42
rick_h__ericsnow: I think you're right, but I didn't feel comfy assuming it so I went with the 100% case, but yea...I think you're right15:42
natefinchI think the separate table will make it a *lot* easier to understand multiple downloads at once15:42
ericsnowrick_h__: we should double-check though :)15:42
rick_h__ericsnow: ok, if you double check and feel safe then I'm +1 yours and if not, then I'm +1 mine15:43
katcoericsnow: well, expected should always list what we want to download. it may not be the latest15:43
rick_h__natefinch: the issue there is when you get more than one going on, especially across units/etc15:43
katcoericsnow: so i think that's an accurate statement15:43
natefinchrick_h__: right, I think this is a lot easier to understand: http://pastebin.ubuntu.com/15392550/15:44
natefinchrick_h__: although eric's appending the download info is ok too15:44
rick_h__natefinch: understand, but disagree, especially if we can stick it on the end like ericsnow's15:45
natefinchrick_h__: I really hate munging multiple pieces of data in the same column, but I think I'm overruled on that :)15:45
katcorick_h__: ericsnow: natefinch: so we'll go with http://pastebin.ubuntu.com/15392511/ ?15:45
ericsnowkatco: with or without the parens around the REVISION value?15:46
rick_h__katco: the first one in there, without parens aroud revision value15:46
katco+115:46
ericsnowrick_h__: coolio15:46
katcota rick_h__15:46
rick_h__ty ericsnow katco natefinch, appreciate the dialog/discussion. Always better hashed out :)15:47
ericsnowrick_h__: no, thank you!15:47
frobwaredimitern: I created a new node, enlisted, commissioned and bootstrapped without problems.15:47
dimiternfrobware, sweet! so problem solved?15:48
frobwaredimitern: nope, I take that back (wrong window). :)15:48
katcoericsnow: so you need work right now?15:48
ericsnowkatco: yep, though right now I'm working on getting those two bug fixes landed15:49
katcoericsnow: ok, eta on that?15:50
mupBug #1553320 changed: TestBootstrapGUIErrorInvalidVersion os.ProcessState exit status 2 <centos> <ci> <regression> <test-failure> <juju-core:Invalid> <juju-core embedded-gui:Fix Released by frankban> <https://launchpad.net/bugs/1553320>15:50
mupBug #1553322 changed: TestBootstrapGUIErrorUnexpectedArchive os.ProcessState exit status 2 on centos <centos> <ci> <regression> <test-failure> <juju-core:Invalid> <juju-core embedded-gui:Fix Released by frankban> <https://launchpad.net/bugs/1553322>15:50
ericsnowkatco: should be merging the first one in the next little while15:50
katcoericsnow: cool. next up should be the revisions of resources card... we should get together and point that and the new progress indicator work15:50
katcoericsnow: natefinch: let's plan on doing that when ericsnow is done landing the bug cards15:51
ericsnowkatco: sounds good; I added tasks to that card last night in preparation :)15:51
katcoericsnow: tyvm15:52
=== dames is now known as thedac
natefinchrogpeppe1: Is publish not returning a value anymore?16:02
rogpeppe1natefinch: that's right16:02
rogpeppe1natefinch: i *think* this is documented in the API docs16:03
rogpeppe1natefinch: if not, they need updating16:03
natefinchrogpeppe1: ahh, ok, because all my tests are failing now16:03
rogpeppe1natefinch: ah16:03
rogpeppe1natefinch: we reckoned it probably wasn't telling you much useful, but if you can think of a decent reason why it should return something, we could change it16:04
natefinchrogpeppe1: see, if a wrapper library had updated, my code wouldn't compile right now ;)16:04
rogpeppe1natefinch: :)16:04
rogpeppe1natefinch: luckily your tests caught it16:04
rogpeppe1natefinch: in our later APIs, we auto-generate the client16:05
natefinchrogpeppe1: my tests printed out 150 lines of logging and showed me a json error16:05
natefinchrogpeppe1: autogenerating a client sounds like a wonderful solution :)16:05
rogpeppe1natefinch: you don't get the nice bulk API thing though16:06
rogpeppe1natefinch: roll on HTTP2 :)16:06
natefinchrogpeppe1: so, why aren't we returning the ID of the published charm anymore? wouldn't that be useful?16:07
rogpeppe1natefinch: because it's not a newly created id16:08
rogpeppe1natefinch: so it's just like using any id in any request16:08
rogpeppe1natefinch: for example, do you think a PUT to meta/extra-info should return the charm id16:09
rogpeppe1?16:09
natefinchrogpeppe1: oh, I guess I was still thinking that publish creates a new revision, but it doesn't, does it?  It just moves an existing revision to a different channel16:10
rogpeppe1natefinch: yeah. well, copies rather than moves.16:11
natefinchrogpeppe1: right, sorry, creates a pointer in that channel to that revision :)16:11
rogpeppe1natefinch: exactly16:11
rogpeppe1natefinch: call me a pedant :)16:11
natefinchrogpeppe1: it's good to be exact, so that there's no confusion16:15
rogpeppe1natefinch: ok, don't call me a pedant then. see if i care.16:15
natefinchrogpeppe1: lol16:16
natefinchrogpeppe1: I assume I can delete params.PublishResponse, then? :)16:17
rogpeppe1natefinch: indeed :)16:17
=== natefinch is now known as natefinch-lunch
voidspaceUp to an 1100 line diff and down to 28 test failures.16:39
voidspaceFeels like hand to hand combat getting these to pass though.16:39
frobwaredimitern: you still about?17:01
mupBug #1557633 opened: status has duplicate entries for relationships <juju-core:New> <https://launchpad.net/bugs/1557633>17:05
dimiternfrobware, yeah17:11
perrito666could anyone kindly share theyr /etc/os-release with me?17:17
cmarsperrito666, https://paste.ubuntu.com/15393493/17:20
perrito666cmars: tx17:20
perrito666turns out installing kdeneon will break it :p17:21
perrito666and that breaks the tests heavily17:21
frobwaredimitern: have some time to HO on sapphire standup?17:22
cmarsperrito666, if you have a moment, could i get a review, http://reviews.vapour.ws/r/4177/ ?17:25
perrito666cmars: reviewing17:25
cmarsperrito666, thanks!17:25
perrito666actually please wait 5 mins to my eye drops to settle so I stop seeing fuzzy :p17:26
dimiternfrobware, ok17:29
=== natefinch-lunch is now known as natefinch
ericsnowkatco, natefinch: now's probably a good time to point those cards17:52
katcoericsnow: ok moonstone? although i can't speak17:52
natefinchok17:53
natefinch"ok, just speak if you disagree katherine... no? ok, great!"17:53
mupBug #1557679 opened: help text for juju switch needs improving <helpdocs> <juju-core:New> <https://launchpad.net/bugs/1557679>17:56
perrito666someone could make a quick review? http://reviews.vapour.ws/r/4179/18:01
jamcherylj: ping. Were you the one that added status information for pending instances?18:05
perrito666jam: I helped, can I help you?18:07
jamperrito666: so I'm wanting to give progress during Bootstrap, and I was thinking that maybe we should have a progress func passed into StartInstance18:07
jamthere is no API server to poll during bootstrap18:07
jamand providers shouldn't be directly allowed to know about the database18:08
perrito666well iirc, we are passing a statuscallback function, so you could use that?18:08
jamperrito666: there it is. I just didn't see it, buried in the params struct.18:09
perrito666:)18:09
perrito666bonus track, you get the same for containers18:10
jamperrito666: yeah. what do you think about tying that StatusCallback into Bootstrap's context so you get the progress messages from "juju bootstrap" ?18:11
perrito666I think its an awesome idea18:11
perrito666as long as I am not the one implementing it :p18:11
perrito666no, honestly, seems like a super short and easy way to get more visibility18:13
jamperrito666: heh.18:13
jamso I'm trying to understand what the data map is for18:13
jamIt seems the only things that actually ever call StatusCallback are containers.18:13
jamlxc and kvm seem to use it18:14
jambut that seems to be it18:14
jamand they don't do anything with data18:14
perrito666nah, I am pretty sure startinstance calls it too, every provider reports that status18:14
perrito666jam: data structure is just to comply with StatusInfo18:14
jamperrito666: grep StatusCallback doesn't seem to agree18:15
jamperrito666: as in, the only things that reference ".StatusCallback" are the lxc and kvm brokers18:15
jamother thincgs get it passed in, but do nothing with it.18:16
jamit looks like the shape of the callback is just to match Machine.SetInstanceStatus which is ok18:16
jambut none of the other providers are giving feedback during StartInstance that I can see.18:16
perrito666maas, is (should be)18:17
perrito666lemme do a quick dig18:18
perrito666jam: you are right, how could I miss that18:26
perrito666mm something does not add up here18:27
frobwaredimitern, voidspace, mgz: fix maas-spaces2 panic: http://reviews.vapour.ws/r/4180/18:27
perrito666jam: that should be implemented for maas only, it escapes a bit why is it not now18:28
perrito666jam: I would like cherylj input here in case I am missing something18:29
frobwarecherylj: ^^18:30
mgzfrobware: looks good. did you run the maas provider tests?18:31
perrito666jam: in any case, fixing that should be as trivial as adding a few calls to the callback to startinstance18:32
frobwaremgz: yep. the live one escaped me when I did the original merge, hence this panic.18:32
frobwaremgz: I've run them post that commit18:32
=== tinwood is now known as tinwood-dinner
mgzand the instance_test.go errors from that got fixed earlier18:35
frobwaremgz: as in the same fix was applied previously?18:35
mgzas in, that borked rev has bad construction of maasInstance in tests but that's already fixed in maas-spaces218:36
mgzfrobware: shipit18:36
frobwaremgz: the diffs between original and maas-spaces2: http://pastebin.ubuntu.com/15394092/18:38
frobwaremgz: I don't recall seeing a bad construction in the original18:39
mgzfrobware: yeah, that's fine18:39
frobwaremgz: ok, thanks. going to merge and let's see if things are better throughout.18:40
* natefinch is in dependendency hell18:44
natefinchwith an extra end just in case18:45
katcoericsnow: natefinch: fyi they're digging  up the sidewalk again. if i drop out, that's why18:46
ericsnowkatco: k18:46
natefinchkatco: k18:47
kwmonroecould someone help me configure azure correctly for 2.0-beta2?  i've followed this https://jujucharms.com/docs/devel/config-azure and created what i think are valid creds in my $JUJU_DATA/credentials.yaml (app-id, app-password, sub-id, tenant-id), but bootstrapping gets me this:  http://paste.ubuntu.com/15394344/19:01
kwmonroei don't have anything in clouds.yaml that describes azure at all.  do i need that with some config for the virtual network?19:02
rick_h__kwmonroe: sure thing, the release notes leads you down a long path for the username/password version19:03
rick_h__kwmonroe: are you using the user/pass or the key file?19:03
perrito666kwmonroe: that might be a bug you just found, perhaps that viertual netwrok already?19:03
kwmonroerick_h__: i'm auth-type: userpass19:03
kwmonroeperrito666: i'll check if i can navigate the azure portal to look for pre-existing virt networks.19:04
kwmonroerick_h__: the release notes said this "To use the new Azure support, you need the following configuration in environments.yaml", but i didn't find an env.yaml to modify, so i wasn't sure if/where those opts should go.19:05
kwmonroeclouds.yaml?19:05
rick_h__kwmonroe: sorry, there's a section on the new arm provider in there and this needs to go into credentials.yaml19:06
rick_h__kwmonroe: clouds.yaml is just the api endpoints/regions/cloud data that you can reuse with many credentials/etc19:06
kwmonroeahhh, roger that19:06
rick_h__kwmonroe: sent you a PM with step by step19:06
rick_h__kwmonroe: I got those steps from the release notes on the new ARM provider in 2.019:06
kwmonroegracias rick_h__!19:06
natefinchIf I set dependencies so charmstore-client tests pass, then charmrepo tests fail (which charmstore-client relies on).19:08
katcoericsnow: merge is up: http://reviews.vapour.ws/r/4181/19:15
ericsnowkatco: thanks19:15
katcoericsnow: pay special attention to cmd/juju/charmcmd/store.go19:15
=== tinwood-dinner is now known as tinwood
mupBug #1557714 opened: "juju status-history" doesn't work correctly <cli> <juju-core:Triaged> <https://launchpad.net/bugs/1557714>19:20
voidspacefrobware: ah, oops19:25
voidspacefrobware: LGTM19:25
voidspaceI'm EOD19:25
perrito666ok, does anyone have experience with autoload-credentials?19:33
* perrito666 eyes at rick_h__ 19:33
rick_h__perrito666: I spec'd it, not really experience with it. What's up?19:37
perrito666well I want to add an openstack from my novarc19:38
perrito666I run it19:38
perrito666it asks me for a cloud, I have no cloud to add those credentials to19:38
perrito666I try to add cloud, it asks me for a cloud.yaml19:38
perrito666kind of defeats the purpose19:38
rick_h__perrito666: so cloud != credential19:38
rick_h__perrito666: cloud = api endpoint and metadata19:38
rick_h__perrito666: so you have to add the cloud, and then when you autoload-credential it'll be attached to that cloud19:39
rick_h__perrito666: imagine you've got multiple openstacks, prodstack, canonistack, serverstack...19:39
perrito666oh I would have expected the add-cloud part to be wizardy too19:39
rick_h__perrito666: no, there will be some cli prompting in the future19:39
rick_h__perrito666: but for now, it's "pass me some yaml looking info I can use to ping that clooud"19:39
perrito666or even more inteligent, autoload to just make me the proper questions to create the cloud19:39
rick_h__perrito666: one day19:40
jamperrito666: http://reviews.vapour.ws/r/4182/19:40
jamif you're interested19:40
perrito666jam: I definitely am, reviewing19:41
perrito666I also am OCR so not a chance to skip it :p19:41
jamperrito666: having actual progress information when bootstrapping lxd is pretty darn nice19:41
jamrather than it just hanging for 5 minutes and you're wondering WTF is going on.19:42
perrito666it is, I dont know dubai, but in south america is really useful :p19:42
jamye old "juju bootstrap local" problem.19:42
kwmonroerick_h__: perrito666:  looks like i missed "azure provider register Microsoft.Network" first time around.. all looks good now.  thanks!!19:47
perrito666kwmonroe: great to hear that19:48
rick_h__kwmonroe: awesome, if there's suggestions to the docs to clear it up please let us know19:48
kwmonroewill do rick_h__19:48
perrito666jam: got reviewed19:54
jamthx perrito66619:54
perrito666jam: definitely in need of testing19:54
perrito666but nothing that cant wait to after beta319:55
jamagreed. this was mostly about proof-of-concept, but I wanted to get that pushed up to make sure it was going in a good direction19:55
jamthanks for the StatusCallback pointer.19:55
perrito666jam: we are even, I saw you fixed a couple of typos I introduced19:57
katcoericsnow: natefinch: do we need to do a standup? is wallyworld coming to the earlier (for him) time?20:12
ericsnowkatco: not sure what his specific plans are20:12
katcoericsnow: natefinch: well, we already kind of did a standup earlier, so only reason is to catch him up20:13
ericsnowkatco: as far as I'm concerned we got everything covered standup-wise20:13
natefinchkatco, ericsnow: ditto20:13
katcoericsnow: natefinch: agree.. ok then i've hit my limit i need to go lay down20:13
ericsnowkatco: hope you feel better20:13
katcoericsnow: ty20:13
natefinchericsnow: I have a small PR I need reviewed before I can land the bigger PR for adding --resources to publish: https://github.com/juju/charmrepo/pull/7220:14
ericsnownatefinch: I'll take a look20:14
natefinchkatco: btw, figured out the rpoblems I was having, just dependency issues20:14
mupBug #1557726 opened: Restore fails on some openstacks <backup-restore> <openstack-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1557726>20:15
natefinchericsnow: I'm reviewing your deploy w/ revisions review20:15
ericsnownatefinch: LGTM; you still need one from the UI team, no?20:16
natefinchericsnow: probably20:23
natefinchericsnow: when you get an hour, this is good, and I think you'll like it: https://vimeo.com/8053353620:37
ericsnownatefinch: cool; I'll take a look20:38
=== natefinch is now known as natefinch-afk
ericsnowkatco: FYI, I've finished reviewing your merge-from-master patch20:56
mupBug #1557747 opened: [LXD provider] Trusty container is used by default on Xenial host <docteam> <juju-core:New> <https://launchpad.net/bugs/1557747>20:57
menn0davecheney: review please: http://reviews.vapour.ws/r/4183/21:02
cmarsmenn0, quick review please? http://reviews.vapour.ws/r/4184/21:59
menn0cmars: will do22:02
cmarsmenn0, thanks22:02
menn0davecheney: thanks for that review. here's the next one (small): http://reviews.vapour.ws/r/4185/diff/22:03
menn0cmars: ship it22:04
roryschrammis it possible to specify a custom apt repository when juju deploys an app to an lxc container? ie the lxc container will use http://myrepo/ubuntu in /etc/apt/sources.list22:08
mupBug #1557769 opened: private-address returns name, not ip, under 1.25.4 <juju-core:New> <https://launchpad.net/bugs/1557769>22:18
menn0davecheney: just responded to your review comments for http://reviews.vapour.ws/r/4185/22:29
menn0davecheney: I think you're missing what that type assertion is doing22:33
menn0davecheney: it's pretty awful22:33
menn0davecheney: it's taking very limited interface and with the knowledge that the thing underneath is actually a *state.State is converting it22:33
menn0davecheney: saying it out loud, I really don't like the way it's done :)22:37
menn0davecheney: I'll try a different approach22:37
davecheneyi don't understand why the interface value passed into the method cannot be used22:41
davecheneyis it the wrong type ?22:41
menn0davecheney: basically yes.22:41
menn0davecheney: migration.ExportModel requires a *state.State, not the Backend interface22:41
menn0davecheney: I'm trying to avoid requiring the use of *state.State in the tests22:42
davecheneywhy can't you use an interface22:42
menn0davecheney: I'm changing ExportModel to take an interface22:42
davecheneyyou just want the behvaiour22:42
menn0davecheney: easier said than done when you have a monster like state.State22:43
menn0davecheney: but for export it's actually doable22:43
davecheneyhow many methods does it expect ?22:44
menn0davecheney: in this case 122:44
menn0davecheney: for import 10's if not 100's (the tests use StateSuite there)22:45
menn0davecheney: actually I lie, it's not too bad for import eithger22:45
menn0davecheney: let me fix this22:45
davecheneymenn0: cherylj bogdanteleaga https://github.com/juju/juju/pull/474923:01
wallyworldaxw: let me know when you've got a moment so i can chat about the schema stuff23:50

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