chiark / gitweb /
machined: sync to /run after job completed
[elogind.git] / src / machine / machined-dbus.c
index a2e00d7102bbd1bc7422adc03285de44ef837264..a81f37c5ca249cacf147942c29b3eab712ad2217 100644 (file)
@@ -42,7 +42,7 @@
 #include "virt.h"
 
 #define BUS_MANAGER_INTERFACE                                           \
-        " <interface name=\"org.freedesktop.machine1.Manager\">\n"        \
+        " <interface name=\"org.freedesktop.machine1.Manager\">\n"      \
         "  <method name=\"GetMachine\">\n"                              \
         "   <arg name=\"name\" type=\"s\" direction=\"in\"/>\n"         \
         "   <arg name=\"machine\" type=\"o\" direction=\"out\"/>\n"     \
@@ -116,7 +116,7 @@ static bool valid_machine_name(const char *p) {
 
 static int bus_manager_create_machine(Manager *manager, DBusMessage *message) {
 
-        const char *name, *service, *class, *slice, *root_directory;
+        const char *name, *service, *class, *root_directory;
         _cleanup_free_ char *p = NULL;
         DBusMessageIter iter, sub;
         MachineClass c;
@@ -180,12 +180,6 @@ static int bus_manager_create_machine(Manager *manager, DBusMessage *message) {
             dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING)
                 return -EINVAL;
 
-        dbus_message_iter_get_basic(&iter, &slice);
-        if (!(isempty(slice) || (unit_name_is_valid(slice, false) && endswith(slice, ".slice"))) ||
-            !dbus_message_iter_next(&iter) ||
-            dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING)
-                return -EINVAL;
-
         dbus_message_iter_get_basic(&iter, &root_directory);
 
         if (!(isempty(root_directory) || path_is_absolute(root_directory)))
@@ -543,6 +537,7 @@ DBusHandlerResult bus_message_filter(
                         if (streq_ptr(path, mm->scope_job)) {
                                 free(mm->scope_job);
                                 mm->scope_job = NULL;
+                                machine_save(mm);
 
                                 if (mm->started) {
                                         if (streq(result, "done"))