Skip to main content
PyCon US is happening May 14th-22nd in Pittsburgh, PA USA.  Learn more

XML-RPC document conversion server

Project description

Install Cloudooo

$ python2.6 setup.py install

Warnings:
  • you must have installed setuptools>=0.6c11 in this python.

Install LibreOffice / OpenOffice.org

Install LibreOffice or OpenOffice.org.

Create Configuration File

The configuration file is used to start the application using paster. $ cp ./cloudooo/samples/samples.conf . # Copy to current folder

The next step is define some attributes in cloudooo.conf:
  • working_path - folder to run the application. This folder need be created.

  • uno_path - folder where UNO library is installed (ex. /opt/libreoffice/basis-link/program/)

  • soffice_binary_path - folder where soffice.bin is installed (ex. /opt/libreoffice/program/)

Run Application

$ paster serve ./cloudooo.conf

or run as a daemon:

$ paster serve ./cloudoo.conf –daemon

Stop Application

$ kill -1 PASTER_PID

Warning: always use SIGHUP because only with this signal all processes are stopped correctly.

Cloudooo Description

  • XMLRPC + WSGI will be one bridge for easy access to LibreOffice / OpenOffice.org. This will implement one XMLRPC server into WSGI (Paster).

  • PyUno is used to connect to LibreOffice / OpenOffice.org stated with open socket. The features will be handled all by pyuno.

  • Only a process will have access to LibreOffice / OpenOffice.org by time.

  • All clients receive the same object(proxy) when connects with XMLRPC Server.

Managing LibreOffice / OpenOffice.org process

  • start ‘soffice.bin’; - Pyuno start ‘soffice.bin’ processes and the communication is through sockets; - ‘soffice.bin’ processes run in brackground;

  • control ‘soffice.bin’; - If the socket lose the connection, cloudooo kills the process, restartes processes and submit again the file;

XMLRPC Server - XMLRPC + WSGI

  • Send document to ‘soffice.bin’ and return the document converted with metadata;
    • XMLRPC receives a file and connects to ‘soffice.bin’ process by pyuno;

    • The pyuno opens a new document, write, add metadata and returns the document edited or converted to xmlrpc and it return the document to the user;

    • When finalize the use of ‘soffice.bin’, should make sure that it was finalized;

  • Export to another format;

  • Invite document and return metadata only;

  • Edit metadata of the document;

  • Problems and possible solution
    • ‘soffice.bin’ is stalled; - finalize the process, start ‘soffice.bin’ and submit the document again(without restart the cloudooo);

    • ‘soffice.bin’ is crashed; - finalize the process, verify if all the process was killed, start ‘soffice.bin’ and submit the document again(without restart the cloudooo)

    • ‘soffice.bin’ received the document and stalled; - if ‘soffice.bin’ isn’t responding, kill the process and start

    • The document that was sent is corrupt; - write in log the error and verify that the process aren’t in memory

1.2.3 (2010-04-01)

  • Eggify handlers

  • Configuration file tells to cloudooo which handler must be loaded

  • Update interface (not implemented yet)

1.2.2 (2010-02-07)

  • No longer use Xvfb.

1.2.1 (2010-01-21)

  • Improve ERP5 compatibility.

1.2.0 (2010-01-19)

  • Support LibreOffice3.3rc3.

1.1.0 (2010-01-13)

  • Refactor runCloudOOoUnitTest.py to control better the daemon process

  • Use argparse instead of optparse

  • Refactor tests to use boolean asserts to validate True or False.

  • Use python-magic to validate the output documents according to mimetype.

  • Change folder structure of cloudooo to put handler, mimemapper, helpers related to handler in same folder than handler.

  • Refactor code to use json instead of jsonpickle.

  • Add getTableItem, getTableItemList and getTableMatrix for OOGranulate

  • Add getParagraphItemList and getParagraphItem for OOGranulate

  • Add getImageItemList and getImage for OOGranulate

  • Add OdfDocument

  • Add granulate interface.

1.0.9

  • use pkg_resources to get helper scripts.

  • move internal scripts to helper folder.

  • removed cloudooo as dependency of internal scripts.

  • modified way that the filters of OpenOffice.org are passed.

1.0.8

  • Remove all attributes that works with cloudooo script paths.

  • Use all scripts according to your python eggs.

  • Fixed problem when a spreadsheet will be converted to html.

1.0.7

  • Remove entry points, treat those as ordinary files.

  • Search all script files using pkg_resources.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page