Re: [viewvc-dev] [PATCH] mod_python configuration
Alon Bar-Lev <[email protected]> Sun, 18 Sep 2011 18:17:31 +0300
| Newsgroups | gmane.comp.version-control.cvs.viewcvs.devel |
|---|---|
| Message-ID | <CAOazyz2PTY6C1nv2L5UuKcAw0q7TpPwLTGGFa6zX8wZK0OBvLA@mail.gmail.com> |
Can I help further in this issue? On Thu, Sep 15, 2011 at 8:11 PM, Alon Bar-Lev <[email protected]> wrote: > > On Thu, Sep 15, 2011 at 7:51 PM, C. Michael Pilato <[email protected]> wrote: > > On 09/15/2011 11:19 AM, Alon Bar-Lev wrote: > >>> That said, in reviewing your patch, it occurs to me that the code in > >>> viewvc.load_config() probably shouldn't use os.environ() to check for that > >>> variable, but (if a 'server' is provided') should use server.getenv() > >>> instead. That way, the appropriate environment-checking function for the > >>> deployment type (mod_python, CGI, IIS, etc.) is used. > >>> > >>> Would you be willing to explore this idea a bit to see if it makes sense? > >> > >> Well, > >> > >> SetEnv does not work in mod_python, at least not in my setup. > > > > How do you know that SetEnv doesn't work for mod_python? How are you > > testing that? > > Apache > --- > <Location /viewvc> > DirectoryIndex viewvc.py > # PythonOption org.viewvc.conf_file "/var/www/localhost/conf/viewvc.conf" > SetEnv VIEWVC_CONF_PATHNAME "/var/www/localhost/conf/viewvc.conf" > </Location> > --- > > Viewvc > --- > pathname = (server.getenv("VIEWVC_CONF_PATHNAME") > or os.environ.get("VIEWVC_CONF_PATHNAME") > or os.environ.get("VIEWCVS_CONF_PATHNAME") > or os.path.join(os.path.dirname(os.path.dirname(__file__)), > "viewvc.conf")) > --- > > Well, I am more like C guy but it looks right and does not work. > I may miss something? > Does it work for you? > > > > >> So we need something like: > >> > >> if pathname is None: > >> pathname = (server.get_options()["org.viewvc.conf_file"] <---- > >> or os.environ.get("VIEWVC_CONF_PATHNAME") > >> or os.environ.get("VIEWCVS_CONF_PATHNAME") > >> or os.path.join(os.path.dirname(os.path.dirname(__file__)), > >> "viewvc.conf")) > >> > >> However > > Correction, the server is your own viewvc object... so it actually need to be: > > pathname = (server.request.get_options()["org.viewvc.conf_file"] > or os.environ.get("VIEWVC_CONF_PATHNAME") > or os.environ.get("VIEWCVS_CONF_PATHNAME") > or os.path.join(os.path.dirname(os.path.dirname(__file__)), > "viewvc.conf")) > > > >> > >> 1. The python throws and exception if element within hash is not found > >> (I expect it to return None...) so I leave it for you... > > > > server.get_options().get("org.viewvc.conf_file") returns None of the key > > doesn't exist in the dictionary/hash. > > Strange, I getting an exception. > --- > File "/usr/lib64/python2.7/site-packages/viewvc/viewvc.py", line > 4411, in load_config > pathname = (server.request.get_options()["org.viewvc.conf_file44"] > > KeyError: 'org.viewvc.conf_file44' > --- > > Not python developer... > > But I can add get_option in the ModPythonServer object that returns > None if not exists. > > > > >> 2. Correct me if I am wrong but this does not overrides the default > >> within file, it does set if config is null, and it never is as the > >> viewvc-install sets CONF_PATHNAME to none null. > >> I expect environment / option to override the hard coded anyway, so > >> remove the "if pathname is None:" (and of course un-indent...). > > > > You are correct. I read that wrongly. > > > >> 3. Environment(or options) should be documented in INSTALL.... A > >> complete <Directory sample would be nice! :) > > > > Fair enough. :-) > > > > -- > > C. Michael Pilato <[email protected]> > > CollabNet <> www.collab.net <> Distributed Development On Demand > > > > ------------------------------------------------------ http://viewvc.tigris.org/ds/viewMessage.do?dsForumId=4251&dsMessageId=2840809 To unsubscribe from this discussion, e-mail: [[email protected]].