aboutsummaryrefslogtreecommitdiffstats
path: root/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java
blob: 069d439b16158fe2ca01f9bafad90c99949b6d18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package org.xenoserver.cmdline;

import java.util.LinkedList;

import org.xenoserver.control.CommandDomainNew;
import org.xenoserver.control.CommandFailedException;
import org.xenoserver.control.Defaults;

public class ParseDomainNew extends CommandParser {

  public void parse(Defaults d, LinkedList args) throws ParseFailedException, CommandFailedException {
    String name = getStringParameter(args, 'n', d.domainName);
    int size = getIntParameter(args, 'k', d.domainSizeKB);
    String image = getStringParameter(args, 'i', d.domainImage);
    String initrd = getStringParameter (args, 'r', d.domainInitRD);
    int vifs = getIntParameter(args, 'v', d.domainVIFs);
    String bargs = getStringParameter (args, 'a', d.args) + " ";
    String root_dev = getStringParameter (args, 'd', d.rootDevice);
    String nfs_root_path = getStringParameter (args, 'f', d.nwNFSRoot);
    String nw_ip = getStringParameter (args, '4', d.nwIP);
    String nw_gw = getStringParameter (args, 'g', d.nwGateway);
    String nw_mask = getStringParameter (args, 'm', d.nwMask);
    String nw_nfs_server = getStringParameter (args, 's', d.nwNFSServer);
    String nw_host = getStringParameter (args, 'h', d.nwHost);

    d.describe();

    CommandDomainNew c = new CommandDomainNew(d, name, size, image, initrd, vifs,
                                  bargs, root_dev, nfs_root_path,
                                  nw_ip, nw_gw, nw_mask, nw_nfs_server, nw_host);
    c.execute();
    String[] output = c.output();
    for ( int i = 0; i < output.length; i++ )
      System.out.println( output[i] ); 
  }

  public String getName()
  {
    return "new";
  }

  public String getUsage()
  {
    return "[-n<domain_name>] [-k<size>] [-i<image>] [-v<num_vifs>] [-r<initrd>] [-d<root_device>] [-f<nfs_root>] [-s<nfs_boot_server>] [-4<ipv4_boot_address>] [-g<ipv4_boot_gateway>] [-m<ipv4_boot_netmask>] [-h<hostname>] [-a<args>]";
  }

  public String getHelpText()
  {
    return
      "Create a new domain.  Note that most of the parameters will assume\n" +
      "default values: it should not be necessary to specify them all. See\n" +
      "domctl.xml for the current default settings.\n" +
      "\n" +
      "General command line options:\n" +
      "  -n  Domain name                              domain_name\n" +
      "  -k  Domain size (kb)                         domain_size_kb\n" +
      "  -i  Domain image name                        domain_image\n" +
      "  -v  Number of VIFs                           domain_vifs\n" +
      "  -r  InitRD (if required)                     domain_init_rd\n" +
      "  -d  Root device (e.g /dev/nfs, /dev/hda3)    root_device\n" +
      "  -a  Additional boot parameters\n" +
      "\n" +
      "Networking options:\n" +
      "  -f  NFS root (if /dev/nfs specified)         nw_nfs_root\n" +
      "  -s  NFS server                               nw_nfs_server\n" +
      "  -4  Domain IPv4 address                      nw_ip\n" +
      "  -g  Domain gateway                           nw_gw\n" +
      "  -m  Domain net mask                          nw_mask\n" +
      "  -h  Domain hostname                          nw_host\n" +
      "\n" +
      "Parameters to -d, -f, -4, -g, -h can be specified as patterns into\n" +
      "which the allocated domain ID will be incorporated.  e.g.  for\n" +
      "domain 1 patterns would expand as follows:\n" +
      "\n" +
      "  /dev/hda+       /dev/hda1\n" +
      "  /dev/hda7+      /dev/hda8\n" +
      "  128.232.8.50+   128.232.8.51\n" +
      "\n" +
      "Additionally, patterns for -4 -g -m can include an = which is\n" + 
      "expanded to the corresponding setting from the calling domain.\n";
  }
}