int install_changes_add(
InstallChange **changes,
size_t *n_changes,
- int type_or_errno, /* UNIT_FILE_SYMLINK, _UNLINK, _IS_MASKED, _IS_DANGLING if positive or errno if negative */
+ int change_or_errno, /* INSTALL_CHANGE_SYMLINK, _UNLINK, _IS_MASKED, _IS_DANGLING, … if positive or errno if negative */
const char *path,
const char *source) {
assert(!changes == !n_changes);
- if (type_or_errno >= 0)
- assert(type_or_errno < _UNIT_FILE_CHANGE_TYPE_MAX);
+ if (change_or_errno >= 0)
+ assert(change_or_errno < _INSTALL_CHANGE_MAX);
else
- assert(type_or_errno >= -ERRNO_MAX);
+ assert(change_or_errno >= -ERRNO_MAX);
if (!changes)
return 0;
}
c[(*n_changes)++] = (InstallChange) {
- .type_or_errno = type_or_errno,
+ .change_or_errno = change_or_errno,
.path = TAKE_PTR(p),
.source = TAKE_PTR(s),
};
assert(verb || r >= 0);
for (size_t i = 0; i < n_changes; i++) {
- assert(verb || changes[i].type_or_errno >= 0);
+ assert(verb || changes[i].change_or_errno >= 0);
- switch (changes[i].type_or_errno) {
- case UNIT_FILE_SYMLINK:
+ switch (changes[i].change_or_errno) {
+ case INSTALL_CHANGE_SYMLINK:
if (!quiet)
log_info("Created symlink %s %s %s.",
changes[i].path,
special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
changes[i].source);
break;
- case UNIT_FILE_UNLINK:
+ case INSTALL_CHANGE_UNLINK:
if (!quiet)
log_info("Removed \"%s\".", changes[i].path);
break;
- case UNIT_FILE_IS_MASKED:
+ case INSTALL_CHANGE_IS_MASKED:
if (!quiet)
log_info("Unit %s is masked, ignoring.", changes[i].path);
break;
- case UNIT_FILE_IS_DANGLING:
+ case INSTALL_CHANGE_IS_DANGLING:
if (!quiet)
log_info("Unit %s is an alias to a unit that is not present, ignoring.",
changes[i].path);
break;
- case UNIT_FILE_DESTINATION_NOT_PRESENT:
+ case INSTALL_CHANGE_DESTINATION_NOT_PRESENT:
if (!quiet)
log_warning("Unit %s is added as a dependency to a non-existent unit %s.",
changes[i].source, changes[i].path);
break;
- case UNIT_FILE_AUXILIARY_FAILED:
+ case INSTALL_CHANGE_AUXILIARY_FAILED:
if (!quiet)
log_warning("Failed to enable auxiliary unit %s, ignoring.", changes[i].source);
break;
case -EEXIST:
if (changes[i].source)
- err = log_error_errno(changes[i].type_or_errno,
+ err = log_error_errno(changes[i].change_or_errno,
"Failed to %s unit, file \"%s\" already exists and is a symlink to \"%s\".",
verb, changes[i].path, changes[i].source);
else
- err = log_error_errno(changes[i].type_or_errno,
+ err = log_error_errno(changes[i].change_or_errno,
"Failed to %s unit, file \"%s\" already exists.",
verb, changes[i].path);
break;
case -ERFKILL:
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s unit, unit %s is masked.",
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s unit, unit %s is masked.",
verb, changes[i].path);
break;
case -EADDRNOTAVAIL:
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s unit, unit %s is transient or generated.",
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s unit, unit %s is transient or generated.",
verb, changes[i].path);
break;
case -EBADSLT:
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s unit, invalid specifier in \"%s\".",
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s unit, invalid specifier in \"%s\".",
verb, changes[i].path);
break;
case -EIDRM:
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s %s, destination unit %s is a non-template unit.",
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s %s, destination unit %s is a non-template unit.",
verb, changes[i].source, changes[i].path);
break;
case -EUCLEAN:
- err = log_error_errno(changes[i].type_or_errno,
+ err = log_error_errno(changes[i].change_or_errno,
"Failed to %s unit, \"%s\" is not a valid unit name.",
verb, changes[i].path);
break;
case -ELOOP:
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s unit, refusing to operate on linked unit file %s.",
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s unit, refusing to operate on linked unit file %s.",
verb, changes[i].path);
break;
case -EXDEV:
if (changes[i].source)
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s unit, cannot alias %s as %s.",
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s unit, cannot alias %s as %s.",
verb, changes[i].source, changes[i].path);
else
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s unit, invalid unit reference \"%s\".",
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s unit, invalid unit reference \"%s\".",
verb, changes[i].path);
break;
case -ENOENT:
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s unit, unit %s does not exist.",
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s unit, unit %s does not exist.",
verb, changes[i].path);
break;
case -EUNATCH:
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s unit, cannot resolve specifiers in \"%s\".",
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s unit, cannot resolve specifiers in \"%s\".",
verb, changes[i].path);
break;
default:
- assert(changes[i].type_or_errno < 0);
- err = log_error_errno(changes[i].type_or_errno, "Failed to %s unit, file \"%s\": %m",
+ assert(changes[i].change_or_errno < 0);
+ err = log_error_errno(changes[i].change_or_errno, "Failed to %s unit, file \"%s\": %m",
verb, changes[i].path);
}
}
(void) mkdir_parents_label(new_path, 0755);
if (symlink(old_path, new_path) >= 0) {
- install_changes_add(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_SYMLINK, new_path, old_path);
return 1;
}
return r;
}
- install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL);
- install_changes_add(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_UNLINK, new_path, NULL);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_SYMLINK, new_path, old_path);
return 1;
}
(void) rmdir_parents(p, config_path);
}
- install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, p, NULL);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_UNLINK, p, NULL);
/* Now, remember the full path (but with the root prefix removed) of
* the symlink we just removed, and remove any symlinks to it, too. */
r = q;
if (unit_file_exists(scope, lp, dst) == 0)
- install_changes_add(changes, n_changes, UNIT_FILE_DESTINATION_NOT_PRESENT, dst, info->path);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_DESTINATION_NOT_PRESENT, dst, info->path);
}
return r;
q = install_info_traverse(ctx, lp, i, flags, NULL);
if (q < 0) {
if (i->auxiliary) {
- q = install_changes_add(changes, n_changes, UNIT_FILE_AUXILIARY_FAILED, NULL, i->name);
+ q = install_changes_add(changes, n_changes, INSTALL_CHANGE_AUXILIARY_FAILED, NULL, i->name);
if (q < 0)
return q;
continue;
/* We can attempt to process a masked unit when a different unit
* that we were processing specifies it in Also=. */
if (i->install_mode == INSTALL_MODE_MASKED) {
- install_changes_add(changes, n_changes, UNIT_FILE_IS_MASKED, i->path, NULL);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_IS_MASKED, i->path, NULL);
if (r >= 0)
/* Assume that something *could* have been enabled here,
* avoid "empty [Install] section" warning. */
r = install_info_traverse(ctx, lp, i, SEARCH_LOAD|SEARCH_FOLLOW_CONFIG_SYMLINKS, NULL);
if (r == -ENOLINK) {
log_debug_errno(r, "Name %s leads to a dangling symlink, removing name.", i->name);
- install_changes_add(changes, n_changes, UNIT_FILE_IS_DANGLING, i->path ?: i->name, NULL);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_IS_DANGLING, i->path ?: i->name, NULL);
} else if (r == -ENOENT) {
if (i->auxiliary) /* some unit specified in Also= or similar is missing */
install_changes_add(changes, n_changes, r, i->path ?: i->name, NULL);
} else if (i->install_mode == INSTALL_MODE_MASKED) {
log_debug("Unit file %s is masked, ignoring.", i->name);
- install_changes_add(changes, n_changes, UNIT_FILE_IS_MASKED, i->path ?: i->name, NULL);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_IS_MASKED, i->path ?: i->name, NULL);
continue;
} else if (i->install_mode != INSTALL_MODE_REGULAR) {
log_debug("Unit %s has install mode %s, ignoring.",
continue;
}
- install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, path, NULL);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_UNLINK, path, NULL);
rp = skip_root(lp.root_dir, path);
q = mark_symlink_for_removal(&remove_symlinks_to, rp ?: path);
if (!t)
return -ENOMEM;
- install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, t, NULL);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_UNLINK, t, NULL);
}
- install_changes_add(changes, n_changes, UNIT_FILE_UNLINK, *i, NULL);
+ install_changes_add(changes, n_changes, INSTALL_CHANGE_UNLINK, *i, NULL);
rp = skip_root(lp.root_dir, *i);
q = mark_symlink_for_removal(&remove_symlinks_to, rp ?: *i);
DEFINE_STRING_TABLE_LOOKUP(unit_file_state, UnitFileState);
-static const char* const unit_file_change_type_table[_UNIT_FILE_CHANGE_TYPE_MAX] = {
- [UNIT_FILE_SYMLINK] = "symlink",
- [UNIT_FILE_UNLINK] = "unlink",
- [UNIT_FILE_IS_MASKED] = "masked",
- [UNIT_FILE_IS_DANGLING] = "dangling",
- [UNIT_FILE_DESTINATION_NOT_PRESENT] = "destination not present",
- [UNIT_FILE_AUXILIARY_FAILED] = "auxiliary unit failed",
+static const char* const install_change_table[_INSTALL_CHANGE_MAX] = {
+ [INSTALL_CHANGE_SYMLINK] = "symlink",
+ [INSTALL_CHANGE_UNLINK] = "unlink",
+ [INSTALL_CHANGE_IS_MASKED] = "masked",
+ [INSTALL_CHANGE_IS_DANGLING] = "dangling",
+ [INSTALL_CHANGE_DESTINATION_NOT_PRESENT] = "destination not present",
+ [INSTALL_CHANGE_AUXILIARY_FAILED] = "auxiliary unit failed",
};
-DEFINE_STRING_TABLE_LOOKUP(unit_file_change_type, int);
+DEFINE_STRING_TABLE_LOOKUP(install_change, int);
static const char* const unit_file_preset_mode_table[_UNIT_FILE_PRESET_MAX] = {
[UNIT_FILE_PRESET_FULL] = "full",
assert_se(unit_file_mask(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/dev/null"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/a.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_unmask(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/a.service");
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/a.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);
/* Let's enable this indirectly via a symlink */
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("d.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/a.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_reenable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("b.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 2);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p));
- assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[1].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[1].source, "/usr/lib/systemd/system/a.service"));
assert_se(streq(changes[1].path, p));
install_changes_free(changes, n_changes);
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("f.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 2);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/f.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/x.target.wants/f.service");
assert_se(streq(changes[0].path, p));
- assert_se(changes[1].type_or_errno == UNIT_FILE_DESTINATION_NOT_PRESENT);
+ assert_se(changes[1].change_or_errno == INSTALL_CHANGE_DESTINATION_NOT_PRESENT);
p = strjoina(root, "/usr/lib/systemd/system/f.service");
assert_se(streq(changes[1].source, p));
assert_se(streq(changes[1].path, "x.target"));
/* First, let's link the unit into the search path */
assert_se(unit_file_link(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("/opt/linked.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/opt/linked.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service");
assert_se(streq(changes[0].path, p));
/* Let's unlink it from the search path again */
assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service");
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/linked.service");
q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service");
for (i = 0 ; i < n_changes; i++) {
- assert_se(changes[i].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[i].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[i].source, "/opt/linked.service"));
if (p && streq(changes[i].path, p))
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/linked.service");
q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service");
for (i = 0; i < n_changes; i++) {
- assert_se(changes[i].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[i].change_or_errno == INSTALL_CHANGE_UNLINK);
if (p && streq(changes[i].path, p))
p = NULL;
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/linked2.service");
q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked2.service");
for (i = 0 ; i < n_changes; i++) {
- assert_se(changes[i].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[i].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[i].source, "/opt/linked2.service"));
if (p && streq(changes[i].path, p))
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("linked3.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(startswith(changes[0].path, root));
assert_se(endswith(changes[0].path, "linked3.service"));
assert_se(streq(changes[0].source, "/opt/linked3.service"));
assert_se(unit_file_set_default(LOOKUP_SCOPE_SYSTEM, 0, root, "idontexist.target", &changes, &n_changes) == -ENOENT);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == -ENOENT);
+ assert_se(changes[0].change_or_errno == -ENOENT);
assert_se(streq_ptr(changes[0].path, "idontexist.target"));
install_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;
assert_se(unit_file_set_default(LOOKUP_SCOPE_SYSTEM, 0, root, "test-default.target", &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/test-default-real.target"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR "/" SPECIAL_DEFAULT_TARGET);
assert_se(streq(changes[0].path, p));
assert_se(unit_file_add_dependency(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("add-dependency-test-service.service"), "add-dependency-test-target.target", UNIT_WANTS, &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/real-add-dependency-test-service.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/real-add-dependency-test-target.target.wants/real-add-dependency-test-service.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@def.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;
log_info("== %s with template@foo.service enabled ==", __func__);
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@foo.service"), &changes, &n_changes) >= 0);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@foo.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@foo.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;
log_info("== %s with template-symlink@quux.service enabled ==", __func__);
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template-symlink@quux.service"), &changes, &n_changes) >= 0);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@quux.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("indirectc.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/indirectb.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/indirectb.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("indirectc.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/indirectb.service");
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);
assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-yes.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/preset-yes.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/preset-yes.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-yes.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/preset-yes.service");
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);
for (i = 0; i < n_changes; i++) {
- if (changes[i].type_or_errno == UNIT_FILE_SYMLINK) {
+ if (changes[i].change_or_errno == INSTALL_CHANGE_SYMLINK) {
assert_se(streq(changes[i].source, "/usr/lib/systemd/system/preset-yes.service"));
assert_se(streq(changes[i].path, p));
} else
- assert_se(changes[i].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[i].change_or_errno == INSTALL_CHANGE_UNLINK);
}
install_changes_free(changes, n_changes);
/* Revert the override file */
assert_se(unit_file_revert(LOOKUP_SCOPE_SYSTEM, root, STRV_MAKE("xx.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;
/* Revert the dropin file */
assert_se(unit_file_revert(LOOKUP_SCOPE_SYSTEM, root, STRV_MAKE("xx.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 2);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/xx.service.d");
- assert_se(changes[1].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[1].change_or_errno == INSTALL_CHANGE_UNLINK);
assert_se(streq(changes[1].path, p));
install_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;
assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("prefix-1.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/prefix-1.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/prefix-1.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-1.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 2);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
+ assert_se(changes[1].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-1.service"));
assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-1.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-1.service");
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2.service"), &changes, &n_changes) == 1);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-2.service", &state) >= 0 && state == UNIT_FILE_ENABLED);
assert_se(n_changes == 2);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
+ assert_se(changes[1].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, SYSTEM_CONFIG_UNIT_DIR"/with-dropin-2.service"));
assert_se(streq(changes[1].source, SYSTEM_CONFIG_UNIT_DIR"/with-dropin-2.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2.service");
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-3.service"), &changes, &n_changes) == 1);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_ENABLED);
assert_se(n_changes == 2);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
+ assert_se(changes[1].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-3.service"));
assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-3.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-3.service");
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-4a.service"), &changes, &n_changes) == 2);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "with-dropin-3.service", &state) >= 0 && state == UNIT_FILE_ENABLED);
assert_se(n_changes == 2);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
+ assert_se(changes[1].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-4a.service"));
assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-4b.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-4a.service");
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-1@instance-1.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 2);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
+ assert_se(changes[1].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-1@.service"));
assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-1@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-1@instance-1.service");
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2@instance-1.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 2);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
+ assert_se(changes[1].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-2@.service"));
assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-2@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2@instance-1.service");
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2@instance-2.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-2@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2@instance-2.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-3@.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-3@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-3@instance-2.service");
assert_se(streq(changes[0].path, p));
assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("foo@bar0.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "foo@bar0.service", &state) >= 0 && state == UNIT_FILE_ENABLED);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_SYMLINK);
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/foo@bar0.service");
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);
assert_se(unit_file_disable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("foo@bar0.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
- assert_se(changes[0].type_or_errno == UNIT_FILE_UNLINK);
+ assert_se(changes[0].change_or_errno == INSTALL_CHANGE_UNLINK);
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/foo@bar0.service");
assert_se(streq(changes[0].path, p));
install_changes_free(changes, n_changes);