chiark / gitweb /
unit: get rid of gnoreDependencyFailure= instead treat ConflictedBy= as weaker counte...
authorLennart Poettering <lennart@poettering.net>
Thu, 28 Oct 2010 23:15:18 +0000 (01:15 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 29 Oct 2010 14:28:27 +0000 (16:28 +0200)
17 files changed:
man/systemd.unit.xml
src/automount.c
src/job.c
src/load-fragment.c
src/manager.c
src/mount.c
src/path.c
src/service.c
src/socket.c
src/swap.c
src/target.c
src/timer.c
src/unit.c
src/unit.h
units/final.target
units/shutdown.target
units/umount.target

index ff1b47f9fb5025dd4e7ec9feb15d4fe4035944eb..4e1d9f30700bf8ae2805087f035003ea654fa1a7 100644 (file)
                                 ones.</para></listitem>
                         </varlistentry>
 
-                        <varlistentry>
-                                <term><varname>IgnoreDependencyFailure=</varname></term>
-
-                                <listitem><para>Takes a boolean
-                                argument. If <option>true</option> and
-                                a requirement dependency of this unit
-                                fails to start up this unit will be
-                                started nonetheless, ignoring that
-                                failure. If <option>false</option>
-                                (the default) and a dependency unit
-                                fails the unit will immediately fail
-                                too and the job is removed.</para></listitem>
-                        </varlistentry>
-
                         <varlistentry>
                                 <term><varname>JobTimeoutSec=</varname></term>
 
index da66630fd6b083bc2e1bc769ffdce0b6ec8b1926..462f3170bac7acbecbb02c94acc7a695f6f76bbb 100644 (file)
@@ -154,7 +154,7 @@ static int automount_add_default_dependencies(Automount *a) {
 
         if (a->meta.manager->running_as == MANAGER_SYSTEM) {
 
-                if ((r = unit_add_two_dependencies_by_name(UNIT(a), UNIT_BEFORE, UNIT_CONFLICTED_BY, SPECIAL_UMOUNT_TARGET, NULL, true)) < 0)
+                if ((r = unit_add_two_dependencies_by_name(UNIT(a), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true)) < 0)
                         return r;
         }
 
index 0b6d321e991b74aafcad7b7a6110624777636e51..8a74f8b614237d2c8d44f58a1ea37f40cd3eeb53 100644 (file)
--- a/src/job.c
+++ b/src/job.c
@@ -500,16 +500,14 @@ int job_finish_and_invalidate(Job *j, bool success) {
                     t == JOB_RELOAD_OR_START) {
 
                         SET_FOREACH(other, u->meta.dependencies[UNIT_REQUIRED_BY], i)
-                                if (!other->meta.ignore_dependency_failure &&
-                                    other->meta.job &&
+                                if (other->meta.job &&
                                     (other->meta.job->type == JOB_START ||
                                      other->meta.job->type == JOB_VERIFY_ACTIVE ||
                                      other->meta.job->type == JOB_RELOAD_OR_START))
                                         job_finish_and_invalidate(other->meta.job, false);
 
                         SET_FOREACH(other, u->meta.dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i)
-                                if (!other->meta.ignore_dependency_failure &&
-                                    other->meta.job &&
+                                if (other->meta.job &&
                                     !other->meta.job->override &&
                                     (other->meta.job->type == JOB_START ||
                                      other->meta.job->type == JOB_VERIFY_ACTIVE ||
@@ -519,16 +517,7 @@ int job_finish_and_invalidate(Job *j, bool success) {
                 } else if (t == JOB_STOP) {
 
                         SET_FOREACH(other, u->meta.dependencies[UNIT_CONFLICTS], i)
-                                if (!other->meta.ignore_dependency_failure &&
-                                    other->meta.job &&
-                                    (other->meta.job->type == JOB_START ||
-                                     other->meta.job->type == JOB_VERIFY_ACTIVE ||
-                                     other->meta.job->type == JOB_RELOAD_OR_START))
-                                        job_finish_and_invalidate(other->meta.job, false);
-
-                        SET_FOREACH(other, u->meta.dependencies[UNIT_CONFLICTED_BY], i)
-                                if (!other->meta.ignore_dependency_failure &&
-                                    other->meta.job &&
+                                if (other->meta.job &&
                                     (other->meta.job->type == JOB_START ||
                                      other->meta.job->type == JOB_VERIFY_ACTIVE ||
                                      other->meta.job->type == JOB_RELOAD_OR_START))
index 828b8d2a98988fcd6f99f7f9d30b2c050c12e7f5..4f94c6409e59e89ff602b9d942294ef697b507da 100644 (file)
@@ -1775,7 +1775,6 @@ static int load_from_path(Unit *u, const char *path) {
                 { "RefuseManualStop",       config_parse_bool,            &u->meta.refuse_manual_stop,                     "Unit"    },
                 { "AllowIsolate",           config_parse_bool,            &u->meta.allow_isolate,                          "Unit"    },
                 { "DefaultDependencies",    config_parse_bool,            &u->meta.default_dependencies,                   "Unit"    },
-                { "IgnoreDependencyFailure",config_parse_bool,            &u->meta.ignore_dependency_failure,              "Unit"    },
                 { "JobTimeoutSec",          config_parse_usec,            &u->meta.job_timeout,                            "Unit"    },
                 { "ConditionPathExists",    config_parse_condition_path,  u,                                               "Unit"    },
                 { "ConditionKernelCommandLine", config_parse_condition_kernel, u,                                          "Unit"    },
index 796d3cbebe55393fbbf5be1119db46f181d4ffa7..9fa4877016a786be24bfc56ff821d42626c37dd1 100644 (file)
@@ -1483,7 +1483,7 @@ static int transaction_add_job_and_dependencies(
                                         goto fail;
 
                         SET_FOREACH(dep, ret->unit->meta.dependencies[UNIT_CONFLICTED_BY], i)
-                                if ((r = transaction_add_job_and_dependencies(m, JOB_STOP, dep, ret, true, override, false, e, NULL)) < 0 && r != -EBADR)
+                                if ((r = transaction_add_job_and_dependencies(m, JOB_STOP, dep, ret, false, override, false, e, NULL)) < 0 && r != -EBADR)
                                         goto fail;
 
                 } else if (type == JOB_STOP || type == JOB_RESTART || type == JOB_TRY_RESTART) {
index d62ce8f40893de885c2ce8b54344cdcfe2e77269..2f966258267ff9f0925522138f76b64d62c8ddbf 100644 (file)
@@ -398,7 +398,7 @@ static int mount_add_default_dependencies(Mount *m) {
                 if ((r = unit_add_dependency_by_name(UNIT(m), UNIT_BEFORE, SPECIAL_QUOTACHECK_SERVICE, NULL, true)) < 0)
                         return r;
 
-                if ((r = unit_add_two_dependencies_by_name(UNIT(m), UNIT_BEFORE, UNIT_CONFLICTED_BY, SPECIAL_UMOUNT_TARGET, NULL, true)) < 0)
+                if ((r = unit_add_two_dependencies_by_name(UNIT(m), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true)) < 0)
                         return r;
         }
 
index b3bc8a5a0d77bb38883ab57e47dca11d9c0a79ca..1d6f98cfbdb3e7dbaa5a254e65ef672278aae5d4 100644 (file)
@@ -110,7 +110,7 @@ static int path_add_default_dependencies(Path *p) {
                 if ((r = unit_add_two_dependencies_by_name(UNIT(p), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, NULL, true)) < 0)
                         return r;
 
-        return unit_add_two_dependencies_by_name(UNIT(p), UNIT_BEFORE, UNIT_CONFLICTED_BY, SPECIAL_SHUTDOWN_TARGET, NULL, true);
+        return unit_add_two_dependencies_by_name(UNIT(p), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
 }
 
 static int path_load(Unit *u) {
index 49bdae7258c9819b8d55940d006a36ebd5b629b0..d3c750e5441b7def316c34105f4bf54f195800bf 100644 (file)
@@ -1021,7 +1021,7 @@ static int service_add_default_dependencies(Service *s) {
         }
 
         /* Second, activate normal shutdown */
-        return unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTED_BY, SPECIAL_SHUTDOWN_TARGET, NULL, true);
+        return unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
 }
 
 static int service_load(Unit *u) {
@@ -3017,7 +3017,7 @@ static int service_enumerate(Manager *m) {
                 if (service->meta.fragment_path)
                         continue;
 
-                if ((r = unit_add_two_dependencies_by_name_inverse(service, UNIT_AFTER, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true)) < 0)
+                if ((r = unit_add_two_dependencies_by_name(service, UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true)) < 0)
                         goto finish;
         }
 
index e8c016cc70b5d897f0de15333462fe9550d2f28d..6d2df9581324da604422aba3da77c3a3004d62ae 100644 (file)
@@ -305,7 +305,7 @@ static int socket_add_default_dependencies(Socket *s) {
                 if ((r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, NULL, true)) < 0)
                         return r;
 
-        return unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTED_BY, SPECIAL_SHUTDOWN_TARGET, NULL, true);
+        return unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
 }
 
 static int socket_load(Unit *u) {
index 078ad9fbbffc470469e42282ae7aabd532467ac6..ddda9e1a3104d5b6143c9b89aabaf2bb72c5fa71 100644 (file)
@@ -211,7 +211,7 @@ static int swap_add_default_dependencies(Swap *s) {
 
         if (s->meta.manager->running_as == MANAGER_SYSTEM) {
 
-                if ((r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTED_BY, SPECIAL_UMOUNT_TARGET, NULL, true)) < 0)
+                if ((r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true)) < 0)
                         return r;
         }
 
index 3522bf12168f9a702a8cb2c6add51ed4d1d1ed21..f322ce72757a28452c613f4be8421f7e944a8855 100644 (file)
@@ -77,7 +77,7 @@ static int target_add_default_dependencies(Target *t) {
                     return r;
 
         /* Make sure targets are unloaded on shutdown */
-        return unit_add_dependency_by_name(UNIT(t), UNIT_CONFLICTED_BY, SPECIAL_SHUTDOWN_TARGET, NULL, true);
+        return unit_add_dependency_by_name(UNIT(t), UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
 }
 
 static int target_add_getty_dependencies(Target *t) {
index 627a360fe6f339f5a2e413b72e1e4101742eed55..065e9c14dbf7905f3df603f8922351305425f1b3 100644 (file)
@@ -82,7 +82,7 @@ static int timer_add_default_dependencies(Timer *t) {
                 if ((r = unit_add_two_dependencies_by_name(UNIT(t), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SYSINIT_TARGET, NULL, true)) < 0)
                         return r;
 
-        return unit_add_two_dependencies_by_name(UNIT(t), UNIT_BEFORE, UNIT_CONFLICTED_BY, SPECIAL_SHUTDOWN_TARGET, NULL, true);
+        return unit_add_two_dependencies_by_name(UNIT(t), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
 }
 
 static int timer_load(Unit *u) {
index fb5583bfb2d589b3fbb451f3be777c08127d6bab..410ff9f6071c8faca98a0219fbb5a991d0eba58e 100644 (file)
@@ -655,13 +655,11 @@ void unit_dump(Unit *u, FILE *f, const char *prefix) {
                         "%s\tStopWhenUnneeded: %s\n"
                         "%s\tRefuseManualStart: %s\n"
                         "%s\tRefuseManualStop: %s\n"
-                        "%s\tDefaultDependencies: %s\n"
-                        "%s\tIgnoreDependencyFailure: %s\n",
+                        "%s\tDefaultDependencies: %s\n",
                         prefix, yes_no(u->meta.stop_when_unneeded),
                         prefix, yes_no(u->meta.refuse_manual_start),
                         prefix, yes_no(u->meta.refuse_manual_stop),
-                        prefix, yes_no(u->meta.default_dependencies),
-                        prefix, yes_no(u->meta.ignore_dependency_failure));
+                        prefix, yes_no(u->meta.default_dependencies));
 
                 LIST_FOREACH(by_unit, b, u->meta.cgroup_bondings)
                         fprintf(f, "%s\tControlGroup: %s:%s\n",
index ff11511898fe77ce940fc65385cbf719634d08fb..796aee5b5c69fcf4e954c6bd43700f0a0667ef99 100644 (file)
@@ -199,9 +199,6 @@ struct Meta {
         /* Create default depedencies */
         bool default_dependencies;
 
-        /* Bring up this unit even if a dependency fails to start */
-        bool ignore_dependency_failure;
-
         /* Refuse manual starting, allow starting only indirectly via dependency. */
         bool refuse_manual_start;
 
index ba642615ad26709c0c1a5863e50de67d12966f30..9cfda197b06b48df244b05255d76b6244e209b00 100644 (file)
@@ -11,5 +11,4 @@
 Description=Final Step
 DefaultDependencies=no
 RefuseManualStart=yes
-IgnoreDependencyFailure=yes
 After=shutdown.target umount.target
index 4db9f1fbe56e195ee458f5d1ff9814160df21a00..99a659e92f33ab68ce86fc6465534ec9d2fc8851 100644 (file)
@@ -11,4 +11,3 @@
 Description=Shutdown
 DefaultDependencies=no
 RefuseManualStart=yes
-IgnoreDependencyFailure=yes
index b5a993f06934d15e7f119b15630c0d1eed5a2eaf..b9ecca6fb189bdbfa58c00bb85c24a149df41ff5 100644 (file)
@@ -11,4 +11,3 @@
 Description=Unmount All Filesystems
 DefaultDependencies=no
 RefuseManualStart=yes
-IgnoreDependencyFailure=yes