#85: Gameserver add job does not create user

https://github.com/easy-wi/developer/issues/85
This commit is contained in:
Ulrich Block 2013-10-01 20:26:28 +02:00
parent 6c13710636
commit 8c163a6b12

View File

@ -45,6 +45,8 @@ $query->execute();
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$cmds = array();
$query2->execute(array($row['hostID']));
$serverData = serverdata('root', $row['hostID'], $aeskey);
$sshuser = $serverData['user'];
foreach ($query2->fetchAll(PDO::FETCH_ASSOC) as $row2) {
unset($customer, $i);
$installGames=@json_decode($row2['extraData']);
@ -56,10 +58,9 @@ foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$port = $row3['port'];
$gsIP = $row3['serverip'];
$gsfolder = $row3['serverip'] . '_' . $row3['port'];
$customer=$row3['cname'];
$ftppass = $row3['ftp'];
$ftppass2 = $row3['ppasswordftp'];
if ($row3['newlayout']=='Y') $customer=$customer . '-' . $row3['id'];
$customer = ($row3['newlayout'] == 'Y') ? $row3['cname'] . '-' . $row3['id'] : $row3['cname'];
$gamestring = '';
if ($installGames == 'P') {
$query4 = $sql->prepare("SELECT t.`gamemod`,t.`gamemod2`,t.`shorten` FROM `serverlist` s INNER JOIN `servertypes` t ON s.`servertype`=t.`id` WHERE s.`id`=? AND t.`gamemod2` IS NOT NULL AND t.`gamemod2`!='' LIMIT 1");
@ -81,6 +82,7 @@ foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$cmds[]="su -u $customer ./control.sh delscreen $customer";
$cmds[]="su -u $customer-p ./control.sh delscreen $customer-p";
$cmds[]="./control.sh delCustomer $customer";
$query4 = $sql->prepare("DELETE FROM `gsswitch` WHERE `id`=? LIMIT 1");
$query4->execute(array($row2['affectedID']));
customColumns('G',$row2['affectedID'],'del');
@ -95,8 +97,7 @@ foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$command=$gsprache->del.' gsswitchID: '.$row2['affectedID'].' name:'.$row2['name'].' gsswitchID:'.$row2['affectedID'];
} else if (isset($i) and $row2['action'] == 'ad' and isset($customer)) {
if ($i>0) {
$ftppass2=passwordgenerate(10);
$cmds[]="./control.sh add $customer $ftppass $sshuser $ftppass2";
$cmds[] = './control.sh add ' . $customer . ' ' . $ftppass . ' ' . $sshuser . ' ' . passwordgenerate(10);
if ($installGames!='N') $cmds[]='sudo -u '.$customer.' ./control.sh addserver "'.$customer.'" "'.$gamestring.'" "'.$gsfolder.'"';
$query4 = $sql->prepare("UPDATE `jobs` SET `status`='3' WHERE `jobID`=? AND `type`='gs' LIMIT 1");
$query4->execute(array($row2['jobID']));
@ -111,10 +112,16 @@ foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$ftppass=passwordgenerate(15);
$ftppass2=passwordgenerate(15);
$tmp = gsrestart($row2['affectedID'],'so',$aeskey,$row['resellerID']);
if (is_array($tmp)) foreach($tmp as $t) $cmds[]=$t;
if (is_array($tmp)) {
foreach($tmp as $t) {
$cmds[]=$t;
}
}
}
$newPort=(is_object($extraData) and isset($extraData->newPort)) ? $extraData->newPort : $port;
if ($port!=$newPort) $cmds[]="sudo -u ${customer} ./control.sh move ${customer} ${gsfolder} ${gsIP}_${port}";
if ($port!=$newPort) {
$cmds[]="sudo -u ${customer} ./control.sh move ${customer} ${gsfolder} ${gsIP}_${port}";
}
$cmds[]='./control.sh mod '.$customer . ' ' . $ftppass . ' ' . $ftppass2;
$query4 = $sql->prepare("UPDATE `gsswitch` SET `active`=?,`port`=?,`jobPending`='N' WHERE `id`=? LIMIT 1");
$query4->execute(array($newActive,$newPort,$row2['affectedID']));
@ -123,7 +130,11 @@ foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$command=$gsprache->mod.' gsswitchID: '.$row2['affectedID'].' name: '.$row2['name'].' gsswitchID:'.$row2['affectedID'];
} else if (isset($i) and $row2['action'] == 're' and isset($customer)) {
$tmp = gsrestart($row2['affectedID'],'re',$aeskey,$row2['resellerID']);
if (is_array($tmp)) foreach($tmp as $t) $cmds[]=$t;
if (is_array($tmp)) {
foreach($tmp as $t) {
$cmds[]=$t;
}
}
$query4 = $sql->prepare("UPDATE `jobs` SET `status`='3' WHERE `jobID`=? AND `type`='gs' LIMIT 1");
$query4->execute(array($row2['jobID']));
$command='(Re)Start gsswitchID: '.$row2['affectedID'].' name: '.$row2['name'];
@ -142,5 +153,7 @@ foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
}
$theOutput->printGraph($command);
}
if (count($cmds)>0) ssh2_execute('gs',$row['hostID'],$cmds);
if (count($cmds)>0) {
ssh2_execute('gs',$row['hostID'],$cmds);
}
}