Merge pull request #1922 from MPOS/disable-worker-notifications
[ADDED] IDLE Worker Global Switch
This commit is contained in:
commit
32ebfd851e
@ -29,47 +29,49 @@ if ($setting->getValue('disable_notifications') == 1) {
|
||||
$monitoring->endCronjob($cron_name, 'E0009', 0, true, false);
|
||||
}
|
||||
|
||||
$log->logDebug(" IDLE Worker Notifications ...");
|
||||
// Find all IDLE workers
|
||||
$aWorkers = $worker->getAllIdleWorkers();
|
||||
if (empty($aWorkers)) {
|
||||
$log->logDebug(" no idle workers found");
|
||||
} else {
|
||||
$log->logInfo(" found " . count($aWorkers) . " IDLE workers");
|
||||
foreach ($aWorkers as $aWorker) {
|
||||
$aData = $aWorker;
|
||||
$aData['username'] = $user->getUserName($aWorker['account_id']);
|
||||
$aData['subject'] = 'IDLE Worker : ' . $aWorker['username'];
|
||||
$aData['worker'] = $aWorker['username'];
|
||||
$aData['email'] = $user->getUserEmail($aData['username']);
|
||||
$log->logDebug(" " . $aWorker['username'] . "...");
|
||||
if (!$notification->sendNotification($aWorker['account_id'], 'idle_worker', $aData))
|
||||
$log->logDebug(" Failed sending notifications: " . $notification->getCronError());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$log->logDebug(" Reset IDLE Worker Notifications ...");
|
||||
// We notified, lets check which recovered
|
||||
$aNotifications = $notification->getAllActive('idle_worker');
|
||||
if (!empty($aNotifications)) {
|
||||
$log->logInfo(" found " . count($aNotifications) . " active notification(s)");
|
||||
foreach ($aNotifications as $aNotification) {
|
||||
$aData = json_decode($aNotification['data'], true);
|
||||
$aWorker = $worker->getWorker($aData['id']);
|
||||
$log->logDebug(" " . $aWorker['username'] . " ...");
|
||||
if ($aWorker['hashrate'] > 0) {
|
||||
if ($notification->setInactive($aNotification['id'])) {
|
||||
$log->logDebug(" updated #" . $aNotification['id'] . " for " . $aWorker['username'] . " as inactive");
|
||||
} else {
|
||||
$log->logError(" failed to update #" . $aNotification['id'] . " for " . $aWorker['username']);
|
||||
}
|
||||
} else {
|
||||
$log->logDebug(" still inactive");
|
||||
if ($setting->getValue('notifications_disable_idle_worker') != 1) {
|
||||
$log->logDebug(" IDLE Worker Notifications ...");
|
||||
// Find all IDLE workers
|
||||
$aWorkers = $worker->getAllIdleWorkers();
|
||||
if (empty($aWorkers)) {
|
||||
$log->logDebug(" no idle workers found");
|
||||
} else {
|
||||
$log->logInfo(" found " . count($aWorkers) . " IDLE workers");
|
||||
foreach ($aWorkers as $aWorker) {
|
||||
$aData = $aWorker;
|
||||
$aData['username'] = $user->getUserName($aWorker['account_id']);
|
||||
$aData['subject'] = 'IDLE Worker : ' . $aWorker['username'];
|
||||
$aData['worker'] = $aWorker['username'];
|
||||
$aData['email'] = $user->getUserEmail($aData['username']);
|
||||
$log->logDebug(" " . $aWorker['username'] . "...");
|
||||
if (!$notification->sendNotification($aWorker['account_id'], 'idle_worker', $aData))
|
||||
$log->logDebug(" Failed sending notifications: " . $notification->getCronError());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$log->logDebug(" no active IDLE worker notifications");
|
||||
|
||||
|
||||
$log->logDebug(" Reset IDLE Worker Notifications ...");
|
||||
// We notified, lets check which recovered
|
||||
$aNotifications = $notification->getAllActive('idle_worker');
|
||||
if (!empty($aNotifications)) {
|
||||
$log->logInfo(" found " . count($aNotifications) . " active notification(s)");
|
||||
foreach ($aNotifications as $aNotification) {
|
||||
$aData = json_decode($aNotification['data'], true);
|
||||
$aWorker = $worker->getWorker($aData['id']);
|
||||
$log->logDebug(" " . $aWorker['username'] . " ...");
|
||||
if ($aWorker['hashrate'] > 0) {
|
||||
if ($notification->setInactive($aNotification['id'])) {
|
||||
$log->logDebug(" updated #" . $aNotification['id'] . " for " . $aWorker['username'] . " as inactive");
|
||||
} else {
|
||||
$log->logError(" failed to update #" . $aNotification['id'] . " for " . $aWorker['username']);
|
||||
}
|
||||
} else {
|
||||
$log->logDebug(" still inactive");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$log->logDebug(" no active IDLE worker notifications");
|
||||
}
|
||||
}
|
||||
|
||||
require_once('cron_end.inc.php');
|
||||
|
||||
@ -425,3 +425,10 @@ $aSettings['notifications'][] = array(
|
||||
'name' => 'notifications_disable_block', 'value' => $setting->getValue('notifications_disable_block'),
|
||||
'tooltip' => 'Enable/Disable block notifications globally. Will remove the user option too.'
|
||||
);
|
||||
$aSettings['notifications'][] = array(
|
||||
'display' => 'Disable IDLE Worker Notifications', 'type' => 'select',
|
||||
'options' => array( 0 => 'No', 1 => 'Yes'),
|
||||
'default' => 0,
|
||||
'name' => 'notifications_disable_idle_worker', 'value' => $setting->getValue('notifications_disable_idle_worker'),
|
||||
'tooltip' => 'Enable/Disable IDLE worker notifications globally. Will remove the user option too.'
|
||||
);
|
||||
|
||||
@ -24,6 +24,7 @@ if ($user->isAuthenticated()) {
|
||||
|
||||
// Fetch global settings
|
||||
$smarty->assign('DISABLE_BLOCKNOTIFICATIONS', $setting->getValue('notifications_disable_block'));
|
||||
$smarty->assign('DISABLE_IDLEWORKERNOTIFICATIONS', $setting->getValue('notifications_disable_idle_worker'));
|
||||
|
||||
// Fetch user notification settings
|
||||
$aSettings = $notification->getNotificationSettings($_SESSION['USERDATA']['id']);
|
||||
|
||||
@ -40,6 +40,7 @@ if ($user->isAuthenticated()) {
|
||||
break;
|
||||
}
|
||||
|
||||
$smarty->assign('DISABLE_IDLEWORKERNOTIFICATIONS', $setting->getValue('notifications_disable_idle_worker'));
|
||||
$aWorkers = $worker->getWorkers($_SESSION['USERDATA']['id']);
|
||||
if (!$aWorkers) $_SESSION['POPUP'][] = array('CONTENT' => 'You have no workers configured', 'TYPE' => 'errormsg');
|
||||
|
||||
|
||||
@ -15,6 +15,7 @@ empty($_REQUEST['start']) ? $start = 0 : $start = $_REQUEST['start'];
|
||||
|
||||
$aWorkers = $worker->getAllWorkers($iLimit, $interval, $start);
|
||||
|
||||
$smarty->assign('DISABLE_IDLEWORKERNOTIFICATIONS', $setting->getValue('notifications_disable_idle_worker'));
|
||||
$smarty->assign('LIMIT', $iLimit);
|
||||
$smarty->assign('WORKERS', $aWorkers);
|
||||
$smarty->assign('CONTENT', 'default.tpl');
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
<th align="left">Type</th>
|
||||
<th align="center">Active</th>
|
||||
</tr>
|
||||
{if $DISABLE_IDLEWORKERNOTIFICATIONS|default:"" != 1}
|
||||
<tr>
|
||||
<td align="left">IDLE Worker</td>
|
||||
<td>
|
||||
@ -25,6 +26,7 @@
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $DISABLE_BLOCKNOTIFICATIONS|default:"" != 1}
|
||||
<tr>
|
||||
<td align="left">New Blocks</td>
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
<th align="left">Worker Login</th>
|
||||
<th align="left">Worker Password</th>
|
||||
<th align="center">Active</th>
|
||||
{if $GLOBAL.config.disable_notifications != 1}<th align="center">Monitor</th>{/if}
|
||||
{if $GLOBAL.config.disable_notifications != 1 && $DISABLE_IDLEWORKERNOTIFICATIONS != 1}<th align="center">Monitor</th>{/if}
|
||||
<th align="right">Khash/s</th>
|
||||
<th align="right">Difficulty</th>
|
||||
<th align="center" style="padding-right: 25px;">Action</th>
|
||||
@ -51,7 +51,7 @@
|
||||
<td align="left"{if $WORKERS[worker].hashrate > 0} style="color: orange"{/if}>{$username.0|escape}.<input name="data[{$WORKERS[worker].id}][username]" value="{$username.1|escape}" size="10" required/></td>
|
||||
<td align="left"><input type="text" name="data[{$WORKERS[worker].id}][password]" value="{$WORKERS[worker].password|escape}" size="10" required></td>
|
||||
<td align="center"><i class="icon-{if $WORKERS[worker].hashrate > 0}ok{else}cancel{/if}"></i></td>
|
||||
{if $GLOBAL.config.disable_notifications != 1}
|
||||
{if $GLOBAL.config.disable_notifications != 1 && $DISABLE_IDLEWORKERNOTIFICATIONS != 1}
|
||||
<td>
|
||||
<span class="toggle">
|
||||
<label for="data[{$WORKERS[worker].id}][monitor]">
|
||||
|
||||
@ -25,8 +25,8 @@
|
||||
<th align="left">Worker Name</th>
|
||||
<th align="left">Password</th>
|
||||
<th align="center">Active</th>
|
||||
{if $GLOBAL.config.disable_notifications != 1}<th align="center">Monitor</th>{/if}
|
||||
<th align="right">Khash/s</th>
|
||||
{if $GLOBAL.config.disable_notifications != 1 && $DISABLE_IDLEWORKERNOTIFICATIONS != 1}<th align="center">Monitor</th>{/if}
|
||||
<th align="right">Difficulty</th>
|
||||
<th align="right" style="padding-right: 25px;">Avg Difficulty</th>
|
||||
</tr>
|
||||
@ -38,7 +38,7 @@
|
||||
<td align="left">{$WORKERS[worker].username|escape}</td>
|
||||
<td align="left">{$WORKERS[worker].password|escape}</td>
|
||||
<td align="center"><i class="icon-{if $WORKERS[worker].hashrate > 0}ok{else}cancel{/if}"></i></td>
|
||||
{if $GLOBAL.config.disable_notifications != 1}
|
||||
{if $GLOBAL.config.disable_notifications != 1 && $DISABLE_IDLEWORKERNOTIFICATIONS != 1}
|
||||
<td align="center"><i class="icon-{if $WORKERS[worker].monitor}ok{else}cancel{/if}"></i></td>
|
||||
{/if}
|
||||
<td align="right">{$WORKERS[worker].hashrate|number_format|default:"0"}</td>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user