WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-tools

[Xen-tools] Re: [Xen-devel] [RFC] xm interface proposed changes

To: Sean Dague <sean@xxxxxxxxx>
Subject: [Xen-tools] Re: [Xen-devel] [RFC] xm interface proposed changes
From: Anthony Liguori <aliguori@xxxxxxxxxx>
Date: Fri, 29 Jul 2005 09:43:45 -0500
Cc: xen-tools@xxxxxxxxxxxxxxxxxxx
Delivery-date: Fri, 29 Jul 2005 14:42:15 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20050729130420.GC8654@xxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-tools-request@lists.xensource.com?subject=help>
List-id: Xen control tools developers <xen-tools.lists.xensource.com>
List-post: <mailto:xen-tools@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-tools>, <mailto:xen-tools-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-tools>, <mailto:xen-tools-request@lists.xensource.com?subject=unsubscribe>
References: <20050729130420.GC8654@xxxxxxxxxxxxxxxxxxx>
Sender: xen-tools-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050317)
Sean Dague wrote:

=========================================================================
---------XM HELP TODAY---------------------------------------------------
call                Call xend api functions
help                Print help.

Commands related to consoles:

console <DomainId>  Open a console to a domain.
consoles            Get information about domain consoles.

Commands on domains:

balloon <DomainId> <Mem>  Set the domain's memory footprint using the balloon 
driver.
create <ConfigFile>       Create a domain.
destroy <DomainId>        Terminate a domain immediately.
domid   <DomainName>      Convert a domain name to a domain id.
domname <DomainId>        Convert a domain id to a domain name.
list                      List information about domains.
maxmem <DomainId> <Mem>   Set domain memory limit.
migrate [options] <DomId> <Host> Migrate a domain to another machine.
pause  <DomainId>         Pause execution of a domain.
pincpu <DomId> <VCpu> <CPUS> Set which cpus a VCPU can use. restore <File> Create a domain from a saved state.
save    <DomId> <File>    Save domain state (and config) to file.
shutdown [options] <DomId>  Shutdown a domain.
sysrq   <DomId> <letter>    Send a sysrq to a domain.
unpause <DomId>           Unpause a paused domain.
vcpu-hotplug <DomId> <VCPU> <0|1> Enable or disable a VCPU in a domain.

Commands related to the xen host (node):

dmesg   [--clear]         Read or clear Xen's message buffer.
info                      Get information about the xen host.
log                       Print the xend log.

Comands controlling scheduling:

bvt DOM MCUADV WARPBACK WARPVALUE WARPL WARPU   Set BVT scheduler parameters.
bvt_ctxallow CTX_ALLOW                          Set the BVT scheduler context 
switch allowance.
sedf DOM PERIOD SLICE LATENCY EXTRATIME WEIGHT  Set simple EDF parameters.

Commands related to virtual block devices:

vbd-create <DomId> <BackDev> <FrontDev> <Mode> [BackDomId]    Create a new 
virtual block device for a domain
vbd-destroy <DomId> <DevId>  Destroy a domain's virtual block device
vbd-list    <DomId>          List virtual block devices for a domain.
vbd-refresh <DomId> <DevId>  Refresh a virtual block device for a domain

Commands related to virtual network interfaces:

vif-limit   <DomId> <Vif> <Credit> <Period> Limit the transmission rate of a 
virtual network interface.
vif-list    <DomId> List virtual network interfaces for a domain.

Try '/usr/sbin/xm help CMD' for help on CMD
-------------------------------------------------------------------



The following is a proposed set of changes based on the "obj-verb" paradigm,
plus trying to make commands make more sense to a user that may not know
things about Xen internals.  Commands that have renames are marked with (*),
commands that are "new" to create what seems like a complete interface are
marked with (+).

===================================================================
---------XM Proposed-----------------------------------------------
help                Print help.

Commands related to consoles:

console <DomId>  Open a console to a domain.
* console-list        Get information about domain consoles.
I actually have removed xm consoles in my consoled patch. xm consoles used to print out the port that xend was listening on. It still prints out a port however the port is no pretty meaningless (it's used as part of a sprintf for a domain socket).

Is there any reason to keep this command?

Commands on domains:

domid   <DomName>         Convert a domain name to a domain id.
domname <DomId>           Convert a domain id to a domain name.

create  <ConfigFile>      Create a domain.
destroy <DomId>           Terminate a domain immediately.
restore <File>            Create a domain from a saved state.
save    <DomId> <File>    Save domain state (and config) to file.
* shutdown [-w|-a] <DomId>  Shutdown a domain.
+ reboot   [-w|-a] <DomId>  Reboot a domain.

list                      List information about domains.

* mem-max <DomId> <Mem>             Set domain maximum memory limit.
Wouldn't using full nouns and verbs be better especially since we support abbreviations? It would be nice use verb phrases too but my first pass at that ends up with very long commands...

* mem-set <DomId> <Mem>             Set the domain's memory dynamically.
* cpus-set <DomId> <VCpu> <CPUS> Set which cpus a VCPU can use. + cpus-list <DomId> <VCpu> Get the list of cpus for a VCPU
* vcpu-enable <DomId> <VCPU>        Disable VCPU in a domain.
+ vcpu-disable <DomId> <VCPU>       Enable VCPU in a domain
+ vcpu-list <DomId>                 Get the list of VCPUs for a domain

migrate [options] <DomId> <Host> Migrate a domain to another machine.

sysrq   <DomId> <letter>    Send a sysrq to a domain.
pause   <DomId>           Pause execution of a domain.
unpause <DomId>           Unpause a paused domain.

Commands related to the xen host (node):

dmesg   [--clear]         Read or clear Xen's message buffer.
info                      Get information about the xen host.
log                       Print the xend log.

Comands controlling scheduling:

bvt DOM MCUADV WARPBACK WARPVALUE WARPL WARPU   Set BVT scheduler parameters.
bvt_ctxallow CTX_ALLOW                          Set the BVT scheduler context 
switch allowance.
sedf DOM PERIOD SLICE LATENCY EXTRATIME WEIGHT  Set simple EDF parameters.

Commands related to virtual block devices:

* block-create <DomId> <BackDev> <FrontDev> <Mode> [BackDomId]    Create a new 
virtual block device for a domain
* block-destroy <DomId> <DevId>  Destroy a domain's virtual block device
* block-list    <DomId>          List virtual block devices for a domain.
* block-refresh <DomId> <DevId>  Refresh a virtual block device for a domain

Commands related to virtual network interfaces:

* network-limit   <DomId> <Vif> <Credit> <Period> Limit the transmission rate 
of a virtual network interface.
* network-list    <DomId> List virtual network interfaces for a domain.

Try '/usr/sbin/xm help CMD' for help on CMD
-----------------------------------------------------------------



Additionally, if we are to move to a model where command aliasing can easily
be done (for backwards compatibility), I actually think we need to majorly
restructure main.py from an object based model to a declaritive model, where
main() would be a dispatcher to possibly many functions that would be the
equiv of the main methods in each object today.  I also believe that this is
the only way to get 'xm help' to run as non-root, which I consider a goal. I'd like at least tenative approval for this idea before I code it up, but I
am *willing to volunteer* for this conversion of main.py from object based
-> declaritive structure.

Comments welcome, flame away.
Thanks Sean

Regards,

Anthony Liguori

        -Sean

------------------------------------------------------------------------

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


_______________________________________________
Xen-tools mailing list
Xen-tools@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-tools