3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStreamReader;
6 import java.util.ArrayList;
8 public class VirtualMachine
12 private String initial_archive_name ;
13 private String directory ;
14 private String vmx_name ;
15 private String vmx_name_normal ;
16 private String vmx_name_crash ;
17 private String save_current ;
18 private String save_last ;
20 private int no_save_last ;
21 private Status status ;
22 private int computation_id ;
23 private String working_directory ;
24 private ArrayList<String> save_neighbors ;
25 private String clientInVM ;
26 private String vm_user ;
27 private String vm_user_passwd ;
29 public VirtualMachine()
33 initial_archive_name = "VmTest.tgz" ;
34 directory = "VmTest" ;
35 vmx_name = "VmTest.vmx" ;
36 vmx_name_normal = "VmTest.vmx.normal" ;
37 vmx_name_crash = "VmTest.vmx.crash" ;
38 save_current = "VmTest.tgz" ;
39 save_last = "VmTest.tgz" ;
40 working_directory = "/localhome/vmware" ;
43 status = new Status() ;
44 status.setStatus( "stopped" ) ;
46 save_neighbors = new ArrayList<String>() ;
47 save_neighbors.add( "127.0.0.1" ) ;
48 clientInVM = "/home/mpi/InGuest" ;
50 vm_user_passwd = "mpi" ;
54 public ArrayList<String> getSaveNeighbors() { return save_neighbors ; }
56 @SuppressWarnings("unchecked")
57 public void setSaveNeighbors( ArrayList<String> _sn )
61 save_neighbors = (ArrayList<String>) _sn.clone() ;
65 public void addSaveNeighbor( String _sn )
67 if( _sn != null && _sn.length() > 0 )
69 save_neighbors.add( _sn ) ;
74 public String getVmUser()
80 public void setVmUser( String _user )
86 public String getVmUserPasswd()
88 return vm_user_passwd ;
92 public void setVmUserPasswd( String _user_passwd )
94 vm_user_passwd = _user_passwd ;
98 public String getClientInVM()
104 public void setClientInVM( String _civ )
110 public String getStatus()
112 return status.getStatus() ;
116 public void setStatus( String _status )
118 status.setStatus( _status ) ;
122 public String getWorkingDirectory()
124 return working_directory ;
128 public void setWorkingDirectory( String _wd )
130 working_directory = _wd ;
133 public String getName() {
138 public void setName(String name) {
142 public String getIp() {
146 public void setIp(String ip) {
150 public String getInitial_archive_name() {
151 return initial_archive_name;
154 public void setInitial_archive_name(String initial_archive_name) {
155 this.initial_archive_name = initial_archive_name;
158 public String getDirectory() {
162 public void setDirectory(String directory) {
163 this.directory = directory;
166 public String getVmx_name() {
170 public void setVmx_name(String vmx_name) {
171 this.vmx_name = vmx_name;
174 public String getVmx_name_normal() {
175 return vmx_name_normal;
178 public void setVmx_name_normal(String vmx_name_normal) {
179 this.vmx_name_normal = vmx_name_normal;
182 public String getVmx_name_crash() {
183 return vmx_name_crash;
186 public void setVmx_name_crash(String vmx_name_crash) {
187 this.vmx_name_crash = vmx_name_crash;
190 public String getSave_current() {
194 public void setSave_current(String save_current) {
195 this.save_current = save_current;
198 public String getSave_last() {
202 public void setSave_last(String save_last) {
203 this.save_last = save_last;
206 public int getNo_save()
211 public void setNo_save( int no_save )
213 this.no_save = no_save ;
216 public int getNo_save_last()
218 return no_save_last ;
221 public void setNo_save_last( int no_save_last )
223 this.no_save_last = no_save_last ;
226 public int getComputationId() { return computation_id ; }
229 public void setComputationId( int _id )
231 computation_id = _id ;
235 public int deployLastSave()
237 System.out.print( "Deploying the last save ..." ) ;
239 String[] command = new String[] { "/bin/tar", "-xzvf",
240 working_directory + "/" + save_last,
241 "-C", working_directory } ;
244 pr = Runtime.getRuntime().exec( command ) ;
245 // synchronized( pr ){
247 } catch( IOException e ) {
248 System.err.println( "Error while deploying the last secure save!" ) ;
249 e.printStackTrace() ;
250 } catch( InterruptedException e ) {
251 e.printStackTrace() ;
254 if( pr.exitValue() == 0 )
256 System.out.println( "Successful extraction of the save archive." ) ;
259 System.err.println( "Error: " + pr.exitValue() ) ;
260 BufferedReader b = new BufferedReader( new InputStreamReader( pr.getErrorStream() ) ) ;
264 while( (l = b.readLine()) != null )
266 System.err.println( l ) ;
268 } catch( IOException e ) {
269 e.printStackTrace() ;
279 /** La programmation est un art, respectons ceux qui la pratiquent !! **/