{% extends "base.html" %} {% block body %}
network panel doc count outliers waitinfo
skynet kernels packages instances configurations deploy details shardtool

{% if error %}

{{ response_code }}

{{ error_description }}

{% endif %} {% if single_configuration %} {% if page == 'deploy' %} {% include 'deploy.html' %} {% endif %} {% if page == 'details' %} {% include 'details.html' %} {% endif %} {% if page == 'configurations' %} {% include 'configurations.html' %} {% endif %} {% if page == 'shardtool' %} {% include 'shardtool.html' %} {% endif %} {% if page == 'instances' and instances %}
{% set ha_count = instances['hosts_alive_count'] %} {% set ht_count = instances['hosts_total_count'] %} {% set h_perc = 100.0 * ha_count / ht_count %} {% set ia_count = instances['instances_alive_count'] %} {% set it_count = instances['instances_total_count'] %} {% set i_perc = 100.0 * ia_count / it_count %}
hostsinstances crashes / instance / 1 5 15 min
alive {{ '%.2f%%' % (h_perc) }} ({{ ha_count }} / {{ ht_count }}) {{ '%.2f%%' % (i_perc) }} ({{ ia_count }} / {{ it_count }}) {{ '%.3f' % instances['crashes'][0] }}  {{ '%.3f' % instances['crashes'][1] }}  {{ '%.3f' % instances['crashes'][2] }} 

deadunpreparedpreparedinactive active
hosts {{ '%.2f%%' % (100.0*instances.dhc/instances.thc,) }} +h
({{ instances.dhc }} / {{ instances.thc }})
{{ '%.2f%%' % (100.0*instances.uhc/instances.thc,) }} +h
({{ instances.uhc }} / {{ instances.thc }})
{{ '%.2f%%' % (100.0*instances.phc/instances.thc,) }} +h
({{ instances.phc }} / {{ instances.thc }})
{{ '%.2f%%' % (100.0*instances.ihc/instances.thc,) }} +h
({{ instances.ihc }} / {{ instances.thc }})
{{ '%.2f%%' % (100.0*instances.ahc/instances.thc,) }} +h
({{ instances.ahc }} / {{ instances.thc }})
{% for m in instances.dead_hosts %} +{{ m }} {% endfor %}
{% for m in instances.inactive_hosts %} +{{ m }} {% endfor %}
{% for m in instances.prepared_hosts %} +{{ m }} {% endfor %}
{% for m in instances.unprepared_hosts %} +{{ m }} {% endfor %}
{% for m in instances.active_hosts %} +{{ m }} {% endfor %}

inactive on alive
instances {{ '%.2f%%' % (100.0*instances.dic/instances.instances_total_count,) }} +i:p
({{ instances.dic }} / {{ instances.instances_total_count }})
{% for m in instances.dead_instances %} +{{ m }} {% endfor %}

