*** kzaitsev_mb has joined #openstack-app-catalog | 00:08 | |
*** rhagarty_ has quit IRC | 00:09 | |
*** rhagarty has joined #openstack-app-catalog | 00:11 | |
*** kzaitsev_mb has quit IRC | 00:14 | |
lifeless | docaedo: hi sorry, unexpected guests turned up | 00:16 |
---|---|---|
lifeless | are you still around? | 00:16 |
docaedo | lifeless: no problem, and yep, I'm still around | 00:16 |
*** rhagarty has quit IRC | 00:17 | |
*** rhagarty has joined #openstack-app-catalog | 00:17 | |
lifeless | docaedo: cool | 00:17 |
lifeless | docaedo: so - is there some documentation around on the things reviewers look for in adding artifacts? | 00:17 |
lifeless | e.g. license, protocol, security, etc ? | 00:18 |
lifeless | or is it all tribal knowledge at the moment? | 00:18 |
docaedo | It's tribal knowledge at the moment, and nothing much is set in stone. | 00:19 |
lifeless | ok | 00:19 |
lifeless | so since that is what I committed to reviewing | 00:19 |
lifeless | perhaps I should just write down something that makes sense to me | 00:19 |
lifeless | and let the reviewers tell me what they do differently ? | 00:19 |
docaedo | that would be excellent | 00:19 |
lifeless | where would be the best place to put that? | 00:19 |
lifeless | in-tree in docs/ ? | 00:19 |
docaedo | yep | 00:20 |
lifeless | ok | 00:20 |
lifeless | I'll work something up- cheers | 00:20 |
docaedo | thanks a bunch man! | 00:20 |
lifeless | np | 00:21 |
*** kzaitsev_mb has joined #openstack-app-catalog | 00:33 | |
docaedo | I had a good conversation today with some folks working on TOSCA and the TOSCA-Heat translator. If schedules line up, I think that topic will be on our agenda for the first meeting in december :) | 00:36 |
*** kzaitsev_mb has quit IRC | 00:38 | |
lifeless | nice | 00:39 |
*** rhagarty_ has joined #openstack-app-catalog | 00:45 | |
*** rhagarty has quit IRC | 00:47 | |
*** kzaitsev_mb has joined #openstack-app-catalog | 00:53 | |
*** kzaitsev_mb has quit IRC | 01:03 | |
*** kzaitsev_mb has joined #openstack-app-catalog | 01:30 | |
*** kzaitsev_mb has quit IRC | 01:36 | |
*** kzaitsev_mb has joined #openstack-app-catalog | 11:05 | |
*** openstackgerrit has quit IRC | 14:06 | |
*** openstackgerrit has joined #openstack-app-catalog | 14:07 | |
*** kebray has joined #openstack-app-catalog | 16:14 | |
*** kzaitsev_mb has quit IRC | 17:41 | |
kfox1111 | docaedo: ideally, the manage.py compress will generate everything needed, and apache itself won't have to write anything. | 18:35 |
kfox1111 | which is why I was a little puzzled why it needed write permissions. | 18:36 |
*** kebray has quit IRC | 18:36 | |
docaedo | kfox1111: ah ok - then I need to confirm that compress is trying to write to the correct place first - maybe if compress has been called first, the wsgi process won't try to write to that directory | 18:47 |
docaedo | I'll start messing with that right now, suspect today will be a less the full-length day ;) | 18:49 |
kfox1111 | yeah, thats what I'm guessing. somehow horizon's doing it slightly differently though. in horizon, if you set offline compression to true, it will just complain if one of the files don't exist at runtime. | 18:51 |
kfox1111 | :) | 18:51 |
kfox1111 | yeah, its nice and quiet here too. | 18:51 |
docaedo | is STATICFILES_DIRS generated from whatever STATIC_ROOT is? | 18:54 |
kfox1111 | its built in openstack_catalog/static_settings.py | 18:55 |
* docaedo happened to be looking there right this moment :) | 18:55 | |
kfox1111 | its stuff to be pulled in to the static dir by the system. | 18:56 |
kfox1111 | so, mostly the dependencies. | 18:56 |
kfox1111 | then, if you look at something like: cat openstack_catalog/templates/_scripts.html | 18:57 |
kfox1111 | the compress js section, | 18:57 |
kfox1111 | manage.compress will read in every file in the section, merge them all to 1, json minify it, and then put in a <script src='somehash.js'> in its place. | 18:58 |
docaedo | yeah not what I need to look at :) I realize the issue of sorts is that manage.py is being run without the overrides the WSGI gets from local_settings.py, so it is trying to write the compress output to the git clone dir | 18:58 |
kfox1111 | so the browser doesn't have to pull in several big files, just one smaller one. | 18:58 |
kfox1111 | so is the manage.py getting the openstack_catalog dir in preference to the one in the python path? | 18:59 |
kfox1111 | hmm.... | 18:59 |
kfox1111 | I guess you could write out local_settings.py into the git checkout instead of the python path. the pip install happens after the local_settings.py is written, it would be copied along to the right place too. | 19:00 |
docaedo | the problem with that is there's potential for git conflicts later (or maybe the vcsrepo module can get unhappy?) so infra folks say not to touch stuff in that dir to ensure future git pulls work reliably | 19:01 |
kfox1111 | hmm... I'd assert we should never checkin a local_settings.py, but yeah, I can see that argument. | 19:02 |
kfox1111 | you could copy manage.py into the installed directory. that might cause it to find the right path too. | 19:03 |
kfox1111 | hmm... no, it would want to be in the parent directory... | 19:05 |
docaedo | but manage.py expects to be one directory above openstack_catalog | 19:06 |
docaedo | haha | 19:06 |
kfox1111 | :) | 19:06 |
kfox1111 | well, its a venv right? | 19:06 |
kfox1111 | if so, it won't ever conflict with another manage.py, so its probably fine to throw down there. | 19:06 |
docaedo | how can we tell manage.py to pull in vars from local_settings.py? oh I think manage.py can be told to get things from env vars... | 19:06 |
docaedo | and no, it's not in a venv | 19:07 |
kfox1111 | it will pull in openstack_catalog/settings.py, and settings.py will pull in local_settings.py | 19:07 |
kfox1111 | how were you trying to call the 'python manage.py compress' ? did you include the same pythonpath from the wsgi settings? | 19:08 |
kfox1111 | oh... and this may be part of it... horizon does the following commands outside of apache: | 19:10 |
docaedo | well openstack_catalog is installed in system, so just using system paths everywhere. But manage.py is being called from /opt/apps_site | 19:10 |
kfox1111 | /usr/bin/python /usr/share/openstack-dashboard/manage.py collectstatic --noinput | 19:10 |
kfox1111 | /usr/bin/python /usr/share/openstack-dashboard/manage.py compress --force | 19:10 |
kfox1111 | where /opt/apps_site is the git checkout? | 19:10 |
docaedo | seems like the collectstatic command is working | 19:10 |
docaedo | yes - here's what happens: | 19:11 |
kfox1111 | mkdir /opt/apps_mgmt; cp manage.py /opt/apps_mgmt? | 19:11 |
docaedo | clone app-catalog to /opt/apps_site; cd /opt/apps_site; pip install .; the copy local_settings.py from puppet templates dir to installed directory | 19:12 |
kfox1111 | hmm... command name doesn't really matter either, so we could just cp manage.py /opt/apps_site_manage.py | 19:14 |
kfox1111 | then run that out of /opt. | 19:14 |
docaedo | let me try something, we can when calling manage.py collectstatic include --pythonpath OR --settings to point to an additional path or specific settings module | 19:15 |
kfox1111 | the problem is, python can only find one version of a module. it can't have subcomponents in the same module in a different place. | 19:16 |
docaedo | ah | 19:16 |
kfox1111 | so by moving manage.py somewhere else, it gets it to stop looking at local for the module first. | 19:17 |
docaedo | oh wait, let me see if/how they solved this with askbot, which is a django site hosted by infra :) | 19:17 |
* docaedo thinks the answers are here: https://git.openstack.org/openstack-infra/puppet-askbot | 19:18 | |
* kfox1111 nodes they are using virtualenv's... | 19:22 | |
kfox1111 | notes | 19:22 |
docaedo | You sure about the virtual environments? | 19:23 |
kfox1111 | https://github.com/openstack-infra/puppet-askbot/blob/master/manifests/install.pp#L24 | 19:23 |
kfox1111 | pretty sure. :) | 19:23 |
kfox1111 | I'm not seeing a manage anywhere. | 19:24 |
kfox1111 | in examples though, they have this: | 19:24 |
kfox1111 | https://github.com/openstack-infra/puppet-askbot/blob/master/examples/site.pp#L131 | 19:24 |
docaedo | oh haha damn, I am looking at a clone from several months ago locally! | 19:25 |
kfox1111 | which looks like it may be a script hook somwhere. | 19:25 |
docaedo | BUT the venvs doesn't matter really for what we're running into | 19:25 |
docaedo | the version I was looking at previously was calling manage.py compress, but latest version, nope :/ | 19:26 |
kfox1111 | sure. just kind of funny. every openstack project seems to suffer from "no, do it this way" when they do it "wrong" themselves. :/ | 19:27 |
docaedo | yeah I know. I try not to think about that... | 19:27 |
kfox1111 | I'm guessing the manage.py call is in that other script it mentions. | 19:27 |
docaedo | they have a settings.py file in templates that gets put into the install dir, so we could do the same, and copy manage.py wherever we want, and call it with a pointer at settings.py (which would have whatever "production" values we want) | 19:28 |
docaedo | basically that's the same thing we're trying to do with local_settings.py | 19:29 |
docaedo | which is cleaner IMO, and requires fewer updates to the infra puppet module | 19:29 |
docaedo | (vs. having to remember if we make any changes to settings.py, they have to also be reflected in puppet module template copy) | 19:29 |
kfox1111 | yeah. so lets just try copying manage.py to /opt/apps_site_manage.py and call it from there. I think that would probably work. it will find the right openstack_catalog file from the system path then. | 19:30 |
docaedo | will try that | 19:34 |
docaedo | 642 static files copied to '/usr/local/lib/python2.7/dist-packages/openstack_catalog/web/static'. | 19:36 |
kfox1111 | that looks about right. :) | 19:36 |
kfox1111 | ah... I think compression is not requred if debug is still on. | 19:38 |
kfox1111 | we had forgotten to turn off DEBUG last we talked too. | 19:38 |
docaedo | yeah that's a new/different issue though | 19:39 |
docaedo | when I turn off debug in local_settings, I get bad gateway after the puppet run | 19:39 |
kfox1111 | yeah, but if debug was false, I think we would have noticed the apache trying to do the compression thing earlier. | 19:39 |
kfox1111 | bad gateway? | 19:39 |
docaedo | did not dig in yet to see why, but kept switching back and forth and was able to reproduce, so I wanted to get this one out of the way first | 19:39 |
kfox1111 | k. | 19:39 |
kfox1111 | bad gateway.... well, wsgi runs in a seperate process. if the process died for some reason, apache might print that... | 19:40 |
docaedo | let me put the manage.py stuff into the puppet manifest and try running that, confirm it does all the things we expect it should do | 19:40 |
kfox1111 | k. | 19:40 |
docaedo | running compress, I get this "Compressing... No handlers could be found for logger "scss.ast"" | 19:55 |
docaedo | is that nothing to worry about? Or does that mean it didn't actually do anything? | 19:55 |
kfox1111 | I see that too. never tracked down why yet. seems benign. | 19:55 |
docaedo | (and the other thing worked - I copied manage.py to the openstack_catalog install directory for the sake of keeping it clean, and not having to include a new path in the manifest - seems to work! | 19:56 |
kfox1111 | I think its a python logging configuration thing. | 19:56 |
kfox1111 | yeah, cause its not going to find openstack_catalog inside that dir, and so then searches the python path and finds it, I think. | 19:56 |
kfox1111 | seems like a good solution though. | 19:57 |
docaedo | so with debug false in local_settings.py I get "Bad Request (400)" for / .. BUT /api/v1/assets works :) | 19:59 |
docaedo | no errors thrown when hitting / .. just the 400 | 19:59 |
docaedo | so weird | 19:59 |
kfox1111 | weird. | 19:59 |
kfox1111 | is it working now with debug = true and the python dir owned by not www-data? | 20:00 |
docaedo | oh dunno, lemme see ownership | 20:00 |
docaedo | installed dir (/usr/local/lib/python2.7/dist-packages/openstack_catalog) is owned by root, but it's always been like that, the one that needed apache ownership was web/static/CACHE | 20:01 |
docaedo | Let me try dropping that part, and see if calling collectstatic creates the directory as expected | 20:01 |
*** kzaitsev_mb has joined #openstack-app-catalog | 20:03 | |
kfox1111 | ah. cause I think compress puts all its stuff in web/static/CACHE | 20:05 |
kfox1111 | so if it tries to rebuild things at runtime, it would do it there. | 20:05 |
kfox1111 | collectstatic I think writes lib/* to static. I think CACHE is only generated by compress. | 20:06 |
kzaitsev_mb | kfox1111: you seem right http://django-compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_OUTPUT_DIR | 20:08 |
kzaitsev_mb | hello btw ) | 20:08 |
kfox1111 | hi. :) | 20:08 |
kzaitsev_mb | sorry for disappearing so sudden =) | 20:08 |
kzaitsev_mb | my wife and I — we planned to spend previous week in Paris and I planned to take laptop with me, but then our plans changed =/ | 20:09 |
kfox1111 | no worries. :) | 20:11 |
kfox1111 | I've been working on a keystone cluster for work, so I've been kind of awol as well. | 20:12 |
docaedo | kzaitsev_mb: hope the change of plans still included a vacation but without being tied to work :)\ | 20:14 |
kfox1111 | +1 :) | 20:15 |
docaedo | oh that was a weird smiley, fatfingered it, should have just been ") | 20:15 |
docaedo | hahah | 20:15 |
kfox1111 | ah... systemd vs everyone else flairs up again. :) | 20:15 |
docaedo | damnit, hands are too cold today! :) :) :) | 20:15 |
kfox1111 | vi vs emacs was getting too old. ;) | 20:15 |
kfox1111 | (xkcd put it to rest too. https://xkcd.com/378/ :) | 20:16 |
kzaitsev_mb | there's always relevant xkcd =) | 20:16 |
kzaitsev_mb | and yep, we went to lisbon with no luggage instead, but overall it was a stressfull week ) | 20:17 |
kfox1111 | bummer. | 20:17 |
docaedo | oh sorry to hear that | 20:17 |
docaedo | I have been banging on this puppet manifest for a bit - trying to make it work right from a clean start - when we first switched, jim blair had to log on to hosting box and manually run pip install one time before everything worked (then seems to work fine after that) | 20:19 |
docaedo | thing is, I suspect "works fine after" is an illusion that is going to burn us eventually | 20:19 |
docaedo | so I'm making mods to the puppet manifest, then pip uninstall openstack_catalog and rm -rf the installed directory .. dependencies (in puppet) fail first pass, work second time | 20:20 |
docaedo | just wanted to let you know I'm poking at that, before I can even move on to compress working right, and disabling debug :) | 20:20 |
* docaedo is hating computers again today :) | 20:21 | |
kfox1111 | yeah. always better to get the burn down case workign right. | 20:23 |
kfox1111 | one of the things I don't like about config management systems like puppet/chef/etc. they allow you too easily to get into a state where you can keep it working, but you can't easily know its safe to come back up from bare hardware. | 20:23 |
kfox1111 | you can add a lot of testing framework on top to help, but its a lot of effort. | 20:24 |
docaedo | true, but what's the alternative? I would rather be pushed regularly to make this work from a clean instance than have it be 99% puppet plus "log in as root and do these two things if that other thing happens" | 20:32 |
kfox1111 | I tend to use heat templates these days. using the cloud 'stand up a new one, then roll it into place' methedology rather then keep patching the pet model. | 20:37 |
kfox1111 | you know you can always stand up a new one, since you do it every time. :) | 20:37 |
kfox1111 | as a bonus, you can autorecover from failed hardware easily. :) | 20:38 |
openstackgerrit | Kirill Zaitsev proposed openstack/app-catalog-ui: Add reno for RElease NOtes https://review.openstack.org/250016 | 20:48 |
kfox1111 | kzaitsev_mb: interesting patch. is it overkill though? Its generating man pages and tex docs? | 21:13 |
kfox1111 | doesn't pbr generate a changelog already? | 21:14 |
kzaitsev_mb | kfox1111: everything is moving to reno for release notes. I'm kind of making a bunch of similar patches for murano. They're going to be automatically published on doc.o.o | 21:15 |
kzaitsev_mb | http://docs.openstack.org/releasenotes/nova/ here's an example =) | 21:16 |
kfox1111 | ah. so they are doing it for html support? | 21:16 |
kzaitsev_mb | I guess so | 21:16 |
kfox1111 | that makes sense then. | 21:17 |
openstackgerrit | Kirill Zaitsev proposed openstack/app-catalog-ui: Add reno for RElease NOtes https://review.openstack.org/250016 | 21:20 |
kzaitsev_mb | What do you mean by current release? like nova's liberty? | 21:22 |
kfox1111 | like, app-catalog-ui release 1.0.0 is officially released. so there should be a release note about it. | 21:24 |
kfox1111 | we should be updating things in release notes every time we do a release? | 21:24 |
kzaitsev_mb | oh you mean just inlude a note about the release? =) | 21:24 |
kfox1111 | yeah. | 21:24 |
kzaitsev_mb | no reno doesn't work like that =) | 21:24 |
kzaitsev_mb | pip install reno | 21:25 |
kzaitsev_mb | reno new slug | 21:25 |
kzaitsev_mb | this would create a new note file releasenotes/note/slug-{uid}.yaml with a bunch of info in it ) | 21:25 |
kzaitsev_mb | you attach it to the commit and all the files are later combined in a giant release-notes html. | 21:26 |
kfox1111 | so for each nontrivial commit, you add a releasenotes/note/foo-uid with the change info in it? | 21:27 |
kzaitsev_mb | this should make cherry-picking important fixes easy as they would also contain notes about what wa cherry-picked, that would be included into the respective branch | 21:27 |
kfox1111 | right... | 21:27 |
kzaitsev_mb | kfox1111: yeah, that's how I understood how that would work | 21:27 |
kfox1111 | that makes sense. | 21:27 |
kfox1111 | so we still should maybe add a 1.0.0 note just so it isn't saying everything's unreleased. | 21:28 |
kzaitsev_mb | I can dig up a couple of letters from release team. =) Nobody really reads those )) | 21:28 |
kfox1111 | maybe we have a 1.0 series, a 1.2 series, etc. | 21:29 |
kfox1111 | I'd read them. :) the upgrade notes in nova looks very useful. | 21:29 |
kzaitsev_mb | oh, Andreas pointed, that there should be some way around, when the repo does not contain a stable branch | 21:29 |
kzaitsev_mb | I should dig into that ) | 21:30 |
kfox1111 | ah. | 21:30 |
*** openstackgerrit has quit IRC | 21:36 | |
*** openstackgerrit has joined #openstack-app-catalog | 21:37 | |
*** kebray has joined #openstack-app-catalog | 22:03 | |
*** kebray has quit IRC | 22:05 | |
*** kebray has joined #openstack-app-catalog | 22:07 | |
kfox1111 | I just vented about the instance-user's thing on its spec. hopefully the nova folks will do something. :/ | 23:05 |
kfox1111 | I'm kind of fed up with it though. :/ | 23:05 |
*** kzaitsev_mb has quit IRC | 23:09 | |
docaedo | I could understand your frustration | 23:09 |
docaedo | I just finally circled back (well, for like the last hour+) to the puppet manifest stuff and sorted out the dependencies and stuff, I think I have things working now except for that debug = false giving me a 400 for / | 23:10 |
kfox1111 | nice. :) | 23:10 |
*** kzaitsev_mb has joined #openstack-app-catalog | 23:10 | |
kfox1111 | kzaitsev_mb: just saw: https://review.openstack.org/#/c/250029/ | 23:24 |
kfox1111 | which makes sense after seeing your review. :) | 23:24 |
kzaitsev_mb | wow | 23:25 |
docaedo | https://review.openstack.org/#/c/250061/ | 23:25 |
docaedo | That's the infra patch - leaves debug on for now because TBH I'm stumped .. will keep picking away at it though over the next few days | 23:26 |
kzaitsev_mb | I'm not sure if he's doing it right though. They all would end up in unreleased, as far as I understand. Although. maybe if they cherry-pick the change to stable/liberty — that would move the notes there... hm, gotta check this out a bit more | 23:27 |
kfox1111 | docaedo: does the compress need a --force? | 23:28 |
kfox1111 | I'm guessing there will be a new stable/mitaka added on release. | 23:29 |
kfox1111 | docaedo: k. I'm really not sure why debug off would cause that. I'm kind of curious if the wsgi processes are crashing in that mode. | 23:29 |
kfox1111 | maybe do a ps ax | grep wsgi before and after a test to see if any of them go away/get new pids? | 23:30 |
docaedo | weird thing there is that is IS working, /api/v1/assets serves properly | 23:31 |
kfox1111 | yeah, I'm guessing thats because its going through flask and not django. | 23:32 |
kfox1111 | flask should ignore the debug thing entirely. | 23:32 |
docaedo | ah right, I hadn't considered that | 23:32 |
kfox1111 | docaedo: other then maybe needing a --force, the review looks good to me. | 23:36 |
kfox1111 | hmm... wait.. | 23:37 |
kfox1111 | collect static and compress depend only on manage, | 23:38 |
kfox1111 | manage is dependent on ${root_dir}/manage.py for source. | 23:38 |
kfox1111 | I'm not seeing it ever rerun them on js/css changes, just when manage.py changes? | 23:39 |
docaedo | yeah I think .. we probably need to run that every time the repo changes, which means we also need to pip install every time the repo changes otherwise we won't catch an updates | 23:45 |
docaedo | so pip install should include --update, and "file { "${install_dir}/manage.py"" should have subscribe instead of require | 23:45 |
kfox1111 | yeah. | 23:46 |
docaedo | s/update/upgrade/ | 23:46 |
docaedo | thanks for looking at that. just pushed up a new patch, *seems* like it does the things it's expected to do :) | 23:50 |
kfox1111 | better, but I think there's still an issue... let me puzzle through it. | 23:53 |
kfox1111 | ah. maybe not... | 23:54 |
kfox1111 | so manage.py is reinstalled every time install-app_catalog gets done, whic is any time a file changes. | 23:54 |
kfox1111 | then the exec's depend on that... | 23:54 |
kfox1111 | is ordering garenteed in puppet files? | 23:55 |
*** kebray has quit IRC | 23:56 | |
kfox1111 | If so, I think the last thing is the notify on the install-app_catalog should probably be moved till durring the python-compress | 23:56 |
kfox1111 | otherwise the webserver might reload before the static/compressed files are ready. | 23:56 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!