mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-05 05:45:46 +00:00
virsh: introduce set-lifecycle-action command
Reviewed-by: John Ferlan <jferlan@redhat.com> Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
1a2f34e363
commit
dd97c1480e
@ -5516,6 +5516,102 @@ cmdScreenshot(vshControl *ctl, const vshCmd *cmd)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "set-lifecycle-action" command
|
||||||
|
*/
|
||||||
|
static const vshCmdInfo info_setLifecycleAction[] = {
|
||||||
|
{.name = "help",
|
||||||
|
.data = N_("change lifecycle actions")
|
||||||
|
},
|
||||||
|
{.name = "desc",
|
||||||
|
.data = N_("Change lifecycle actions for the guest domain.")
|
||||||
|
},
|
||||||
|
{.name = NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const vshCmdOptDef opts_setLifecycleAction[] = {
|
||||||
|
VIRSH_COMMON_OPT_DOMAIN_FULL,
|
||||||
|
{.name = "type",
|
||||||
|
.type = VSH_OT_STRING,
|
||||||
|
.flags = VSH_OFLAG_REQ,
|
||||||
|
.help = N_("lifecycle type to modify")
|
||||||
|
},
|
||||||
|
{.name = "action",
|
||||||
|
.type = VSH_OT_STRING,
|
||||||
|
.flags = VSH_OFLAG_REQ,
|
||||||
|
.help = N_("lifecycle action to set")
|
||||||
|
},
|
||||||
|
VIRSH_COMMON_OPT_DOMAIN_CONFIG,
|
||||||
|
VIRSH_COMMON_OPT_DOMAIN_LIVE,
|
||||||
|
VIRSH_COMMON_OPT_DOMAIN_CURRENT,
|
||||||
|
{.name = NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
VIR_ENUM_IMPL(virDomainLifecycle, VIR_DOMAIN_LIFECYCLE_LAST,
|
||||||
|
"poweroff",
|
||||||
|
"reboot",
|
||||||
|
"crash")
|
||||||
|
|
||||||
|
VIR_ENUM_IMPL(virDomainLifecycleAction, VIR_DOMAIN_LIFECYCLE_ACTION_LAST,
|
||||||
|
"destroy",
|
||||||
|
"restart",
|
||||||
|
"rename-restart",
|
||||||
|
"preserve",
|
||||||
|
"coredump-destroy",
|
||||||
|
"coredump-restart")
|
||||||
|
|
||||||
|
static bool
|
||||||
|
cmdSetLifecycleAction(vshControl *ctl, const vshCmd *cmd)
|
||||||
|
{
|
||||||
|
virDomainPtr dom;
|
||||||
|
bool ret = true;
|
||||||
|
bool config = vshCommandOptBool(cmd, "config");
|
||||||
|
bool live = vshCommandOptBool(cmd, "live");
|
||||||
|
bool current = vshCommandOptBool(cmd, "current");
|
||||||
|
const char *typeStr;
|
||||||
|
const char *actionStr;
|
||||||
|
unsigned int type;
|
||||||
|
unsigned int action;
|
||||||
|
unsigned int flags = 0;
|
||||||
|
int tmpVal;
|
||||||
|
|
||||||
|
VSH_EXCLUSIVE_OPTIONS_VAR(current, live);
|
||||||
|
VSH_EXCLUSIVE_OPTIONS_VAR(current, config);
|
||||||
|
|
||||||
|
if (config)
|
||||||
|
flags |= VIR_DOMAIN_AFFECT_CONFIG;
|
||||||
|
if (live)
|
||||||
|
flags |= VIR_DOMAIN_AFFECT_LIVE;
|
||||||
|
|
||||||
|
if (vshCommandOptStringReq(ctl, cmd, "type", &typeStr) < 0 ||
|
||||||
|
vshCommandOptStringReq(ctl, cmd, "action", &actionStr) < 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((tmpVal = virDomainLifecycleTypeFromString(typeStr)) < 0) {
|
||||||
|
vshError(ctl, _("Invalid lifecycle type '%s'."), typeStr);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
type = tmpVal;
|
||||||
|
|
||||||
|
if ((tmpVal = virDomainLifecycleActionTypeFromString(actionStr)) < 0) {
|
||||||
|
vshError(ctl, _("Invalid lifecycle action '%s'."), actionStr);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
action = tmpVal;
|
||||||
|
|
||||||
|
if (!(dom = virshCommandOptDomain(ctl, cmd, NULL)))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (virDomainSetLifecycleAction(dom, type, action, flags) < 0) {
|
||||||
|
vshError(ctl, "%s", _("Unable to change lifecycle action."));
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
virshDomainFree(dom);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "set-user-password" command
|
* "set-user-password" command
|
||||||
*/
|
*/
|
||||||
@ -14249,6 +14345,12 @@ const vshCmdDef domManagementCmds[] = {
|
|||||||
.info = info_screenshot,
|
.info = info_screenshot,
|
||||||
.flags = 0
|
.flags = 0
|
||||||
},
|
},
|
||||||
|
{.name = "set-lifecycle-action",
|
||||||
|
.handler = cmdSetLifecycleAction,
|
||||||
|
.opts = opts_setLifecycleAction,
|
||||||
|
.info = info_setLifecycleAction,
|
||||||
|
.flags = 0
|
||||||
|
},
|
||||||
{.name = "set-user-password",
|
{.name = "set-user-password",
|
||||||
.handler = cmdSetUserPassword,
|
.handler = cmdSetUserPassword,
|
||||||
.opts = opts_set_user_password,
|
.opts = opts_set_user_password,
|
||||||
|
@ -2331,6 +2331,13 @@ the value from the host, use the B<virsh memtune> command. In order to view
|
|||||||
the current memory in use and the maximum value allowed to set memory, use
|
the current memory in use and the maximum value allowed to set memory, use
|
||||||
the B<virsh dominfo> command.
|
the B<virsh dominfo> command.
|
||||||
|
|
||||||
|
=item B<set-lifecycle-action> I<domain> I<type> I<action>
|
||||||
|
[[I<--config>] [I<--live>] | [I<--current>]]
|
||||||
|
|
||||||
|
Set the lifecycle I<action> for specified lifecycle I<type>. For the list of
|
||||||
|
lifecycle types and actions and possible combinations see the documentation at
|
||||||
|
L<https://libvirt.org/formatdomain.html#elementsEvents>.
|
||||||
|
|
||||||
=item B<set-user-password> I<domain> I<user> I<password> [I<--encrypted>]
|
=item B<set-user-password> I<domain> I<user> I<password> [I<--encrypted>]
|
||||||
|
|
||||||
Set the password for the I<user> account in the guest domain.
|
Set the password for the I<user> account in the guest domain.
|
||||||
|
Loading…
Reference in New Issue
Block a user