Merge pull request #2373 from cgwalters/warn-nonempty-var
deploy: Warn if we find content in the deployment's /var
This commit is contained in:
commit
f8496098ee
|
|
@ -2632,6 +2632,39 @@ _ostree_deployment_set_bootconfig_from_kargs (OstreeDeployment *deployment,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Perform some basic static analysis and emit warnings for things
|
||||||
|
// that are likely to fail later. This function only returns
|
||||||
|
// a hard error if something unexpected (e.g. I/O error) occurs.
|
||||||
|
static gboolean
|
||||||
|
lint_deployment_fs (OstreeSysroot *self,
|
||||||
|
OstreeDeployment *deployment,
|
||||||
|
int deployment_dfd,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
g_auto(GLnxDirFdIterator) dfd_iter = { 0, };
|
||||||
|
glnx_autofd int dest_dfd = -1;
|
||||||
|
gboolean exists;
|
||||||
|
|
||||||
|
if (!ot_dfd_iter_init_allow_noent (deployment_dfd, "var", &dfd_iter, &exists, error))
|
||||||
|
return FALSE;
|
||||||
|
while (exists)
|
||||||
|
{
|
||||||
|
struct dirent *dent;
|
||||||
|
|
||||||
|
if (!glnx_dirfd_iterator_next_dent (&dfd_iter, &dent, cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
if (dent == NULL)
|
||||||
|
break;
|
||||||
|
|
||||||
|
fprintf (stderr, "note: Deploying commit %s which contains content in /var/%s that will be ignored.\n",
|
||||||
|
ostree_deployment_get_csum (deployment),
|
||||||
|
dent->d_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* The first part of writing a deployment. This primarily means doing the
|
/* The first part of writing a deployment. This primarily means doing the
|
||||||
* hardlink farm checkout, but we also compute some initial state.
|
* hardlink farm checkout, but we also compute some initial state.
|
||||||
*/
|
*/
|
||||||
|
|
@ -2680,6 +2713,9 @@ sysroot_initialize_deployment (OstreeSysroot *self,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
if (!lint_deployment_fs (self, new_deployment, deployment_dfd, cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
ot_transfer_out_value (out_new_deployment, &new_deployment);
|
ot_transfer_out_value (out_new_deployment, &new_deployment);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -xeuo pipefail
|
||||||
|
|
||||||
|
. ${KOLA_EXT_DATA}/libinsttest.sh
|
||||||
|
|
||||||
|
require_writable_sysroot
|
||||||
|
prepare_tmpdir
|
||||||
|
|
||||||
|
mkdir -p rootfs/var/shouldntdothis/subdir
|
||||||
|
ostree commit -b testlint --no-bindings --selinux-policy-from-base --tree=ref="${host_refspec}" --consume --tree=dir=rootfs
|
||||||
|
ostree admin deploy testlint 2>err.txt
|
||||||
|
assert_file_has_content err.txt 'Deploying commit.*which contains content in /var/shouldntdothis'
|
||||||
|
echo "ok content in /var"
|
||||||
Loading…
Reference in New Issue