{% for k in instances['c_keys'] %} {% endfor %}
CGROUPS I instances
{{ k }} i:p {{ '%.2f%%' % (100.0*instances['c_lens'][k]/instances['instances_alive_count'],) }} ({{ instances['c_lens'][k] }}/{{ instances['instances_alive_count']}})
{% for k in instances['c_keys'] %}
{% for m in instances['cgroups'][k] %} {{ m }} {% endfor %}
{% endfor %}
{% for k in instances.u_keys %} {% endfor %}
SUPERMIND HIinstances
{{ k }} +h i:p {{ '%.2f%%' % (100.0*instances['supermind'][k]/instances['instances_alive_count'],) }} ({{ instances['supermind'][k] }}/{{ instances['instances_alive_count'] }})
{% for k in instances.u_keys %}
{% for m in instances.supermind_h[k] %} +{{ m }} {% endfor %}
{% endfor %} {% for k in instances.u_keys %}
{% for m in instances.supermind_i[k] %} {{ m }} {% endfor %}
{% endfor %}
{% for k in instances['s_keys'] %} {% endfor %}
SHARDSCMS HI instances
{{ k.split('#')[0] }}{{ k.split('#')[1] }} +h i:p {{ '%.2f%%' % (100.0*instances['shards'][k]/instances['instances_alive_count'],) }} ({{ instances['shards'][k] }}/{{ instances['instances_alive_count']}})
{% for k in instances['s_keys'] %}
{% for m in instances['shards_h'][k] %} +{{ m }} {% endfor %}
{% endfor %} {% for k in instances['s_keys'] %}
{% for m in instances['shards_i'][k] %} {{ m }} {% endfor %}
{% endfor %}
{% for k in instances['r_keys'] %} {% endfor %}
SVN url HI instances
{{ k }} +h i:p {{ '%.2f%%' % (100.0*instances['revisions'][k]/instances['instances_alive_count'],) }} ({{ instances['revisions'][k] }}/{{ instances['instances_alive_count']}})
{% for k in instances['r_keys'] %}
{% for m in instances['revisions_h'][k] %} +{{ m }} {% endfor %}
{% endfor %} {% for k in instances['r_keys'] %}
{% for m in instances['revisions_i'][k] %} {{ m }} {% endfor %}
{% endfor %}
{% for k in instances['b_keys'] %} {% endfor %}
Binary's MD5uname HI instances
{{ k.split('#')[0] }}{{ k.split('#')[1] }} +h i:p {{ '%.2f%%' % (100.0*instances['bmd5'][k]/instances['instances_alive_count'],) }} ({{ instances['bmd5'][k] }}/{{ instances['instances_alive_count']}})
{% for k in instances['b_keys'] %}
{% for m in instances['bmd5_h'][k] %} +{{ m }} {% endfor %}
{% endfor %} {% for k in instances['b_keys'] %}
{% for m in instances['bmd5_i'][k] %} {{ m }} {% endfor %}
{% endfor %}
{% for k in instances['m_keys'] %} {% endfor %}
Models archive's MD5 HI instances
{{ k.split('#')[0] }} +h i:p {{ '%.2f%%' % (100.0*instances['mmd5'][k]/instances['instances_alive_count'],) }} ({{ instances['mmd5'][k] }}/{{ instances['instances_alive_count']}})
{% for k in instances['m_keys'] %}
{% for m in instances['mmd5_h'][k] %} +{{ m }} {% endfor %}
{% endfor %} {% for k in instances['m_keys'] %}
{% for m in instances['mmd5_i'][k] %} {{ m }} {% endfor %}
{% endfor %}
{% if instances['be_keys'] | length > 0 %}
{% for k in instances.be_keys %} {% endfor %}
BALANCER EXPERIMENTS HIinstances
{{ k }} +h i:p {{ '%.2f%%' % (100.0*instances['balancer_experiments'][k]/instances['instances_alive_count'],) }} ({{ instances['balancer_experiments'][k] }}/{{ instances['instances_alive_count'] }})
{% for k in instances.be_keys %}
{% for m in instances.balancer_experiments_h[k] %} +{{ m }} {% endfor %}
{% endfor %} {% for k in instances.be_keys %}
{% for m in instances.balancer_experiments_i[k] %} {{ m }} {% endfor %}
{% endfor %}
{% endif %}
bsconfig sync disable {{ instances.bsc_disable }}
{% for k in instances.bsc_disable_hosts %} +{{ k }} {% endfor %}
{% if instances['shardtool'] %}
{% for k in instances['shardtool']['keys'] %} {% endfor %}
Shardtool status shards I H
{{ k }} {{ instances['shardtool']['instances'][k] | length }} / {{ instances['shardtool']['shard_count'] }} i:p +h
{% for k in instances['shardtool']['keys'] %}
{% for m in instances['shardtool']['instances'][k] %} {{ m }} {% endfor %}
{% endfor %}
{% for k in instances['shardtool']['keys'] %}
{% for m in instances['shardtool']['instances'][k] %} {{ m }} {% endfor %}
{% endfor %}
{% endif %} {% endif %} {% if page == 'shards' and shards %}
{% for s in shards_keys %} NO{% else %}>YES{% endif %} {% endfor %}
shard not ready or dead hosts ready hosts tier init
{{ s }} {% for h in shards[s]['nrhosts'] %} {% if shards[s]['nrhosts'][h]['ts'] > 0 %} {% set p = 100.0*shards[s]['nrhosts'][h]['ds']/shards[s]['nrhosts'][h]['ts'] %} {% else %} {% set p = 0 %} {% endif %} {% endfor %}
{{ h }}
{{ '%.3f' % (shards[s]['nrhosts'][h]['ds']/1024/1024/1024) }} / {{ '%.3f' % (shards[s]['nrhosts'][h]['ts']/1024/1024/1024) }} GB
{% for h in shards[s]['rhosts'] %} {% set p = 100.0 %} {%endfor%}
{{ h }}
{{ shards[s]['tier'] }}
{% endif %} {% endif %} {% if page == 'kernels' and versions and versions2 and versions3%}
 kernels
{% for k, v in versions | dictsort(by='value') %} {% endfor %}
{{ k[0] }} {{ k[1] }} {{ '%.2f%%' % (100.0 * (-v[0]) / hosts_count, ) }} ({{ (-v[0]) }} / {{ hosts_count }} ) +h
{% for k in versions %}
{% for m in versions[k][1] %} +{{ m }} {% endfor %}
{% endfor %}


 setups
{% for k, v in versions2 | dictsort(by='value') %} {% endfor %}
{{ k }} {% set p = 100.0 * (-v[0]) / hosts_count if hosts_count else 0 %} {{ '%.2f%%' | format(p) }} ({{ -v[0] }} / {{ hosts_count }} ) +h
{% for k in versions2 %}
{% for m in versions2[k][1] %} +{{ m }} {% endfor %}
{% endfor %}
 golovan
{% for k, v in versions3 | dictsort(by='value') %} {% endfor %}
{{ k }} {% set p = 100.0 * (-v[0]) / hosts_count if hosts_count else 0 %} {{ '%.2f%%' | format(p) }} ({{ -v[0] }} / {{ hosts_count }} ) +h
{% for k in versions3 %}
{% for m in versions3[k][1] %} +{{ m }} {% endfor %}
{% endfor %}
 iss
{% for k, v in versions4 | dictsort(by='value') %} {% endfor %}
{{ k }} {% set p = 100.0 * (-v[0]) / hosts_count if hosts_count else 0 %} {{ '%.2f%%' | format(p) }} ({{ -v[0] }} / {{ hosts_count }} ) +h
{% for k in versions4 %}
{% for m in versions4[k][1] %} +{{ m }} {% endfor %}
{% endfor %}
{% endif %} {% if page == 'packages' and packages %}
 packages


