getMessage();
}
break;
case "check_install":
$arr = check_redis("web_out",$_GET["key"]);
if (!empty($arr)) {
foreach ($arr as $key=>$data) {
//echo $key."-".$_GET["key"];
if ($key==$_GET["key"]) { // if install key moved to web_out
if ($data["INSTALL_STATUS"]>0) {
redis_remove("$key");
echo "INSTALLED";
}
}
}
}
else echo "NOT EXISTS";
break;
case "system":
$arr = array("STATUS" => 0);
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "system"; //"init:".date("YmdHis");
redis_set($op,$json);
echo "OK"; // TODO?
break;
case "check_system":
$arr = check_redis("web_out","system");
if (!empty($arr)) {
foreach ($arr as $key=>$data) {
if ($key=="system") {
if ($data["INSTALL_STATUS"]==2) echo "NEW";
elseif ($data["INSTALL_STATUS"]==1) {
if ($_GET["services"]==1) {
foreach ($data["INSTALLED_SERVICES"] as $service_name => $object) {
//echo base64_decode($content);
show_service($service_name, $object["running"]);
}
echo "
";
}
else echo "EXISTS";
}
redis_remove("$key");
}
}
}
else echo "WAIT";
break;
case "services":
$arr = array("STATUS" => 0);
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "services"; //"init:".date("YmdHis");
redis_set($op,$json);
echo "OK"; // TODO?
break;
case "check_services":
$arr = check_redis("web_out","services");
if (!empty($arr)) {
foreach ($arr as $key=>$data) {
if ($key=="services") {
if ($data["INSTALL_STATUS"]==2) echo "NEW";
elseif ($data["INSTALL_STATUS"]==1) {
foreach ($data["INSTALLED_SERVICES"] as $service_name => $object) {
//echo base64_decode($object["content"]);
show_service($service_name, $object["running"].":Up");
}
echo "
";
}
redis_remove("$key");
}
}
}
else echo "WAIT";
break;
case "updates":
$arr = array("STATUS" => 0);
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "updates"; //"init:".date("YmdHis");
redis_set($op,$json);
echo "OK"; // TODO?
break;
case "check_updates":
$arr = check_redis("web_out","updates");
if (!empty($arr)) {
foreach ($arr as $key=>$data) {
if ($key=="updates") {
if ($data["INSTALL_STATUS"]==1) {
foreach ($data["INSTALLED_SERVICES"] as $service_name => $object) {
show_service_update($service_name, trim($object["update"]), trim($object["uptodate"]));
}
echo "
";
}
redis_remove("$key");
}
}
}
else echo "WAIT";
break;
case "deployments":
$arr = array("STATUS" => 0);
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "deployments";
redis_set($op,$json);
echo "OK"; // TODO?
break;
case "check_deployments":
$arr = check_redis("web_out","deployments");
if (!empty($arr)) {
foreach ($arr as $key=>$data) {
if ($key=="deployments") {
if (count($data["DEPLOYMENTS"])) {
if ($data["DEPLOYMENTS"]["deployments"]=="NONE") echo "There are no deployments.
";
else {
foreach ($data["DEPLOYMENTS"] as $service_name => $content) {
//echo base64_decode($content);
if (array_key_exists($service_name,$data["INSTALLED_SERVICES"])) {
echo '
'.$service_name.' - '.$content.' - INSTALLED -
UNINSTALL ';
}
else echo '';
echo '';
}
}
}
else echo "There are no deployments.
";
/*
if (count($data["INSTALLED_SERVICES"])) {
echo "
Installed services:
";
if ($data["INSTALLED_SERVICES"]["services"]=="NONE") echo "There are no installed services.
";
else {
foreach ($data["INSTALLED_SERVICES"] as $service_name => $content) {
//echo base64_decode($content);
echo $service_name."
";
}
echo "
";
}
}
else echo "There are no installed services.
";
*/
redis_remove("$key");
}
}
}
else echo "";
break;
case "deployment":
$arr = array("NAME" => $_GET["additional"], "ACTION" => "ask");
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "deployment";
redis_set($op,$json);
echo "OK"; // TODO?
break;
case "check_deployment":
$arr = check_redis("web_out","deployment");
if (!empty($arr)) {
foreach ($arr as $key=>$data) {
if ($key=="deployment") {
if ($data["STATUS"]=="0") { // ask
$template = json_decode(base64_decode($data["TEMPLATE"]));
echo "
";
}
elseif ($data["STATUS"]=="2") { // deploy
echo "Install has finished.";
}
redis_remove("$key");
}
}
}
else {
$arr = check_redis("web_in","deployment");
if (!empty($arr)) { // deployment in progress
foreach ($arr as $key=>$data) {
if ($key=="deployment") {
if ($data["STATUS"]=="1") { // TODO - curenct state message???
echo "Install in progress... Please wait...";
}
}
}
}
else echo ""; // no deployment, finished
}
break;
case "deploy":
if ($key=check_deploy()) {
$text="A deployment has already started.
Please wait and do not start a new one...";
}
else {
$text="Install in progress... Please wait...";
$fields = $_GET;
unset($fields["op"]);
unset($fields["additional"]);
$algos = hash_algos();
foreach ($fields as $field_key => $field_value) {
$field_arr = explode(":",$field_value);
if ($field_arr[0]=="generated") {
if (intval($field_arr[3])==0) $len = 10; // default length
else $len = $field_arr[3];
if ($field_arr[1]=="random") $base = rand(100000,999999);
elseif ($field_arr[1]=="time") $base = time();
elseif ($field_arr[1]!="") $base = $field_arr[1]; // fix string
else $base = rand(100000,999999); // default
if (in_array($field_arr[2],$algos)) $base = hash($field_arr[2],$base);
else $base = hash("md5",$base); // default alg
$fields["$field_key"] = substr($base,0,$len);
}
}
$payload = base64_encode(json_encode($fields, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT));
$arr = array("NAME" => $_GET["additional"], "ACTION" => "deploy", "PAYLOAD" => $payload);
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "deployment";
redis_set($op,$json);
}
echo $text;
break;
case "uninstall":
if ($key=check_uninstall()) {
$text="Uninstall process has already started.
Please wait and do not start a new one...";
}
else {
$text="Uninstall in progress... Please wait...";
$arr = array("NAME" => $_GET["additional"], "ACTION" => "uninstall");
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "uninstall";
redis_set($op,$json);
}
echo $text;
break;
case "repositories":
$arr = array("STATUS" => 0);
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "repositories";
redis_set($op,$json);
echo "OK"; // TODO?
break;
case "check_repositories":
$arr = check_redis("web_out","repositories");
if (!empty($arr)) {
foreach ($arr as $key=>$data) {
if ($key=="repositories") {
$repos = json_decode(base64_decode($data["REPOSITORIES"]));
foreach ($repos->repositories as $repo) {
echo $repo."
";
}
redis_remove("$key");
}
}
redis_remove("add_repository");
}
else echo "";
break;
case "add_repository":
redis_remove("add_repository");
$arr = array("NEW_REPO" => $_GET["repo"]);
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "add_repository";
redis_set($op,$json);
echo "OK"; // TODO?
break;
case "containers":
$arr = array("STATUS" => 0);
$json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$op = "containers";
redis_set($op,$json);
echo "OK"; // TODO?
break;
case "check_containers":
$arr = check_redis("web_out","containers");
if (!empty($arr)) {
foreach ($arr as $key=>$data) {
if ($key=="containers") {
echo base64_decode($data["RESULT"]);
redis_remove("$key");
}
}
}
else echo "";
break;
case "docker":
echo true;
break;
}
?>