mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-05-16 11:25:59 +02:00
v1.9.1
This commit is contained in:
735
.idea/workspace.xml
generated
735
.idea/workspace.xml
generated
@@ -26,158 +26,75 @@
|
||||
<option name="myCustomStartScript" value="import sys; print('Python %s on %s' % (sys.version, sys.platform)) import django; print('Django %s' % django.get_version()) sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS]) if 'setup' in dir(django): django.setup() import django_manage_shell; django_manage_shell.run(PROJECT_ROOT)" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/install/install.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="330">
|
||||
<caret line="962" column="43" selection-start-line="962" selection-start-column="43" selection-end-line="962" selection-end-column="43" />
|
||||
<folding>
|
||||
<element signature="e#0#10#0" expanded="true" />
|
||||
<element signature="e#143696#150827#0" />
|
||||
<element signature="e#150888#151548#0" />
|
||||
<element signature="e#151611#152278#0" />
|
||||
<element signature="e#152347#153095#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/views.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="220">
|
||||
<caret line="23" column="26" selection-start-line="23" selection-start-column="26" selection-end-line="23" selection-end-column="26" />
|
||||
<state relative-caret-position="338">
|
||||
<caret line="572" column="71" selection-start-line="572" selection-start-column="71" selection-end-line="572" selection-end-column="71" />
|
||||
<folding>
|
||||
<element signature="e#24#63#0" expanded="true" />
|
||||
<element signature="e#762#1555#0" />
|
||||
<element signature="e#1594#1977#0" />
|
||||
<element signature="e#2012#5365#0" />
|
||||
<element signature="e#5408#7638#0" />
|
||||
<element signature="e#7676#8529#0" />
|
||||
<element signature="e#8569#10185#0" />
|
||||
<element signature="e#10226#12055#0" />
|
||||
<element signature="e#12091#14087#0" />
|
||||
<element signature="e#14120#14927#0" />
|
||||
<element signature="e#14966#16346#0" />
|
||||
<element signature="e#16379#17556#0" />
|
||||
<element signature="e#17592#18390#0" />
|
||||
<element signature="e#18431#20893#0" />
|
||||
<element signature="e#20940#22006#0" />
|
||||
<element signature="e#22066#23973#0" />
|
||||
<element signature="e#816#1687#0" />
|
||||
<element signature="e#1619#1687#0" />
|
||||
<element signature="e#1739#2040#0" />
|
||||
<element signature="e#2080#2148#0" />
|
||||
<element signature="e#2183#5536#0" />
|
||||
<element signature="e#18532#18600#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/static/IncBackups/IncBackups.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="302">
|
||||
<caret line="159" column="48" selection-start-line="159" selection-start-column="48" selection-end-line="159" selection-end-column="48" />
|
||||
<folding>
|
||||
<element signature="e#491#2247#0" />
|
||||
<element signature="e#2295#2339#0" />
|
||||
<element signature="e#2390#3395#0" />
|
||||
<element signature="e#4656#5485#0" />
|
||||
<element signature="e#5523#6688#0" />
|
||||
<element signature="e#6744#7547#0" />
|
||||
<element signature="e#7654#12511#0" />
|
||||
<element signature="e#8121#9397#0" />
|
||||
<element signature="e#9444#11129#0" />
|
||||
<element signature="e#11190#12506#0" />
|
||||
<element signature="e#12577#19273#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/templates/IncBackups/incrementalDestinations.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="947">
|
||||
<caret line="99" column="77" selection-start-line="99" selection-start-column="77" selection-end-line="99" selection-end-column="77" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/IncBackupsControl.py">
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/templates/IncBackups/backupSchedule.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="232">
|
||||
<caret line="70" column="125" selection-start-line="70" selection-start-column="125" selection-end-line="70" selection-end-column="125" />
|
||||
<state relative-caret-position="180">
|
||||
<caret line="12" column="97" lean-forward="true" selection-start-line="12" selection-start-column="97" selection-end-line="12" selection-end-column="97" />
|
||||
<folding>
|
||||
<element signature="e#907#1022#0" />
|
||||
<element signature="e#1124#1419#0" />
|
||||
<element signature="e#1449#1594#0" />
|
||||
<element signature="e#1631#2625#0" />
|
||||
<element signature="e#2666#3981#0" />
|
||||
<element signature="e#4019#5013#0" />
|
||||
<element signature="e#5051#7775#0" />
|
||||
<element signature="e#5068#7666#0" />
|
||||
<element signature="e#5671#6005#0" />
|
||||
<element signature="e#6077#6467#0" />
|
||||
<element signature="e#6575#6874#0" />
|
||||
<element signature="e#6958#7208#0" />
|
||||
<element signature="e#7357#7599#0" />
|
||||
<element signature="e#7818#13652#0" />
|
||||
<element signature="e#7836#13511#0" />
|
||||
<element signature="e#7836#7861#0" />
|
||||
<element signature="e#8535#8943#0" />
|
||||
<element signature="e#9125#10304#0" />
|
||||
<element signature="e#9150#9242#0" />
|
||||
<element signature="e#9287#9900#0" />
|
||||
<element signature="e#9453#9494#0" />
|
||||
<element signature="e#9729#9900#0" />
|
||||
<element signature="e#9855#9900#0" />
|
||||
<element signature="e#10546#10620#0" />
|
||||
<element signature="e#10678#10693#0" />
|
||||
<element signature="e#10761#11507#0" />
|
||||
<element signature="e#10929#11456#0" />
|
||||
<element signature="e#11709#12320#0" />
|
||||
<element signature="e#11942#12267#0" />
|
||||
<element signature="e#12547#12806#0" />
|
||||
<element signature="e#13560#13652#0" />
|
||||
<element signature="e#13688#15519#0" />
|
||||
<element signature="e#15560#17646#0" />
|
||||
<element signature="e#17683#19518#0" />
|
||||
<element signature="e#19556#20829#0" />
|
||||
<element signature="e#20867#23355#0" />
|
||||
<element signature="e#21629#21817#0" />
|
||||
<element signature="e#21975#22024#0" />
|
||||
<element signature="e#22067#22121#0" />
|
||||
<element signature="e#22161#22211#0" />
|
||||
<element signature="e#22501#22747#0" />
|
||||
<element signature="e#22812#23210#0" />
|
||||
<element signature="e#500#539#0#HTML" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/plogical/mysqlUtilities.py">
|
||||
<entry file="file://$PROJECT_DIR$/baseTemplate/templates/baseTemplate/homePage.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="60">
|
||||
<caret line="195" column="12" selection-start-line="195" selection-start-column="12" selection-end-line="195" selection-end-column="12" />
|
||||
<folding>
|
||||
<element signature="e#661#1069#0" />
|
||||
<element signature="e#1135#1274#0" />
|
||||
<element signature="e#1329#1835#0" />
|
||||
<element signature="e#2626#3079#0" />
|
||||
<element signature="e#3158#3589#0" />
|
||||
<element signature="e#3657#4113#0" />
|
||||
<element signature="e#4202#5853#0" />
|
||||
<element signature="e#6277#6680#0" />
|
||||
<element signature="e#8218#9383#0" />
|
||||
<element signature="e#9445#9894#0" />
|
||||
<element signature="e#9961#10109#0" />
|
||||
<element signature="e#10159#12226#0" />
|
||||
<element signature="e#12280#12553#0" />
|
||||
<element signature="e#12614#14004#0" />
|
||||
<element signature="e#14058#14529#0" />
|
||||
<element signature="e#14581#14956#0" />
|
||||
<element signature="e#15010#16208#0" />
|
||||
<element signature="e#16263#17486#0" />
|
||||
<element signature="e#17541#18011#0" />
|
||||
<element signature="e#18069#19856#0" />
|
||||
<element signature="e#19914#21114#0" />
|
||||
</folding>
|
||||
<state relative-caret-position="450">
|
||||
<caret line="30" column="47" selection-start-line="30" selection-start-column="47" selection-end-line="30" selection-end-column="47" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/plogical/processUtilities.py">
|
||||
<entry file="file://$PROJECT_DIR$/baseTemplate/templates/baseTemplate/index.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="345">
|
||||
<caret line="249" lean-forward="true" selection-start-line="249" selection-end-line="249" />
|
||||
<folding>
|
||||
<element signature="e#0#64#0" expanded="true" />
|
||||
</folding>
|
||||
<state relative-caret-position="8850">
|
||||
<caret line="590" column="104" selection-start-line="590" selection-start-column="104" selection-end-line="590" selection-end-column="104" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/IncScheduler.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="285">
|
||||
<caret line="21" column="8" selection-start-line="21" selection-start-column="8" selection-end-line="21" selection-end-column="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
@@ -194,16 +111,6 @@
|
||||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>skip</find>
|
||||
<find>email</find>
|
||||
<find>dbuser</find>
|
||||
<find>createBackup</find>
|
||||
<find>restoreData</find>
|
||||
<find>submitBackupCreation</find>
|
||||
<find>changePassword</find>
|
||||
<find>createEmail</find>
|
||||
<find>createDatabase</find>
|
||||
<find>changeEmailPassword</find>
|
||||
<find>Backups</find>
|
||||
<find>schedule</find>
|
||||
<find>schedulebackups</find>
|
||||
@@ -223,7 +130,17 @@
|
||||
<find>re.mat</find>
|
||||
<find>Backing up data..</find>
|
||||
<find>[46][5009]</find>
|
||||
<find>externalApp</find>
|
||||
<find>restoreDatabaseBackup</find>
|
||||
<find>logging.writeToFile</find>
|
||||
<find>build=0</find>
|
||||
<find>version.txt</find>
|
||||
<find>logging</find>
|
||||
<find>Incremen</find>
|
||||
<find>restoreDatabase</find>
|
||||
<find>1.9.0</find>
|
||||
<find>/usr/local/CyberCP/public/rainloop/rainloop/v/1.12.1/include.php</find>
|
||||
<find>CLManager</find>
|
||||
</findStrings>
|
||||
<replaceStrings>
|
||||
<replace>admin.api == 1</replace>
|
||||
@@ -252,34 +169,26 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/serverStatus/serverStatusUtil.py" />
|
||||
<option value="$PROJECT_DIR$/serverStatus/templates/serverStatus/litespeedStatus.html" />
|
||||
<option value="$PROJECT_DIR$/websiteFunctions/StagingSetup.py" />
|
||||
<option value="$PROJECT_DIR$/databases/models.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/sslUtilities.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/vhost.py" />
|
||||
<option value="$PROJECT_DIR$/CyberCP/urls.py" />
|
||||
<option value="$PROJECT_DIR$/CyberCP/settings.py" />
|
||||
<option value="$PROJECT_DIR$/backup/views.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/templates/IncBackups/incrementalDestinations.html" />
|
||||
<option value="$PROJECT_DIR$/managePHP/ubuntuphp70.xml" />
|
||||
<option value="$PROJECT_DIR$/managePHP/ubuntuphp71.xml" />
|
||||
<option value="$PROJECT_DIR$/managePHP/ubuntuphp72.xml" />
|
||||
<option value="$PROJECT_DIR$/managePHP/ubuntuphp73.xml" />
|
||||
<option value="$PROJECT_DIR$/plogical/applicationInstaller.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/templates/IncBackups/createBackup.html" />
|
||||
<option value="$PROJECT_DIR$/plogical/cPanelImporter.py" />
|
||||
<option value="$PROJECT_DIR$/emailPremium/templates/emailPremium/emailLimits.html" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/IncBackups.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/mailUtilities.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/restoreMeta.py" />
|
||||
<option value="$PROJECT_DIR$/baseTemplate/templates/baseTemplate/index.html" />
|
||||
<option value="$PROJECT_DIR$/backup/backupManager.py" />
|
||||
<option value="$PROJECT_DIR$/cli/cliLogger.py" />
|
||||
<option value="$PROJECT_DIR$/emailPremium/templates/emailPremium/listDomains.html" />
|
||||
<option value="$PROJECT_DIR$/emailPremium/templates/emailPremium/policyServer.html" />
|
||||
<option value="$PROJECT_DIR$/firewall/templates/firewall/index.html" />
|
||||
<option value="$PROJECT_DIR$/install/install.py" />
|
||||
<option value="$PROJECT_DIR$/install/installLog.py" />
|
||||
<option value="$PROJECT_DIR$/loginSystem/templates/loginSystem/login.html" />
|
||||
<option value="$PROJECT_DIR$/plogical/CyberCPLogFileWriter.py" />
|
||||
@@ -288,27 +197,35 @@
|
||||
<option value="$PROJECT_DIR$/plogical/backupUtilities.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/remoteBackup.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/remoteTransferUtilities.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/upgrade.py" />
|
||||
<option value="$PROJECT_DIR$/pluginInstaller/pluginInstaller.py" />
|
||||
<option value="$PROJECT_DIR$/postfixSenderPolicy/accept_traffic.py" />
|
||||
<option value="$PROJECT_DIR$/s3Backups/s3Backups.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/models.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/csf.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/urls.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/templates/IncBackups/backupSchedule.html" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/IncScheduler.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/views.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/static/IncBackups/IncBackups.js" />
|
||||
<option value="$PROJECT_DIR$/CyberCP/secMiddleware.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/processUtilities.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/mysqlUtilities.py" />
|
||||
<option value="$PROJECT_DIR$/serverLogs/views.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/processUtilities.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/restoreMeta.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/templates/IncBackups/incrementalDestinations.html" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/templates/IncBackups/createBackup.html" />
|
||||
<option value="$PROJECT_DIR$/plogical/adminPass.py" />
|
||||
<option value="$PROJECT_DIR$/loginSystem/views.py" />
|
||||
<option value="$PROJECT_DIR$/baseTemplate/templates/baseTemplate/index.html" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/IncBackupsControl.py" />
|
||||
<option value="$PROJECT_DIR$/install/install.py" />
|
||||
<option value="$PROJECT_DIR$/plogical/upgrade.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/views.py" />
|
||||
<option value="$PROJECT_DIR$/IncBackups/templates/IncBackups/backupSchedule.html" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectFrameBounds" extendedState="6">
|
||||
<option name="x" value="1451" />
|
||||
<option name="y" value="27" />
|
||||
<option name="x" value="1511" />
|
||||
<option name="y" value="52" />
|
||||
<option name="width" value="1221" />
|
||||
<option name="height" value="609" />
|
||||
</component>
|
||||
@@ -317,7 +234,6 @@
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="Scope" />
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
@@ -328,12 +244,26 @@
|
||||
<path>
|
||||
<item name="CyberCP" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="CyberCP" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="plogical" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="IncBackups" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="CyberCP" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="CyberCP" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="IncBackups" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="CyberCP" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="CyberCP" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="IncBackups" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="IncBackups" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
@@ -515,18 +445,20 @@
|
||||
<workItem from="1570351061233" duration="1861000" />
|
||||
<workItem from="1570367938280" duration="1753000" />
|
||||
<workItem from="1570509489744" duration="3195000" />
|
||||
<workItem from="1570899537960" duration="23792000" />
|
||||
<workItem from="1570899537960" duration="34622000" />
|
||||
<workItem from="1571158869749" duration="705000" />
|
||||
<workItem from="1571160353900" duration="938000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="696373000" />
|
||||
<option name="totallyTimeSpent" value="708846000" />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="1366" y="25" width="1366" height="684" extended-state="6" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.03181818" />
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.19621213" />
|
||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||
<window_info id="Favorites" order="2" side_tool="true" />
|
||||
<window_info anchor="bottom" id="Message" order="0" />
|
||||
@@ -607,76 +539,7 @@
|
||||
</breakpoint-manager>
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/serverStatus/templates/serverStatus/cybercpmainlogfile.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="210">
|
||||
<caret line="26" column="32" lean-forward="true" selection-start-line="26" selection-start-column="32" selection-end-line="28" selection-end-column="38" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plogical/applicationInstaller.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="165">
|
||||
<caret line="11" selection-start-line="11" selection-end-line="11" selection-end-column="21" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/websiteFunctions/website.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="9435">
|
||||
<caret line="653" column="45" selection-start-line="653" selection-start-column="36" selection-end-line="653" selection-end-column="45" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/CLManager/templates/CLManager/listPackages.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="207">
|
||||
<caret line="196" column="38" lean-forward="true" selection-start-line="55" selection-start-column="32" selection-end-line="196" selection-end-column="38" />
|
||||
<folding>
|
||||
<element signature="e#2494#2881#0#HTML" />
|
||||
<element signature="e#2914#13791#0#HTML" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plogical/cPanelImporter.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-495">
|
||||
<caret line="3" column="13" selection-start-line="3" selection-start-column="13" selection-end-line="3" selection-end-column="13" />
|
||||
<folding>
|
||||
<element signature="e#33#47#0" expanded="true" />
|
||||
<element signature="e#1202#1501#0" />
|
||||
<element signature="e#1538#2371#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/emailPremium/templates/emailPremium/emailLimits.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="499">
|
||||
<caret line="222" selection-start-line="222" selection-end-line="222" />
|
||||
<folding>
|
||||
<element signature="n#style#0;n#div#0;n#div#1;n#div#0;n#!!top" expanded="true" />
|
||||
<element signature="n#style#0;n#img#0;n#td#4;n#tr#0;n#tbody#0;n#table#0;n#div#0;n#div#0;n#div#0;n#div#0;n#div#1;n#div#0;n#!!top" expanded="true" />
|
||||
<element signature="n#style#0;n#img#1;n#td#4;n#tr#0;n#tbody#0;n#table#0;n#div#0;n#div#0;n#div#0;n#div#0;n#div#1;n#div#0;n#!!top" expanded="true" />
|
||||
<element signature="n#style#0;n#div#1;n#div#0;n#form#0;n#div#1;n#div#0;n#div#0;n#div#0;n#div#1;n#div#0;n#!!top" expanded="true" />
|
||||
<element signature="n#style#0;n#div#0;n#div#2;n#div#0;n#!!top" expanded="true" />
|
||||
<element signature="n#style#0;n#div#0;n#div#0;n#div#0;n#div#0;n#div#2;n#div#0;n#!!top" expanded="true" />
|
||||
<element signature="n#style#0;n#th#5;n#tr#0;n#thead#0;n#table#0;n#div#1;n#div#0;n#div#0;n#div#0;n#div#2;n#div#0;n#!!top" expanded="true" />
|
||||
<element signature="n#style#0;n#img#0;n#td#5;n#tr#0;n#tbody#0;n#table#0;n#div#1;n#div#0;n#div#0;n#div#0;n#div#2;n#div#0;n#!!top" expanded="true" />
|
||||
<element signature="n#style#0;n#img#1;n#td#5;n#tr#0;n#tbody#0;n#table#0;n#div#1;n#div#0;n#div#0;n#div#0;n#div#2;n#div#0;n#!!top" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/IncBackups.py" />
|
||||
<entry file="file://$PROJECT_DIR$/baseTemplate/templates/baseTemplate/index.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="114">
|
||||
<caret line="606" column="33" selection-start-line="606" selection-start-column="33" selection-end-line="606" selection-end-column="33" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/cli/cliLogger.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="420">
|
||||
@@ -708,16 +571,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/install/install.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="472">
|
||||
<caret line="3857" selection-start-line="3857" selection-end-line="3857" />
|
||||
<folding>
|
||||
<element signature="e#0#10#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/loginSystem/templates/loginSystem/login.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="157">
|
||||
@@ -793,16 +646,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plogical/upgrade.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="217">
|
||||
<caret line="1824" column="27" lean-forward="true" selection-start-line="1824" selection-start-column="27" selection-end-line="1824" selection-end-column="27" />
|
||||
<folding>
|
||||
<element signature="e#0#9#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plogical/remoteTransferUtilities.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="472">
|
||||
@@ -845,16 +688,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/templates/IncBackups/createBackup.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="810">
|
||||
<caret line="92" column="30" lean-forward="true" selection-start-line="54" selection-start-column="24" selection-end-line="92" selection-end-column="30" />
|
||||
<folding>
|
||||
<element signature="e#2627#4736#0#HTML" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/backup/templates/backup/remoteBackups.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="353">
|
||||
@@ -932,23 +765,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/models.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="330">
|
||||
<caret line="22" column="21" selection-start-line="22" selection-start-column="4" selection-end-line="22" selection-end-column="21" />
|
||||
<folding>
|
||||
<element signature="e#0#39#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/templates/IncBackups/backupSchedule.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="367">
|
||||
<caret line="132" column="101" selection-start-line="132" selection-start-column="101" selection-end-line="132" selection-end-column="101" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plogical/vhost.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-855" />
|
||||
@@ -998,50 +814,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/restoreMeta.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="285">
|
||||
<caret line="19" column="66" lean-forward="true" selection-start-line="19" selection-start-column="66" selection-end-line="19" selection-end-column="66" />
|
||||
<folding>
|
||||
<element signature="e#33#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/IncScheduler.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="105">
|
||||
<caret line="21" column="8" selection-start-line="21" selection-start-column="8" selection-end-line="21" selection-end-column="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/templates/IncBackups/incrementalDestinations.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="947">
|
||||
<caret line="99" column="77" selection-start-line="99" selection-start-column="77" selection-end-line="99" selection-end-column="77" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/static/IncBackups/IncBackups.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="302">
|
||||
<caret line="159" column="48" selection-start-line="159" selection-start-column="48" selection-end-line="159" selection-end-column="48" />
|
||||
<folding>
|
||||
<element signature="e#491#2247#0" />
|
||||
<element signature="e#2295#2339#0" />
|
||||
<element signature="e#2390#3395#0" />
|
||||
<element signature="e#4656#5485#0" />
|
||||
<element signature="e#5523#6688#0" />
|
||||
<element signature="e#6744#7547#0" />
|
||||
<element signature="e#7654#12511#0" />
|
||||
<element signature="e#8121#9397#0" />
|
||||
<element signature="e#9444#11129#0" />
|
||||
<element signature="e#11190#12506#0" />
|
||||
<element signature="e#12577#19273#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/CyberCP/secMiddleware.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="930">
|
||||
@@ -1052,37 +824,22 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/views.py">
|
||||
<entry file="file://$PROJECT_DIR$/serverLogs/views.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="220">
|
||||
<caret line="23" column="26" selection-start-line="23" selection-start-column="26" selection-end-line="23" selection-end-column="26" />
|
||||
<state relative-caret-position="2895">
|
||||
<caret line="205" selection-start-line="205" selection-end-line="205" />
|
||||
<folding>
|
||||
<element signature="e#24#63#0" expanded="true" />
|
||||
<element signature="e#762#1555#0" />
|
||||
<element signature="e#1594#1977#0" />
|
||||
<element signature="e#2012#5365#0" />
|
||||
<element signature="e#5408#7638#0" />
|
||||
<element signature="e#7676#8529#0" />
|
||||
<element signature="e#8569#10185#0" />
|
||||
<element signature="e#10226#12055#0" />
|
||||
<element signature="e#12091#14087#0" />
|
||||
<element signature="e#14120#14927#0" />
|
||||
<element signature="e#14966#16346#0" />
|
||||
<element signature="e#16379#17556#0" />
|
||||
<element signature="e#17592#18390#0" />
|
||||
<element signature="e#18431#20893#0" />
|
||||
<element signature="e#20940#22006#0" />
|
||||
<element signature="e#22066#23973#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plogical/processUtilities.py">
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/models.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="345">
|
||||
<caret line="249" lean-forward="true" selection-start-line="249" selection-end-line="249" />
|
||||
<state relative-caret-position="330">
|
||||
<caret line="22" column="21" selection-start-line="22" selection-start-column="4" selection-end-line="22" selection-end-column="21" />
|
||||
<folding>
|
||||
<element signature="e#0#64#0" expanded="true" />
|
||||
<element signature="e#0#39#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
@@ -1117,53 +874,273 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/templates/IncBackups/incrementalDestinations.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="210">
|
||||
<caret line="14" column="159" selection-start-line="14" selection-start-column="159" selection-end-line="14" selection-end-column="159" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/restoreMeta.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="157">
|
||||
<caret line="32" column="67" lean-forward="true" selection-start-line="32" selection-start-column="67" selection-end-line="32" selection-end-column="67" />
|
||||
<folding>
|
||||
<element signature="e#33#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/templates/IncBackups/createBackup.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="255">
|
||||
<caret line="17" column="14" lean-forward="true" selection-start-line="17" selection-start-column="14" selection-end-line="17" selection-end-column="14" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plogical/processUtilities.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="201">
|
||||
<caret line="276" column="31" selection-start-line="276" selection-start-column="12" selection-end-line="276" selection-end-column="31" />
|
||||
<folding>
|
||||
<element signature="e#0#64#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/loginSystem/views.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="194">
|
||||
<caret line="220" column="56" selection-start-line="220" selection-start-column="56" selection-end-line="220" selection-end-column="56" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plogical/adminPass.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="184">
|
||||
<caret line="33" column="52" selection-start-line="33" selection-start-column="52" selection-end-line="33" selection-end-column="52" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/static/IncBackups/IncBackups.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="302">
|
||||
<caret line="159" column="48" selection-start-line="159" selection-start-column="48" selection-end-line="159" selection-end-column="48" />
|
||||
<folding>
|
||||
<element signature="e#491#2247#0" />
|
||||
<element signature="e#2295#2339#0" />
|
||||
<element signature="e#2390#3395#0" />
|
||||
<element signature="e#4656#5485#0" />
|
||||
<element signature="e#5523#6688#0" />
|
||||
<element signature="e#6744#7547#0" />
|
||||
<element signature="e#7654#12511#0" />
|
||||
<element signature="e#8121#9397#0" />
|
||||
<element signature="e#9444#11129#0" />
|
||||
<element signature="e#11190#12506#0" />
|
||||
<element signature="e#12577#19273#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/baseTemplate/templates/baseTemplate/indexJavaFixed.html">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/IncBackupsControl.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="232">
|
||||
<caret line="70" column="125" selection-start-line="70" selection-start-column="125" selection-end-line="70" selection-end-column="125" />
|
||||
<state relative-caret-position="2205">
|
||||
<caret line="166" column="50" selection-start-line="166" selection-start-column="50" selection-end-line="166" selection-end-column="50" />
|
||||
<folding>
|
||||
<element signature="e#907#1022#0" />
|
||||
<element signature="e#1124#1419#0" />
|
||||
<element signature="e#1449#1594#0" />
|
||||
<element signature="e#1631#2625#0" />
|
||||
<element signature="e#2666#3981#0" />
|
||||
<element signature="e#4019#5013#0" />
|
||||
<element signature="e#5051#7775#0" />
|
||||
<element signature="e#5068#7666#0" />
|
||||
<element signature="e#5671#6005#0" />
|
||||
<element signature="e#6077#6467#0" />
|
||||
<element signature="e#6575#6874#0" />
|
||||
<element signature="e#6958#7208#0" />
|
||||
<element signature="e#7357#7599#0" />
|
||||
<element signature="e#7818#13652#0" />
|
||||
<element signature="e#7836#13511#0" />
|
||||
<element signature="e#7836#7861#0" />
|
||||
<element signature="e#8535#8943#0" />
|
||||
<element signature="e#9125#10304#0" />
|
||||
<element signature="e#9150#9242#0" />
|
||||
<element signature="e#9287#9900#0" />
|
||||
<element signature="e#9453#9494#0" />
|
||||
<element signature="e#9729#9900#0" />
|
||||
<element signature="e#9855#9900#0" />
|
||||
<element signature="e#10546#10620#0" />
|
||||
<element signature="e#10678#10693#0" />
|
||||
<element signature="e#10761#11507#0" />
|
||||
<element signature="e#10929#11456#0" />
|
||||
<element signature="e#11709#12320#0" />
|
||||
<element signature="e#11942#12267#0" />
|
||||
<element signature="e#12547#12806#0" />
|
||||
<element signature="e#13560#13652#0" />
|
||||
<element signature="e#13688#15519#0" />
|
||||
<element signature="e#15560#17646#0" />
|
||||
<element signature="e#17683#19518#0" />
|
||||
<element signature="e#19556#20829#0" />
|
||||
<element signature="e#20867#23355#0" />
|
||||
<element signature="e#21629#21817#0" />
|
||||
<element signature="e#21975#22024#0" />
|
||||
<element signature="e#22067#22121#0" />
|
||||
<element signature="e#22161#22211#0" />
|
||||
<element signature="e#22501#22747#0" />
|
||||
<element signature="e#22812#23210#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/baseTemplate/templates/baseTemplate/homePage.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="450">
|
||||
<caret line="30" column="47" selection-start-line="30" selection-start-column="47" selection-end-line="30" selection-end-column="47" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/baseTemplate/templates/baseTemplate/index.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="8850">
|
||||
<caret line="590" column="104" selection-start-line="590" selection-start-column="104" selection-end-line="590" selection-end-column="104" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/IncScheduler.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="285">
|
||||
<caret line="21" column="8" selection-start-line="21" selection-start-column="8" selection-end-line="21" selection-end-column="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/CyberCP/settings.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="180">
|
||||
<caret line="67" column="15" selection-start-line="67" selection-start-column="5" selection-end-line="67" selection-end-column="15" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/plogical/upgrade.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="277">
|
||||
<caret line="1374" column="63" selection-start-line="1374" selection-start-column="63" selection-end-line="1374" selection-end-column="63" />
|
||||
<folding>
|
||||
<element signature="e#543#985#0" />
|
||||
<element signature="e#1065#1663#0" />
|
||||
<element signature="e#1082#1626#0" />
|
||||
<element signature="e#1132#1602#0" />
|
||||
<element signature="e#1225#1488#0" />
|
||||
<element signature="e#1404#1488#0" />
|
||||
<element signature="e#1531#1602#0" />
|
||||
<element signature="e#1712#3223#0" />
|
||||
<element signature="e#1730#3130#0" />
|
||||
<element signature="e#3278#3918#0" />
|
||||
<element signature="e#3296#3880#0" />
|
||||
<element signature="e#3969#4406#0" />
|
||||
<element signature="e#4456#5619#0" />
|
||||
<element signature="e#4473#5571#0" />
|
||||
<element signature="e#4565#4947#0" />
|
||||
<element signature="e#4755#4907#0" />
|
||||
<element signature="e#4983#5472#0" />
|
||||
<element signature="e#5008#5423#0" />
|
||||
<element signature="e#5201#5382#0" />
|
||||
<element signature="e#5686#7123#0" />
|
||||
<element signature="e#5703#7012#0" />
|
||||
<element signature="e#6510#6783#0" />
|
||||
<element signature="e#6569#6711#0" />
|
||||
<element signature="e#7176#7423#0" />
|
||||
<element signature="e#7492#11863#0" />
|
||||
<element signature="e#7509#11732#0" />
|
||||
<element signature="e#7604#8608#0" />
|
||||
<element signature="e#7734#8028#0" />
|
||||
<element signature="e#8274#8546#0" />
|
||||
<element signature="e#8344#8466#0" />
|
||||
<element signature="e#8873#9229#0" />
|
||||
<element signature="e#9099#9181#0" />
|
||||
<element signature="e#9320#9672#0" />
|
||||
<element signature="e#9542#9624#0" />
|
||||
<element signature="e#9873#10187#0" />
|
||||
<element signature="e#10057#10139#0" />
|
||||
<element signature="e#10279#10593#0" />
|
||||
<element signature="e#10463#10545#0" />
|
||||
<element signature="e#10929#11185#0" />
|
||||
<element signature="e#10995#11113#0" />
|
||||
<element signature="e#11522#11586#0" />
|
||||
<element signature="e#11915#12656#0" />
|
||||
<element signature="e#11932#12540#0" />
|
||||
<element signature="e#12191#12428#0" />
|
||||
<element signature="e#12588#12656#0" />
|
||||
<element signature="e#12711#14202#0" />
|
||||
<element signature="e#12728#14110#0" />
|
||||
<element signature="e#14253#14969#0" />
|
||||
<element signature="e#14492#14643#0" />
|
||||
<element signature="e#14670#14808#0" />
|
||||
<element signature="e#15017#15406#0" />
|
||||
<element signature="e#15035#15302#0" />
|
||||
<element signature="e#15345#15406#0" />
|
||||
<element signature="e#15460#15783#0" />
|
||||
<element signature="e#15837#16151#0" />
|
||||
<element signature="e#15854#16118#0" />
|
||||
<element signature="e#16213#17520#0" />
|
||||
<element signature="e#16230#17423#0" />
|
||||
<element signature="e#16508#17355#0" />
|
||||
<element signature="e#16635#17355#0" />
|
||||
<element signature="e#16803#17355#0" />
|
||||
<element signature="e#17472#17520#0" />
|
||||
<element signature="e#17586#22883#0" />
|
||||
<element signature="e#17604#22782#0" />
|
||||
<element signature="e#17697#19456#0" />
|
||||
<element signature="e#19981#20113#0" />
|
||||
<element signature="e#20355#20675#0" />
|
||||
<element signature="e#20750#21125#0" />
|
||||
<element signature="e#21526#21696#0" />
|
||||
<element signature="e#21947#22171#0" />
|
||||
<element signature="e#22941#29422#0" />
|
||||
<element signature="e#22959#29321#0" />
|
||||
<element signature="e#23039#23610#0" />
|
||||
<element signature="e#23729#24112#0" />
|
||||
<element signature="e#24231#24675#0" />
|
||||
<element signature="e#24794#25399#0" />
|
||||
<element signature="e#25518#25905#0" />
|
||||
<element signature="e#26024#26472#0" />
|
||||
<element signature="e#26607#27154#0" />
|
||||
<element signature="e#27273#28045#0" />
|
||||
<element signature="e#28164#28557#0" />
|
||||
<element signature="e#28676#29130#0" />
|
||||
<element signature="e#29482#32221#0" />
|
||||
<element signature="e#29499#32188#0" />
|
||||
<element signature="e#29592#29689#0" />
|
||||
<element signature="e#29765#29845#0" />
|
||||
<element signature="e#29921#30008#0" />
|
||||
<element signature="e#30084#30229#0" />
|
||||
<element signature="e#30292#30771#0" />
|
||||
<element signature="e#30889#31451#0" />
|
||||
<element signature="e#31569#31998#0" />
|
||||
<element signature="e#32286#36035#0" />
|
||||
<element signature="e#32303#36002#0" />
|
||||
<element signature="e#32383#32571#0" />
|
||||
<element signature="e#32689#33156#0" />
|
||||
<element signature="e#33274#33819#0" />
|
||||
<element signature="e#33938#34455#0" />
|
||||
<element signature="e#34574#35180#0" />
|
||||
<element signature="e#35299#35811#0" />
|
||||
<element signature="e#36091#37190#0" />
|
||||
<element signature="e#36108#37157#0" />
|
||||
<element signature="e#36188#36816#0" />
|
||||
<element signature="e#37249#38169#0" />
|
||||
<element signature="e#37266#38136#0" />
|
||||
<element signature="e#37346#37946#0" />
|
||||
<element signature="e#38221#39442#0" />
|
||||
<element signature="e#39505#40319#0" />
|
||||
<element signature="e#39522#40286#0" />
|
||||
<element signature="e#39602#39778#0" />
|
||||
<element signature="e#40376#40780#0" />
|
||||
<element signature="e#40394#40746#0" />
|
||||
<element signature="e#57468#64110#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/install/install.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="330">
|
||||
<caret line="962" column="43" selection-start-line="962" selection-start-column="43" selection-end-line="962" selection-end-column="43" />
|
||||
<folding>
|
||||
<element signature="e#0#10#0" expanded="true" />
|
||||
<element signature="e#143696#150827#0" />
|
||||
<element signature="e#150888#151548#0" />
|
||||
<element signature="e#151611#152278#0" />
|
||||
<element signature="e#152347#153095#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/views.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="338">
|
||||
<caret line="572" column="71" selection-start-line="572" selection-start-column="71" selection-end-line="572" selection-end-column="71" />
|
||||
<folding>
|
||||
<element signature="e#816#1687#0" />
|
||||
<element signature="e#1619#1687#0" />
|
||||
<element signature="e#1739#2040#0" />
|
||||
<element signature="e#2080#2148#0" />
|
||||
<element signature="e#2183#5536#0" />
|
||||
<element signature="e#18532#18600#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/IncBackups/templates/IncBackups/backupSchedule.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="180">
|
||||
<caret line="12" column="97" lean-forward="true" selection-start-line="12" selection-start-column="97" selection-end-line="12" selection-end-column="97" />
|
||||
<folding>
|
||||
<element signature="e#500#539#0#HTML" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
||||
@@ -85,42 +85,78 @@ class IncJobs(multi.Thread):
|
||||
|
||||
|
||||
except BaseException, msg:
|
||||
logging.statusWriter(self.statusPath, "%s [46][5009]" % (str(msg)), 1)
|
||||
logging.statusWriter(self.statusPath, "%s [88][5009]" % (str(msg)), 1)
|
||||
return 0
|
||||
|
||||
def localFunction(self, backupPath, type, restore = None):
|
||||
if restore == None:
|
||||
command = 'restic -r %s backup %s --password-file %s' % (self.repoPath, backupPath, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
snapShotid = result.split(' ')[-2]
|
||||
|
||||
if type == 'database':
|
||||
newSnapshot = JobSnapshots(job=self.jobid,
|
||||
type='%s:%s' % (type, backupPath.split('/')[-1].strip('.sql')),
|
||||
snapshotid=snapShotid,
|
||||
destination=self.backupDestinations)
|
||||
else:
|
||||
newSnapshot = JobSnapshots(job=self.jobid, type='%s:%s' % (type, backupPath), snapshotid=snapShotid,
|
||||
destination=self.backupDestinations)
|
||||
newSnapshot.save()
|
||||
else:
|
||||
repoLocation = '/home/%s/incbackup' % (self.website)
|
||||
command = 'restic -r %s restore %s --target / --password-file %s' % (
|
||||
repoLocation, self.jobid.snapshotid, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
|
||||
def sftpFunction(self, backupPath, type, restore = None):
|
||||
if restore == None:
|
||||
remotePath = '/home/backup/%s' % (self.website.domain)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s backup %s --password-file %s --exclude %s' % (
|
||||
self.backupDestinations, remotePath, backupPath, self.passwordFile, self.repoPath)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
snapShotid = result.split(' ')[-2]
|
||||
|
||||
if type == 'database':
|
||||
newSnapshot = JobSnapshots(job=self.jobid,
|
||||
type='%s:%s' % (type, backupPath.split('/')[-1].strip('.sql')),
|
||||
snapshotid=snapShotid,
|
||||
destination=self.backupDestinations)
|
||||
else:
|
||||
newSnapshot = JobSnapshots(job=self.jobid, type='%s:%s' % (type, backupPath), snapshotid=snapShotid,
|
||||
destination=self.backupDestinations)
|
||||
newSnapshot.save()
|
||||
else:
|
||||
repoLocation = '/home/backup/%s' % (self.website)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s restore %s --target / --password-file %s' % (
|
||||
self.jobid.destination, repoLocation, self.jobid.snapshotid, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
|
||||
def restoreData(self):
|
||||
try:
|
||||
|
||||
if self.jobid.destination == 'local':
|
||||
repoLocation = '/home/%s/incbackup' % (self.website)
|
||||
command = 'restic -r %s restore %s --target / --password-file %s' % (repoLocation, self.jobid.snapshotid, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
self.localFunction('none', 'none', 1)
|
||||
elif self.jobid.destination[:4] == 'sftp':
|
||||
repoLocation = '/home/backup/%s' % (self.website)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s restore %s --target / --password-file %s' % (self.jobid.destination, repoLocation, self.jobid.snapshotid, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
self.sftpFunction('none', 'none', 1)
|
||||
else:
|
||||
self.awsFunction('restore', '', self.jobid.snapshotid)
|
||||
|
||||
except BaseException, msg:
|
||||
logging.statusWriter(self.statusPath, "%s [46][5009]" % (str(msg)), 1)
|
||||
logging.statusWriter(self.statusPath, "%s [138][5009]" % (str(msg)), 1)
|
||||
return 0
|
||||
|
||||
def restoreDatabase(self):
|
||||
try:
|
||||
|
||||
if self.jobid.destination == 'local':
|
||||
repoLocation = '/home/%s/incbackup' % (self.website)
|
||||
command = 'restic -r %s restore %s --target / --password-file %s' % (repoLocation, self.jobid.snapshotid, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
self.localFunction('none', 'none', 1)
|
||||
elif self.jobid.destination[:4] == 'sftp':
|
||||
repoLocation = '/home/backup/%s' % (self.website)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s restore %s --target / --password-file %s' % (self.jobid.destination, repoLocation, self.jobid.snapshotid, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
self.sftpFunction('none', 'none', 1)
|
||||
else:
|
||||
self.awsFunction('restore', '', self.jobid.snapshotid)
|
||||
|
||||
@@ -128,27 +164,21 @@ class IncJobs(multi.Thread):
|
||||
raise BaseException
|
||||
|
||||
try:
|
||||
os.remove('/home/cyberpanel/%s' % (self.jobid.type.split(':')[1]))
|
||||
except:
|
||||
pass
|
||||
os.remove('/home/cyberpanel/%s.sql' % (self.jobid.type.split(':')[1]))
|
||||
except BaseException, msg:
|
||||
logging.writeToFile(str(msg))
|
||||
|
||||
except BaseException, msg:
|
||||
logging.statusWriter(self.statusPath, "%s [46][5009]" % (str(msg)), 1)
|
||||
logging.statusWriter(self.statusPath, "%s [160][5009]" % (str(msg)), 1)
|
||||
return 0
|
||||
|
||||
def restoreEmail(self):
|
||||
try:
|
||||
|
||||
if self.jobid.destination == 'local':
|
||||
repoLocation = '/home/%s/incbackup' % (self.website)
|
||||
command = 'restic -r %s restore %s --target / --password-file %s' % (repoLocation, self.jobid.snapshotid, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
self.localFunction('none', 'none', 1)
|
||||
elif self.jobid.destination[:4] == 'sftp':
|
||||
repoLocation = '/home/backup/%s' % (self.website)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s restore %s --target / --password-file %s' % (self.jobid.destination, repoLocation, self.jobid.snapshotid, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
self.sftpFunction('none', 'none', 1)
|
||||
else:
|
||||
self.awsFunction('restore', '', self.jobid.snapshotid)
|
||||
|
||||
@@ -156,6 +186,27 @@ class IncJobs(multi.Thread):
|
||||
logging.statusWriter(self.statusPath, "%s [46][5009]" % (str(msg)), 1)
|
||||
return 0
|
||||
|
||||
def reconstructWithMeta(self):
|
||||
try:
|
||||
|
||||
|
||||
if self.jobid.destination == 'local':
|
||||
self.localFunction('none', 'none', 1)
|
||||
elif self.jobid.destination[:4] == 'sftp':
|
||||
self.sftpFunction('none', 'none', 1)
|
||||
else:
|
||||
self.awsFunction('restore', '', self.jobid.snapshotid)
|
||||
|
||||
metaPathNew = '/home/%s/meta.xml' % (self.website)
|
||||
execPath = "nice -n 10 /usr/local/CyberCP/bin/python2 " + virtualHostUtilities.cyberPanel + "/IncBackups/restoreMeta.py"
|
||||
execPath = execPath + " submitRestore --metaPath %s --statusFile %s" % (metaPathNew, self.statusPath)
|
||||
result = ProcessUtilities.outputExecutioner(execPath)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
|
||||
except BaseException, msg:
|
||||
logging.statusWriter(self.statusPath, "%s [46][5009]" % (str(msg)), 1)
|
||||
return 0
|
||||
|
||||
def restorePoint(self):
|
||||
try:
|
||||
self.statusPath = self.extraArgs['tempPath']
|
||||
@@ -169,26 +220,6 @@ class IncJobs(multi.Thread):
|
||||
self.passwordFile = '/home/%s/%s' % (self.website, self.website)
|
||||
|
||||
|
||||
## Restore Meta first
|
||||
metaPathNew = '/home/%s/meta.xml' % (self.website)
|
||||
if self.jobid.destination == 'local':
|
||||
repoLocation = '/home/%s/incbackup' % (self.website)
|
||||
command = 'restic -r %s restore latest --target / --password-file %s --include %s' % (repoLocation, self.passwordFile, metaPathNew)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
elif self.jobid.destination[:4] == 'sftp':
|
||||
repoLocation = '/home/backup/%s' % (self.website)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s restore latest --target / --password-file %s --include %s' % (self.jobid.destination, repoLocation, self.passwordFile, metaPathNew)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
|
||||
## Reconstruct configs configs
|
||||
|
||||
if self.extraArgs['reconstruct']:
|
||||
execPath = "nice -n 10 /usr/local/CyberCP/bin/python2 " + virtualHostUtilities.cyberPanel + "/IncBackups/restoreMeta.py"
|
||||
execPath = execPath + " submitRestore --metaPath %s --statusFile %s" % (metaPathNew, self.statusPath)
|
||||
ProcessUtilities.outputExecutioner(execPath)
|
||||
|
||||
##
|
||||
|
||||
if self.jobid.type[:8] == 'database':
|
||||
@@ -205,11 +236,19 @@ class IncJobs(multi.Thread):
|
||||
self.restoreEmail()
|
||||
message = 'Emails restored.'
|
||||
logging.statusWriter(self.statusPath, message, 1)
|
||||
elif self.jobid.type[:4] == 'meta':
|
||||
message = 'Reconstructing with meta..'
|
||||
logging.statusWriter(self.statusPath, message, 1)
|
||||
self.reconstructWithMeta()
|
||||
message = 'Reconstructed'
|
||||
logging.statusWriter(self.statusPath, message, 1)
|
||||
|
||||
logging.statusWriter(self.statusPath, 'Completed', 1)
|
||||
except BaseException, msg:
|
||||
logging.statusWriter(self.extraArgs['tempPath'], str(msg), 1)
|
||||
|
||||
### Backup functions
|
||||
|
||||
def prepareBackupMeta(self):
|
||||
try:
|
||||
|
||||
@@ -385,29 +424,13 @@ class IncJobs(multi.Thread):
|
||||
def backupData(self):
|
||||
try:
|
||||
logging.statusWriter(self.statusPath, 'Backing up data..', 1)
|
||||
backupPath = '/home/%s' % (self.website.domain)
|
||||
|
||||
if self.backupDestinations == 'local':
|
||||
backupPath = '/home/%s' % (self.website.domain)
|
||||
command = 'restic -r %s backup %s --password-file %s --exclude %s' % (self.repoPath, backupPath, self.passwordFile, self.repoPath)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
snapShotid = result.split(' ')[-2]
|
||||
|
||||
newSnapshot = JobSnapshots(job=self.jobid, type='data:%s' % (backupPath), snapshotid=snapShotid, destination=self.backupDestinations)
|
||||
newSnapshot.save()
|
||||
|
||||
self.localFunction(backupPath, 'data')
|
||||
elif self.backupDestinations[:4] == 'sftp':
|
||||
remotePath = '/home/backup/%s' % (self.website.domain)
|
||||
backupPath = '/home/%s' % (self.website.domain)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s backup %s --password-file %s --exclude %s' % (self.backupDestinations, remotePath, backupPath, self.passwordFile, self.repoPath)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
snapShotid = result.split(' ')[-2]
|
||||
newSnapshot = JobSnapshots(job=self.jobid, type='data:%s' % (remotePath), snapshotid=snapShotid,
|
||||
destination=self.backupDestinations)
|
||||
newSnapshot.save()
|
||||
self.sftpFunction(backupPath, 'data')
|
||||
else:
|
||||
backupPath = '/home/%s' % (self.website.domain)
|
||||
self.awsFunction('backup', backupPath, '', 'data')
|
||||
|
||||
logging.statusWriter(self.statusPath, 'Data for %s backed to %s.' % (self.website.domain, self.backupDestinations), 1)
|
||||
@@ -429,31 +452,16 @@ class IncJobs(multi.Thread):
|
||||
dbPath = '/home/cyberpanel/%s.sql' % (items.dbName)
|
||||
|
||||
if self.backupDestinations == 'local':
|
||||
command = 'restic -r %s backup %s --password-file %s' % (self.repoPath, dbPath, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
snapShotid = result.split(' ')[-2]
|
||||
|
||||
newSnapshot = JobSnapshots(job=self.jobid, type='database:%s' % (items.dbName), snapshotid=snapShotid, destination=self.backupDestinations)
|
||||
newSnapshot.save()
|
||||
|
||||
self.localFunction(dbPath, 'database')
|
||||
elif self.backupDestinations[:4] == 'sftp':
|
||||
remotePath = '/home/backup/%s' % (self.website.domain)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s backup %s --password-file %s --exclude %s' % (
|
||||
self.backupDestinations, remotePath, dbPath, self.passwordFile, self.repoPath)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
snapShotid = result.split(' ')[-2]
|
||||
newSnapshot = JobSnapshots(job=self.jobid, type='database:%s' % (items.dbName), snapshotid=snapShotid,
|
||||
destination=self.backupDestinations)
|
||||
newSnapshot.save()
|
||||
self.sftpFunction(dbPath, 'database')
|
||||
else:
|
||||
self.awsFunction('backup', dbPath, '', 'database')
|
||||
|
||||
try:
|
||||
os.remove('/home/cyberpanel/%s' % (items.dbName))
|
||||
except:
|
||||
pass
|
||||
os.remove('/home/cyberpanel/%s.sql' % (items.dbName))
|
||||
except BaseException, msg:
|
||||
logging.statusWriter(self.statusPath,'Failed to delete database: %s. [IncJobs.backupDatabases.456]' % str(msg), 1)
|
||||
return 1
|
||||
except BaseException, msg:
|
||||
logging.statusWriter(self.statusPath,'%s. [IncJobs.backupDatabases.269][5009]' % str(msg), 1)
|
||||
@@ -466,26 +474,9 @@ class IncJobs(multi.Thread):
|
||||
backupPath = '/home/vmail/%s' % (self.website.domain)
|
||||
|
||||
if self.backupDestinations == 'local':
|
||||
command = 'restic -r %s backup %s --password-file %s' % (
|
||||
self.repoPath, backupPath, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
snapShotid = result.split(' ')[-2]
|
||||
|
||||
newSnapshot = JobSnapshots(job=self.jobid, type='email:%s' % (backupPath), snapshotid=snapShotid,
|
||||
destination=self.backupDestinations)
|
||||
newSnapshot.save()
|
||||
|
||||
self.localFunction(backupPath, 'email')
|
||||
elif self.backupDestinations[:4] == 'sftp':
|
||||
remotePath = '/home/backup/%s' % (self.website.domain)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s backup %s --password-file %s --exclude %s' % (
|
||||
self.backupDestinations, remotePath, backupPath, self.passwordFile, self.repoPath)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
snapShotid = result.split(' ')[-2]
|
||||
newSnapshot = JobSnapshots(job=self.jobid, type='email:%s' % (backupPath), snapshotid=snapShotid,
|
||||
destination=self.backupDestinations)
|
||||
newSnapshot.save()
|
||||
self.sftpFunction(backupPath, 'email')
|
||||
else:
|
||||
self.awsFunction('backup', backupPath, '', 'email')
|
||||
|
||||
@@ -496,6 +487,26 @@ class IncJobs(multi.Thread):
|
||||
logging.statusWriter(self.statusPath,'%s. [IncJobs.emailBackup.269][5009]' % str(msg), 1)
|
||||
return 0
|
||||
|
||||
def metaBackup(self):
|
||||
try:
|
||||
logging.statusWriter(self.statusPath, 'Backing up meta..', 1)
|
||||
|
||||
backupPath = '/home/%s/meta.xml' % (self.website.domain)
|
||||
|
||||
if self.backupDestinations == 'local':
|
||||
self.localFunction(backupPath, 'meta')
|
||||
elif self.backupDestinations[:4] == 'sftp':
|
||||
self.sftpFunction(backupPath, 'meta')
|
||||
else:
|
||||
self.awsFunction('backup', backupPath, '', 'meta')
|
||||
|
||||
|
||||
logging.statusWriter(self.statusPath, 'Meta for %s backed to %s.' % (self.website.domain, self.backupDestinations), 1)
|
||||
return 1
|
||||
except BaseException, msg:
|
||||
logging.statusWriter(self.statusPath,'%s. [IncJobs.metaBackup.269][5009]' % str(msg), 1)
|
||||
return 0
|
||||
|
||||
def initiateRepo(self):
|
||||
try:
|
||||
logging.statusWriter(self.statusPath, 'Will first initiate backup repo..', 1)
|
||||
@@ -548,6 +559,9 @@ class IncJobs(multi.Thread):
|
||||
command = 'echo "%s" > %s' % (password, self.passwordFile)
|
||||
ProcessUtilities.executioner(command, self.website.externalApp)
|
||||
|
||||
command = 'chmod 600 %s' % (self.passwordFile)
|
||||
ProcessUtilities.executioner(command)
|
||||
|
||||
|
||||
if self.initiateRepo() == 0:
|
||||
return
|
||||
@@ -567,27 +581,14 @@ class IncJobs(multi.Thread):
|
||||
if self.emailBackup() == 0:
|
||||
return
|
||||
|
||||
## meta generated
|
||||
|
||||
logging.statusWriter(self.statusPath, 'Taking backup of meta file, this file can be used to reconstruct at later point..', 1)
|
||||
self.metaBackup()
|
||||
|
||||
metaPathNew = '/home/%s/meta.xml' % (self.website.domain)
|
||||
|
||||
if self.backupDestinations == 'local':
|
||||
command = 'restic -r %s backup %s --password-file %s' % (
|
||||
self.repoPath, metaPathNew, self.passwordFile)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
elif self.backupDestinations[:4] == 'sftp':
|
||||
remotePath = '/home/backup/%s' % (self.website.domain)
|
||||
command = 'export PATH=${PATH}:/usr/bin && restic -r %s:%s backup %s --password-file %s --exclude %s' % (
|
||||
self.backupDestinations, remotePath, metaPathNew, self.passwordFile, self.repoPath)
|
||||
result = ProcessUtilities.outputExecutioner(command)
|
||||
logging.statusWriter(self.statusPath, result, 1)
|
||||
|
||||
try:
|
||||
os.remove(metaPathNew)
|
||||
except:
|
||||
pass
|
||||
command = 'rm -f %s' % (metaPathNew)
|
||||
ProcessUtilities.executioner(command)
|
||||
except BaseException, msg:
|
||||
logging.statusWriter(self.statusPath,'Failed to delete meta file: %s. [IncJobs.createBackup.591]' % str(msg), 1)
|
||||
|
||||
logging.statusWriter(self.statusPath, 'Completed', 1)
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<div class="container">
|
||||
<div id="page-title">
|
||||
<h2>{% trans "Schedule Back up" %} - <a target="_blank" href="http://go.cyberpanel.net/remote-backup"
|
||||
<h2>{% trans "Schedule Back up" %} - <a target="_blank" href="http://cyberpanel.net/"
|
||||
style="height: 23px;line-height: 21px;"
|
||||
class="btn btn-border btn-alt border-red btn-link font-red"
|
||||
title=""><span>{% trans "Remote Backups" %}</span></a></h2>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<div class="container">
|
||||
<div id="page-title">
|
||||
<h2>{% trans "Back up Website" %} - <a target="_blank" href="http://go.cyberpanel.net/backup"
|
||||
<h2>{% trans "Back up Website" %} - <a target="_blank" href="https://cyberpanel.net/docs/2-create-restore-incremental-backups/"
|
||||
style="height: 23px;line-height: 21px;"
|
||||
class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "Backup Docs" %}</span></a>
|
||||
</h2>
|
||||
@@ -174,8 +174,6 @@
|
||||
<td>
|
||||
<a ng-click="restorePoint(job.id, 0)" class="btn btn-border btn-alt border-green btn-link font-green"
|
||||
title=""><span>Restore</span></a>
|
||||
<a ng-click="restorePoint(job.id, 1)" class="btn btn-border btn-alt border-green btn-link font-green"
|
||||
title=""><span>Restore and Reconstruct</span></a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<div class="container">
|
||||
<div id="page-title">
|
||||
<h2>{% trans "Set up Incremental Back up Destinations" %} - <a target="_blank"
|
||||
href="http://go.cyberpanel.net/remote-backup"
|
||||
href="https://cyberpanel.net/docs/1-add-remove-destinations-for-incremental-backups/"
|
||||
style="height: 23px;line-height: 21px;"
|
||||
class="btn btn-border btn-alt border-red btn-link font-red"
|
||||
title=""><span>{% trans "Remote Backups" %}</span></a>
|
||||
|
||||
@@ -3,7 +3,7 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.shortcuts import render
|
||||
from plogical.acl import ACLManager
|
||||
from django.shortcuts import HttpResponse
|
||||
from django.shortcuts import HttpResponse, redirect
|
||||
from plogical.processUtilities import ProcessUtilities
|
||||
from plogical.virtualHostUtilities import virtualHostUtilities
|
||||
import json
|
||||
@@ -15,6 +15,7 @@ from .IncBackupsControl import IncJobs
|
||||
from random import randint
|
||||
import time
|
||||
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
|
||||
from loginSystem.views import loadLoginPage
|
||||
# Create your views here.
|
||||
|
||||
|
||||
@@ -36,17 +37,19 @@ def createBackup(request):
|
||||
|
||||
path = '/home/cyberpanel/sftp'
|
||||
|
||||
for items in os.listdir(path):
|
||||
destinations.append('sftp:%s' % (items))
|
||||
if os.path.exists(path):
|
||||
for items in os.listdir(path):
|
||||
destinations.append('sftp:%s' % (items))
|
||||
|
||||
path = '/home/cyberpanel/aws'
|
||||
|
||||
for items in os.listdir(path):
|
||||
destinations.append('s3:s3.amazonaws.com/%s' % (items))
|
||||
if os.path.exists(path):
|
||||
for items in os.listdir(path):
|
||||
destinations.append('s3:s3.amazonaws.com/%s' % (items))
|
||||
|
||||
return defRenderer(request, 'IncBackups/createBackup.html', {'websiteList': websitesName, 'destinations': destinations})
|
||||
except BaseException, msg:
|
||||
return HttpResponse(str(msg))
|
||||
logging.writeToFile(str(msg))
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
def backupDestinations(request):
|
||||
try:
|
||||
@@ -58,7 +61,8 @@ def backupDestinations(request):
|
||||
|
||||
return defRenderer(request, 'IncBackups/incrementalDestinations.html', {})
|
||||
except BaseException, msg:
|
||||
return HttpResponse(str(msg))
|
||||
logging.writeToFile(str(msg))
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
def addDestination(request):
|
||||
try:
|
||||
@@ -559,15 +563,19 @@ def scheduleBackups(request):
|
||||
|
||||
path = '/home/cyberpanel/sftp'
|
||||
|
||||
for items in os.listdir(path):
|
||||
destinations.append('sftp:%s' % (items))
|
||||
if os.path.exists(path):
|
||||
for items in os.listdir(path):
|
||||
destinations.append('sftp:%s' % (items))
|
||||
|
||||
for items in os.listdir(path):
|
||||
destinations.append('s3:s3.amazonaws.com/%s' % (items))
|
||||
path = '/home/cyberpanel/aws'
|
||||
if os.path.exists(path):
|
||||
for items in os.listdir(path):
|
||||
destinations.append('s3:s3.amazonaws.com/%s' % (items))
|
||||
|
||||
return defRenderer(request, 'IncBackups/backupSchedule.html', {'websiteList': websitesName, 'destinations': destinations})
|
||||
except BaseException, msg:
|
||||
return HttpResponse(str(msg))
|
||||
logging.writeToFile(str(msg))
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
def submitBackupSchedule(request):
|
||||
try:
|
||||
|
||||
@@ -588,7 +588,7 @@
|
||||
|
||||
|
||||
<li>
|
||||
<a href="{% url 'loadBackupHome' %}" title="{% trans 'Incremental Back up' %}">
|
||||
<a href="{% url 'loadBackupHome' %}" title="{% trans 'Incremental Back up - Beta' %}">
|
||||
<i class="glyph-icon tooltip-button icon-copy" title=".icon-folder"></i>
|
||||
<span>{% trans "Incremental Back up" %}</span>
|
||||
</a>
|
||||
@@ -596,10 +596,10 @@
|
||||
|
||||
<ul>
|
||||
<li class="createBackup"><a href="{% url 'createBackupInc' %}"
|
||||
title="{% trans 'Create Back up' %}"><span>{% trans "Create Back up" %}</span></a>
|
||||
title="{% trans 'Create Back up' %}"><span>{% trans "Create/Restore Back up" %}</span></a>
|
||||
</li>
|
||||
<li class="restoreBackup"><a href="{% url 'backupDestinationsInc' %}"
|
||||
title="{% trans 'Restore Back up' %}"><span>{% trans "Add Destinations" %}</span></a>
|
||||
title="{% trans 'Restore Back up' %}"><span>{% trans "Add/Remove Destinations" %}</span></a>
|
||||
</li>
|
||||
<li class="restoreBackup"><a href="{% url 'scheduleBackupsInc' %}"
|
||||
title="{% trans 'Schedule Back ups' %}"><span>{% trans "Schedule Back ups" %}</span></a>
|
||||
|
||||
@@ -951,7 +951,7 @@ class preFlightsChecks:
|
||||
|
||||
os.chdir(self.path)
|
||||
|
||||
command = "wget http://cyberpanel.sh/CyberPanel.1.9.0.tar.gz"
|
||||
command = "wget http://cyberpanel.sh/CyberPanel.1.9.1.tar.gz"
|
||||
# command = "wget http://cyberpanel.sh/CyberPanelTemp.tar.gz"
|
||||
preFlightsChecks.call(command, self.distro, '[download_install_CyberPanel]',
|
||||
'CyberPanel Download',
|
||||
@@ -960,7 +960,7 @@ class preFlightsChecks:
|
||||
##
|
||||
|
||||
count = 0
|
||||
command = "tar zxf CyberPanel.1.9.0.tar.gz"
|
||||
command = "tar zxf CyberPanel.1.9.1.tar.gz"
|
||||
# command = "tar zxf CyberPanelTemp.tar.gz"
|
||||
preFlightsChecks.call(command, self.distro, '[download_install_CyberPanel]',
|
||||
'Extract CyberPanel', 1, 1, os.EX_OSERR)
|
||||
@@ -1051,7 +1051,7 @@ class preFlightsChecks:
|
||||
path = "/usr/local/CyberCP/version.txt"
|
||||
writeToFile = open(path, 'w')
|
||||
writeToFile.writelines('1.9\n')
|
||||
writeToFile.writelines('0')
|
||||
writeToFile.writelines('1')
|
||||
writeToFile.close()
|
||||
except:
|
||||
pass
|
||||
@@ -3689,6 +3689,51 @@ milter_default_action = accept
|
||||
except:
|
||||
pass
|
||||
|
||||
def installRestic(self):
|
||||
try:
|
||||
|
||||
CentOSPath = '/etc/redhat-release'
|
||||
|
||||
if os.path.exists(CentOSPath):
|
||||
command = 'yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/copart/restic/repo/epel-7/copart-restic-epel-7.repo'
|
||||
preFlightsChecks.call(command, self.distro, '[installRestic]',
|
||||
'Add restic repo.',
|
||||
1, 0, os.EX_OSERR)
|
||||
|
||||
command = 'yum install restic -y'
|
||||
preFlightsChecks.call(command, self.distro, '[installRestic]',
|
||||
'Install Restic.',
|
||||
1, 0, os.EX_OSERR)
|
||||
else:
|
||||
command = 'apt-get update -y'
|
||||
preFlightsChecks.call(command, self.distro, '[installRestic]',
|
||||
'Install Restic.',
|
||||
1, 0, os.EX_OSERR)
|
||||
|
||||
command = 'apt-get install restic -y'
|
||||
preFlightsChecks.call(command, self.distro, '[installRestic]',
|
||||
'Install Restic.',
|
||||
1, 0, os.EX_OSERR)
|
||||
|
||||
|
||||
cronTab = '/etc/crontab'
|
||||
|
||||
data = open(cronTab, 'r').read()
|
||||
|
||||
if data.find('IncScheduler') == -1:
|
||||
cronJob = '0 12 * * * root /usr/local/CyberCP/bin/python2 /usr/local/CyberCP/IncBackups/IncScheduler.py Daily'
|
||||
|
||||
writeToFile = open(cronTab, 'a')
|
||||
writeToFile.writelines(cronJob)
|
||||
|
||||
cronJob = '0 0 * * 0 root /usr/local/CyberCP/bin/python2 /usr/local/CyberCP/IncBackups/IncScheduler.py Daily'
|
||||
writeToFile.writelines(cronJob)
|
||||
writeToFile.close()
|
||||
|
||||
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='CyberPanel Installer')
|
||||
@@ -3813,6 +3858,7 @@ def main():
|
||||
checks.download_install_phpmyadmin()
|
||||
checks.setupCLI()
|
||||
checks.setup_cron()
|
||||
checks.installRestic()
|
||||
# checks.installdnsPython()
|
||||
|
||||
## Install and Configure OpenDKIM.
|
||||
|
||||
@@ -218,7 +218,7 @@ def loadLoginPage(request):
|
||||
firstName="Cyber",lastName="Panel", acl=acl, token=token)
|
||||
admin.save()
|
||||
|
||||
vers = version(currentVersion="1.9", build=0)
|
||||
vers = version(currentVersion="1.9", build=1)
|
||||
vers.save()
|
||||
|
||||
package = Package(admin=admin, packageName="Default", diskSpace=1000,
|
||||
|
||||
@@ -31,7 +31,7 @@ def main():
|
||||
firstName="Cyber", lastName="Panel", acl=acl, token=token)
|
||||
admin.save()
|
||||
|
||||
vers = version(currentVersion="1.9", build=0)
|
||||
vers = version(currentVersion="1.9", build=1)
|
||||
vers.save()
|
||||
|
||||
package = Package(admin=admin, packageName="Default", diskSpace=1000,
|
||||
|
||||
@@ -1175,6 +1175,73 @@ class Upgrade:
|
||||
except:
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def IncBackupMigrations():
|
||||
try:
|
||||
connection, cursor = Upgrade.setupConnection('cyberpanel')
|
||||
|
||||
query = """CREATE TABLE `IncBackups_backupjob` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`destination` varchar(300) NOT NULL,
|
||||
`frequency` varchar(50) NOT NULL,
|
||||
`websiteData` int(11) NOT NULL,
|
||||
`websiteDatabases` int(11) NOT NULL,
|
||||
`websiteDataEmails` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
)"""
|
||||
try:
|
||||
cursor.execute(query)
|
||||
except:
|
||||
pass
|
||||
|
||||
query = """CREATE TABLE `IncBackups_incjob` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`date` datetime(6) NOT NULL,
|
||||
`website_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `IncBackups_incjob_website_id_aad31bf6_fk_websiteFu` (`website_id`),
|
||||
CONSTRAINT `IncBackups_incjob_website_id_aad31bf6_fk_websiteFu` FOREIGN KEY (`website_id`) REFERENCES `websiteFunctions_websites` (`id`)
|
||||
)"""
|
||||
try:
|
||||
cursor.execute(query)
|
||||
except:
|
||||
pass
|
||||
|
||||
query = """CREATE TABLE `IncBackups_jobsites` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`website` varchar(300) NOT NULL,
|
||||
`job_id` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `IncBackups_jobsites_job_id_494a1f69_fk_IncBackups_backupjob_id` (`job_id`),
|
||||
CONSTRAINT `IncBackups_jobsites_job_id_494a1f69_fk_IncBackups_backupjob_id` FOREIGN KEY (`job_id`) REFERENCES `IncBackups_backupjob` (`id`)
|
||||
)"""
|
||||
try:
|
||||
cursor.execute(query)
|
||||
except:
|
||||
pass
|
||||
|
||||
query = """CREATE TABLE `IncBackups_jobsnapshots` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`type` varchar(300) NOT NULL,
|
||||
`snapshotid` varchar(50) NOT NULL,
|
||||
`job_id` int(11) NOT NULL,
|
||||
`destination` varchar(200) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `IncBackups_jobsnapshots_job_id_a8237ca8_fk_IncBackups_incjob_id` (`job_id`),
|
||||
CONSTRAINT `IncBackups_jobsnapshots_job_id_a8237ca8_fk_IncBackups_incjob_id` FOREIGN KEY (`job_id`) REFERENCES `IncBackups_incjob` (`id`)
|
||||
)"""
|
||||
try:
|
||||
cursor.execute(query)
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
connection.close()
|
||||
except:
|
||||
pass
|
||||
except:
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def enableServices():
|
||||
try:
|
||||
@@ -1267,6 +1334,11 @@ class Upgrade:
|
||||
if items.find('CLManager') > -1:
|
||||
CLManager = 0
|
||||
|
||||
IncBackups = 1
|
||||
for items in data:
|
||||
if items.find('IncBackups') > -1:
|
||||
IncBackups = 0
|
||||
|
||||
Upgrade.stdOut('Restoring settings file!')
|
||||
|
||||
writeToFile = open("/usr/local/CyberCP/CyberCP/settings.py", 'w')
|
||||
@@ -1295,9 +1367,13 @@ class Upgrade:
|
||||
if manageServices == 1:
|
||||
writeToFile.writelines(" 'manageServices',\n")
|
||||
|
||||
|
||||
if CLManager == 1:
|
||||
writeToFile.writelines(" 'CLManager',\n")
|
||||
|
||||
if IncBackups == 1:
|
||||
writeToFile.writelines(" 'IncBackups',\n")
|
||||
|
||||
else:
|
||||
writeToFile.writelines(items)
|
||||
|
||||
@@ -1542,7 +1618,6 @@ class Upgrade:
|
||||
Upgrade.executioner(command, 'Set default PHP 7.0, 0')
|
||||
|
||||
|
||||
|
||||
@staticmethod
|
||||
def someDirectories():
|
||||
command = "mkdir -p /usr/local/lscpd/admin/"
|
||||
@@ -1741,6 +1816,37 @@ failovermethod=priority
|
||||
except BaseException, msg:
|
||||
Upgrade.stdOut(str(msg) + " [upgradeDovecot]")
|
||||
|
||||
@staticmethod
|
||||
def installRestic():
|
||||
CentOSPath = '/etc/redhat-release'
|
||||
|
||||
if os.path.exists(CentOSPath):
|
||||
command = 'yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/copart/restic/repo/epel-7/copart-restic-epel-7.repo'
|
||||
Upgrade.executioner(command, 'Add restic repo.')
|
||||
|
||||
command = 'yum install restic -y'
|
||||
Upgrade.executioner(command, 'Install Restic')
|
||||
else:
|
||||
command = 'apt-get update -y'
|
||||
Upgrade.executioner(command, 'Install Restic')
|
||||
|
||||
command = 'apt-get install restic -y'
|
||||
Upgrade.executioner(command, 'Install Restic')
|
||||
|
||||
cronTab = '/etc/crontab'
|
||||
|
||||
data = open(cronTab, 'r').read()
|
||||
|
||||
if data.find('IncScheduler') == -1:
|
||||
cronJob = '0 12 * * * root /usr/local/CyberCP/bin/python2 /usr/local/CyberCP/IncBackups/IncScheduler.py Daily'
|
||||
|
||||
writeToFile = open(cronTab, 'a')
|
||||
writeToFile.writelines(cronJob)
|
||||
|
||||
cronJob = '0 0 * * 0 root /usr/local/CyberCP/bin/python2 /usr/local/CyberCP/IncBackups/IncScheduler.py Daily'
|
||||
writeToFile.writelines(cronJob)
|
||||
writeToFile.close()
|
||||
|
||||
@staticmethod
|
||||
def upgrade():
|
||||
|
||||
@@ -1796,6 +1902,8 @@ failovermethod=priority
|
||||
Upgrade.emailMarketingMigrationsa()
|
||||
Upgrade.dockerMigrations()
|
||||
Upgrade.CLMigrations()
|
||||
Upgrade.IncBackupMigrations()
|
||||
Upgrade.installRestic()
|
||||
|
||||
##
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import shlex
|
||||
from plogical.virtualHostUtilities import virtualHostUtilities
|
||||
from plogical.acl import ACLManager
|
||||
from plogical.processUtilities import ProcessUtilities
|
||||
import os
|
||||
# Create your views here.
|
||||
|
||||
|
||||
@@ -130,9 +131,15 @@ def getLogsFromFile(request):
|
||||
elif type == "error":
|
||||
fileName = installUtilities.Server_root_path + "/logs/error.log"
|
||||
elif type == "email":
|
||||
fileName = "/var/log/maillog"
|
||||
if ProcessUtilities.decideDistro() == ProcessUtilities.centos:
|
||||
fileName = "/var/log/maillog"
|
||||
else:
|
||||
fileName = "/var/log/mail.log"
|
||||
elif type == "ftp":
|
||||
fileName = "/var/log/messages"
|
||||
if ProcessUtilities.decideDistro() == ProcessUtilities.centos:
|
||||
fileName = "/var/log/messages"
|
||||
else:
|
||||
fileName = "/var/log/syslog"
|
||||
elif type == "modSec":
|
||||
fileName = "/usr/local/lsws/logs/auditmodsec.log"
|
||||
elif type == "cyberpanel":
|
||||
@@ -195,4 +202,4 @@ def clearLogFile(request):
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
||||
data_ret = {'cleanStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
745
static/IncBackups/IncBackups.js
Normal file
745
static/IncBackups/IncBackups.js
Normal file
@@ -0,0 +1,745 @@
|
||||
//*** Backup site ****//
|
||||
|
||||
app.controller('createIncrementalBackups', function ($scope, $http, $timeout) {
|
||||
|
||||
$scope.destination = true;
|
||||
$scope.backupButton = true;
|
||||
$scope.cyberpanelLoading = true;
|
||||
$scope.runningBackup = true;
|
||||
$scope.restoreSt = true;
|
||||
|
||||
|
||||
$scope.fetchDetails = function () {
|
||||
getBackupStatus();
|
||||
$scope.populateCurrentRecords();
|
||||
$scope.destination = false;
|
||||
$scope.runningBackup = true;
|
||||
};
|
||||
|
||||
function getBackupStatus() {
|
||||
|
||||
$scope.cyberpanelLoadingBottom = false;
|
||||
|
||||
url = "/IncrementalBackups/getBackupStatus";
|
||||
|
||||
var data = {
|
||||
websiteToBeBacked: $scope.websiteToBeBacked,
|
||||
tempPath: $scope.tempPath
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
|
||||
|
||||
if (response.data.backupStatus === 1) {
|
||||
|
||||
if (response.data.abort === 1) {
|
||||
$timeout.cancel();
|
||||
$scope.cyberpanelLoadingBottom = true;
|
||||
$scope.destination = false;
|
||||
$scope.runningBackup = false;
|
||||
$scope.backupButton = false;
|
||||
$scope.cyberpanelLoading = true;
|
||||
$scope.fileName = response.data.fileName;
|
||||
$scope.status = response.data.status;
|
||||
$scope.populateCurrentRecords();
|
||||
return;
|
||||
} else {
|
||||
$scope.destination = true;
|
||||
$scope.backupButton = true;
|
||||
$scope.runningBackup = false;
|
||||
|
||||
$scope.fileName = response.data.fileName;
|
||||
$scope.status = response.data.status;
|
||||
$timeout(getBackupStatus, 2000);
|
||||
|
||||
}
|
||||
} else {
|
||||
$timeout.cancel();
|
||||
$scope.cyberpanelLoadingBottom = true;
|
||||
$scope.cyberpanelLoading = true;
|
||||
$scope.backupButton = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$scope.destinationSelection = function () {
|
||||
$scope.backupButton = false;
|
||||
};
|
||||
|
||||
$scope.populateCurrentRecords = function () {
|
||||
|
||||
url = "/IncrementalBackups/fetchCurrentBackups";
|
||||
|
||||
var data = {
|
||||
websiteToBeBacked: $scope.websiteToBeBacked,
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
if (response.data.status === 1) {
|
||||
$scope.records = JSON.parse(response.data.data);
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Error!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$scope.createBackup = function () {
|
||||
|
||||
$scope.status = '';
|
||||
|
||||
$scope.cyberpanelLoading = false;
|
||||
|
||||
|
||||
url = "/IncrementalBackups/submitBackupCreation";
|
||||
|
||||
var data = {
|
||||
websiteToBeBacked: $scope.websiteToBeBacked,
|
||||
backupDestinations: $scope.backupDestinations,
|
||||
websiteData: $scope.websiteData,
|
||||
websiteEmails: $scope.websiteEmails,
|
||||
websiteSSLs: $scope.websiteSSLs,
|
||||
websiteDatabases: $scope.websiteDatabases
|
||||
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
|
||||
if (response.data.status === 1) {
|
||||
$scope.tempPath = response.data.tempPath;
|
||||
getBackupStatus();
|
||||
} else {
|
||||
$scope.cyberpanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$scope.deleteBackup = function (id) {
|
||||
|
||||
|
||||
url = "/IncrementalBackups/deleteBackup";
|
||||
|
||||
var data = {
|
||||
backupID: id,
|
||||
websiteToBeBacked: $scope.websiteToBeBacked
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
|
||||
|
||||
if (response.data.status === 1) {
|
||||
|
||||
$scope.populateCurrentRecords();
|
||||
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
$scope.restore = function (id) {
|
||||
|
||||
$scope.cyberpanelLoading = false;
|
||||
|
||||
|
||||
url = "/IncrementalBackups/fetchRestorePoints";
|
||||
|
||||
var data = {
|
||||
id: id,
|
||||
websiteToBeBacked: $scope.websiteToBeBacked
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
if (response.data.status === 1) {
|
||||
$scope.jobs = JSON.parse(response.data.data);
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$scope.restorePoint = function (id, reconstruct) {
|
||||
|
||||
$scope.status = '';
|
||||
|
||||
$scope.cyberpanelLoading = false;
|
||||
$scope.restoreSt = false;
|
||||
|
||||
|
||||
url = "/IncrementalBackups/restorePoint";
|
||||
|
||||
var data = {
|
||||
websiteToBeBacked: $scope.websiteToBeBacked,
|
||||
jobid: id,
|
||||
reconstruct: reconstruct
|
||||
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
|
||||
if (response.data.status === 1) {
|
||||
$scope.tempPath = response.data.tempPath;
|
||||
getBackupStatus();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
});
|
||||
|
||||
///** Backup site ends **///
|
||||
|
||||
|
||||
app.controller('incrementalDestinations', function ($scope, $http) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
$scope.sftpHide = true;
|
||||
$scope.awsHide = true;
|
||||
|
||||
$scope.fetchDetails = function () {
|
||||
|
||||
if ($scope.destinationType === 'SFTP') {
|
||||
$scope.sftpHide = false;
|
||||
$scope.awsHide = true;
|
||||
$scope.populateCurrentRecords();
|
||||
} else {
|
||||
$scope.sftpHide = true;
|
||||
$scope.awsHide = false;
|
||||
$scope.populateCurrentRecords();
|
||||
}
|
||||
};
|
||||
|
||||
$scope.populateCurrentRecords = function () {
|
||||
|
||||
$scope.cyberpanelLoading = false;
|
||||
|
||||
|
||||
url = "/IncrementalBackups/populateCurrentRecords";
|
||||
|
||||
var type = 'SFTP';
|
||||
if ($scope.destinationType === 'SFTP') {
|
||||
type = 'SFTP';
|
||||
} else {
|
||||
type = 'AWS';
|
||||
}
|
||||
|
||||
var data = {
|
||||
type: type
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
if (response.data.status === 1) {
|
||||
$scope.records = JSON.parse(response.data.data);
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$scope.addDestination = function (type) {
|
||||
$scope.cyberpanelLoading = false;
|
||||
|
||||
|
||||
url = "/IncrementalBackups/addDestination";
|
||||
|
||||
if (type === 'SFTP') {
|
||||
var data = {
|
||||
type: type,
|
||||
IPAddress: $scope.IPAddress,
|
||||
password: $scope.password,
|
||||
backupSSHPort: $scope.backupSSHPort
|
||||
};
|
||||
} else {
|
||||
var data = {
|
||||
type: type,
|
||||
AWS_ACCESS_KEY_ID: $scope.AWS_ACCESS_KEY_ID,
|
||||
AWS_SECRET_ACCESS_KEY: $scope.AWS_SECRET_ACCESS_KEY,
|
||||
};
|
||||
}
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
$scope.populateCurrentRecords();
|
||||
if (response.data.status === 1) {
|
||||
new PNotify({
|
||||
title: 'Success!',
|
||||
text: 'Destination successfully added.',
|
||||
type: 'success'
|
||||
});
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$scope.removeDestination = function (type, ipAddress) {
|
||||
$scope.cyberpanelLoading = false;
|
||||
|
||||
|
||||
url = "/IncrementalBackups/removeDestination";
|
||||
|
||||
var data = {
|
||||
type: type,
|
||||
IPAddress: ipAddress,
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
$scope.populateCurrentRecords();
|
||||
if (response.data.status === 1) {
|
||||
new PNotify({
|
||||
title: 'Success!',
|
||||
text: 'Destination successfully removed.',
|
||||
type: 'success'
|
||||
});
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
app.controller('scheduleBackupInc', function ($scope, $http) {
|
||||
|
||||
var globalPageNumber;
|
||||
$scope.scheduleFreq = true;
|
||||
$scope.cyberpanelLoading = true;
|
||||
$scope.getFurtherWebsitesFromDB = function (pageNumber) {
|
||||
$scope.cyberpanelLoading = false;
|
||||
globalPageNumber = pageNumber;
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
var data = {page: pageNumber};
|
||||
|
||||
|
||||
dataurl = "/CloudLinux/submitWebsiteListing";
|
||||
|
||||
$http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData);
|
||||
|
||||
|
||||
function ListInitialData(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
if (response.data.listWebSiteStatus === 1) {
|
||||
var finalData = JSON.parse(response.data.data);
|
||||
$scope.WebSitesList = finalData;
|
||||
$scope.pagination = response.data.pagination;
|
||||
$scope.default = response.data.default;
|
||||
$("#listFail").hide();
|
||||
} else {
|
||||
$("#listFail").fadeIn();
|
||||
$scope.errorMessage = response.data.error_message;
|
||||
console.log(response.data);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function cantLoadInitialData(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
var websitesToBeBacked = [];
|
||||
var websitesToBeBackedTemp = [];
|
||||
|
||||
var index = 0;
|
||||
var tempTransferDir = "";
|
||||
$scope.addRemoveWebsite = function (website, websiteStatus) {
|
||||
|
||||
if (websiteStatus === true) {
|
||||
var check = 1;
|
||||
for (var j = 0; j < websitesToBeBacked.length; j++) {
|
||||
if (websitesToBeBacked[j] == website) {
|
||||
check = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (check == 1) {
|
||||
websitesToBeBacked.push(website);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
var tempArray = [];
|
||||
|
||||
for (var j = 0; j < websitesToBeBacked.length; j++) {
|
||||
if (websitesToBeBacked[j] != website) {
|
||||
tempArray.push(websitesToBeBacked[j]);
|
||||
}
|
||||
}
|
||||
websitesToBeBacked = tempArray;
|
||||
}
|
||||
};
|
||||
|
||||
$scope.allChecked = function (webSiteStatus) {
|
||||
if (webSiteStatus === true) {
|
||||
|
||||
websitesToBeBacked = websitesToBeBackedTemp;
|
||||
$scope.webSiteStatus = true;
|
||||
} else {
|
||||
websitesToBeBacked = [];
|
||||
$scope.webSiteStatus = false;
|
||||
}
|
||||
};
|
||||
|
||||
$scope.scheduleFreqView = function () {
|
||||
$scope.scheduleFreq = false;
|
||||
$scope.getFurtherWebsitesFromDB(1);
|
||||
|
||||
};
|
||||
$scope.addSchedule = function () {
|
||||
$scope.cyberpanelLoading = false;
|
||||
|
||||
|
||||
url = "/IncrementalBackups/submitBackupSchedule";
|
||||
|
||||
var data = {
|
||||
backupDestinations: $scope.backupDest,
|
||||
backupFreq: $scope.backupFreq,
|
||||
websiteData: $scope.websiteData,
|
||||
websiteEmails: $scope.websiteEmails,
|
||||
websiteDatabases: $scope.websiteDatabases,
|
||||
websitesToBeBacked: websitesToBeBacked
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
$scope.populateCurrentRecords();
|
||||
if (response.data.status === 1) {
|
||||
new PNotify({
|
||||
title: 'Success!',
|
||||
text: 'Destination successfully removed.',
|
||||
type: 'success'
|
||||
});
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$scope.populateCurrentRecords = function () {
|
||||
|
||||
$scope.cyberpanelLoading = false;
|
||||
|
||||
|
||||
url = "/IncrementalBackups/getCurrentBackupSchedules";
|
||||
|
||||
|
||||
var data = {};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
if (response.data.status === 1) {
|
||||
$scope.records = JSON.parse(response.data.data);
|
||||
var parsed = JSON.parse(response.data.data);
|
||||
|
||||
for (var j = 0; j < parsed.length; j++) {
|
||||
websitesToBeBackedTemp.push(parsed[j].website);
|
||||
}
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
$scope.populateCurrentRecords();
|
||||
|
||||
$scope.delSchedule = function (id) {
|
||||
|
||||
$scope.cyberpanelLoading = false;
|
||||
|
||||
url = "/IncrementalBackups/scheduleDelete";
|
||||
|
||||
|
||||
var data = {id: id};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
|
||||
if (response.data.status === 1) {
|
||||
$scope.populateCurrentRecords();
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user