RIPE Migratie

Over RIPE NCC

Het RIPE NCC is als onafhankelijke stichting zonder winstoogmerk en is verantwoordelijk voor de technische coördinatie van de Europese internet infrastructuur. De belangrijkste activiteit van het RIPE NCC is de taak als lokale RIR (Regional Internet Registry), waarbij het RIPE NCC het beheer voert over verschillende internet resources en diensten zoals IPV4, IPV6 adressering en AS nummering. De leden van het RIPE NCC bestaan vooral uit ISP's, telecominstellingen, (regulerende) overheden, academische instellingen en grote organisaties in Europa, het Midden-Oosten en Azië.

Het project

Het RIPE NCC heeft gekozen om hun intranet te migreren van een verouderd  TWiki systeem naar Plone. Hierbij werden een aantal eisen gesteld:

  • de wiki functionaliteit moet behouden blijven om de transitie voor gebruikers makkelijker te maken.
  • bestaande opmaak en verwijzingen moeten behouden blijven, inclusief attachments.
  • de revisies van pagina's en attachments in TWiki moeten behouden blijven.

Wiki ondersteuning in Plone wordt gerealiseerd door middel van Wicked. Dit voegt een eenvoudige wiki syntax toe aan bestaande content velden. Versioning onder Plone wordt geïmplementeerd door middel van CMFEditions.

De uiteindelijke migratie bestaat uit twee stappen:

export vanuit TWiki

Dit omvat de volgende stappen:

  • recursief inlezen van de Wiki RCS bestanden op het filesystem.
  • Voor iedere revisie van een Topic wordt de basis opmaak ("shorthand") gescand op relevante informatie zoals attachments.
  • Vervolgens wordt door middel van een aangepast perl script de "shorthand" opmgezet naar HTML.
  • Deze HTML wordt door python gefilterd en omgezet naar "schone" HTML zonder TWiki opmaak. Bovendien worden hierbij TWiki links vervangen door Wicked links.
  • De bij het Topic horende attachments worden ook per revisie geëxporteerd

Voor deze stap is een speciale python RCS parser geschreven die de verschillende revisies van bestanden terug kan halen, en een script om TWiki markup naar HTML om te zetten vanaf de commandline (in plaats van via het web)

import in Plone

Hierbij wordt de geëxporteerde data ingelezen in Plone, waarbij met name de volgende extra functionaliteit geboden wordt:

  • De import vindt plaats in een structuur van Folders en WickedDocs, vergelijkbaar met de oude TWiki structuur.
  • Iedere revisie wordt als aparte CMFEditions versie opgeslagen.
  • Nieuwe content wordt automatisch gepubliceerd.
  • Attachments worden automatisch als "related content" gekoppeld. 

Het resultaat

De totale omvang van de oude TWiki omvat zo'n 4GB aan data, een kleine 7000 Topics verdeeld over 37 Wiki Webs.

Na import in Plone is dit zo'n 10GB aan data in totaal. Het grote verschil wordt onder ander veroorzaakt doordat RCS efficiënter revisies opslaat dan CMFEditions.

Na de import in Plone kan er probleemloos genavigeerd worden binnen de nieuwe wiki. De Wiki links zijn vervangen door Wicked links en nieuwe pagina's kunnen eenvoudig aangemaakt worden door een Wicked link toe te voegen aan een pagina. De content hoeft niet meer via de shorthand markup bewerkt te worden, dit kan gewoon via deKupu rich text editor. Via de versions tab kunnen oudere revisies teruggehaald worden.

Referenties