Do not delete base releases with containers child

This commit is contained in:
Jose
2019-10-31 22:42:17 -04:00
parent 6a5062e08a
commit d385820a09
3 changed files with 25 additions and 17 deletions
+1
View File
@@ -3,6 +3,7 @@
====================== ======================
Version Description Version Description
1.0.3......Do not delete base releases with containers child.
1.0.2......Code and regex improvements. 1.0.2......Code and regex improvements.
1.0.1......Update paths and minor changes. 1.0.1......Update paths and minor changes.
1.0.0......First Public Release. 1.0.0......First Public Release.
+23 -16
View File
@@ -47,6 +47,7 @@ $sphere_record = [];
function get_rel_list() { function get_rel_list() {
global $rootfolder; global $rootfolder;
global $jail_dir;
$result = []; $result = [];
if (is_dir("{$rootfolder}/releases")): if (is_dir("{$rootfolder}/releases")):
$entries = preg_grep('/^[0-9]+\.[0-9]+\-RELEASE/', scandir("{$rootfolder}/releases")); $entries = preg_grep('/^[0-9]+\.[0-9]+\-RELEASE/', scandir("{$rootfolder}/releases"));
@@ -60,7 +61,6 @@ function get_rel_list() {
$r['name'] = 'unknown'; $r['name'] = 'unknown';
endif; endif;
$r['relname'] = $r['name']; $r['relname'] = $r['name'];
$result[] = $r; $result[] = $r;
endforeach; endforeach;
endif; endif;
@@ -103,20 +103,26 @@ if($_POST):
if ($_POST['Destroy']): if ($_POST['Destroy']):
$get_release = $pconfig['release_item']; $get_release = $pconfig['release_item'];
$check_release = ("{$rootfolder}/releases/{$get_release}"); $check_release = ("{$rootfolder}/releases/{$get_release}");
$check_used = exec("/usr/bin/grep -wo {$get_release} {$jail_dir}/*/fstab 2>/dev/null");
$cmd = ("/usr/local/bin/bastille destroy {$get_release}"); $cmd = ("/usr/local/bin/bastille destroy {$get_release}");
if(!file_exists($check_release)):
if (!file_exists($check_release)):
// FreeBSD base release check. // FreeBSD base release check.
$savemsg .= sprintf(gtext('%s base does not exist, nothing to do.'),$get_release); $savemsg .= sprintf(gtext('%s base does not exist, nothing to do.'),$get_release);
else: else:
// Delete the FreeBSD base release/directory. // Do not delete base releases with containers child.
if ($_POST['Destroy']): if ($check_used):
unset($output,$retval);mwexec2($cmd,$output,$retval); $errormsg .= sprintf(gtext('%s base appears to have containers child.'),$get_release);
if($retval == 0): else:
//$savemsg .= sprintf(gtext('%s base deleted successfully.'),$get_release); // Delete the FreeBSD base release/directory.
header('Location: bastille_manager_tarballs.php'); if ($_POST['Destroy']):
else: unset($output,$retval);mwexec2($cmd,$output,$retval);
$errormsg .= sprintf(gtext('%s failed to delete.'),$get_release); if($retval == 0):
endif; $savemsg .= sprintf(gtext('%s base deleted successfully.'),$get_release);
else:
$errormsg .= sprintf(gtext('%s failed to delete.'),$get_release);
endif;
endif;
endif; endif;
endif; endif;
endif; endif;
@@ -182,7 +188,11 @@ $document->render();
<tbody> <tbody>
<?php <?php
foreach ($sphere_array as $sphere_record): foreach ($sphere_array as $sphere_record):
html_text2('releases',gettext('Installed Base:'),htmlspecialchars($sphere_record['relname'])); if (file_exists("{$rootfolder}/releases/{$sphere_record['relname']}/root/.profile")):
html_text2('releases',gettext('Installed Base:'),htmlspecialchars($sphere_record['relname']));
else:
html_text2('releases',gettext('Unknown Base:'),htmlspecialchars($sphere_record['relname']));
endif;
endforeach; endforeach;
$a_action = [ $a_action = [
//'12.1-RELEASE' => gettext('12.1-RELEASE'), //'12.1-RELEASE' => gettext('12.1-RELEASE'),
@@ -190,16 +200,13 @@ $document->render();
'11.3-RELEASE' => gettext('11.3-RELEASE'), '11.3-RELEASE' => gettext('11.3-RELEASE'),
'11.2-RELEASE' => gettext('11.2-RELEASE'), '11.2-RELEASE' => gettext('11.2-RELEASE'),
]; ];
html_combobox2('release_item',gettext('Select Base Release'),$pconfig['release_item'],$a_action,'',true,false,'action_change()'); html_combobox2('release_item',gettext('Select Base Release'),$pconfig['release_item'],$a_action,'',true,false);
?> ?>
</tbody> </tbody>
</table> </table>
<div id="submit"> <div id="submit">
<input name="Download" type="submit" class="formbtn" value="<?=gtext("Download");?>" onclick="enable_change(true)" /> <input name="Download" type="submit" class="formbtn" value="<?=gtext("Download");?>" onclick="enable_change(true)" />
<input name="Destroy" id="Destroy" type="submit" class="formbtn" value="<?=gtext("Destroy");?>"/> <input name="Destroy" id="Destroy" type="submit" class="formbtn" value="<?=gtext("Destroy");?>"/>
<input name="Cancel" type="submit" class="formbtn" value="<?=gtext("Cancel");?>" /> <input name="Cancel" type="submit" class="formbtn" value="<?=gtext("Cancel");?>" />
</div> </div>
<div id="remarks"> <div id="remarks">
+1 -1
View File
@@ -1 +1 @@
1.0.1 1.0.3