mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Unify checking for machine1 systemd service
Both virSystemdTerminateMachine and virSystemdCreateMachine propagate the error to tell between a non-systemd system and a hard error. In virSystemdGetMachineNameByPID both are treated the same, but an error is ignored by the callers. Split out the checks into a separate function.
This commit is contained in:
parent
39df53b901
commit
18c145a0d3
@ -182,6 +182,20 @@ virSystemdMakeMachineName(const char *drivername,
|
|||||||
return machinename;
|
return machinename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -2 = machine1 is not supported on this machine
|
||||||
|
* -1 = error
|
||||||
|
* 0 = machine1 is available
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
virSystemdHasMachined(void)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
if ((ret = virDBusIsServiceEnabled("org.freedesktop.machine1")) < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
return virDBusIsServiceRegistered("org.freedesktop.systemd1");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
char *
|
char *
|
||||||
virSystemdGetMachineNameByPID(pid_t pid)
|
virSystemdGetMachineNameByPID(pid_t pid)
|
||||||
@ -190,10 +204,7 @@ virSystemdGetMachineNameByPID(pid_t pid)
|
|||||||
DBusMessage *reply = NULL;
|
DBusMessage *reply = NULL;
|
||||||
char *name = NULL, *object = NULL;
|
char *name = NULL, *object = NULL;
|
||||||
|
|
||||||
if (virDBusIsServiceEnabled("org.freedesktop.machine1") < 0)
|
if (virSystemdHasMachined() < 0)
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (virDBusIsServiceRegistered("org.freedesktop.systemd1") < 0)
|
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (!(conn = virDBusGetSystemBus()))
|
if (!(conn = virDBusGetSystemBus()))
|
||||||
@ -268,11 +279,7 @@ int virSystemdCreateMachine(const char *name,
|
|||||||
char *slicename = NULL;
|
char *slicename = NULL;
|
||||||
static int hasCreateWithNetwork = 1;
|
static int hasCreateWithNetwork = 1;
|
||||||
|
|
||||||
ret = virDBusIsServiceEnabled("org.freedesktop.machine1");
|
if ((ret = virSystemdHasMachined()) < 0)
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
if ((ret = virDBusIsServiceRegistered("org.freedesktop.systemd1")) < 0)
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (!(conn = virDBusGetSystemBus()))
|
if (!(conn = virDBusGetSystemBus()))
|
||||||
@ -434,11 +441,7 @@ int virSystemdTerminateMachine(const char *name)
|
|||||||
|
|
||||||
memset(&error, 0, sizeof(error));
|
memset(&error, 0, sizeof(error));
|
||||||
|
|
||||||
ret = virDBusIsServiceEnabled("org.freedesktop.machine1");
|
if ((ret = virSystemdHasMachined()) < 0)
|
||||||
if (ret < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if ((ret = virDBusIsServiceRegistered("org.freedesktop.systemd1")) < 0)
|
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user