Virtual machine Management Terminal User Interface
リビジョン | 01c83b9362e3eef794c28048629b151a6a0c5bd8 (tree) |
---|---|
日時 | 2023-01-15 22:07:52 |
作者 | Koine Yuusuke(koinec) <koinec@user...> |
コミッター | Koine Yuusuke(koinec) |
WorkBackup
@@ -215,114 +215,118 @@ int | ||
215 | 215 | // Parse Line --- |
216 | 216 | while( NULL != (pstr_line = strsep( &pstr_next, "\n\r" ))) { |
217 | 217 | // Parse Item --- |
218 | - if( '\0' != *pstr_line ) { | |
219 | - pstr_item[0] = NULL; | |
220 | - i_item = 0; | |
221 | - while( NULL != (pstr_now = strsep( &pstr_line, " \t" ))) { | |
222 | - if( '\0' != *(pstr_now + 0) ) | |
223 | - { pstr_item[i_item++] = pstr_now; } | |
224 | - } | |
225 | - | |
226 | - // VM Name --- | |
227 | - i_gtype = GuestCtl_ObtainGuest( &i_gnow, p_hvcon->i_id, pstr_item[0] ); | |
228 | - if( 0x00 > i_gtype ) { continue; } | |
218 | + if( '\0' == *pstr_line ) { continue; } | |
229 | 219 | |
230 | - p_gnow = Guest_Use( i_gnow ); | |
231 | - if( NULL != p_gnow) { | |
232 | - // DataStore --- | |
233 | - memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); | |
234 | - KEYVAL_DATA_SET_STRING( t_val, pstr_item[1] ); | |
235 | - i_err = KeyVal_SetData( | |
236 | - &(p_gnow->t_info), GUEST_DATASTORE_NAME_KEY, | |
237 | - &t_val, GUEST_DATASTORE_NAME_PRI ); | |
220 | + pstr_item[0] = NULL; | |
221 | + i_item = 0; | |
222 | + while( NULL != (pstr_now = strsep( &pstr_line, " \t" ))) { | |
223 | + if( '\0' != *(pstr_now + 0) ) | |
224 | + { pstr_item[i_item++] = pstr_now; } | |
225 | + } | |
238 | 226 | |
239 | - // Loader --- | |
227 | + // VM Name --- | |
228 | + i_gtype = GuestCtl_ObtainGuest( &i_gnow, p_hvcon->i_id, pstr_item[0] ); | |
229 | + if( 0x00 > i_gtype ) { continue; } | |
230 | + | |
231 | + p_gnow = Guest_Use( i_gnow ); | |
232 | + if( NULL == p_gnow) { continue; } | |
233 | + | |
234 | + // DataStore --- | |
235 | + memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); | |
236 | + KEYVAL_DATA_SET_STRING( t_val, pstr_item[1] ); | |
237 | + i_err = KeyVal_SetData( | |
238 | + &(p_gnow->t_info), GUEST_DATASTORE_NAME_KEY, | |
239 | + &t_val, GUEST_DATASTORE_NAME_PRI ); | |
240 | + | |
241 | + // Loader --- | |
242 | + memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); | |
243 | + KEYVAL_DATA_SET_STRING( t_val, pstr_item[2] ); | |
244 | + i_err = KeyVal_SetData( | |
245 | + &(p_gnow->t_info), GUEST_LOADER_KEY, &t_val, GUEST_LOADER_PRI ); | |
246 | + | |
247 | + // CPU cores --- | |
248 | + i_temp = (int)strtol( pstr_item[3], NULL, 10 ); | |
249 | + memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); | |
250 | + KEYVAL_DATA_SET_INT( t_val, i_temp ); | |
251 | + i_err = KeyVal_SetData( | |
252 | + &(p_gnow->t_info), GUEST_CPU_VCPUS_KEY, &t_val, GUEST_CPU_VCPUS_PRI ); | |
253 | + | |
254 | + // Memory --- | |
255 | + dw_temp = 0; | |
256 | + i_len = strnlen( pstr_item[4], 8 ); | |
257 | + if( 4 <= i_len ) { | |
258 | + strncpy( str_temp, pstr_item[4], 8 ); | |
259 | + c_unit = str_temp[ i_len - 1 ]; | |
260 | + str_temp[ i_len - 1 ] = '\0'; | |
261 | + | |
262 | + dw_temp = strtol( str_temp, NULL, 10 ); | |
263 | + switch( c_unit ) { | |
264 | + case 'k': | |
265 | + case 'K': | |
266 | + break; | |
267 | + case 'm': | |
268 | + case 'M': | |
269 | + dw_temp *= 1024; | |
270 | + break; | |
271 | + case 'g': | |
272 | + case 'G': | |
273 | + dw_temp *= 1024 * 1024; | |
274 | + break; | |
275 | + case 't': | |
276 | + case 'T': | |
277 | + dw_temp *= 1024 * 1024 * 1024; | |
278 | + break; | |
279 | + } | |
280 | + } | |
281 | + memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); | |
282 | + KEYVAL_DATA_SET_DWORD( t_val, dw_temp ); | |
283 | + i_err = KeyVal_SetData( | |
284 | + &(p_gnow->t_info), GUEST_MEM_SIZE_KEY, &t_val, GUEST_MEM_SIZE_PRI ); | |
285 | + | |
286 | + // VNC --- | |
287 | + strncpy( str_temp, pstr_item[5], sizeof( str_temp ) ); | |
288 | + if( '-' != str_temp[0] ) { | |
289 | + pstr_host = NULL; | |
290 | + i_vnc = 0; | |
291 | + pstr_now = str_temp; | |
292 | + pstr_host = strsep( &pstr_now, ":" ); | |
293 | + | |
294 | + if(( NULL != pstr_host ) && ( NULL != pstr_now )) { | |
240 | 295 | memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); |
241 | - KEYVAL_DATA_SET_STRING( t_val, pstr_item[2] ); | |
296 | + KEYVAL_DATA_SET_STRING( t_val, pstr_host ); | |
242 | 297 | i_err = KeyVal_SetData( |
243 | - &(p_gnow->t_info), GUEST_LOADER_KEY, &t_val, GUEST_LOADER_PRI ); | |
298 | + &(p_gnow->t_info), GUEST_VNC_HOST_KEY, | |
299 | + &t_val, GUEST_VNC_HOST_PRI ); | |
244 | 300 | |
245 | - // CPU cores --- | |
246 | - i_temp = (int)strtol( pstr_item[3], NULL, 10 ); | |
301 | + i_temp = (int)strtol( pstr_now, NULL, 10 ); | |
247 | 302 | memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); |
248 | 303 | KEYVAL_DATA_SET_INT( t_val, i_temp ); |
249 | 304 | i_err = KeyVal_SetData( |
250 | - &(p_gnow->t_info), GUEST_CPU_VCPUS_KEY, &t_val, GUEST_CPU_VCPUS_PRI ); | |
251 | - | |
252 | - // Memory --- | |
253 | - dw_temp = 0; | |
254 | - i_len = strnlen( pstr_item[4], 8 ); | |
255 | - if( 4 <= i_len ) { | |
256 | - strncpy( str_temp, pstr_item[4], 8 ); | |
257 | - c_unit = str_temp[ i_len - 1 ]; | |
258 | - str_temp[ i_len - 1 ] = '\0'; | |
259 | - | |
260 | - dw_temp = strtol( str_temp, NULL, 10 ); | |
261 | - switch( c_unit ) { | |
262 | - case 'k': | |
263 | - case 'K': | |
264 | - break; | |
265 | - case 'm': | |
266 | - case 'M': | |
267 | - dw_temp *= 1024; | |
268 | - break; | |
269 | - case 'g': | |
270 | - case 'G': | |
271 | - dw_temp *= 1024 * 1024; | |
272 | - break; | |
273 | - case 't': | |
274 | - case 'T': | |
275 | - dw_temp *= 1024 * 1024 * 1024; | |
276 | - break; | |
277 | - } | |
278 | - } | |
279 | - memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); | |
280 | - KEYVAL_DATA_SET_DWORD( t_val, dw_temp ); | |
281 | - i_err = KeyVal_SetData( | |
282 | - &(p_gnow->t_info), GUEST_MEM_SIZE_KEY, &t_val, GUEST_MEM_SIZE_PRI ); | |
283 | - | |
284 | - // VNC --- | |
285 | - strncpy( str_temp, pstr_item[5], sizeof( str_temp ) ); | |
286 | - if( '-' != str_temp[0] ) { | |
287 | - pstr_host = NULL; | |
288 | - i_vnc = 0; | |
289 | - pstr_now = str_temp; | |
290 | - pstr_host = strsep( &pstr_now, ":" ); | |
291 | - | |
292 | - if(( NULL != pstr_host ) && ( NULL != pstr_now )) { | |
293 | - memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); | |
294 | - KEYVAL_DATA_SET_STRING( t_val, pstr_host ); | |
295 | - i_err = KeyVal_SetData( | |
296 | - &(p_gnow->t_info), GUEST_VNC_HOST_KEY, | |
297 | - &t_val, GUEST_VNC_HOST_PRI ); | |
298 | - | |
299 | - i_temp = (int)strtol( pstr_now, NULL, 10 ); | |
300 | - memset( &t_val, 0x00, sizeof( KeyVal_Data ) ); | |
301 | - KEYVAL_DATA_SET_INT( t_val, i_temp ); | |
302 | - i_err = KeyVal_SetData( | |
303 | - &(p_gnow->t_info), GUEST_VNC_PORT_KEY, | |
304 | - &t_val, GUEST_VNC_PORT_PRI ); | |
305 | - } | |
306 | - } | |
307 | - | |
308 | - // Auto Start --- | |
309 | - | |
310 | - // Set Status --- | |
311 | - if( 7 <= i_item ) { | |
312 | - if( !strncmp( pstr_item[7], "Running", 16 )) | |
313 | - { p_gnow->dw_status = GUEST_STATUS_RUN; } | |
314 | - else if( !strncmp( pstr_item[7], "Locked", 16 )) | |
315 | - { p_gnow->dw_status = GUEST_STATUS_WAIT; } | |
316 | - else if( !strncmp( pstr_item[7], "Stopped", 16 )) | |
317 | - { p_gnow->dw_status = GUEST_STATUS_STOP; } | |
318 | - else | |
319 | - { p_gnow->dw_status = GUEST_STATUS_UNKNOWN; } | |
320 | - | |
321 | - } | |
322 | - | |
323 | - Guest_Release( p_gnow ); | |
305 | + &(p_gnow->t_info), GUEST_VNC_PORT_KEY, | |
306 | + &t_val, GUEST_VNC_PORT_PRI ); | |
324 | 307 | } |
325 | 308 | } |
309 | + | |
310 | + // Auto Start --- | |
311 | + | |
312 | + // Set Status --- | |
313 | + if( 7 <= i_item ) { | |
314 | + if( !strncmp( pstr_item[7], "Running", 16 )) | |
315 | + { p_gnow->dw_status = GUEST_STATUS_RUN; } | |
316 | + else if( !strncmp( pstr_item[7], "Locked", 16 )) | |
317 | + { p_gnow->dw_status = GUEST_STATUS_WAIT; } | |
318 | + else if( !strncmp( pstr_item[7], "Stopped", 16 )) | |
319 | + { p_gnow->dw_status = GUEST_STATUS_STOP; } | |
320 | + else | |
321 | + { p_gnow->dw_status = GUEST_STATUS_UNKNOWN; } | |
322 | + } | |
323 | + | |
324 | + Guest_Release( p_gnow ); | |
325 | + | |
326 | + if( GUEST_OBTAIN_NEW == i_gtype ) { | |
327 | + ErrInfo_DebugMsg( "NEW" ); | |
328 | + } | |
329 | + | |
326 | 330 | } |
327 | 331 | |
328 | 332 | return 0x00; |