Add new export/import features

This commit is contained in:
JRGTH
2021-08-29 00:26:29 -04:00
parent e5af05fbcc
commit e58340f361
4 changed files with 79 additions and 6 deletions

View File

@@ -3,6 +3,7 @@
====================== ======================
Version Description Version Description
1.0.95......Add new export/import features.
1.0.94......check for required variables for bastille 0.9.x. 1.0.94......check for required variables for bastille 0.9.x.
1.0.93......Quick update to support bastille 0.9.x. 1.0.93......Quick update to support bastille 0.9.x.
1.0.92......Set file permissions. 1.0.92......Set file permissions.

View File

@@ -329,7 +329,7 @@ $(document).ready(function(){
html_checkbox2('zfs_activate',gtext('ZFS support activation'),'' ? true : false,gtext('Check this to activate ZFS support or leave unchecked to dismiss (requires ZFS support to be available), this is a one time option and this row will disappear after clicking Save button.'),'',false); html_checkbox2('zfs_activate',gtext('ZFS support activation'),'' ? true : false,gtext('Check this to activate ZFS support or leave unchecked to dismiss (requires ZFS support to be available), this is a one time option and this row will disappear after clicking Save button.'),'',false);
endif; endif;
?> ?>
<?php html_filechooser("backup_path", gtext("Backup directory"), $backup_path, gtext("Directory to store containers backup archives, use as file chooser for restoring from file."), $backup_path, true, 60);?> <?php html_filechooser("backup_path", gtext("Backup directory"), $backup_path, gtext("Directory to store containers backup archives, use as file chooser for restoring from file, importable formats: .GZ/TGZ/TXZ/XZ or RAW(no extension on the jail name)."), $backup_path, true, 60);?>
</table> </table>
<div id="submit"> <div id="submit">
<input id="save" name="save" type="submit" class="formbtn" title="<?=gtext("Save settings");?>" value="<?=gtext("Save");?>"/> <input id="save" name="save" type="submit" class="formbtn" title="<?=gtext("Save settings");?>" value="<?=gtext("Save");?>"/>

View File

@@ -116,14 +116,57 @@ if($_POST):
$bastille_version_min = "0920210714"; $bastille_version_min = "0920210714";
$bastille_version_format = str_replace(".", "", $bastille_version); $bastille_version_format = str_replace(".", "", $bastille_version);
$bastille_bin_path = "/usr/local/bin"; $bastille_bin_path = "/usr/local/bin";
$export_option = "";
$skip_safemode = "";
if(isset($_POST['format'])):
$export_format = $_POST['format'];
endif;
switch($export_format):
case 'default':
break;
case 'gz':
$user_export_format = "--gz";
break;
case 'raw':
$user_export_format = "--raw";
break;
case 'tgz':
$user_export_format = "--tgz";
$skip_safemode = "yes";
break;
case 'txz':
$user_export_format = "--txz";
$skip_safemode = "yes";
break;
case 'xz':
$user_export_format = "--xz";
break;
endswitch;
if ($zfs_activated == "YES"):
if($pconfig['safemode']):
if(!$skip_safemode):
$export_option = "--safe";
endif;
endif;
endif;
if($bastille_version_format >= $bastille_version_min): if($bastille_version_format >= $bastille_version_min):
if ($zfs_activated == "YES"): if ($zfs_activated == "YES"):
$export_format = "--xz"; if ($pconfig['format'] == "default"):
$cmd = ("$bastille_bin_path/bastille export $export_format '{$item}'"); $export_format = "--xz";
$cmd = ("$bastille_bin_path/bastille export $export_option $export_format '{$item}'");
else:
$cmd = ("$bastille_bin_path/bastille export $export_option $user_export_format '{$item}'");
endif;
else: else:
$export_format = "--txz"; if ($pconfig['format'] == "default"):
$cmd = ("$bastille_bin_path/bastille export $export_format '{$item}'"); $export_format = "--txz";
$cmd = ("$bastille_bin_path/bastille export $export_format '{$item}'");
else:
$cmd = ("$bastille_bin_path/bastille export $user_export_format '{$item}'");
endif;
endif; endif;
else: else:
$cmd = ("$bastille_bin_path/bastille export '{$item}'"); $cmd = ("$bastille_bin_path/bastille export '{$item}'");
@@ -399,12 +442,18 @@ function action_change() {
showElementById('clonestop_tr', 'hide'); showElementById('clonestop_tr', 'hide');
showElementById('auto_boot_tr', 'hide'); showElementById('auto_boot_tr', 'hide');
showElementById('no_autoboot_tr', 'hide'); showElementById('no_autoboot_tr', 'hide');
showElementById('backup_tr', 'hide');
showElementById('format_tr', 'hide');
showElementById('safemode_tr', 'hide');
//showElementById('dateadd_tr','hide'); //showElementById('dateadd_tr','hide');
var action = document.iform.action.value; var action = document.iform.action.value;
switch (action) { switch (action) {
case "backup": case "backup":
showElementById('confirmname_tr','hide'); showElementById('confirmname_tr','hide');
showElementById('nowstop_tr','hide'); showElementById('nowstop_tr','hide');
showElementById('backup_tr', 'show');
showElementById('format_tr', 'show');
showElementById('safemode_tr', 'show');
break; break;
case "clone": case "clone":
showElementById('newname_tr','show'); showElementById('newname_tr','show');
@@ -523,7 +572,28 @@ $document->render();
'advanced' => gettext('Advanced'), 'advanced' => gettext('Advanced'),
]; ];
if ($zfs_activated == "YES"):
$c_action = [
'default' => gettext('Default'),
'gz' => gettext('GZ'),
'raw' => gettext('RAW'),
'tgz' => gettext('TGZ'),
'txz' => gettext('TXZ'),
'xz' => gettext('XZ'),
];
else:
$c_action = [
'default' => gettext('Default'),
'tgz' => gettext('TGZ'),
'txz' => gettext('TXZ'),
];
endif;
html_combobox2('action',gettext('Action'),$pconfig['action'],$a_action,'',true,false,'action_change()'); html_combobox2('action',gettext('Action'),$pconfig['action'],$a_action,'',true,false,'action_change()');
html_combobox2('format',gettext('Archive format'),$pconfig['format'],$c_action,'',true,false);
if ($zfs_activated == "YES"):
html_checkbox2('safemode',gettext('Safe ZFS export'),!empty($pconfig['safemode']) ? true : false,gettext('Safely stop and start a ZFS jail before the exporting process, this has no effect on .TGZ/TXZ since the jail should be stopped regardless.'),'',false);
endif;
html_inputbox2('confirmname',gettext('Enter name for confirmation'),$pconfig['confirmname'],'',true,30); html_inputbox2('confirmname',gettext('Enter name for confirmation'),$pconfig['confirmname'],'',true,30);
html_checkbox2('nowstop',gettext('Stop container'),!empty($pconfig['nowstop']) ? true : false,gettext('Stop the container if running before deletion.'),'',false); html_checkbox2('nowstop',gettext('Stop container'),!empty($pconfig['nowstop']) ? true : false,gettext('Stop the container if running before deletion.'),'',false);
html_inputbox2('newname',gettext('Enter a name for the new container'),$pconfig['newname'],'',true,30); html_inputbox2('newname',gettext('Enter a name for the new container'),$pconfig['newname'],'',true,30);
@@ -544,6 +614,8 @@ $document->render();
html_text2('jail_release',gettext('Current base release:'),htmlspecialchars($current_release)); html_text2('jail_release',gettext('Current base release:'),htmlspecialchars($current_release));
html_text2('auto_boot',gettext('Enable container auto-startup'),htmlspecialchars("This will cause the container to automatically start each time the system restart.")); html_text2('auto_boot',gettext('Enable container auto-startup'),htmlspecialchars("This will cause the container to automatically start each time the system restart."));
html_text2('no_autoboot',gettext('Disable container auto-startup'),htmlspecialchars("This will disable the container automatic startup.")); html_text2('no_autoboot',gettext('Disable container auto-startup'),htmlspecialchars("This will disable the container automatic startup."));
html_text2('backup',gettext('Export container'),htmlspecialchars("This will export a container to a compressed file/image, please execute `bastille export` for more info in regards exporting formats, Default = .XZ on ZFS setups or .TXZ otherwise."));
if (!$disable_base_change): if (!$disable_base_change):
html_combobox2('release',gettext('New base release'),$pconfig['release'],$b_action,gettext("Warning: this will change current base to the selected base on the thin container only, the user is responsible for package updates and/or general incompatibilities issues, or use the command line for native upgrade."),true,false,); html_combobox2('release',gettext('New base release'),$pconfig['release'],$b_action,gettext("Warning: this will change current base to the selected base on the thin container only, the user is responsible for package updates and/or general incompatibilities issues, or use the command line for native upgrade."),true,false,);
endif; endif;

View File

@@ -1 +1 @@
1.0.94 1.0.95