Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Correction and modification of save mechanisms.
[hpcvm.git] / src / and / hpcvm / HpcVm.java
1 package and.hpcvm ;
2
3 public class HpcVm
4 {
5         private static int client_port ;
6         private static String server_ip ;
7         private static int server_port ;
8         private static int dialog_port ;
9         private static int save_time ;
10 //      private static int mode ; // 0: server, 1: client
11         private static Client client ;
12         private static Server server ;
13         
14         
15         public static void main( String argv[] )
16         {
17         
18                 /** Initialisation of defaults variables **/
19                 client_port = 2667 ;
20                 server_ip = "127.0.0.1" ;
21                 server_port = 2666 ;
22                 dialog_port = 7788 ;
23                 save_time = -1 ;
24 //              mode = -1 ;
25                 
26                 
27 //              /** Signals handlers **/
28 //              SignalHandler signalHandler = new SignalHandler() {
29 //                 public void handle( Signal signal ) 
30 //                     {
31 //                     System.out.println( "Exiting because of signal: " + signal ) ;
32 //                                 System.out.println( "Killing all applications ..." ) ;
33 //                              
34 //                                 switch( mode )
35 //                                 {
36 //                                 case 0: if( server != null )
37 //                                                 {
38 //                                                        server.stop() ;
39 //                                                 }
40 //                                                 break ;
41 //                                 case 1: if( client != null )
42 //                                                 {
43 //                                                        client.stop() ;
44 //                                                 }
45 //                                                 break ;
46 //                                 }
47 //                     
48 //                         System.exit( 100 ) ;
49 //                 }
50 //             } ) ;
51 //             Signal.handle( new Signal( "TERM" ), signalHandler ) ;
52 //             Signal.handle( new Signal( "INT" ), signalHandler ) ;
53                 
54                 
55                 /** Launching ... **/
56                 
57                 /** Server **/
58                 if( argv[0].equalsIgnoreCase( "server" ) ) 
59                 {
60                         if( argv.length == 2 )
61                         {
62                                 server_port = Integer.parseInt( argv[1] ) ;
63                         }
64                         
65                         if( argv.length == 3 )
66                         {
67                                 server_port = Integer.parseInt( argv[1] ) ;
68                                 save_time = Integer.parseInt( argv[2] ) ;
69                         }
70                         
71                         try
72                         {
73 //                              mode = 0 ;
74                                 server = new Server() ;
75                                 server.init( server_port ) ;
76                                 if( save_time != -1 )
77                                 {
78                                         server.setSaveTime( save_time ) ;
79                                 }
80                         } catch( Exception e ) {
81                                 System.err.println( "Error while launching Server: " + e ) ;
82                         }
83                         
84                         
85                 /** Client **/
86                 } else if( argv[0].equalsIgnoreCase( "client" ) ) 
87                 {       
88                         /** Command line verification **/
89                         if( argv.length < 2 ) 
90                         {
91                                 usage() ;
92                                 System.exit( 1 ) ;
93                         }
94                         
95                         
96                         switch( argv.length )
97                         {
98                         case 2: server_ip = argv[1] ; break ;
99                         
100                         case 3: server_ip = argv[1] ; 
101                                         server_port = Integer.parseInt( argv[2] ) ; break ;     
102                                         
103                         case 4: server_ip = argv[1] ; 
104                                         server_port = Integer.parseInt( argv[2] ) ;
105                                         client_port = Integer.parseInt( argv[3] ) ; break ;     
106                                         
107                         case 5: server_ip = argv[1] ; 
108                                         server_port = Integer.parseInt( argv[2] ) ;
109                                         client_port = Integer.parseInt( argv[3] ) ;
110                                         dialog_port = Integer.parseInt( argv[4] ) ; break ;
111                         }
112                         
113                         try
114                         {
115 //                              mode = 1 ;
116                                 client = new Client() ;
117                                 client.init( server_ip, server_port, client_port, dialog_port ) ;
118                         } catch( Exception e ) {
119                                 System.err.println( "Error while launching Client: " + e ) ;
120                         }
121                 } else if( argv[0].equalsIgnoreCase( "user" ) ) {
122                         if( argv.length < 4 )
123                         {
124                                 usage() ;
125                                 System.exit( 1 ) ;
126                         }
127                         
128                         User user = new User( argv[1], Integer.parseInt( argv[2] ) ) ;
129                         
130                         if( argv[3].equalsIgnoreCase( "stop" ) )
131                         {
132                                 user.stopMachines() ;
133                                 System.exit( 0 ) ;
134                         }
135                         
136                         if( argv[3].equalsIgnoreCase( "stopall" ) )
137                         {
138                                 user.stopAll() ;
139                                 System.exit( 0 ) ;
140                         }
141                         
142                         if( argv[3].equalsIgnoreCase( "start" ) )
143                         {
144                                 if( argv.length != 5 )
145                                 {
146                                         usage() ;
147                                         System.exit( 1 ) ;
148                                 }
149                                 
150                                 user.reserveMachines( Integer.parseInt( argv[4] ) ) ;
151                                 
152                                 System.exit( 0 ) ;
153                         }
154                         
155                         if( argv[3].equalsIgnoreCase( "deploy" ) )
156                         {
157                                 if( argv.length != 7 )
158                                 {
159                                         usage() ;
160                                         System.exit( 1 ) ;
161                                 }
162                                 
163                                 user.deploy( argv[4], argv[5], argv [6] ) ;
164                                 
165                                 System.exit( 0 ) ;
166                         }
167                         
168                 } else {
169                         usage() ;
170                         System.exit( 1 ) ;
171                 }
172         }
173
174
175         private static void usage()
176         {
177                 System.err.println( "Usage: " ) ;
178                 System.err.println( "HpcVm client server_ip server_port client_port " ) ;
179                 System.err.println( "HpcVm server server_port" ) ;
180                 System.err.println( "HpcVm user server_ip server_port {start nbVM | stop | stopAll}" ) ;
181                 System.err.println( "HpcVm user server_ip server_port deploy VM_name VM_archive VM_directory" ) ;
182                 System.out.println() ;
183         }
184         
185 }
186
187
188 /** La programmation est un art, respectons ceux qui la pratiquent !! **/
189