summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2018-03-28 09:05:23 +0200
committerThomas Haller <thaller@redhat.com>2018-03-29 11:24:32 +0200
commit1fd6a041a5001c31179ce1e42c56a039c764075d (patch)
treed3ef179a5c4a419f8c3e13f211d26c9c129c8db0
parent2619641debf13ea58315c88028bdb55117c59e72 (diff)
downloadNetworkManager-1fd6a041a5001c31179ce1e42c56a039c764075d.tar.gz
checkpoint: refactor setting error for lookup checkpoint failure
This changes the error reason in nm_checkpoint_manager_rollback() from NM_MANAGER_ERROR_FAILED to NM_MANAGER_ERROR_INVALID_ARGUMENTS.
-rw-r--r--src/nm-checkpoint-manager.c23
-rw-r--r--src/nm-checkpoint-manager.h3
2 files changed, 11 insertions, 15 deletions
diff --git a/src/nm-checkpoint-manager.c b/src/nm-checkpoint-manager.c
index 173eaf5a48..8d341f56b7 100644
--- a/src/nm-checkpoint-manager.c
+++ b/src/nm-checkpoint-manager.c
@@ -227,14 +227,9 @@ nm_checkpoint_manager_destroy (NMCheckpointManager *self,
return TRUE;
}
- checkpoint = nm_checkpoint_manager_lookup_by_path (self, path);
- if (!checkpoint) {
- g_set_error (error,
- NM_MANAGER_ERROR,
- NM_MANAGER_ERROR_INVALID_ARGUMENTS,
- "checkpoint %s does not exist", path);
+ checkpoint = nm_checkpoint_manager_lookup_by_path (self, path, error);
+ if (!checkpoint)
return FALSE;
- }
destroy_checkpoint (self, checkpoint, TRUE);
return TRUE;
@@ -253,19 +248,16 @@ nm_checkpoint_manager_rollback (NMCheckpointManager *self,
g_return_val_if_fail (results, FALSE);
g_return_val_if_fail (!error || !*error, FALSE);
- checkpoint = nm_checkpoint_manager_lookup_by_path (self, path);
- if (!checkpoint) {
- g_set_error (error, NM_MANAGER_ERROR, NM_MANAGER_ERROR_FAILED,
- "checkpoint %s does not exist", path);
+ checkpoint = nm_checkpoint_manager_lookup_by_path (self, path, error);
+ if (!checkpoint)
return FALSE;
- }
*results = rollback_checkpoint (self, checkpoint);
return TRUE;
}
NMCheckpoint *
-nm_checkpoint_manager_lookup_by_path (NMCheckpointManager *self, const char *path)
+nm_checkpoint_manager_lookup_by_path (NMCheckpointManager *self, const char *path, GError **error)
{
NMCheckpoint *checkpoint;
@@ -274,8 +266,11 @@ nm_checkpoint_manager_lookup_by_path (NMCheckpointManager *self, const char *pat
checkpoint = (NMCheckpoint *) nm_dbus_manager_lookup_object (nm_dbus_object_get_manager (NM_DBUS_OBJECT (GET_MANAGER (self))),
path);
if ( !checkpoint
- || !NM_IS_CHECKPOINT (checkpoint))
+ || !NM_IS_CHECKPOINT (checkpoint)) {
+ g_set_error (error, NM_MANAGER_ERROR, NM_MANAGER_ERROR_INVALID_ARGUMENTS,
+ "checkpoint %s does not exist", path);
return NULL;
+ }
nm_assert (c_list_contains (&self->checkpoints_lst_head, &checkpoint->checkpoints_lst));
return checkpoint;
diff --git a/src/nm-checkpoint-manager.h b/src/nm-checkpoint-manager.h
index bcdf0d3602..158d670a12 100644
--- a/src/nm-checkpoint-manager.h
+++ b/src/nm-checkpoint-manager.h
@@ -32,7 +32,8 @@ NMCheckpointManager *nm_checkpoint_manager_new (NMManager *manager, GParamSpec *
void nm_checkpoint_manager_free (NMCheckpointManager *self);
NMCheckpoint *nm_checkpoint_manager_lookup_by_path (NMCheckpointManager *self,
- const char *path);
+ const char *path,
+ GError **error);
NMCheckpoint *nm_checkpoint_manager_create (NMCheckpointManager *self,
const char *const*device_names,