{% for p in packages | sort %} {% endfor %}


{% endif %} {% if page == 'skynet' and skyinfo %}
{% set services = ['copier', 'cqueue', 'cqudp'] %} {% for service in services %}  {{ service }}
{% set cnt = hosts_count - (skyinfo['hosts_dead'] | length) %} {% set p = 0 if not cnt else 100.0 * skyinfo[service]['hosts_alive_count'] / cnt %}
{{ '%.2f%%' % (p) }} ({{ skyinfo[service]['hosts_alive_count'] }}/{{ cnt }})
defunct
+h
{% for m in skyinfo[service]['hosts_defunct'] %} +{{ m }} {% endfor %}

{% endfor %}
 sky get
{% set p = 100.0 * mon.copier.success_count / mon.copier.total_count if mon.copier.total_count else 0 %}
{{ '%.2f%%' % (p) }} ({{ mon.copier.success_count }}/{{ mon.copier.total_count }})
defunct
+h
{% for m in mon.copier.defunct_hosts %} +{{ m }} {% endfor %}

 sky ping
{% set p = 100.0 * mon.cqueue.success_count / mon.cqueue.total_count if mon.cqueue.total_count else 0 %}
{{ '%.2f%%' % (p) }} ({{ mon.cqueue.success_count }}/{{ mon.cqueue.total_count }})
defunct
+h
{% for m in mon.cqueue.defunct_hosts %} +{{ m }} {% endfor %}

 cqudp ping
{% set p = 100.0 * mon.cqudp.success_count / mon.cqudp.total_count if mon.cqudp.total_count else 0 %}
{{ '%.2f%%' % (p) }} ({{ mon.cqudp.success_count }}/{{ mon.cqudp.total_count }})
defunct
+h
{% for m in mon.cqudp.defunct_hosts %} +{{ m }} {% endfor %}

dead
+h
{% for m in skyinfo['hosts_dead'] %} +{{ m }} {% endfor %}
{% endif %} {% if confs_keys %}
{% for c in confs_keys %} {% set conf = confs[c] %} {% set ha_count = conf['hosts_active_count'] %} {% set hi_count = conf['hosts_inactive_count'] %} {% set h_perc = 100.0 * conf['hosts_active_perc'] %} {% set h_count = ha_count + hi_count %} {% set ia_count = conf['instances_alive_count'] %} {% set i_count = conf['instances_total_count'] %} {% set i_perc = 100.0 * ia_count / i_count %} {% set first = (c == confs_keys[0]) %} {% if first and h_perc > 99 %} {% if first and i_perc > 99 %} {% endfor %}
active hostsalive instancesconfiguration
{% elif first and h_perc < 98 %} {% else %} {% endif %} {{ '%.2f%%' % (h_perc) }}
{{ ha_count }} / {{ h_count }}
{% elif first and i_perc < 98 %} {% else %} {% endif %} {{ '%.2f%%' % (i_perc) }}
{{ ia_count }} / {{ i_count }}
{{ c }} +h
{% for c in confs_keys %}
{% set conf = confs[c] %} {% for m in conf['hosts_active'] %} +{{ m }} {% endfor %}
{% endfor %}
{% endif %} {% endblock %}