mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-10 23:36:11 +01:00
remote destinations fix for kimsufi
This commit is contained in:
@@ -63,8 +63,7 @@
|
|||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
||||||
<label class="col-sm-3 control-label"></label>
|
<div class="col-sm-12">
|
||||||
<div class="col-sm-4">
|
|
||||||
<div ng-hide="connectionFailed" class="alert alert-danger">
|
<div ng-hide="connectionFailed" class="alert alert-danger">
|
||||||
<p>{% trans "Connection to" %} {$ IPAddress $} {% trans "failed. Please delete and re-add. " %} {$ errorMessage $} </p>
|
<p>{% trans "Connection to" %} {$ IPAddress $} {% trans "failed. Please delete and re-add. " %} {$ errorMessage $} </p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -386,12 +386,6 @@ class BackupManager:
|
|||||||
|
|
||||||
ipAddress = data['IPAddress']
|
ipAddress = data['IPAddress']
|
||||||
password = data['password']
|
password = data['password']
|
||||||
port = "22"
|
|
||||||
|
|
||||||
try:
|
|
||||||
port = data['backupSSHPort']
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
if dest.objects.all().count() == 2:
|
if dest.objects.all().count() == 2:
|
||||||
final_dic = {'destStatus': 0,
|
final_dic = {'destStatus': 0,
|
||||||
@@ -404,10 +398,19 @@ class BackupManager:
|
|||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
except:
|
except:
|
||||||
setupKeys = backupUtil.backupUtilities.setupSSHKeys(ipAddress, password, port)
|
|
||||||
|
|
||||||
if setupKeys[0] == 1:
|
try:
|
||||||
backupUtil.backupUtilities.createBackupDir(ipAddress, port)
|
port = data['backupSSHPort']
|
||||||
|
except:
|
||||||
|
port = "22"
|
||||||
|
|
||||||
|
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/backupUtilities.py"
|
||||||
|
execPath = execPath + " submitDestinationCreation --ipAddress " + ipAddress + " --password " \
|
||||||
|
+ password + " --port " + port
|
||||||
|
|
||||||
|
output = subprocess.check_output(shlex.split(execPath))
|
||||||
|
|
||||||
|
if output.find('1,') > -1:
|
||||||
try:
|
try:
|
||||||
writeToFile = open(destinations, "w")
|
writeToFile = open(destinations, "w")
|
||||||
writeToFile.writelines(ipAddress + "\n")
|
writeToFile.writelines(ipAddress + "\n")
|
||||||
@@ -423,11 +426,11 @@ class BackupManager:
|
|||||||
newDest = dest(destLoc=ipAddress)
|
newDest = dest(destLoc=ipAddress)
|
||||||
newDest.save()
|
newDest.save()
|
||||||
|
|
||||||
final_dic = {'destStatus': 1, 'error_message': "None"}
|
final_dic = {'destStatus': 1, 'error_message': "None"}
|
||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
else:
|
else:
|
||||||
final_dic = {'destStatus': 0, 'error_message': setupKeys[1]}
|
final_dic = {'destStatus': 0, 'error_message': output}
|
||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
|
|
||||||
@@ -480,16 +483,20 @@ class BackupManager:
|
|||||||
|
|
||||||
ipAddress = data['IPAddress']
|
ipAddress = data['IPAddress']
|
||||||
|
|
||||||
checkCon = backupUtil.backupUtilities.checkConnection(ipAddress)
|
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/backupUtilities.py"
|
||||||
|
execPath = execPath + " getConnectionStatus --ipAddress " + ipAddress
|
||||||
|
|
||||||
if checkCon[0] == 1:
|
output = subprocess.check_output(shlex.split(execPath))
|
||||||
|
|
||||||
|
if output.find('1,') > -1:
|
||||||
final_dic = {'connStatus': 1, 'error_message': "None"}
|
final_dic = {'connStatus': 1, 'error_message': "None"}
|
||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
else:
|
else:
|
||||||
final_dic = {'connStatus': 0, 'error_message': checkCon[1]}
|
final_dic = {'connStatus': 0, 'error_message': output}
|
||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
|
|
||||||
except BaseException, msg:
|
except BaseException, msg:
|
||||||
final_dic = {'connStatus': 1, 'error_message': str(msg)}
|
final_dic = {'connStatus': 1, 'error_message': str(msg)}
|
||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
|
|||||||
@@ -644,7 +644,7 @@ class backupUtilities:
|
|||||||
expectation.append("Password:")
|
expectation.append("Password:")
|
||||||
expectation.append("Permission denied")
|
expectation.append("Permission denied")
|
||||||
|
|
||||||
command = "sudo scp -o StrictHostKeyChecking=no -P "+ port +" /root/.ssh/cyberpanel.pub root@" + IPAddress + ":/root/.ssh/authorized_keys"
|
command = "scp -o StrictHostKeyChecking=no -P "+ port +" /root/.ssh/cyberpanel.pub root@" + IPAddress + ":/root/.ssh/authorized_keys"
|
||||||
setupKeys = pexpect.spawn(command, timeout=3)
|
setupKeys = pexpect.spawn(command, timeout=3)
|
||||||
|
|
||||||
index = setupKeys.expect(expectation)
|
index = setupKeys.expect(expectation)
|
||||||
@@ -653,8 +653,12 @@ class backupUtilities:
|
|||||||
|
|
||||||
if index == 0:
|
if index == 0:
|
||||||
setupKeys.sendline(password)
|
setupKeys.sendline(password)
|
||||||
|
setupKeys.expect("100%")
|
||||||
|
setupKeys.wait()
|
||||||
elif index == 1:
|
elif index == 1:
|
||||||
setupKeys.sendline(password)
|
setupKeys.sendline(password)
|
||||||
|
setupKeys.expect("100%")
|
||||||
|
setupKeys.wait()
|
||||||
elif index == 2:
|
elif index == 2:
|
||||||
return [0, 'Please enable password authentication on your remote server.']
|
return [0, 'Please enable password authentication on your remote server.']
|
||||||
else:
|
else:
|
||||||
@@ -690,8 +694,7 @@ class backupUtilities:
|
|||||||
expectation.append("Password:")
|
expectation.append("Password:")
|
||||||
expectation.append("Permission denied")
|
expectation.append("Permission denied")
|
||||||
|
|
||||||
command = "sudo ssh -o StrictHostKeyChecking=no -p "+ port +" root@"+IPAddress+" mkdir /root/.ssh"
|
command = "ssh -o StrictHostKeyChecking=no -p "+ port +" root@"+IPAddress+" mkdir /root/.ssh"
|
||||||
logging.CyberCPLogFileWriter.writeToFile(command)
|
|
||||||
|
|
||||||
setupKeys = pexpect.spawn(command, timeout=3)
|
setupKeys = pexpect.spawn(command, timeout=3)
|
||||||
|
|
||||||
@@ -712,6 +715,7 @@ class backupUtilities:
|
|||||||
|
|
||||||
expectation = []
|
expectation = []
|
||||||
expectation.append("please try again.")
|
expectation.append("please try again.")
|
||||||
|
expectation.append("Password:")
|
||||||
expectation.append(pexpect.EOF)
|
expectation.append(pexpect.EOF)
|
||||||
|
|
||||||
index = setupKeys.expect(expectation)
|
index = setupKeys.expect(expectation)
|
||||||
@@ -719,6 +723,8 @@ class backupUtilities:
|
|||||||
if index == 0:
|
if index == 0:
|
||||||
return [0,"Wrong Password!"]
|
return [0,"Wrong Password!"]
|
||||||
elif index == 1:
|
elif index == 1:
|
||||||
|
return [0, "Wrong Password!"]
|
||||||
|
elif index == 2:
|
||||||
setupKeys.wait()
|
setupKeys.wait()
|
||||||
|
|
||||||
sendKey = backupUtilities.sendKey(IPAddress, password, port)
|
sendKey = backupUtilities.sendKey(IPAddress, password, port)
|
||||||
@@ -730,10 +736,8 @@ class backupUtilities:
|
|||||||
|
|
||||||
|
|
||||||
except pexpect.TIMEOUT, msg:
|
except pexpect.TIMEOUT, msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile(setupKeys.before + " " + str(msg) + " [setupSSHKeys]")
|
|
||||||
return [0, str(msg) + " [TIMEOUT setupSSHKeys]"]
|
return [0, str(msg) + " [TIMEOUT setupSSHKeys]"]
|
||||||
except BaseException, msg:
|
except BaseException, msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile(setupKeys.before + " " + str(msg) + " [setupSSHKeys]")
|
|
||||||
return [0, str(msg) + " [setupSSHKeys]"]
|
return [0, str(msg) + " [setupSSHKeys]"]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -759,6 +763,7 @@ class backupUtilities:
|
|||||||
|
|
||||||
expectation = []
|
expectation = []
|
||||||
expectation.append("password:")
|
expectation.append("password:")
|
||||||
|
expectation.append("Password:")
|
||||||
expectation.append("Last login")
|
expectation.append("Last login")
|
||||||
expectation.append(pexpect.EOF)
|
expectation.append(pexpect.EOF)
|
||||||
expectation.append(pexpect.TIMEOUT)
|
expectation.append(pexpect.TIMEOUT)
|
||||||
@@ -771,9 +776,14 @@ class backupUtilities:
|
|||||||
logging.CyberCPLogFileWriter.writeToFile("Remote Server is not able to authenticate for transfer to initiate, IP Address:" + IPAddress)
|
logging.CyberCPLogFileWriter.writeToFile("Remote Server is not able to authenticate for transfer to initiate, IP Address:" + IPAddress)
|
||||||
return [0,"Remote Server is not able to authenticate for transfer to initiate."]
|
return [0,"Remote Server is not able to authenticate for transfer to initiate."]
|
||||||
elif index == 1:
|
elif index == 1:
|
||||||
|
subprocess.call(['kill', str(checkConn.pid)])
|
||||||
|
logging.CyberCPLogFileWriter.writeToFile(
|
||||||
|
"Remote Server is not able to authenticate for transfer to initiate, IP Address:" + IPAddress)
|
||||||
|
return [0, "Remote Server is not able to authenticate for transfer to initiate."]
|
||||||
|
elif index == 2:
|
||||||
subprocess.call(['kill', str(checkConn.pid)])
|
subprocess.call(['kill', str(checkConn.pid)])
|
||||||
return [1, "None"]
|
return [1, "None"]
|
||||||
elif index == 3:
|
elif index == 4:
|
||||||
subprocess.call(['kill', str(checkConn.pid)])
|
subprocess.call(['kill', str(checkConn.pid)])
|
||||||
return [1, "None"]
|
return [1, "None"]
|
||||||
else:
|
else:
|
||||||
@@ -968,6 +978,28 @@ def submitRestore(backupFile,dir):
|
|||||||
str(msg) + " [cancelBackupCreation]")
|
str(msg) + " [cancelBackupCreation]")
|
||||||
print "0,"+str(msg)
|
print "0,"+str(msg)
|
||||||
|
|
||||||
|
def submitDestinationCreation(ipAddress, password, port):
|
||||||
|
setupKeys = backupUtilities.setupSSHKeys(ipAddress, password, port)
|
||||||
|
|
||||||
|
if setupKeys[0] == 1:
|
||||||
|
backupUtilities.createBackupDir(ipAddress, port)
|
||||||
|
print "1,None"
|
||||||
|
else:
|
||||||
|
print setupKeys[1]
|
||||||
|
|
||||||
|
|
||||||
|
def getConnectionStatus(ipAddress):
|
||||||
|
try:
|
||||||
|
checkCon = backupUtilities.checkConnection(ipAddress)
|
||||||
|
|
||||||
|
if checkCon[0] == 1:
|
||||||
|
print "1,None"
|
||||||
|
else:
|
||||||
|
print checkCon[1]
|
||||||
|
|
||||||
|
except BaseException, msg:
|
||||||
|
print str(msg)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='CyberPanel Installer')
|
parser = argparse.ArgumentParser(description='CyberPanel Installer')
|
||||||
@@ -978,6 +1010,12 @@ def main():
|
|||||||
parser.add_argument('--backupDomain', help='')
|
parser.add_argument('--backupDomain', help='')
|
||||||
parser.add_argument('--metaPath', help='')
|
parser.add_argument('--metaPath', help='')
|
||||||
|
|
||||||
|
## Destination Creation
|
||||||
|
|
||||||
|
parser.add_argument('--ipAddress', help='')
|
||||||
|
parser.add_argument('--password', help='')
|
||||||
|
parser.add_argument('--port', help='')
|
||||||
|
|
||||||
## backup cancellation arguments
|
## backup cancellation arguments
|
||||||
|
|
||||||
parser.add_argument('--backupCancellationDomain', help='')
|
parser.add_argument('--backupCancellationDomain', help='')
|
||||||
@@ -999,6 +1037,10 @@ def main():
|
|||||||
cancelBackupCreation(args.backupCancellationDomain,args.fileName)
|
cancelBackupCreation(args.backupCancellationDomain,args.fileName)
|
||||||
elif args.function == "submitRestore":
|
elif args.function == "submitRestore":
|
||||||
submitRestore(args.backupFile,args.dir)
|
submitRestore(args.backupFile,args.dir)
|
||||||
|
elif args.function == "submitDestinationCreation":
|
||||||
|
submitDestinationCreation(args.ipAddress, args.password, args.port)
|
||||||
|
elif args.function == "getConnectionStatus":
|
||||||
|
getConnectionStatus(args.ipAddress)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
Reference in New Issue
Block a user