/srv/irclogs.ubuntu.com/2017/10/12/#juju.txt

rick_hbdx: sorry, was at the boy's soccer game. you get setup?00:02
bdxrick_h: yeah, g2g00:30
bdxrick_h: so am I right to think that the way an interface sets host ip info (as many do), say on the provides side of the relation00:31
rick_hbdx: cool, I'm testing out the CMR version of prometheus right now. /me just made the relation and hopes this works out00:31
rick_hbdx: sorry, I didn't parse that with a question in it?00:32
bdxshould now be done differently then the now legacy way00:32
rick_hbdx: yes, I think so00:32
rick_hbdx: a lot of charms I think will need updating to work in a CMR world00:32
rick_hbdx: so once I prove this works I want to get a couple of solid examples and start making a LOT of noise to charmers00:32
bdxyeah,00:33
bdxso00:33
rick_hand damn it didn't work.../me goes debug-log chasing00:34
bdxthis is my mod of the http interface https://github.com/jamesbeedy/interface-http/blob/network_get/provides.py#L2000:34
bdxsuch that it only allows the providing layer to set those values00:34
rick_hoh, dammit I didn't deploy my forked charm whoops00:34
bdxinstead of https://github.com/jamesbeedy/interface-http/blob/master/provides.py#L2200:35
bdx^ the old way00:35
bdxwhere the ip address is obtained and set in the interface code00:35
bdxvs my new way00:35
bdxor00:35
bdxthe* new way00:35
bdxwhere we use network_get()00:36
rick_hbdx: hmm, yea I'm not sure on that part. I've found that confusing in my work as well the line between work done in the layer vs the reactive bits of the charm itself00:40
bdxso00:41
bdxrick_h: https://github.com/jamesbeedy/newcharm/blob/master/reactive/newcharm.py#L2200:41
bdx^that worked for me00:41
bdxwith the network-get branch of the interface-http from above^00:42
bdxbut I'm not sure if that the way we *want* to be doing it00:42
bdxI could have passed the interface name into the relation data, then used network_get() in the interface code to parse there00:44
bdxbut that just doesn't seem right00:44
bdxpossibly the interface name is already available in the conversation00:46
rick_hbdx: hmmm, but is the interface name defined by the layer?00:46
bdxyeah00:46
rick_hbdx: I mean if you've got the mysql layer you know you're speaking db already00:46
bdxoh00:47
bdxI see00:47
bdxso the provides side of the interface can have a static defined interface name, because we know what it is in the providing layer00:48
bdxand then the provides.py can just define that00:48
bdxand use it in network_get()00:48
bdxthat sounds a bit nicer00:48
bdxrick_h: like this https://github.com/jamesbeedy/interface-http/blob/network_get/provides.py#L2000:53
bdx?00:53
bdxrick_h: ^ doesn't work00:53
bdxbecause we don't know that the layer will name the interface http00:53
bdxthe name that the layer gives interface-http is defined in layer.yaml00:54
bdxso I just don't see a legitimate way of hardcoding it in the interface code00:54
bdxthe only case where ^ works is if you name the http interface http in your layer00:55
rick_hbdx: hmmm...yea00:55
bdxsee what I'm saying00:55
rick_hbdx: and the relation id is going to be needed in cases where you relate more than once as well. This seems messy00:55
bdxright00:55
rick_hlol...damn this is cursed00:56
rick_hso I have this updated prometheus charm00:56
bdxrick_h: yeah, I read through your changes00:56
rick_hand it's target endpoint is offered...but now because it's offered prometheus auto adds itself as a target.00:56
rick_hso it's loading itself using the public addresss since it's offered as a CMR endpoint00:56
rick_hwhich then fails because prometheus isn't exposed (even to itself over the public IP)00:57
rick_hso "working as intended" ... but broken00:57
* rick_h beats head on the wall for inspiration00:57
bdxI see00:59
bdxrick_h: what is ever done with "address" in write_prometheus_config_yml()00:59
bdxI see its set, but never used01:00
bdxa bit confusing for sure01:00
rick_hbdx: so it's used to write out the prometheus.yml file later in that function01:01
bdxoh01:02
bdxI don't see the var "address" used again ... bad eyes01:02
rick_hbdx: it's not part of that diff, it's used with private_address key in options later in that function01:02
rick_hbdx: oh lol, I didn't update that01:03
bdxok01:03
* rick_h must have done some bad copy/paste/etc01:03
bdxlol,01:03
rick_h'private_address': hookenv.unit_get('private-address'),01:03
rick_hthat's supposed to be the address bit01:03
bdxyeah01:03
bdxthats what I thought01:03
rick_hsomehow missed that. I started with a charm pull (no git bits) and made changes/etc and then tried to merge them to a git clone from LP and must have missed it somehow01:04
* rick_h is stumbling around charming like a noob still01:04
bdxso I think (for the case of http interface) it seems most sane to use network_get() in the providing layer, and set the ip info on the relation from the provides01:04
bdxme 201:07
bdx{'ingress-addresses': ['107.22.129.65'], 'bind-addresses': [{'addresses': [{'cidr': '172.31.48.0/20', 'address': '172.31.51.59'}, {'cidr': '172.31.48.0/20', 'address': '172.31.51.59'}], 'interfacename': 'eth0', 'macaddress': '12:ba:53:58:9c:52'}, {'addresses': [{'cidr': '252.48.0.0/12', 'address': '252.51.59.1'}], 'interfacename': 'fan-252', 'macad02:30
bdxdress': '1e:a2:1e:96:ec:a2'}]}02:30
bdxrick_h: we should work on coming up with a strategy for parsing ^ depending on what you want02:31
bdxfor example, I want the private network interface ip for the instance02:31
bdxtheres no clear way to distinguish which of ^ addresses it is ....02:32
bdxI know02:32
bdxyou could check for interface names in the dict02:32
bdxand then decide to do based on what interfaces you find02:32
bdxbut ^ so hacky02:33
rick_hbdx: yea, the key thing is I need to better understand what could possibly come out of that dict02:40
rick_hbdx: atm it's not 100% clear and what's useful vs not as useful. I assume later updates to the code can do things like add additional kwargs to the network_get to be more useful02:40
rick_hbdx: so that's why I've started out just dumping all the data back to start02:40
bdxyeah, I'm doing the same02:41
bdxgood call02:41
bdxrick_h: what about a "default" space02:42
rick_h?02:43
rick_hbdx: sorry, getting late here and I'm slow and not following02:43
bdxsorry, no, its my bad, same02:43
bdxwhat I'm digging at here, is how to get what I want from the network_get() output in a no-nonsense way02:44
rick_hbdx: yea, I think the key is going to be that the charm has to be deployed with the interface bound to a space.02:45
bdxentirely02:45
rick_hbdx: but going to punch out for the night. good luck and let me know how it goes!02:45
bdxkk02:45
bdxthanks02:46
rick_hnp, ty for banging on stuff02:46
=== blahdeblah is now known as blahdebsvlah
=== blahdebsvlah is now known as blahdeblah
AkshayHi All, can someone please help me here. We at Veritas Technologies LLC are trying to deploy juju based openstack pike bit but the deployement is failing for mysql charm at hook "shared-db" with error "keystoneauth1.exceptions.http.InternalServerError: Internal Server Error (HTTP 500)"05:32
Akshay_Hi All, can someone please help me here. We at Veritas Technologies LLC are trying to deploy juju based openstack pike bit but the deployement is failing for mysql charm at hook "shared-db" with error "keystoneauth1.exceptions.http.InternalServerError: Internal Server Error (HTTP 500)"06:12
burton-ausHi Akshay_ would you mind to subscribe this mailing list then send your question there with details? juju@lists.ubuntu.com07:49
burton-ausAkshay Akshay_ the subscription link is: https://lists.ubuntu.com/mailman/listinfo/juju07:53
Akshay_thanks for the help Burton, I will try that.09:11
burton-ausAkshay_ no worries.09:21
Akshay_Hi Burton, I have subscribed to the mailing list, after how much does it generally gets verified/confirmed?10:03
Akshay_As my mails are getting rejected for now10:03
burton-ausAkshay_ let me ask admin to approve it for you.10:43
=== freyes__ is now known as freyes
=== cassiocassio is now known as cassio
=== cassio is now known as cassiocassio
skayhow can I get the set of current flags during tests? I'd like to do something similar to wait_for_messages from amulet14:40
cory_fuskay: There's no API for that defined directly in Amulet, but you can use something like yaml.loads(unit.run('charms.reactive get_states --format=yaml')).keys()14:46
skaythanks14:46
cory_fuskay: kwmonroe just reminded me that you should probably use get_flags instead, which I think would make the .keys() bit pointless as well14:47
skayack, thanks!14:47
skayI'm forcing an error in my reactive method that handles a flag being set, and my status shows this: (upgrade-hook) my error message14:51
skayI've been doing that live, but now I want to get an amulet test going so that I can figure out why that's happening14:51
skayI'd prefer to give a status to the operator that the failure is inside my method and not due to a failure in a hook14:52
skaythat's another problem I've been having14:52
skayalso, TIL I shouldn't use an error status, I should use blocked.14:53
skayhmm, I've let it run for a while and the status has settled down and no longer prefixes it with the hook name. I can make due to prefixing my error statuses by hand for now if I want that14:55
kwmonroeskay: i'm not entirely sure what you're asking -- are you having trouble setting/catching status in an amulet test?15:00
kwmonroeand yeah, +1 on blocked vs error (when you're actually blocked, of course :)15:01
skaykwmonroe: no. I was having trouble with the status appearing how I wanted it to15:01
skaykwmonroe: I was mistaken, end of problem.15:01
kwmonroew00t - the end of a problem is the best part.15:01
skaykwmonroe: for a while, it looked like the status I had set was appended to "(upgrade-hook) <my status string>"15:01
skaycarry on :)15:02
kwmonroeheh15:02
ryebotWhat does the offline story for juju look like?15:53
ryebotAre there any docs for offline installs?15:53
bdxI'm wondering about a story too, does lib-juju have support for JAAS (obtaining/discharging the macaroons) yet?16:07
cory_fuskay: The hook name prefix is just to indicate which hook is currently executing and should not be considered when matching status messages in Amulet17:23
skayack17:24
cory_fuIt's automatically added in the tabular format status by Juju, but isn't actually part of the message.  You can see the raw message with `juju status --format=yaml [application]`17:24
razorzAnyone seen an issue with using juju/lxd on an ubuntu server box hosted on an ESXi box and trying to do bridging? lol  I got it working last night on my home machine (bare metal) in like 5 minutes, but on this server, even after a clean install, it's still a mess..20:00
bdxrazorz: ensure to set promiscuous to 'true"20:04
bdxon your esxi interfaces20:04
bdxrazorz: and also on the vm interface too20:07
bdxnot sure thats your problem20:07
bdxbut thats where I would start20:07
razorzbdx: I'll check that, thanks20:15
bdxnp20:15
razorzbdx: very possible promiscuous was the issue21:30
bdxrazorz: cool, yeah .... I know its disabled by default, and an easy thing to miss. glad you got it working21:32
razorzbdx: I literally spent 15 hours on this.. creating new bridges, breaking LXD totally to the point I had to reinstall the OS and it was that dumb lol21:36
bdxrazorz: lol oh man, at least you gave it a good go21:37
bdxrazorz: "even after a clean install" - these were your key words21:39
bdxlol21:39
bdxrazorz: I feel your pain with that though, I cant even count how many times that had bitten me with "clean installs" of esxi21:43
razorzbdx: well I've been so used to dealing with nothing but ESXi and basic Linux crap and of course windows.. and I do all the Cisco routing here as well. I thought i had a routing issue going on21:44
razorzand that I was oblivious to the way that Linux handles bridges21:44
razorzbut when it worked at home in a few minutes I was dumbfounded.. then came here and did the exact thing and it timed out, wanted to punch my screens21:44
bdxhaha, right21:44

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