instance-cloudoo.cfg.in 5.18 KB
Newer Older
1
{% set ipv4 = (ipv4_set | list)[0] -%}
2
{% set bin_directory = parameter_dict['buildout-bin-directory'] -%}
3 4
{% set section_list = [] -%}
{% macro section(name) %}{% do section_list.append(name) %}{{ name }}{% endmacro -%}
5 6 7 8
[buildout]
parts =
  publish-cloudooo-connection-information
  cloudooo-test-runner
9 10
  xvfb-instance
  wkhtmltopdf-on-xvfb
11 12 13 14 15 16

eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true

[publish-cloudooo-connection-information]
17
recipe = slapos.cookbook:publish.serialised
18
url = cloudooo://${haproxy:ip}:${haproxy:port}/
19

20
[cloudooo-base]
21
recipe = slapos.cookbook:generic.cloudooo
22
ip = {{ ipv4 }}
23
environment =
24
  LD_LIBRARY_PATH = {{ parameter_dict['cairo'] }}/lib:{{ parameter_dict['cups'] }}/lib:{{ parameter_dict['cups'] }}/lib64:{{ parameter_dict['dbus'] }}/lib:{{ parameter_dict['dbus-glib'] }}/lib:{{ parameter_dict['file'] }}/lib:{{ parameter_dict['fontconfig'] }}/lib:{{ parameter_dict['freetype'] }}/lib:{{ parameter_dict['glib'] }}/lib:{{ parameter_dict['glu'] }}/lib:{{ parameter_dict['libICE'] }}/lib:{{ parameter_dict['libSM'] }}/lib:{{ parameter_dict['libX11'] }}/lib:{{ parameter_dict['libXau'] }}/lib:{{ parameter_dict['libXdmcp'] }}/lib:{{ parameter_dict['libXext'] }}/lib:{{ parameter_dict['libXrender'] }}/lib:{{ parameter_dict['libexpat'] }}/lib:{{ parameter_dict['libffi'] }}/lib:{{ parameter_dict['libffi'] }}/lib64:{{ parameter_dict['libpng12'] }}/lib:{{ parameter_dict['libxcb'] }}/lib:{{ parameter_dict['mesa'] }}/lib:{{ parameter_dict['pixman'] }}/lib:{{ parameter_dict['xdamage'] }}/lib:{{ parameter_dict['xfixes'] }}/lib:{{ parameter_dict['zlib'] }}/lib
25 26
  FONTCONFIG_FILE = ${fontconfig-instance:conf-path}
  PATH = ${binary-link:target-directory}
27 28
mimetype_entry_addition =
  text/html application/pdf wkhtmltopdf
29 30 31 32 33 34
# Binary information
# cloudooo specific configuration
ooo-binary-path = {{ parameter_dict['libreoffice-bin'] }}/program
ooo-paster = {{ bin_directory }}/cloudooo_paster
ooo-uno-path = {{ parameter_dict['libreoffice-bin'] }}/basis-link/program

35
{% set cloudooo_port = slapparameter_dict.get('tcpv4_port', 23000) | int -%}
36 37
{% set backend_count = slapparameter_dict.get('backend-count', 1) | int -%}
{% for index in range(backend_count) -%}
38 39 40 41 42
{%   set name = 'cloudooo-' ~ index -%}
[{{ section(name) }}]
< = cloudooo-base
port = {{ cloudooo_port }}
openoffice-port = {{ cloudooo_port + 1 }}
43 44 45
configuration-file = ${directory:etc}/{{ name }}.cfg
data-directory = ${directory:srv}/{{ name }}
wrapper = ${directory:services}/{{ name }}
46 47 48 49 50 51

{%   set cloudooo_port = cloudooo_port + 2 -%}
{% endfor -%}

[haproxy]
recipe = slapos.cookbook:haproxy
52
name = cloudooo
53
conf-path = ${directory:etc}/haproxy.cfg
54
socket-path = ${directory:run}/haproxy.sock
55 56
ip = {{ ipv4 }}
port = 8001
57
maxconn = 1
58 59
wrapper-path = ${directory:services}/haproxy
binary-path = {{ parameter_dict['haproxy'] }}/sbin/haproxy
60
ctl-path = ${directory:bin}/haproxy-ctl
61 62 63 64 65
backend-list =
{%- for section_name in section_list %}
  {{ "${" ~ section_name ~ ":ip}:${" ~ section_name ~ ":port}" }}
{%- endfor %}

66 67 68 69 70 71 72
[cloudooo-test-runner]
recipe = slapos.cookbook:cloudooo.test

prepend-path = ${buildout:bin-directory}
run-unit-test = ${buildout:bin-directory}/runUnitTest
run-test-suite = ${buildout:bin-directory}/runTestSuite

73 74
ooo-paster = ${cloudooo-0:ooo-paster}
configuration-file = ${cloudooo-0:configuration-file}
75 76 77 78 79 80

run-unit-test-binary = {{ bin_directory }}/runCloudoooUnitTest
run-test-suite-binary = {{ bin_directory }}/runCloudoooTestSuite

[fontconfig-instance]
recipe = slapos.cookbook:fontconfig
81
conf-path = ${directory:etc}/font.conf
82 83
font-system-folder = {{ parameter_dict['fonts'] }}
font-folder = ${directory:font}
84
service-folder = ${directory:services}
85 86 87

[binary-link]
recipe = slapos.cookbook:symbolic.link
88
target-directory = ${directory:bin}
89 90 91 92 93 94 95
link-binary =
  {{ parameter_dict['coreutils'] }}/bin/basename
  {{ parameter_dict['coreutils'] }}/bin/cat
  {{ parameter_dict['coreutils'] }}/bin/cp
  {{ parameter_dict['coreutils'] }}/bin/ls
  {{ parameter_dict['coreutils'] }}/bin/tr
  {{ parameter_dict['coreutils'] }}/bin/uname
96
  {{ parameter_dict['coreutils'] }}/bin/dirname
97 98
# wrapper recipe needs the head command
  {{ parameter_dict['coreutils'] }}/bin/head
99 100 101 102 103 104 105 106 107
  {{ parameter_dict['imagemagick'] }}/bin/convert
  {{ parameter_dict['imagemagick'] }}/bin/identify
  {{ parameter_dict['poppler'] }}/bin/pdfinfo
  {{ parameter_dict['poppler'] }}/bin/pdftotext
  {{ parameter_dict['poppler'] }}/bin/pdftohtml

# rest of parts are candidates for some generic stuff
[directory]
recipe = slapos.cookbook:mkdirectory
108
bin = ${buildout:directory}/bin
109
etc = ${buildout:directory}/etc
110 111 112
font = ${:srv}/font
run = ${:var}/run
services = ${:etc}/run
113
srv = ${buildout:directory}/srv
114
var = ${buildout:directory}/var
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
framebuffer = ${:srv}/framebuffer

[xvfb-instance]
recipe = slapos.cookbook:xvfb
runner-path = ${directory:services}/xvfb
xvfb-path = {{ parameter_dict["xserver"] }}/bin/Xvfb
fbdir-path = ${directory:framebuffer}
tmp-path = ${directory:run}
shell-path = {{ parameter_dict["dash"] }}/bin/dash

[wkhtmltopdf-on-xvfb]
recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:bin}/wkhtmltopdf
environment =
  DISPLAY=:0
  TMPDIR=${directory:run}
command-line = {{ parameter_dict['wkhtmltopdf'] }}/wkhtmltopdf --use-xserver
parameters-extra = true