Local modifications to ClusterLabs/Anvil by Alteeve
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

739 lines
20 KiB

<!-- start broken-key-entry -->
<tr>
<td>
&nbsp; <input type="checkbox" id="#!variable!checkbox_name!#" name="#!variable!checkbox_name!#" #!variable!checkbox_checked!# /> &nbsp;
</td>
<td class="column_row_value_fixed">
#!variable!host!#
</td>
<td class="column_row_value_fixed">
&nbsp;-&nbsp;
</td>
<td class="column_row_value_fixed">
#!variable!target!# &nbsp;
</td>
</tr>
<!-- end broken-key-entry -->
<!-- start broken-key-list -->
<table align="center">
<tr>
<td class="menu_title">
#!string!striker_0133!#
</td>
</tr>
<tr>
<td class="menu_details">
#!string!striker_0137!#
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td align="center">
<table class="data_table">
<form name="broken_keys" action="" method="post">
<tr>
<td>
&nbsp;
</td>
<!-- On Host -->
<td class="column_header">
#!string!header_0015!#
</td>
<td>
&nbsp;
</td>
<!-- Target -->
<td class="column_header">
#!string!header_0012!#
</td>
</tr>
<tr>
<td colspan="4">
&nbsp;
</td>
</tr>
#!variable!bad_keys!#
<tr>
<td colspan="4">
&nbsp;
</td>
</tr>
<tr>
<td class="button_cell" colspan="4" align="center">
<input type="submit" id="delete" name="delete" class="button" value="#!string!striker_0068!#" />
</td>
</tr>
<input type="hidden" name="striker" value="true" />
<input type="hidden" name="task" value="keys" />
</form>
</table>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
</table>
<!-- end broken-key-list -->
<!-- start confirm-action -->
<table align="center">
<form name="confirm-update" action="" method="post">
<div id="confirm-update">
<tr>
<td class="menu_title" colspan="2">
#!variable!title!#
</td>
</tr>
<tr>
<td class="menu_details" colspan="2">
#!variable!message!#
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td class="button_cell" style="text-align: left;">
<a href="/cgi-bin/striker?striker=true" class="button">#!string!striker_0098!#</a>
</td>
<td class="button_cell" style="text-align: right;">
<input type="submit" name="confirm" id="confirm" class="button" value="#!string!striker_0082!#">
</td>
</tr>
#!variable!hidden_fields!#
<input type="hidden" name="striker" id="striker" value="#!data!cgi::striker::value!#">
<input type="hidden" name="task" id="task" value="#!data!cgi::task::value!#">
<input type="hidden" name="save" id="save" value="#!data!cgi::save::value!#">
</form>
</div>
</table>
<!-- end confirm-action -->
<!-- start confirm-new-peer -->
<table align="center">
<tr>
<td class="menu_title">
#!string!striker_0078!#
</td>
</tr>
<tr>
<td class="menu_details">
#!string!striker_0081!#
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
<table align="center" class="data_table">
<form name="confirm-new-peer" action="" method="post">
<div id="confirm-new-peer">
<tr>
<td class="top_padded_cell">
#!string!striker_0079!#:
</td>
<td class="top_padded_cell" class="fixed_width">
#!variable!access!#
</td>
</tr>
<tr>
<td class="padded_cell">
#!string!striker_0080!#:
</td>
<td class="padded_cell" class="fixed_width">
#!variable!ping!#
</td>
</tr>
<tr>
<td class="padded_cell">
#!string!striker_0072!#:
</td>
<td class="padded_cell" class="fixed_width">
#!variable!bidirectional!#
</td>
</tr>
<tr>
<td class="button_cell" style="text-align: left;">
<a href="/cgi-bin/striker?striker=true" class="button">#!string!striker_0098!#</a>
</td>
<td class="button_cell" style="text-align: right;">
<input type="submit" name="confirm" id="confirm" class="button" value="#!string!striker_0082!#">
</td>
</tr>
<input type="hidden" name="new_peer_access" id="new_peer_access" value="#!data!cgi::new_peer_access::value!#">
<input type="hidden" name="new_peer_password" id="new_peer_password" value="#!data!cgi::new_peer_password::value!#">
<input type="hidden" name="new_peer_bidirection" id="new_peer_bidirection" value="#!data!cgi::new_peer_bidirection::value!#">
<input type="hidden" name="new_peer_ping" id="new_peer_ping" value="#!data!cgi::new_peer_ping::value!#">
<input type="hidden" name="striker" id="striker" value="#!data!cgi::striker::value!#">
<input type="hidden" name="task" id="task" value="#!data!cgi::task::value!#">
<input type="hidden" name="save" id="save" value="#!data!cgi::save::value!#">
</form>
</div>
</table>
</td>
</tr>
</table>
<!-- end confirm-new-peer -->
<!-- start confirm-reconfig -->
<table align="center">
<form name="confirm-reconfig" action="" method="post">
<div id="confirm-reconfig">
<tr>
<td class="menu_title" colspan="2">
#!string!striker_0078!#
</td>
</tr>
<tr>
<td class="menu_details" colspan="2">
#!string!striker_0083!#
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td class="button_cell" style="text-align: left;">
<a href="/cgi-bin/striker?striker=true" class="button">#!string!striker_0098!#</a>
</td>
<td class="button_cell" style="text-align: right;">
<input type="submit" name="confirm" id="confirm" class="button" value="#!string!striker_0082!#">
</td>
</tr>
<input type="hidden" name="striker" id="striker" value="#!data!cgi::striker::value!#">
<input type="hidden" name="task" id="task" value="#!data!cgi::task::value!#">
<input type="hidden" name="save" id="save" value="#!data!cgi::save::value!#">
</form>
</div>
</table>
<!-- end confirm-reconfig -->
<!-- start jobs -->
<table class="centered" width="90%">
<tr>
<td>
&nbsp;
</td>
</tr>
<div id="running_jobs">
<script type="text/javascript" src="/skins/alteeve/jobs.js"></script>
<tr>
<td>
<input type="hidden" name="status_waiting" id="status_waiting" value="#!string!unit_0032!#">
<span name="jobs-title" id="jobs-title" class="config_header2">#!string!header_0011!#</span><br />
<span name="jobs-message" id="jobs-message" class="config_header3">#!string!striker_0096!#</span>
<br />
<hr />
#!variable!job_list!#
</td>
</tr>
</div>
</table>
<!-- end jobs -->
<!-- start no-bad-keys -->
<table align="center">
<div id="confirm-update">
<tr>
<td class="menu_title" colspan="2">
#!string!striker_0133!#
</td>
</tr>
<tr>
<td class="menu_details" colspan="2">
#!string!striker_0134!#
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td class="button_cell" style="text-align: left;">
<a href="/cgi-bin/striker?striker=true" class="button">#!string!striker_0098!#</a>
</td>
</tr>
</div>
</table>
<!-- end no-bad-keys -->
<!-- start reconfig-done -->
<table>
<tr>
<td class="menu_title">
#!string!striker_0084!#
</td>
</tr>
<tr>
<td class="menu_details">
#!string!striker_0085!#
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
<a href="/cgi-bin/striker" class="button">#!string!striker_0053!#</a>
</td>
</tr>
</table>
<!-- end reconfig-done -->
<!-- start striker-login -->
<table class="login">
<form name="striker_login" action="" method="post">
<div id="striker_login">
<tr>
<td>
<input type="text" name="username" id="username" value="#!variable!user!#" placeholder="#!string!striker_0050!#" />
</td>
<td>
&nbsp;
</td>
<td>
* Got the node/dr host initialization form to the point where it can test access and decide if it should show the Red Hat account form. Decided that for M3, node/dr host setup will now be a four-stage process; initial install (over PXE), initialization (install the proper anvil-{node,dr} RPM and connect to the database), setup/map the network, and then add to an Anvil! pair. * Updated striker to no longer try to SSH to a remote machine. To enable this, we'd have to give apache a shell and an SSH key, which is dumb and dangerous when considered. * Created tools/striker-get-peer-data which is meant to be invoked as the 'admin' user (via a setuid c-wrapper). It collects basic data about a target machine and reports what it finds on STDOUT. It gets the password for the target via the database. * Updated anvil-daemon to check/create/update setuid c-wrapper(s), which for now is limited to call_striker-initialize-host. * Created Anvil/Tools/Striker.pm to store Striker web-specific methods, including get_peer_data() which calls tools/striker-initialize-host via the setuid admin call_striker-initialize-host c-wrapper. * In order to allow striker via apache to read a peer's anvil.version, which it can no longer do over SSH, any connection to a peer where the anvil.version is read is cached as /etc/anvil/anvil.<peer>.version. When Get->anvil_version is called as 'apache', this file is read instead. * Updated Database->resync_databases() and ->_find_behind_databases() to ignore the 'states' table. * Created tools/striker-initialize-host which will be called as a job to initialize a node/dr host. Signed-off-by: Digimer <digimer@alteeve.ca>
5 years ago
<input type="password" name="password" id="password" value="#!variable!password!#" placeholder="#!string!striker_0051!#" />
</td>
<td>
&nbsp;
</td>
<td>
<input type="submit" name="login" id="login" class="button" value="#!string!striker_0049!#">
</td>
</tr>
<tr>
<td colspan="5" class="subtle_text" style="text-align: center;">
#!string!striker_0065!#
</td>
</tr>
</div>
</form>
</table>
<!-- end striker-login -->
<!-- start striker-offline -->
<table class="centered" width="90%">
<tr>
<td>
&nbsp;
</td>
</tr>
<div id="striker-offline">
<tr>
<td>
<span name="#!variable!title_id!#" id="#!variable!title_id!#" class="config_header1">#!variable!title!#</span><br />
<span name="#!variable!message_id!#" id="#!variable!message_id!#" class="config_header3">#!variable!description!#</span>
<br />
<hr />
<a href="/cgi-bin/striker" class="button">#!string!striker_0053!#</a>
</td>
</tr>
</div>
<tr>
<td>
&nbsp;
</td>
</tr>
<div id="running_jobs">
<script type="text/javascript" src="/skins/alteeve/jobs.js"></script>
<tr>
<td>
<input type="hidden" name="status_waiting" id="status_waiting" value="#!string!unit_0032!#">
<span name="jobs-title" id="jobs-title" class="config_header2">#!string!header_0011!#</span><br />
<span name="jobs-message" id="jobs-message" class="config_header3">#!string!striker_0096!#</span>
<br />
<hr />
#!variable!job_list!#
</td>
</tr>
</div>
</table>
<!-- end striker-offline -->
<!-- start job-details -->
<div id="#!variable!div_id!#">
<br />
<table class="job_table" width="90%">
<tr>
<td width="48%" style="padding-left: 4px;">
<span class="column_header">#!string!striker_0099!#:</span> #!variable!title!#
</td>
<td width="4%" class="subtle_text" style="text-align: center; white-space: nowrap;">
<div id="#!variable!progress_percent!#"></div>
</td>
<td width="48%">
<div id="#!variable!progress_bar!#"></div>
</td>
</tr>
<tr>
<td colspan="3" style="padding-left: 4px;">
<span class="column_row_value">#!variable!description!#</span>
</td>
</tr>
<tr>
<td colspan="3" style="padding: 6px;">
<div class="job_status" id="#!variable!status!#"></div>
</td>
</tr>
</table>
<br />
<hr />
<br />
</div>
<!-- end job-details -->
<!-- start job recorded -->
<table>
<div id="job recorded_div">
<tr>
<td>
<span name="#!variable!title_id!#" id="#!variable!title_id!#" class="config_header2">#!variable!title!#</span><br />
<span name="#!variable!message_id!#" id="#!variable!message_id!#" class="config_header3">#!variable!description!#</span>
<br />
<hr />
<a href="#!variable!reload_url!#" class="button">#!string!striker_0053!#</a>
</td>
</tr>
</div>
</table>
<!-- end job recorded -->
<!-- start striker-setup -->
<table align="center" class="striker_welcome">
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2" class="title">
#!string!striker_0052!#
</td>
</tr>
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td rowspan="2" class="icon_button">
<a href="?striker=true&task=sync"><img src="#!data!skin::url!#/images/sync.png" class="top_icon" ></a>
</td>
<td class="menu_title">
<a href="?striker=true&task=sync">#!string!striker_0054!#</a>
</td>
</tr>
<tr>
<td class="menu_details">
#!string!striker_0055!#
</td>
</tr>
<tr>
<td rowspan="2" class="icon_button">
<a href="?striker=true&task=update"><img src="#!data!skin::url!#/images/update.png" class="top_icon" ></a>
</td>
<td class="menu_title">
<a href="?striker=true&task=update">#!string!striker_0056!#</a>
</td>
</tr>
<tr>
<td class="menu_details">
#!string!striker_0057!#
</td>
</tr>
<tr>
<td rowspan="2" class="icon_button">
<a href="?striker=true&task=reconfig"><img src="#!data!skin::url!#/images/striker_configure.png" class="top_icon" ></a>
</td>
<td class="menu_title">
<a href="?striker=true&task=reconfig">#!string!striker_0058!#</a>
</td>
</tr>
<tr>
<td class="menu_details">
#!string!striker_0059!#
</td>
</tr>
<tr>
<td rowspan="2" class="icon_button">
<a href="?striker=true&task=install-target&subtask=#!variable!install_target_subtask!#"><img src="#!data!skin::url!#/images/#!variable!install_target_icon!#" class="top_icon" ></a>
</td>
<td class="menu_title">
<a href="?striker=true&task=install-target&subtask=#!variable!install_target_subtask!#">#!variable!install_target_title!#</a>
</td>
</tr>
<tr>
<td class="menu_details">
#!string!striker_0110!#
</td>
</tr>
<tr>
<td rowspan="2" class="icon_button">
<a href="?striker=true&task=keys"><img src="#!data!skin::url!#/images/#!variable!broken_key_icon!#" class="top_icon" ></a>
</td>
<td class="menu_title">
<a href="?striker=true&task=keys">#!string!striker_0133!#</a>
</td>
</tr>
<tr>
<td class="menu_details">
#!variable!broken_key_message!#
</td>
</tr>
<tr>
<td rowspan="2" class="icon_button">
<a href="?striker=true&task=reboot"><img src="#!data!skin::url!#/images/#!variable!reboot_icon!#" class="top_icon" ></a>
</td>
<td class="menu_title">
<a href="?striker=true&task=reboot">#!string!striker_0091!#</a>
</td>
</tr>
<tr>
<td class="menu_details">
#!variable!reboot_message!#
</td>
</tr>
<tr>
<td rowspan="2" class="icon_button">
<a href="?striker=true&task=poweroff"><img src="#!data!skin::url!#/images/power_icon.png" class="top_icon" ></a>
</td>
<td class="menu_title">
<a href="?striker=true&task=poweroff">#!string!striker_0094!#</a>
</td>
</tr>
<tr>
<td class="menu_details">
#!string!striker_0095!#
</td>
</tr>
</table>
<!-- end striker-setup -->
<!-- start striker-sync -->
<table align="center">
<tr>
<td class="menu_title">
#!string!striker_0135!#
</td>
</tr>
<tr>
<td class="menu_details">
#!string!striker_0136!#
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td align="center">
<table class="data_table" width="75%">
<form name="striker_peers" action="" method="post">
<tr>
<td class="column_header">
#!string!header_0007!#
</td>
<td colspan="3" class="column_header">
#!string!header_0008!#
</td>
</tr>
<tr>
#!variable!inbound_table!#
</tr>
<tr>
<td colspan="4">
&nbsp;
</td>
</tr>
<tr>
<td class="column_header">
#!string!header_0009!#
</td>
<td class="column_header" colspan="3">
&nbsp;
</td>
</tr>
<tr>
#!variable!peer_table!#
</tr>
<tr>
<td class="padded_cell">
<input type="text" id="new_peer_access" name="new_peer_access" placeholder="#!string!striker_0069!#" value="#!variable!new_peer_access!#" />
</td>
<td class="padded_cell">
<!--
This combination of input type text, disk characters and autocomplete=off prevents browsers from pre-filling password and offering to save passwords.
-->
<input type="text" id="new_peer_password" name="new_peer_password" value="#!variable!new_peer_password!#" style="text-security:disc; -webkit-text-security:disc;" autocomplete="off" placeholder="#!string!striker_0051!#" />
</td>
<td class="padded_cell">
#!string!striker_0071!#: <input type="checkbox" id="new_peer_ping" name="new_peer_ping" checked />
</td>
<td class="padded_cell">
#!string!striker_0072!#: <input type="checkbox" id="new_peer_bidirection" name="new_peer_bidirection" checked />
</td>
</tr>
<tr>
<td class="button_cell" colspan="4" align="center">
<input type="submit" id="save" name="save" class="button" value="#!string!striker_0067!#" />
</td>
</tr>
<input type="hidden" name="striker" value="true" />
<input type="hidden" name="task" value="sync" />
</form>
</table>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td align="center">
<table width="75%">
<tr>
<td class="subtle_text" style="white-space: nowrap; vertical-align: top;">
<span class="code" style="white-space: nowrap;">#!string!striker_0075!#</span>: &nbsp;
</td>
<td class="subtle_text" style="padding-bottom: 10px;">
#!string!striker_0076!#<br />
#!string!striker_0077!#
</td>
</tr>
<tr>
<td class="subtle_text" style="white-space: nowrap; vertical-align: top;">
<span class="code" style="white-space: nowrap;">#!string!striker_0071!#</span>: &nbsp;
</td>
<td class="subtle_text" style="padding-bottom: 10px;">
#!string!striker_0073!#
</td>
</tr>
<tr>
<td class="subtle_text" style="white-space: nowrap; vertical-align: top;">
<span class="code">#!string!striker_0072!#</span>: &nbsp;
</td>
<td class="subtle_text">
#!string!striker_0074!#
</td>
</tr>
</table>
</tr>
</tr>
</table>
<!-- end striker-sync -->
<!-- start striker-sync-entry -->
<tr>
<td width="25%" class="padded_cell">
#!variable!access!#
</td>
<td width="25%" class="padded_cell">
#!variable!password!#
</td>
<td width="25%" class="padded_cell">
#!string!striker_0071!#: <span class="form_answer">#!variable!say_ping!#</span>
</td>
<td width="25%" class="padded_cell" align="right">
<a href="?striker=true&task=sync&delete=#!variable!uuid!#" id="#!variable!uuid!#_delete" class="button">#!string!striker_0068!#<a/>
</td>
</tr>
<tr>
<td colspan="4">
<br />
</td>
</tr>
<!-- end striker-sync-entry -->
<!-- start striker-sync-inbound -->
<tr>
<td width="25%" class="padded_cell" class="code">
#!variable!access!#
</td>
<td width="75%" class="padded_cell" colspan="3">
#!variable!note!#
</td>
</tr>
<!-- end striker-sync-inbound -->
<!-- start striker-welcome -->
<table align="center" class="striker_welcome">
<tr>
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2" class="title">
#!string!striker_0060!#
</td>
</tr>
<tr>
<td>
<a href="?anvil=true"><img src="#!data!skin::url!#/images/anvil_icon_on.png" class="top_icon"></a>
</td>
<td>
#!string!striker_0061!#
</td>
</tr>
<tr>
<td>
<a href="?striker=true"><img src="#!data!skin::url!#/images/striker_icon_on.png" class="top_icon"></a>
</td>
<td>
#!string!striker_0062!#
</td>
</tr>
<tr>
<td>
<a href="?logout=true"><img src="#!data!skin::url!#/images/users_icon_on.png" alt="#!string!striker_0063!#" class="top_icon"></a>
</td>
<td>
#!string!striker_0063!#
</td>
</tr>
<tr>
<td>
<a href="https://alteeve.com/w/Support" target="_new"><img src="#!data!skin::url!#/images/help_icon_on.png" id="help_icon" class="top_icon"></a>
</td>
<td>
#!string!striker_0064!#
</td>
</tr>
</table>
<!-- end striker-welcome -->
<!-- start network_job_recorded -->
<table>
<div id="network_job_recorded_div">
<tr>
<td>
<span name="#!variable!title_id!#" id="#!variable!title_id!#" class="config_header2">#!variable!title!#</span><br />
<span name="#!variable!message_id!#" id="#!variable!message_id!#" class="config_header3">#!variable!description!#</span>
<br />
<hr />
<a href="#!variable!reload_url!#" class="button">#!string!striker_0053!#</a>
</td>
</tr>
</div>
</table>
<!-- end network_job_recorded -->