Commit 0e210cc2 authored by Alain Takoudjou's avatar Alain Takoudjou

uptade monitor in html5ide ipython_notebook and powerdns software release

parent a4ede178
...@@ -7,23 +7,8 @@ parts = ...@@ -7,23 +7,8 @@ parts =
promise-httpd-ipv6 promise-httpd-ipv6
publish-connection-information publish-connection-information
## Monitoring part ## Monitoring part
###Parts to add for monitoring monitor-base
certificate-authority
cron-entry-monitor
cron-entry-rss
deploy-index
deploy-settings-cgi
deploy-status-cgi
deploy-status-history-cgi
setup-static-files
zero-parameters
public-symlink
cgi-httpd-wrapper
cgi-httpd-graceful-wrapper
monitor-promise
monitor-instance-log-access
## Monitor for apache
extends = ${monitor-template:output} extends = ${monitor-template:output}
......
...@@ -24,7 +24,7 @@ mode = 0644 ...@@ -24,7 +24,7 @@ mode = 0644
[template-html5-ide] [template-html5-ide]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-html5ide.cfg url = ${:_profile_base_location_}/instance-html5ide.cfg
md5sum = e4d8adb5b7f0e5bf6ea12e47c5a13f8e md5sum = 21331b97b1fffe3567fdbb079ff147b9
output = ${buildout:directory}/template-html5ide.cfg output = ${buildout:directory}/template-html5ide.cfg
mode = 0644 mode = 0644
......
...@@ -6,7 +6,6 @@ parts = ...@@ -6,7 +6,6 @@ parts =
kernel-json kernel-json
custom-js custom-js
extends = {{ monitor_template }}
eggs-directory = {{ eggs_directory }} eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }} develop-eggs-directory = {{ develop_eggs_directory }}
...@@ -80,31 +79,6 @@ mode = 0744 ...@@ -80,31 +79,6 @@ mode = 0744
context = context =
raw config_cfg ${buildout:directory}/knowledge0.cfg raw config_cfg ${buildout:directory}/knowledge0.cfg
[monitor-instance-parameter]
monitor-base-url = ${monitor-frontend-promise:url}
# XXX Monitor will request frontend and check frontend promise
# If required use ipv6 url bellow
#monitor-base-url = ${monitor-httpd-conf-parameter:url}
cors-domains = ${slap-parameter:monitor-cors-domains}
[monitor-conf-parameters]
private-path-list +=
${instance-parameter:logfile}
# XXX need to convert this for new Monitor
[monitor-deploy-set-password-cgi]
<= dynamic-jinja2-template-base
template = {{ ipython_notebook_set_password_location }}/{{ ipython_notebook_set_password_filename }}
rendered = ${directory:etc}/${:filename}
filename = ipython-notebook-password.cgi
mode = 0744
context =
raw config_cfg ${buildout:directory}/knowledge0.cfg
raw python_executable {{ bin_directory }}/ipython
# key pwd monitor-directory:knowledge0-cgi
key this_file :filename
# key httpd_graceful cgi-httpd-graceful-wrapper:rendered
[directory] [directory]
recipe = slapos.cookbook:mkdirectory recipe = slapos.cookbook:mkdirectory
home = ${buildout:directory} home = ${buildout:directory}
...@@ -123,10 +97,6 @@ erp5_kernel_dir = ${:ipython_kernel_dir}/ERP5 ...@@ -123,10 +97,6 @@ erp5_kernel_dir = ${:ipython_kernel_dir}/ERP5
[publish-connection-parameter] [publish-connection-parameter]
recipe = slapos.cookbook:publish.serialised recipe = slapos.cookbook:publish.serialised
url = https://[${instance-parameter:host}]:${instance-parameter:port} url = https://[${instance-parameter:host}]:${instance-parameter:port}
monitor-base-url = ${publish:monitor-base-url}
monitor-url = ${publish:monitor-url}
monitor-user = ${publish:monitor-user}
monitor-password = ${publish:monitor-password}
[erp5-kernel] [erp5-kernel]
<= dynamic-jinja2-template-base <= dynamic-jinja2-template-base
...@@ -154,5 +124,3 @@ template = {{ custom_js_location }}/{{ custom_js_filename }} ...@@ -154,5 +124,3 @@ template = {{ custom_js_location }}/{{ custom_js_filename }}
rendered = ${directory:ipython_dir}/profile_default/static/custom/custom.js rendered = ${directory:ipython_dir}/profile_default/static/custom/custom.js
mode = 0744 mode = 0744
[slap-parameter]
monitor-cors-domains = monitor.node.vifib.com
...@@ -2,14 +2,12 @@ ...@@ -2,14 +2,12 @@
versions = versions versions = versions
extends = extends =
../../stack/slapos.cfg ../../stack/slapos.cfg
../../stack/monitor/buildout.cfg
../../component/ipython/buildout.cfg ../../component/ipython/buildout.cfg
../../component/scipy/buildout.cfg ../../component/scipy/buildout.cfg
../../component/scikit-learn/buildout.cfg ../../component/scikit-learn/buildout.cfg
../../component/pandas/buildout.cfg ../../component/pandas/buildout.cfg
../../component/openssl/buildout.cfg ../../component/openssl/buildout.cfg
parts = parts =
monitor-eggs
slapos-cookbook slapos-cookbook
ipython-notebook ipython-notebook
instance-jupyter instance-jupyter
...@@ -60,12 +58,11 @@ recipe = slapos.recipe.template:jinja2 ...@@ -60,12 +58,11 @@ recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/instance.cfg.in template = ${:_profile_base_location_}/instance.cfg.in
rendered = ${buildout:directory}/template.cfg rendered = ${buildout:directory}/template.cfg
mode = 0644 mode = 0644
md5sum = 060487563061b596af08815bf146190b md5sum = 26a28b74c8b18c92108c751b87abe80c
context = context =
key bin_directory buildout:bin-directory key bin_directory buildout:bin-directory
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory key eggs_directory buildout:eggs-directory
key monitor_template monitor-template:rendered
key openssl_output openssl-output:openssl key openssl_output openssl-output:openssl
key python_executable python2.7:executable key python_executable python2.7:executable
key ipython_notebook_config_location ipython-notebook-config:location key ipython_notebook_config_location ipython-notebook-config:location
......
...@@ -60,6 +60,20 @@ ...@@ -60,6 +60,20 @@
"description": "Template used to generate DNS domain name", "description": "Template used to generate DNS domain name",
"type": "string", "type": "string",
"default": "ns%s. + zone" "default": "ns%s. + zone"
},
"monitor-interface-url": {
"title": "Monitor Web Interface URL",
"description": "Give Url of HTML web interface that will be used to render this monitor instance.",
"type": "string",
"format": "uri",
"default": "https://monitor.app.officejs.com"
},
"monitor-cors-domains": {
"title": "Monitor CORS domains",
"description": "List of cors domains separated with space. Needed for ajax query on this monitor instance from a different domain.",
"type": "string",
"default": "monitor.app.officejs.com"
} }
} }
} }
...@@ -13,6 +13,7 @@ context = ...@@ -13,6 +13,7 @@ context =
${:extra-context} ${:extra-context}
{% set part_list = [] -%} {% set part_list = [] -%}
{% set monitor_url_list = [] -%}
{% set single_type_key = 'single-' %} {% set single_type_key = 'single-' %}
{% if slap_software_type in ("replicate", "RootSoftwareInstance") %} {% if slap_software_type in ("replicate", "RootSoftwareInstance") %}
{% set dns_type = slapparameter_dict.pop('-dns-type', 'single-default') -%} {% set dns_type = slapparameter_dict.pop('-dns-type', 'single-default') -%}
...@@ -67,9 +68,27 @@ config-soa = {{ "%s,%s" % (dns_domain, server_admin) }} ...@@ -67,9 +68,27 @@ config-soa = {{ "%s,%s" % (dns_domain, server_admin) }}
{% for parameter in sla_parameters -%} {% for parameter in sla_parameters -%}
sla-{{ parameter }} = {{ slapparameter_dict.pop( sla_key + parameter ) }} sla-{{ parameter }} = {{ slapparameter_dict.pop( sla_key + parameter ) }}
{% endfor -%} {% endfor -%}
{% do monitor_url_list.append('${' ~ request_section_title ~ ':connection-monitor-base-url}') -%}
{% endfor -%} {% endfor -%}
[monitor-htpasswd]
recipe = slapos.cookbook:generate.password
storage-path = ${directory:etc}/.monitor_user
bytes = 8
username = admin
[monitor-instance-parameter]
monitor-httpd-port = 8099
cors-domains = {{ slapparameter_dict.get('monitor-cors-domains', 'monitor.app.officejs.com') }}
username = ${monitor-htpasswd:username}
password = ${monitor-htpasswd:passwd}
[monitor-conf-parameters]
monitor-url-list +=
{% for url in monitor_url_list -%}
{{ ' ' ~ url }}
{% endfor %}
{% set ns_record = slapparameter_dict.pop('ns-record', ','.join(dns_domain_list)) %} {% set ns_record = slapparameter_dict.pop('ns-record', ','.join(dns_domain_list)) %}
[replicate] [replicate]
...@@ -82,26 +101,36 @@ software-url = {{ slapparameter_dict.pop(dns_software_url_key) }} ...@@ -82,26 +101,36 @@ software-url = {{ slapparameter_dict.pop(dns_software_url_key) }}
software-url = ${slap-connection:software-release-url} software-url = ${slap-connection:software-release-url}
{% endif %} {% endif %}
software-type = {{dns_type}} software-type = {{dns_type}}
return = private-ipv4 public-ipv4 slave-instance-information-list monitor_url return = private-ipv4 public-ipv4 slave-instance-information-list monitor-base-url
config-server-admin = {{ server_admin }} config-server-admin = {{ server_admin }}
config-ns-record = {{ ns_record }} config-ns-record = {{ ns_record }}
{% for parameter, value in slapparameter_dict.iteritems() -%} {% for parameter, value in slapparameter_dict.iteritems() -%}
config-{{parameter}} = {{ value }} config-{{parameter}} = {{ value }}
{% endfor -%} {% endfor -%}
config-{{ slave_list_name }} = {{ json_module.dumps(slave_instance_list) }} config-{{ slave_list_name }} = {{ json_module.dumps(slave_instance_list) }}
connection-monitor_url = config-monitor-cors-domains = {{ slapparameter_dict.get('monitor-cors-domains', 'monitor.node.vifib.com') }}
config-monitor-username = ${monitor-htpasswd:username}
config-monitor-password = ${monitor-htpasswd:passwd}
[publish-information] [publish-information]
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
domain = {{ slapparameter_dict.get('domain') }} domain = {{ slapparameter_dict.get('domain') }}
slave-amount = {{ slave_instance_list | length }} slave-amount = {{ slave_instance_list | length }}
ns-record = {{ ns_record }} ns-record = {{ ns_record }}
{% for dns in dns_section_list %} monitor-url = ${publish:monitor-url}
{{ dns }}-monitor-url = {{ '${' + dns + ':connection-monitor_url}' }} monitor-user = ${publish:monitor-user}
{% endfor -%} monitor-password = ${publish:monitor-password}
{% set monitor_interface_url = slapparameter_dict.get('monitor-interface-url', 'https://monitor.app.officejs.com') -%}
{% if monitor_interface_url -%}
monitor-setup-url = {{ monitor_interface_url }}/#page=settings_configurator&url=${publish:monitor-url}
{% endif -%}
[buildout] [buildout]
extends =
{{ template_monitor }}
parts = parts =
monitor-base
publish-information publish-information
{% for part in part_list -%} {% for part in part_list -%}
{{ ' %s' % part }} {{ ' %s' % part }}
......
...@@ -99,6 +99,12 @@ path = $${directory:promise}/pdns-port-listening ...@@ -99,6 +99,12 @@ path = $${directory:promise}/pdns-port-listening
hostname = $${pdns:local-ipv4} hostname = $${pdns:local-ipv4}
port = $${pdns:port} port = $${pdns:port}
[publish-connection-informations]
recipe = slapos.cookbook:publish
monitor-url = $${publish:monitor-url}
monitor-user = $${publish:monitor-user}
monitor-password = $${publish:monitor-password}
##################### #####################
# Power DNS Slave configuration # Power DNS Slave configuration
# #
...@@ -131,28 +137,11 @@ parts = ...@@ -131,28 +137,11 @@ parts =
pdns-server pdns-server
pdns-reload pdns-reload
pdns-promise-listen-port pdns-promise-listen-port
monitor-base
publish-connection-informations publish-connection-informations
{% for part in part_list %} {% for part in part_list %}
{{ ' %s' % part }} {{ ' %s' % part }}
{% endfor %} {% endfor %}
## Monitoring part
###Parts to add for monitoring
cron
certificate-authority
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
extends = ${monitor-template:output} extends = ${monitor-template:output}
......
...@@ -43,7 +43,7 @@ extensions = jinja2.ext.do ...@@ -43,7 +43,7 @@ extensions = jinja2.ext.do
extra-context = extra-context =
# Must match the key id in [switch-softwaretype] which uses this section. # Must match the key id in [switch-softwaretype] which uses this section.
raw software_type RootSoftwareInstance-default raw software_type RootSoftwareInstance-default
raw template_monitor monitor-template:output
[slap-parameters] [slap-parameters]
recipe = slapos.cookbook:slapconfiguration recipe = slapos.cookbook:slapconfiguration
......
...@@ -18,14 +18,14 @@ eggs = ...@@ -18,14 +18,14 @@ eggs =
[template] [template]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg url = ${:_profile_base_location_}/instance.cfg
md5sum = d2b12e0a1876849ed200ee5af6d1e618 md5sum = 19116ef08be2e9b5bda5e3e5139e45ac
output = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
mode = 0644 mode = 0644
[template-powerdns] [template-powerdns]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-powerdns.cfg url = ${:_profile_base_location_}/instance-powerdns.cfg
md5sum = e90f6ac8e3b7fb1284c86565ffa146c6 md5sum = 06ad5bc18936b04b0bd566353047d02f
output = ${buildout:directory}/template-powerdns.cfg output = ${buildout:directory}/template-powerdns.cfg
mode = 0644 mode = 0644
...@@ -38,7 +38,7 @@ mode = 640 ...@@ -38,7 +38,7 @@ mode = 640
[template-dns-replicate] [template-dns-replicate]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-powerdns-replicate.cfg.jinja2 url = ${:_profile_base_location_}/instance-powerdns-replicate.cfg.jinja2
md5sum = 83cedc8fa923c59ca900b4600cc1c52f md5sum = ff2ac1f61fdd57fb349e209b9950f117
mode = 0644 mode = 0644
[iso-list] [iso-list]
......
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