Skip to content

Commit

Permalink
evolution
Browse files Browse the repository at this point in the history
  • Loading branch information
Squidly271 committed Mar 12, 2017
1 parent f7240e1 commit 8495610
Show file tree
Hide file tree
Showing 10 changed files with 94 additions and 8 deletions.
Binary file modified archive/ca.turbo-2017.03.11-x86_64-1.txz
Binary file not shown.
6 changes: 4 additions & 2 deletions source/ca.turbo/usr/local/emhttp/plugins/ca.turbo/Turbo.page
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ $plugin = "ca.turbo";
function getPluginSettings() {
$settings = @parse_ini_file("/usr/local/emhttp/plugins/ca.turbo/default.ini");
$userSettings = @parse_ini_file("/boot/config/plugins/ca.turbo/settings.ini");

if ( ! $userSettings ) {
$userSettings = array();
}
$userKeys = array_keys($userSettings);
foreach ($userKeys as $key) {
$settings[$key] = $userSettings[$key];
Expand Down Expand Up @@ -102,7 +104,7 @@ function applySettings() {
<dd>
<select class='settings' id='maxSpunDown' onchange='changeApply();'>
<?for($i=0; $i <= 10; $i++):?>
<?$number = $i == 0 ? "Zero" : $i?>
<?$number = $i == 0 ? "0" : $i?>
<option value="<?=$i?>"><?=$number?></option>
<?endfor;?>
</select>
Expand Down
4 changes: 4 additions & 0 deletions source/ca.turbo/usr/local/emhttp/plugins/ca.turbo/default.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
enabled="no"
maxSpunDown="0"
pollingTime="300"
debug="false"
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

mkdir -p /tmp/ca.turbo
/usr/local/emhttp/plugins/ca.turbo/scripts/arrayStarted.php

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash
if [[ -e /tmp/ca.turbo/PID ]]
then
logger "Stopping CA Turbo Mode"
PID=`cat /tmp/ca.turbo/PID`
logger "Terminating $PID"
kill $PID
fi

14 changes: 12 additions & 2 deletions source/ca.turbo/usr/local/emhttp/plugins/ca.turbo/include/exec.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,17 @@
posix_kill($PID,SIGKILL);
@unlink($turboPaths['backgroundPID']);
@unlink($turboPaths['status']);
logger("Setting write method to unRaid defined");
$unRaidVars = parse_ini_file("/var/local/emhttp/var.ini");
exec("/usr/local/sbin/mdcmd set md_write_method ".$unRaidVars['md_write_method']);
}
}
if ( $settings['enable'] == 'yes' ) {
if ( is_file($turboPaths['backgroundPID']) ) {
logger("Stopping Auto Turbo");
$PID = file_get_contents($turboPaths['backgroundPID']);
posix_kill($PID,SIGKILL);

}
logger("Starting Auto Turbo");
exec("/usr/local/emhttp/plugins/ca.turbo/scripts/startBackground.sh");
Expand All @@ -31,9 +35,15 @@
break;
case 'status':
$status = readJsonFile($turboPaths['status']);
if ( ! $status ) { return; }
if ( ! $status ) {
$unRaidVars = parse_ini_file("/var/local/emhttp/var.ini");
if ($unRaidVars['md_write_method'] == "1") {
$status['mode'] = "turbo";
}
}
$spunDown = ( $status ) ? $status['spundown'] : "<font color=red>Script Not Running</font>";
$o = "<script>";
$o .= " $('#spunDown').html('{$status['spundown']}');";
$o .= " $('#spunDown').html('$spunDown');";
$msg = ($status['mode'] == "turbo") ? "Turbo (Reconstruct Write)" : "Normal (Read/Modify/Write)";
$o .= " $('#turboOn').html('$msg');";
if ( is_file($turboPaths['backgroundPID']) ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ function create_ini_file($settings,$mode=false) {
function getPluginSettings() {
$settings = @parse_ini_file("/usr/local/emhttp/plugins/ca.turbo/default.ini");
$userSettings = @parse_ini_file("/boot/config/plugins/ca.turbo/settings.ini");

if ( !$userSettings ) {
$userSettings = array();
}
$userKeys = array_keys($userSettings);
foreach ($userKeys as $key) {
$settings[$key] = $userSettings[$key];
Expand All @@ -64,4 +66,13 @@ function readJsonFile($filename) {
function writeJsonFile($filename,$jsonArray) {
file_put_contents($filename,json_encode($jsonArray, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
}

# Functions to set normal / turbo mode

function setTurbo() {
exec("/usr/local/sbin/mdcmd set md_write_method 1");
}
function setNormal() {
exec("/usr/local/sbin/mdcmd set md_write_method 0");
}
?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/php
<?PHP
require_once("/usr/local/emhttp/plugins/ca.turbo/include/helpers.php");
require_once("/usr/local/emhttp/plugins/ca.turbo/include/paths.php");

$settings = getPluginSettings();
if ($settings['enabled'] == "yes") {
exec("/usr/local/emhttp/plugins/ca.turbo/scripts/startBackground.sh");
}
?>
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
#!/usr/bin/php
<?PHP
###################################
# #
# CA Automatic Turbo Mode #
# Copyright 2017, Andrew Zawadzki #
# #
###################################

require_once("/usr/local/emhttp/plugins/ca.turbo/include/helpers.php");
require_once("/usr/local/emhttp/plugins/ca.turbo/include/paths.php");

Expand All @@ -19,6 +26,8 @@ function getUnraidDisks() {
}
}

# Function to get the valid disks

function getDisks() {
global $unRaidDisks;

Expand All @@ -33,18 +42,29 @@ function getDisks() {
return $validDisks;
}

################
################
## ##
## BEGIN MAIN ##
## ##
################
################

$settings = getPluginSettings();
$debug = ($settings['debug'] == "true");

if ($settings['enabled'] != "yes") return;
if ( is_file($turboPaths['backgroundPID']) ) {
logger("Auto Turbo Mode Background process is already running!");
# return;
if ($debug) {
logger("Auto Turbo Mode Background process is already running (PID: ".file_get_contents($turboPaths['backgroundPID']));
}
return;
}

exec("mkdir -p /tmp/ca.turbo/");
file_put_contents($turboPaths['backgroundPID'],getmypid());
$MyPID = getmypid();
file_put_contents($turboPaths['backgroundPID'],"$MyPID");

while (true) {
getUnraidDisks();
Expand All @@ -68,6 +88,7 @@ function getDisks() {
if ( $debug ) {
logger("Entering Normal Mode");
}
setNormal();
$currentMode = "normal";
}
} else {
Expand All @@ -76,13 +97,24 @@ function getDisks() {
if ( $debug ) {
logger("Entering Turbo Mode");
}
setTurbo();
$currentMode = "turbo";
}
}
$status['spundown'] = $totalSpunDown;
$status['mode'] = $currentMode;
writeJsonFile($turboPaths['status'],$status);
sleep($settings['pollingTime']);
# if PID file no longer exists (or is a different PID), stop the process
$testPID = @file_get_contents($turboPaths['backgroundPID']);
if ( $testPID != $MyPID ) {
break;
}
}

# reset write mode to unRaid's setting
$unRaidVars = parse_ini_file("/var/local/emhttp/var.ini");
exec("/usr/local/sbin/mdcmd set md_write_method ".$unRaidVars['md_write_method']);
@unlink($turboPaths['backgroundPID']);
@unlink($turboPaths['status']);

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash
/usr/local/emhttp/plugins/ca.turbo/scripts/auto_turbo.php & > /dev/null | at NOW -M >/dev/null 2>&1

0 comments on commit 8495610

Please sign in to comment.