Commit cc641dc9 authored by Ivan Tyagov's avatar Ivan Tyagov

Osie runtime slaposify

parent b9d11c11
[instance-profile] [instance-profile]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 2c3cd3750f71046095d7764ebef4e9e1 md5sum = e930e936d79b5fe12b9e8a0a0c46f816
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
parts = parts =
directory directory
publish-connection-parameter publish-connection-parameter
download-plc
beremiz-runtime beremiz-runtime
# beremiz-runtime-promise # beremiz-runtime-promise
...@@ -18,6 +19,17 @@ develop-eggs-directory = {{ buildout['develop-eggs-directory'] }} ...@@ -18,6 +19,17 @@ develop-eggs-directory = {{ buildout['develop-eggs-directory'] }}
offline = true offline = true
extends = {{ template_monitor }} extends = {{ template_monitor }}
[download-plc]
recipe = plone.recipe.command
update-command = ${:command}
url = ${instance-parameter:configuration.runtime_plc_url}
md5sum = ${instance-parameter:configuration.runtime_plc_md5sum}
# XXX: do check md5sum !
command =
wget ${:url} -O plc.tgz
tar zxvf plc.tgz
[instance-parameter] [instance-parameter]
# Fetch arbitrary parameters defined by the user in SlapOS Master for his instance. # Fetch arbitrary parameters defined by the user in SlapOS Master for his instance.
# We use the slapconfiguration recipe with a few parameters (partition id, # We use the slapconfiguration recipe with a few parameters (partition id,
...@@ -32,15 +44,19 @@ partition = ${slap-connection:partition-id} ...@@ -32,15 +44,19 @@ partition = ${slap-connection:partition-id}
url = ${slap-connection:server-url} url = ${slap-connection:server-url}
key = ${slap-connection:key-file} key = ${slap-connection:key-file}
cert = ${slap-connection:cert-file} cert = ${slap-connection:cert-file}
configuration.runtime_plc_url =
configuration.runtime_plc_md5sum =
# XXX: we can get rid of plc_name in future
configuration.runtime_plc_name =
# Define default parameter(s) that will be used later, in case user didn't # Define default parameter(s) that will be used later, in case user didn't
# specify it. # specify it.
# All possible parameters should have a default. # All possible parameters should have a default.
# In our use case, we are expecting from the user to specify one (optional) parameter: "name". We put the default value here if he doesn't specify it, so that it doesn't crash. # In our use case, we are expecting from the user to specify one (optional) parameter: "name". We put the default value here if he doesn't specify it, so that it doesn't crash.
configuration.autostart = 1 configuration.autostart = 1
configuration.interface = 0.0.0.0 configuration.interface = 0.0.0.0
# XXX: randomly generated one on slap's interface?
configuration.port = 61248 configuration.port = 61248
configuration.plc_runtime_path = /srv/slapgrid/slappart19/compiled_PLC/ configuration.plc_runtime_path = ${directory:home}/${:configuration.runtime_plc_name}
# If our use case requires that the user can specify a mail address so that his instance can mail to him (for example), we can do: # If our use case requires that the user can specify a mail address so that his instance can mail to him (for example), we can do:
# configuration.mail-address = # configuration.mail-address =
# If the user doesn't specify it, it won't break and the recipe can handle it (i.e don't send any mail for example). # If the user doesn't specify it, it won't break and the recipe can handle it (i.e don't send any mail for example).
...@@ -66,7 +82,7 @@ logfile = ${directory:log}/beremiz-runtime.log ...@@ -66,7 +82,7 @@ logfile = ${directory:log}/beremiz-runtime.log
# This recipe will try to "exec" the command-line after separating parameters. # This recipe will try to "exec" the command-line after separating parameters.
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = command-line =
{{ buildout['bin-directory'] }}/pythonwitheggs {{ buildout['directory'] }}/src/beremiz/Beremiz_service.py -a ${instance-parameter:configuration.autostart} -p ${instance-parameter:configuration.port} -i ${instance-parameter:configuration.interface} -x 1 ${instance-parameter:configuration.plc_runtime_path} {{ buildout['bin-directory'] }}/pythonwitheggs {{ buildout['directory'] }}/src/beremiz/Beremiz_service.py -a ${instance-parameter:configuration.autostart} -p ${instance-parameter:configuration.port} -i ${instance-parameter:configuration.interface} -x 1 ${directory:home}/${instance-parameter:configuration.runtime_plc_name}
# Put this shell script in the "etc/service" directory. Each executable of this # Put this shell script in the "etc/service" directory. Each executable of this
# repository will be started and monitored by supervisord. If a service # repository will be started and monitored by supervisord. If a service
# exits/crashes, it will trigger a "bang" and cause a re-run of the instance. # exits/crashes, it will trigger a "bang" and cause a re-run of the instance.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment