aboutsummaryrefslogtreecommitdiffstats
path: root/tools/domctl/src/uk/ac/cam/cl/xeno/domctl/CommandStart.java
blob: b84b66d3063f6dfac524c851a9f1a8cf887579c9 (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
package uk.ac.cam.cl.xeno.domctl;

import java.io.*;
import java.net.*;

public class CommandStart extends Command
{
  public int doCommand(Defaults d, String args[])
  {
    Runtime r = Runtime.getRuntime ();
    int domain_id = getIntParameter(args, 'n', 0);
    int rc = 0;

    if (domain_id == 0) {
      System.err.println ("Expected -n<domain_id>");
      rc = -1;
      return rc;
    }

    try
      {
	Process start_p;
	String start_cmdarray[] = new String[2];
	int start_rc;
	start_cmdarray[0] = d.XIToolsDir + "xi_start";
	start_cmdarray[1] = "" + domain_id;

	if (Settings.TEST) {
	  reportCommand (start_cmdarray);
	} else {
	  start_p = r.exec (start_cmdarray);
	  start_rc = start_p.waitFor ();
	  if (start_rc != 0) {
	    return reportXIError ("Could not start domain", start_cmdarray);
	  }
	}
      }
    catch (Exception e) 
      {
	System.err.println ("Could not start new domain (" + e + ")");
	e.printStackTrace ();
	rc = -1;
      }

    return rc;
  }

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

  public String getUsage()
  {
    return "[-n<domain_id>]";
  }

  public String getHelpText()
  {
    return
      "Start the specified domain.";
  }
}