[buildout] parts = instance publish-connection-parameter ## Monitoring part XXX whe should not have to specify all parts like this ## Parts to add for monitoring certificate-authority cron cron-entry-monitor cron-entry-rss deploy-index deploy-settings-cgi deploy-status-cgi deploy-status-history-cgi setup-static-files certificate-authority zero-parameters public-symlink cgi-httpd-wrapper cgi-httpd-graceful-wrapper monitor-promise monitor-instance-log-access ## Monitor for ipython monitor-current-log-access monitor-deploy-set-password-cgi erp5-kernel kernel-json extends = ${monitor-template:output} eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true [slapconfiguration] recipe = slapos.cookbook:slapconfiguration computer = $${slap_connection:computer_id} partition = $${slap_connection:partition_id} url = $${slap_connection:server_url} key = $${slap_connection:key_file} cert = $${slap_connection:cert_file} [instance-parameter] port = 8888 host = $${slapconfiguration:ipv6-random} cert_file = $${generate-certificate:cert_file} key_file = $${generate-certificate:key_file} logfile = $${directory:log}/ipython_notebook.log notebook_dir = $${directory:notebook_dir} [generate-certificate] ; TODO: there is a slapos recipe to generate certificates. Use it instead recipe = plone.recipe.command command = if [ ! -e $${instance-parameter:key_file} ] then ${openssl-output:openssl} req -x509 -nodes -days 3650 \ -subj "/C=AA/ST=X/L=X/O=Dis/CN=$${instance-parameter:host}" \ -newkey rsa:1024 -keyout $${instance-parameter:key_file} \ -out $${instance-parameter:cert_file} fi update-command = $${:command} cert_file = $${directory:etc}/ipython_notebook_cert.crt key_file = $${directory:etc}/ipython_notebook_cert.key [instance] recipe = slapos.cookbook:wrapper command-line = ${buildout:bin-directory}/ipython notebook --no-browser --matplotlib=inline --ip=$${instance-parameter:host} --port=$${instance-parameter:port} --port-retries=0 --certfile=$${instance-parameter:cert_file} --keyfile=$${instance-parameter:key_file} --notebook-dir=$${instance-parameter:notebook_dir} --logfile=$${instance-parameter:logfile} --config=$${ipython_notebook_config:rendered} ## Adding log-level as parameter is only for development process ## and would be removed later. --log-level="DEBUG" wrapper-path = $${directory:service}/ipython_notebook parameters-extra = true environment = IPYTHONDIR=$${directory:ipython_dir} [ipython_notebook_config] recipe = slapos.recipe.template:jinja2 template = ${ipython_notebook_config:location}/${ipython_notebook_config:filename} rendered = $${directory:etc}/ipython_notebook_config.py mode = 0744 context = raw config_cfg $${buildout:directory}/knowledge0.cfg raw ipython_dir $${directory:ipython_dir} [monitor-current-log-access] < = monitor-directory-access source = $${instance-parameter:logfile} [monitor-deploy-set-password-cgi] recipe = slapos.recipe.template:jinja2 template = ${ipython_notebook_set_password:location}/${ipython_notebook_set_password:filename} rendered = $${monitor-directory:knowledge0-cgi}/$${:filename} filename = ipython-notebook-password.cgi mode = 0744 context = raw config_cfg $${buildout:directory}/knowledge0.cfg raw python_executable ${buildout:bin-directory}/ipython key pwd monitor-directory:knowledge0-cgi key this_file :filename key httpd_graceful cgi-httpd-graceful-wrapper:rendered [directory] recipe = slapos.cookbook:mkdirectory home = $${buildout:directory} etc = $${:home}/etc var = $${:home}/var script = $${:etc}/run/ service = $${:etc}/service promise = $${:etc}/promise/ log = $${:var}/log notebook_dir = $${:var}/notebooks ipython_dir = $${:home}/ipython ipython_kernel_dir = $${:ipython_dir}/kernels erp5_kernel_dir = $${:ipython_kernel_dir}/ERP5 [publish-connection-parameter] recipe = slapos.cookbook:publish url = https://[$${instance-parameter:host}]:$${instance-parameter:port} monitor_url = $${monitor-parameters:url} [erp5-kernel] recipe = slapos.recipe.template:jinja2 template = ${erp5-kernel:location}/${erp5-kernel:filename} rendered = $${directory:erp5_kernel_dir}/ERP5kernel.py mode = 0744 context = raw python_executable ${buildout:bin-directory}/pythonwitheggs [kernel-json] recipe = slapos.recipe.template:jinja2 template = ${kernel-json:location}/${kernel-json:filename} rendered = $${directory:erp5_kernel_dir}/kernel.json mode = 0744 context = raw python_executable ${buildout:bin-directory}/pythonwitheggs key kernel_dir erp5-kernel:rendered raw display_name ERP5 raw language_name python