get("action", "none"); my $launcher_name = $request->get("launcher_name", "none"); if($launcher_name eq "" || $launcher_name eq "none") { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Missing launcher name in Remove action\""; print "}"; return; } if($action eq "add") { my $dynamic_count = $request->get("dynamic_count", "0"); if($dynamic_count < 0 || $dynamic_count > 254) { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Invalid dynamics count in Add action\""; print "}"; return; } else { $EQW->CreateLauncher($launcher_name, $dynamic_count); } } elsif($action eq "remove") { my $l = $EQW->GetLauncher($launcher_name); if(!$l) { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Launcher not found during Remove action\""; print "}"; return; } $l->DeleteLauncher(); } elsif($action eq "boot") { my $zone = $request->get("zone", "none"); my $port = $request->get("port", "0"); if($zone eq "none" || $zone eq "") { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Missing zone name in Boot action\""; print "}"; return; } if($port < 0 || $port > 65535) { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Port out of range in Boot action\""; print "}"; return; } if(!$config->BootStaticZone($zone, $port)) { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Failed to boot '$zone' on launcher $launcher_name with port $port. Invalid zone?\""; print "}"; return; } } elsif($action eq "change_dynamic_count") { my $dynamic_count = $request->get("dynamic_count", "0"); $config->SetDynamicCount($dynamic_count); } elsif($action eq "remove_zone") { my $zone = $request->get("zone", "none"); if($zone eq "none" || $zone eq "") { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Invalid zone name in Remove Zone action.\""; print "}"; return; } else { if(!$config->DeleteStaticZone($zone)) { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Failed to remove '$zone' on launcher $launcher_name. Invalid zone?\""; print "}"; return; } } } elsif($action eq "reboot_all") { foreach my $z($config->ListZones()) { $config->RestartZone($z); } } elsif($action eq "stop_all") { foreach my $z($config->ListZones()) { $config->StopZone($z); } } elsif($action eq "start_all") { foreach my $z($config->ListZones()) { $config->StartZone($z); } } elsif($action eq "restart_zone") { my $zone = $request->get("zone", "none"); if($zone eq "none" || $zone eq "") { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Invalid zone name in Restart Zone action.\""; print "}"; return; } else { $config->RestartZone($zone); } } elsif($action eq "start_zone") { my $zone = $request->get("zone", "none"); if($zone eq "none" || $zone eq "") { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Invalid zone name in Start Zone action.\""; print "}"; return; } else { $config->StartZone($zone); } } elsif($action eq "stop_zone") { my $zone = $request->get("zone", "none"); if($zone eq "none" || $zone eq "") { print "{"; print "\"status\" : 0, "; print "\"message\" : \"Invalid zone name in Stop Zone action.\""; print "}"; return; } else { $config->StopZone($zone); } } print "{"; print "\"status\" : 1"; print "}"; ?>