Cloning web.inf

When testing updates of edweb, I’d just been manually coping the live edweb directory and the most recent mysql dump from web.inf, and then restoring them on my test machine. All fairly mechanical, so I decided to script it to make it more automatic.

The thoughts are that this will be useful for maintaining a DR copy of web.inf too. It works, but at the moment there are a couple of potential gotchas. The first is that I rsync the most recent mysql backup dump (we currently take them every 2 hours), but rsync the live/current edweb directory. So there could be a discrepancy between file changes (eg uploaded images) in the edweb dir, and any record of them in the DB which could be a couple of hours older.

This could be solved by rsyncing the corresponding regular tarball of the edweb dir that we also take every 2 hours, or by somehow running a remote ‘om mysql dump’ to generate a “now” copy of the DB. Either way there is still the possibility of the directory and mysql being slightly out of sync, as these are not atomic processes.

The other gotcha seems to be a bug in the mysql component. After doing the rsync and DB restore, I restart MySQL for good measure. The default is for the mysql component to do a mysql dump at “stop”. This seems to continue to run even after the component reports “stopped”, and if it is restarted while the dump is still running, problems ensue. My work around is to add an arbitrary sleep between the stop and start. (note that om mysql restart is also affected). This should be submitted as a bug against the mysql component.

 

EdWeb cron

While investigating the latest Drupal security update on web.inf, I noticed again that the cron jobs were behind schedule. I was under the apprehension that EdWeb used Drupal’s poor mans cron (or some version of it), apparently this is wrong.

So I’ve added a system cron to call the site’s cron.php with the necessary key. I’ve added the following to the live/edweb-school.h
#ifdef EDWEB_SITE_CRONKEY
!cron.additions mADD(edwebcron)
cron.add_edwebcron * * * * * wget -O - -q -t 1 http://EDWEB_SITE_NAME/cron.php?cron_key=EDWEB_SITE_CRONKEY
#endif

According to https://www.drupal.org/node/2195391 it should be run every minute, so that’s what I’ve setup. In the machine’s profile I define the CRONKEY and it’s all working fine. Slightly concerned about how much noise it might produce if the wget start producing output. We’ll see.

 

Missing rich text editor

Julian reported that using Firefox on DICE he was missing the rich text editor (ckeditor) when updating web.inf.ed.ac.uk pages. Trying for myself on DICE and Firefox (SL7.1), I too noticed the rich text editor (RTE from now on) was missing. I tried using Chrome on DICE (which I normally use for Drupal), and indeed it works there.

I switched back to Firefox (FF) with the intention to inspect what was going on with the developer tools, but now the RTE was appearing fine! I tried Opera on SL6, and the RTE is missing for me, and no amount of visiting the same page with other browsers has made it reappear (like it seemed to do with Chrome and FF).

The old Plone site used to behave differently depending on which browser and OS you were using, I presume this is just a variation of that. With not all browser javascript/DOM models being equal. Though other seemingly complex bits that use Javascript, eg the SCALD media flyout, seems to work fine on all browsers.

While I was investigating this, I did the the browser developer tools reporting various CSS and Javascript errors/warnings. I’ll have to leave it for now, but when I next get a chance, I’ll see if the central EdWeb site gives the same behaviour and errors/warnings.

Neil

Old content warning banner and Google Analytics

Today Kenny asked for a couple of things. Since the replacement for www.inf.ed.ac.uk/student-services went live yesterday (web.inf.ed.ac.uk) he wants the old pages to have some sort of “Old content” warning and a link to the new site, until such time that we simply redirect old to new content. One snag is that not all the old content has moved, as we can’t support restricted pages on EdWeb yet, so they need to remain in Plone.

The correct way to do this, would be some clever Plone/Zope hacking, which some how decides to display the “Old content” warning or not. But I don’t know how to just do that, and I don’t think I should spend the time finding out, only for it to become redundant anyway. My hacky-ish solution is to update the Plone main template (which I’ve done for other tasks) – https://www.inf.ed.ac.uk/student-services/portal_skins/custom/main_template – and add the “Old content” text so that all pages get the warning. For those individual pages and sections (there’s about 6 in total), I’m going to then remove that markup via Apache filters https://httpd.apache.org/docs/2.2/mod/mod_ext_filter.html . Hopefully with little more than a sed script. I might actually just set the CSS to “display: none”, we’ll see.

The other thing Kenny spotted was that by default the standalone EdWeb distro doesn’t include the University Google Analytics code (which our existing Plone pages have). So the quickest way to add that was to add a new block to the footer, with the required javascript. We also needed to add a new Drupal Text Format to allow us to enter the raw markup, as all the default UoE Text Formats strip the necessary tags. We set it so that only “system administrators” can use this Text Format to hopefully avoid any unexpected problems.

As I write this, the GA stuff is up and running, but I’m still working on the Plone “Old Content” warning. I’ve updated the template with an empty bit of markup just now, so I can test the removal bit.

EdWeb (not yet a) Project

I’ve had a long standing action to create a new computing.project.inf.ed.ac.uk entry for work done on getting our EdWeb based replacement for the www.inf Plone content running. As per usual I don’t seem to have quite managed that yet, even though I’ve been keeping a track of effort that I would have assigned to that project.

Though I’ve been keeping sort of notes in my home directory and in my time log, I’ve not been “blogging” about the project as we are supposed to do, so this is me starting that now. Mainly because of the couple of things I’ve done/are doing today. But I’ll post separately about those in a minute. It will also let me see if the hiearchical WP categories work as I expect.

Neil