getMessage(); } break; case "system": $arr = array("STATUS" => 0); $json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); if (set_output("system",$json)) echo "OK"; else echo "ERROR"; break; case "check_system": $arr = check_response("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) { echo "
Service/ContainerImageStatusAction
"; foreach ($data["INSTALLED_SERVICES"] as $service_name => $object) { //echo base64_decode($content); show_service($service_name, $object["running"]); } echo "
"; } else echo "EXISTS"; } remove_response("$key"); } } } else echo "WAIT"; break; case "check_install": // called in install.php - check if install process has finished $arr = check_response($_GET["key"]); // TODO - replace key with "install", key can be "install*" 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) { remove_response("$key"); echo "INSTALLED"; } } } } else echo "NOT EXISTS"; // TODO - check if in progress or just not exists ??? break; case "services": $arr = array("STATUS" => 0); $json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); if (set_output("services",$json)) echo "OK"; else echo "ERROR"; break; case "check_services": $arr = check_response("services"); if (!empty($arr)) { foreach ($arr as $key=>$data) { if ($key=="services") { if ($data["INSTALL_STATUS"]==2) echo "NEW"; elseif ($data["INSTALL_STATUS"]==1) { echo "
Service/ContainerImageStatusAction
"; foreach ($data["INSTALLED_SERVICES"] as $service_name => $object) { //echo base64_decode($object["content"]); show_service($service_name, $object["running"]); } echo "
"; } remove_response("$key"); } } } else echo "WAIT"; break; case "updates": $arr = array("STATUS" => 0); $json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); if (set_output("updates",$json)) echo "OK"; else echo "ERROR"; break; case "check_updates": $arr = check_response("updates"); if (!empty($arr)) { foreach ($arr as $key=>$data) { if ($key=="updates") { if ($data["INSTALL_STATUS"]==1) { echo "
Service/ContainerImageStatusAction
"; foreach ($data["INSTALLED_SERVICES"] as $service_name => $object) { show_service_update($service_name, trim($object["update"]), trim($object["uptodate"])); } echo "
"; } remove_response("$key"); } } } else echo "WAIT"; break; case "deployments": $arr = array("STATUS" => 0); $json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); if (set_output("deployments",$json)) echo "OK"; else echo "ERROR"; break; case "check_deployments": $arr = check_response("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 - REINSTALL
'; } else echo '
'.$service_name.' - '.$content.'
'; echo '
'; } } } else echo "There are no deployments."; echo "
"; /* 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.
"; */ remove_response("$key"); } } } else echo "WAIT"; break; case "deployment": $arr = array("NAME" => $_GET["additional"], "ACTION" => "ask"); $json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); if (set_output("deployment",$json)) echo "OK"; else echo "ERROR"; break; case "check_reinstall": $reinstall = 1; case "check_deployment": $arr = check_response("deployment"); if (!empty($arr)) { foreach ($arr as $key=>$data) { if ($key=="deployment") { if ($data["STATUS"]=="0") { // ask $template = json_decode(base64_decode($data["TEMPLATE"])); if ($reinstall) { var_dump($template); } echo "

"; foreach ($template->fields as $field) { if (isset($field->generated)) { echo "generated}\" name=\"{$field->key}\" id=\"{$field->key}\" class=\"additional_field\">"; } else { echo "
required=="true" ? "required" : "")." type=\"".(!empty($field->type) ? $field->type : "text")."\" value=\"{$field->value}\" name=\"{$field->key}\" id=\"{$field->key}\" class=\"additional_field\">
"; } } echo "
name}\" id=\"additional\">
"; } elseif ($data["STATUS"]=="2") { // deploy echo "Install has finished."; } remove_response("$key"); } } } else { $arr = check_request("deployment"); if (!empty($arr)) { // deployment in progress foreach ($arr as $key=>$data) { if ($key=="deployment") { if ($data["STATUS"]=="1") { // TODO - current state message??? echo "Install in progress... Please wait..."; } elseif ($data["STATUS"]=="2") { echo "Install has finished."; } } } } else echo ""; // no deployment, finished } break; case "deploy": if ($key=check_deploy($_GET["additional"])) { $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]=="openssl") { if ($field_arr[2]=="hex") $command = "openssl rand -hex $len"; elseif ($field_arr[2]=="base64") $command = "openssl rand -base64 $len"; else $command = "openssl rand $len"; // raw $output = shell_exec($command); if ($output === null) $output = "OPENSSL_ERROR"; } else { 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 $output = substr($base,0,$len); } $fields["$field_key"] = $output; } } $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); if (set_output("deployment",$json)) echo "OK"; else echo "ERROR"; } echo $text; break; case "reinstall": $arr = array("NAME" => $_GET["additional"], "ACTION" => "reinstall"); $json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); if (set_output("deployment",$json)) echo "OK"; else echo "ERROR"; break; case "uninstall": if ($key=check_deploy()) { $text="Deploy/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 = "deployment"; if (set_output("deployment",$json)) echo "OK"; else echo "ERROR"; } echo $text; break; case "repositories": $arr = array("STATUS" => 0); $json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); if (set_output("repositories",$json)) echo "OK"; else echo "ERROR"; break; case "check_repositories": $arr = check_response("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."
"; } remove_response("$key"); } } remove_response("add_repository"); } else echo "WAIT"; break; case "add_repository": remove_response("add_repository"); $arr = array("NEW_REPO" => $_GET["repo"]); $json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); if (set_output("add_repository",$json)) echo "OK"; else echo "ERROR"; break; case "containers": $arr = array("STATUS" => 0); $json = json_encode($arr, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); if (set_output("containers",$json)) echo "OK"; else echo "ERROR"; break; case "check_containers": $arr = check_response("containers"); if (!empty($arr)) { foreach ($arr as $key=>$data) { if ($key=="containers") { echo base64_decode($data["RESULT"]); remove_response("$key"); } } } else echo ""; break; case "docker": echo true; break; } ?>