SpamapSShould be pretty simple too.. if hook=changed && len(relation_changes) == 0: relation.set_state('steady')00:00
jimbakerSpamapS, i just don't understand why that isn't a relation setting itself00:00
SpamapSjimbaker: so you're going to make state a special relation setting?00:00
jimbakeryou could put any number of such state variables in the relation settings, just need to agree on a conention00:00
SpamapSthat seems to violate the encapsulation that is around relation settings right now00:01
jimbakeri just don't see the special treatment required, that's all. it's just between service units anyway imho00:02
SpamapSThe convention I'm agreeing on is that the hooks decide not to change anything, so this is a clear intent: that side of the relationship is steady.00:02
SpamapSIf both sides of a relationship are steady, it would be considered fully established.00:02
jimbakersure, that might be useful from a status perspective00:03
SpamapSfrom an ordering perspective, its vital00:03
SpamapSI need to know that keystone has mysql and rabbitmq before I start asking it for credentials00:03
jimbakeri guess i just don't understand why relation settings are not powerful enough to express this00:03
SpamapSjimbaker: they're *too* powerful00:04
SpamapSjimbaker: they're free form, and can be anything... juju shouldn't imply anything by any of the relation settings.00:05
SpamapSBut you can absolutely imply that the relationship is fully estblished if neither side sets any values.00:05
* SpamapS feels that perhaps code is needed.00:05
jimbakerSpamapS, right, but again, i don't understand why juju should do anything except sit back and orchestrate. anyway, agreed on the utility of saying this in status00:05
SpamapSIt is going to sit back and orchestrate. Right now it is providing relationships that it cannot possibly satisfy00:06
SpamapSjimbaker: keystone simply cannot provide 'interface: keystone' until it has mysql and rabbit00:06
SpamapSjimbaker: if you make a relation setting special, that will work. But there's no need for tampering with relation settings. You have an implied state already.00:07
jimbakerSpamapS, i definitely don't want to make any relation setting special00:07
jimbakerother than whatever interface two services agree upon, without juju making any special assumptions about that00:08
SpamapSright so I think we're talking past eachother then00:09
jimbakerSpamapS, no worries. i'm sure it will be clearer with some good code examples00:10
jimbakerand we should definitely put this api change out there for juju status and 'steady'00:11
jimbakerand see if that's something that can be done or not00:12
SpamapSI don't necessarily think it has to be an API change at first00:13
SpamapSwell yeah, using a second state would be lame00:14
SpamapSbut really, this has almost *nothing* to do with status output00:14
SpamapSthats just a nice side effect00:14
jimbakerSpamapS, changing the unit lifecycles is an api change, even if it's pretty trivial as above00:16
SpamapSjimbaker: aye00:17
adam_ghazmat: still around?01:00
hazmatadam_g, yup01:11
SpamapSgoing through the steady state idea in my head.. I think its doable.. but would break ZK backward compatibility01:13
SpamapSsince you'd need a new state for unit relations01:14
adam_ghazmat: im adding some of these optional required relations to the nova charms, as per our conversation last week. now i'm hitting the 'Ambiguous relation' errors. is that just a PITA atm or are actually charms not meant to provide multiple interfaces?01:17
SpamapSadam_g: you were just meant to always be explicit about which relation you meant to use. :)01:17
hazmatadam_g, if a charm provides the same interface multiple times, the name has to be specified when adding the relation01:17
hazmatadam_g, this was in regard to nova-compute and nova-volume depending on nova-controller?01:18
SpamapShazmat: thats actually a pretty big problem... we'll break lots of deploy scripts any time we add an optional relation for convenience purposes or something. :-(01:18
ejathazmat & SpamapS : mind to help with this http://paste.ubuntu.com/832099/01:19
adam_ghazmat: yes, about having an optional cloud-controller interface that is listed in the metdata but actually has no hooks. there is also another interface on cloud-controller that is specific to compute nodes, which is causing the ambiguity01:19
SpamapSejat: you forgot 'local:'01:20
ejatif i want to try at ec2 ?01:20
hazmatSpamapS, true, either we spec them explicitly or avoid the use of multiply providing it.01:21
hazmatejat, its still local: prefix to the charm01:21
ejatrepository ?01:21
* ejat blur01:21
SpamapSadam_g: no hooks? doesn't that sort of mean that its not the same interface?01:21
SpamapSejat: symfony should be 'local:symfony'01:21
hazmatadam_g, yeah.. that sounds odd01:21
ejatSpamapS: owh okie01:22
hazmatadam_g, so take nova-compute.. http://charms.kapilt.com/~gandelman-a/precise/nova-compute01:23
hazmatits depending on nova-volume, but its using a generic interface 'nova'01:23
adam_gas we discussed last week, there is the issue that nova-compute and nova-volume will never have a direct relationship between them, but listing them in the metadata helps model the dependencies of the entire deployment, at least IIRC01:23
hazmatwhich is also used by nova-cloud-controller01:23
hazmatthere are different interfaces01:23
hazmatadam_g, the ambiguity was that both 'nova-cloud-controller' and 'nova-volume' provide the 'nova' interface01:24
hazmatthats actually two interfaces, they don't provide the same thing01:25
adam_gnova-volume will now provide instance-storage:nova-volume01:25
hazmatsounds good01:25
adam_gnova-cloud-controller cloud-controller:nova01:25
adam_gnova-volume + nova-compute both interface with cloud-controller:nova01:26
hazmatso now nova-compute depends on nova, and nova-volume, and nova-volume depends on nova01:26
hazmateek hard to parse01:26
adam_ghazmat: i guess whats fuzzy to me is the dependency between nova-compute and nova-volume.  there will never be a direct relation, but IIRC last week we discussed listing it in nova-computes metadata as an optional require:, is that right?01:27
hazmatadam_g, they depend on the interface not the named interface, but sounds good, why doesn't nova-compute have a dependency on the 'nova-volume' interface01:27
SpamapSI'd guess because they can exist w/o eachother.01:28
adam_gnova-compute and nova-volume never talk to one another directly, the message bus and database provide that01:28
hazmatadam_g, what's the api endpoint?01:28
adam_gand yes, one can exist w/o the other, tho the features its exposed to would then be limited01:29
hazmatadam_g, do nova-compute and nova-volume both have different api endpoints?01:29
ejathttp://paste.ubuntu.com/832105/ .. i follow wordpress charm01:29
adam_ghazmat: they dont have api endpoints01:29
hazmatadam_g, what component offers the nova api?01:29
adam_ghazmat: nova-cloud-controller01:29
adam_g(nova-api, nova-scheduler)01:29
SpamapSejat: sweet01:29
hazmatadam_g, then nova-cloud-controller has the dependency on nova-volume and nova-compute01:29
adam_ghazmat: right01:30
ejatbut it wont expose :(01:30
adam_ghazmat: and nova-compute + nova-volume have no knowledge of each other, in terms of metadata/hooks. correct?01:30
SpamapSejat: state: pending ... you need 'state: started' ;)01:30
hazmatadam_g, right01:30
adam_gok i think we're on the same page now :)01:31
ejatapache not start ?01:31
SpamapShazmat: so, whats the idea here? that you can relate them to aid with what?01:33
SpamapSejat: ssh in and look at /var/lib/juju/units/symfony-0/charm.log01:33
ejatthanks .. forget -y :)01:35
ejatbrb ..01:35
ejatfixing it ..01:35
hazmatSpamapS, no need for the additional relation, just trying to unambigiously identify the dependencies for a charm01:42
hazmatSpamapS, the current nova-compute has an ambigious dependency around 'nova' which could be satisified by nova-volume or nova-cloud-controller, but it sounds like really that dependency doesn't exist, and instead its the nova-cloud-controller that depends on unique interfaces of -volume and -compute01:43
SpamapShazmat: yeah it sounds like the nova interface was accidentally overloaded01:43
ejatSpamapS: http://paste.ubuntu.com/832120/01:47
ejatwhich charm sample should i refer01:47
ejatfor the mysql thingss01:47
SpamapSejat: there is already a mysql charm. Why are you deploying mysql?01:52
ejatowh .. thnaks remind .. sorry ..01:53
ejatremoving it ..01:53
SpamapSejat: its perfectly normal to have mysql + another thing in one charm.. just seems odd01:53
ejatbcoz just now i test it all in one ..01:54
SpamapSejat: anyway, if you use the juju from the PPA, instead of oneiric.. you'll get DEBIAN_FRONTEND=noninteractive when you run 'apt-get -y install foo' it won't ask these questions.01:54
* SpamapS hopes to SRU that back to oneiric.. if we fix the bug where you can't SRU juju because it won't allow pulling from proposed. :-P01:54
ejatalready put -y01:54
SpamapSanyway, I have to go01:54
* SpamapS disappears01:55
ejatok ..01:55
adam_ghazmat: sent some merge proposals to fix the interfaces on the oneiric branches. need to update that deployer script those ambigious relations before fixing precise, else our CI breaks02:05
hazmatadam_g, why do you have ambigious relations?02:06
adam_ghazmat: nova-cloud-controller provides a second interface to nova-compute for nova-network configuration02:08
hazmatnova-cloud-controller afaics shouldn't be providing interfaces to nova-x services. it should be depending on all of the nova-x's02:09
hazmatnova-cloud-controller depends on nova-network, nova-volume, nova-compute interfaces02:10
adam_ghazmat: there is currently no nova-network charm. depending on which networking flavor is configured, nova-network may run on the cloud-controller or compute node.02:10
ejathazmat: http://paste.ubuntu.com/832144/02:11
adam_ghazmat: configuring FlatManager requires nova-network on the cloud-controller + a bridge interface manually configured on -compute + -cloud-controller. FlatDHCPManager requires no bridge configuration, but nova-network running on the compute node with a couple of flags set in config02:12
=== hspencer is now known as hspencer[afk]
hazmatadam_g, sounds like something which needs to be driven off the 'nova-compute' relation between -cloud-controller and -compute, in those cases its not really a separate charm02:13
hazmatadam_g, with quantum does the network component still have to be installed on the compute nodes?02:14
adam_ghazmat: im not sure, i haven't touched quantum yet. AFAIK, its a seperate service that runs somewhere in the deployment with nova-network configured to use a pluggable QuantumManager driver like it would FlatDHCPManager02:15
=== hspencer[afk] is now known as hspencer
=== asavu_ is now known as asavu
niemeyerGood mornings!12:00
jcastroSpamapS: may I G+ you when you're around?15:42
jcastroI need maybe 10 minutes of feedback from you and then I'll be done. :)15:43
SpamapSjcastro: server team meetings have me busy from now until 2+ hours from now15:44
jcastrook, can I have dibs after?15:44
SpamapSjcastro: you had dibs at hello15:57
SpamapSjcastro: You had dibs at *HELLO*15:57
* SpamapS breaks down15:57
koolhead17SpamapS: good morning sir!! :)15:58
mplSpamapS: Hello?16:05
mplfeeling any better now? :)16:05
_mup_Bug #928348 was filed: Charm bundles should work with symlinks <juju:New> < https://launchpad.net/bugs/928348 >16:27
SpamapSmpl: hi!16:34
=== hspencer is now known as hspencer[mtg]
hazmatm_3, SpamapS, adam_g fwiw i've put the automated charm testing tools i've been experimenting with over here https://code.launchpad.net/~hazmat/+junk/charmrunner17:34
hazmatcurrently it can generate an automated test plan for deps and setup an environment from a json file (the environment is reusable between setups)17:38
jcastroSpamapS: available yet?17:56
SpamapSjcastro: meetings over soon17:57
SpamapSjcastro: t-minus 5 minutes18:28
=== hspencer[mtg] is now known as hspencer
SpamapSjcastro: GO18:35
jcastroSpamapS: hangout firing up18:35
otuboHello guys, I was wondering if the 'stop' hook is called when calling 'destroy-environment' command.19:09
otuboMy idea is to backup my data and upload it (to dropbox, for example) before actually destroying the instance.19:09
SpamapSotubo: Currently stop is never called.20:44
SpamapSotubo: destroy-environment == rm -rf20:44
SpamapSotubo: be careful. :)20:44
otuboSpamapS, roger that! Thanks :-)21:43
hazmatbcsaller, adam_g, SpamapS  fwiw, i ended up doing this for service watching.. http://bazaar.launchpad.net/~hazmat/+junk/charmrunner/view/head:/charmrunner/watcher.py22:26
SpamapSoh this is weird22:33
SpamapS$ juju set jenkins plugins='openid instant-messaging ircbot bazaar'22:34
SpamapSExpected `option=value`. Found `instant-messaging`22:34
SpamapSno way to do a space delimited value22:34
hazmatSpamapS, i think you just need the right escape there22:35
SpamapSjuju set jenkins plugins=openid\ instant-messaging\ ircbot\ bazaar22:35
SpamapSthat doesn't work22:35
SpamapSI wonder if this is argparse's problem22:36
hazmatSpamapS, it might be a problem with the parse logic.. i'd try a double qoute..22:36
SpamapSjuju set jenkins "plugins=openid instant-messaging ircbot bazaar"22:36
SpamapSdoes not work22:36
SpamapSsh -c 'juju set jenkins "plugins=openid instant-messaging ircbot bazaar"'22:37
SpamapS*that* worked22:37
Atlantic777m_3: hi! Hen you held an class in #ubuntu-classroom during ubuntu developer week you were using something to show us juju via ssh. What tool was thta?22:52
* Atlantic777 has to change keyboard...22:53
m_3Atlantic777: hey23:12
m_3Atlantic777: I was using a charm called juju-classroom... it's just a specialization of byobu-classroom23:13
Atlantic777m_3: a friend of mine wants to start irc classrooms so I find this a useful thing for him. :)23:14
m_3Atlantic777: sure thing23:15
m_3there're plans to scale this... it's limited by ajaxterm atm23:16
m_3somethiung like 20 connections at once or so23:16
Atlantic777m_3: native ssh client is more interesting :D23:16
m_3yup... that should scale nicely23:17
SpamapSYeah should be able to scale out using a simple tiered approach where every node ssh's once time into the backend byobu and then all ssh clients just join that screen.23:39

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