1#!/usr/bin/perl 2 3use strict; 4use warnings; 5use lib 't/lib'; 6 7use Test::Deep; 8use Test::Exception; 9use Test::More; 10use Test::NoWarnings; 11 12use FusionInventory::Test::Inventory; 13use FusionInventory::Agent::Task::Inventory::Virtualization::Xen; 14use FusionInventory::Agent::Tools::Virtualization; 15 16my %tests_xm_list = ( 17 xm_list => [ 18 { 19 NAME => 'Fedora3', 20 SUBSYSTEM => 'xm', 21 STATUS => STATUS_RUNNING, 22 VMTYPE => 'xen', 23 MEMORY => '128', 24 VCPU => '1' 25 }, 26 { 27 NAME => 'Fedora4', 28 SUBSYSTEM => 'xm', 29 STATUS => STATUS_OFF, 30 VMTYPE => 'xen', 31 MEMORY => '128', 32 VCPU => '1' 33 }, 34 { 35 NAME => 'Mandrake2006', 36 SUBSYSTEM => 'xm', 37 STATUS => STATUS_BLOCKED, 38 VMTYPE => 'xen', 39 MEMORY => '128', 40 VCPU => '1' 41 }, 42 { 43 NAME => 'Mandrake10.2', 44 SUBSYSTEM => 'xm', 45 STATUS => STATUS_OFF, 46 VMTYPE => 'xen', 47 MEMORY => '128', 48 VCPU => '1' 49 }, 50 { 51 NAME => 'Suse9.2', 52 SUBSYSTEM => 'xm', 53 STATUS => STATUS_OFF, 54 VMTYPE => 'xen', 55 MEMORY => '100', 56 VCPU => '1' 57 } 58 ], 59 xm_list2 => [ 60 { 61 NAME => 'lvm0001', 62 SUBSYSTEM => 'xm', 63 STATUS => STATUS_OFF, 64 VMTYPE => 'xen', 65 MEMORY => '4096', 66 VCPU => '1' 67 }, 68 { 69 NAME => 'lvm0002', 70 SUBSYSTEM => 'xm', 71 STATUS => STATUS_OFF, 72 VMTYPE => 'xen', 73 MEMORY => '16384', 74 VCPU => '8' 75 }, 76 { 77 NAME => 'lvm0003', 78 SUBSYSTEM => 'xm', 79 STATUS => STATUS_OFF, 80 VMTYPE => 'xen', 81 MEMORY => '16384', 82 VCPU => '8' 83 }, 84 { 85 NAME => 'lvm0004', 86 SUBSYSTEM => 'xm', 87 STATUS => STATUS_OFF, 88 VMTYPE => 'xen', 89 MEMORY => '16384', 90 VCPU => '8' 91 }, 92 { 93 NAME => 'lvm0005', 94 SUBSYSTEM => 'xm', 95 STATUS => STATUS_BLOCKED, 96 VMTYPE => 'xen', 97 MEMORY => '16384', 98 VCPU => '2' 99 }, 100 { 101 NAME => 'lvm0006', 102 SUBSYSTEM => 'xm', 103 STATUS => STATUS_OFF, 104 VMTYPE => 'xen', 105 MEMORY => '4096', 106 VCPU => '2' 107 }, 108 { 109 NAME => 'lvm0007', 110 SUBSYSTEM => 'xm', 111 STATUS => STATUS_OFF, 112 VMTYPE => 'xen', 113 MEMORY => '1024', 114 VCPU => '1' 115 }, 116 { 117 NAME => 'lvm0008', 118 SUBSYSTEM => 'xm', 119 STATUS => STATUS_OFF, 120 VMTYPE => 'xen', 121 MEMORY => '2048', 122 VCPU => '1' 123 }, 124 { 125 NAME => 'lvm0009', 126 SUBSYSTEM => 'xm', 127 STATUS => STATUS_OFF, 128 VMTYPE => 'xen', 129 MEMORY => '16384', 130 VCPU => '4' 131 }, 132 { 133 NAME => 'lvm0010', 134 SUBSYSTEM => 'xm', 135 STATUS => STATUS_RUNNING, 136 VMTYPE => 'xen', 137 MEMORY => '8192', 138 VCPU => '4' 139 }, 140 { 141 NAME => 'lvm0011', 142 SUBSYSTEM => 'xm', 143 STATUS => STATUS_OFF, 144 VMTYPE => 'xen', 145 MEMORY => '4096', 146 VCPU => '32' 147 }, 148 { 149 NAME => 'lvm0012', 150 SUBSYSTEM => 'xm', 151 STATUS => STATUS_OFF, 152 VMTYPE => 'xen', 153 MEMORY => '32768', 154 VCPU => '24' 155 }, 156 { 157 NAME => 'lvm0013', 158 SUBSYSTEM => 'xm', 159 STATUS => STATUS_OFF, 160 VMTYPE => 'xen', 161 MEMORY => '32768', 162 VCPU => '24' 163 }, 164 { 165 NAME => 'lvm0014', 166 SUBSYSTEM => 'xm', 167 STATUS => STATUS_OFF, 168 VMTYPE => 'xen', 169 MEMORY => '32768', 170 VCPU => '16' 171 }, 172 { 173 NAME => 'lvm0015', 174 SUBSYSTEM => 'xm', 175 STATUS => STATUS_BLOCKED, 176 VMTYPE => 'xen', 177 MEMORY => '16384', 178 VCPU => '4' 179 }, 180 { 181 NAME => 'lvm0016', 182 SUBSYSTEM => 'xm', 183 STATUS => STATUS_OFF, 184 VMTYPE => 'xen', 185 MEMORY => '8192', 186 VCPU => '2' 187 }, 188 { 189 NAME => 'lvm0017', 190 SUBSYSTEM => 'xm', 191 STATUS => STATUS_OFF, 192 VMTYPE => 'xen', 193 MEMORY => '16384', 194 VCPU => '4' 195 }, 196 { 197 NAME => 'lvm0018', 198 SUBSYSTEM => 'xm', 199 STATUS => STATUS_OFF, 200 VMTYPE => 'xen', 201 MEMORY => '32768', 202 VCPU => '8' 203 }, 204 { 205 NAME => 'lvm0019', 206 SUBSYSTEM => 'xm', 207 STATUS => STATUS_OFF, 208 VMTYPE => 'xen', 209 MEMORY => '16384', 210 VCPU => '4' 211 }, 212 { 213 NAME => 'lvm0020', 214 SUBSYSTEM => 'xm', 215 STATUS => STATUS_OFF, 216 VMTYPE => 'xen', 217 MEMORY => '16384', 218 VCPU => '8' 219 }, 220 { 221 NAME => 'lvm0021', 222 SUBSYSTEM => 'xm', 223 STATUS => STATUS_OFF, 224 VMTYPE => 'xen', 225 MEMORY => '16384', 226 VCPU => '8' 227 }, 228 { 229 NAME => 'lvm0022', 230 SUBSYSTEM => 'xm', 231 STATUS => STATUS_OFF, 232 VMTYPE => 'xen', 233 MEMORY => '8192', 234 VCPU => '4' 235 }, 236 { 237 NAME => 'lvm0023', 238 SUBSYSTEM => 'xm', 239 STATUS => STATUS_OFF, 240 VMTYPE => 'xen', 241 MEMORY => '4096', 242 VCPU => '4' 243 }, 244 { 245 NAME => 'lvm0024', 246 SUBSYSTEM => 'xm', 247 STATUS => STATUS_OFF, 248 VMTYPE => 'xen', 249 MEMORY => '32768', 250 VCPU => '8' 251 }, 252 { 253 NAME => 'lvm0025', 254 SUBSYSTEM => 'xm', 255 STATUS => STATUS_OFF, 256 VMTYPE => 'xen', 257 MEMORY => '2048', 258 VCPU => '1' 259 }, 260 { 261 NAME => 'lvm0026', 262 SUBSYSTEM => 'xm', 263 STATUS => STATUS_OFF, 264 VMTYPE => 'xen', 265 MEMORY => '16384', 266 VCPU => '16' 267 }, 268 { 269 NAME => 'lvm0027', 270 SUBSYSTEM => 'xm', 271 STATUS => STATUS_OFF, 272 VMTYPE => 'xen', 273 MEMORY => '16384', 274 VCPU => '16' 275 }, 276 { 277 NAME => 'lvm0028', 278 SUBSYSTEM => 'xm', 279 STATUS => STATUS_BLOCKED, 280 VMTYPE => 'xen', 281 MEMORY => '16384', 282 VCPU => '4' 283 }, 284 { 285 NAME => 'lvm0029', 286 SUBSYSTEM => 'xm', 287 STATUS => STATUS_OFF, 288 VMTYPE => 'xen', 289 MEMORY => '16384', 290 VCPU => '4' 291 }, 292 { 293 NAME => 'lvm0030', 294 SUBSYSTEM => 'xm', 295 STATUS => STATUS_BLOCKED, 296 VMTYPE => 'xen', 297 MEMORY => '16384', 298 VCPU => '4' 299 }, 300 { 301 NAME => 'lvm0031', 302 SUBSYSTEM => 'xm', 303 STATUS => STATUS_BLOCKED, 304 VMTYPE => 'xen', 305 MEMORY => '32768', 306 VCPU => '12' 307 }, 308 { 309 NAME => 'lvm0032', 310 SUBSYSTEM => 'xm', 311 STATUS => STATUS_OFF, 312 VMTYPE => 'xen', 313 MEMORY => '32768', 314 VCPU => '16' 315 }, 316 { 317 NAME => 'lvm0033', 318 SUBSYSTEM => 'xm', 319 STATUS => STATUS_BLOCKED, 320 VMTYPE => 'xen', 321 MEMORY => '4096', 322 VCPU => '2' 323 }, 324 { 325 NAME => 'lvm0034', 326 SUBSYSTEM => 'xm', 327 STATUS => STATUS_OFF, 328 VMTYPE => 'xen', 329 MEMORY => '32768', 330 VCPU => '16' 331 }, 332 { 333 NAME => 'lvm0035', 334 SUBSYSTEM => 'xm', 335 STATUS => STATUS_OFF, 336 VMTYPE => 'xen', 337 MEMORY => '4096', 338 VCPU => '2' 339 }, 340 { 341 NAME => 'lvm0036', 342 SUBSYSTEM => 'xm', 343 STATUS => STATUS_OFF, 344 VMTYPE => 'xen', 345 MEMORY => '24576', 346 VCPU => '8' 347 }, 348 { 349 NAME => 'lvm0037', 350 SUBSYSTEM => 'xm', 351 STATUS => STATUS_OFF, 352 VMTYPE => 'xen', 353 MEMORY => '4096', 354 VCPU => '2' 355 }, 356 { 357 NAME => 'lvm0038', 358 SUBSYSTEM => 'xm', 359 STATUS => STATUS_OFF, 360 VMTYPE => 'xen', 361 MEMORY => '8192', 362 VCPU => '8' 363 }, 364 { 365 NAME => 'lvm0039', 366 SUBSYSTEM => 'xm', 367 STATUS => STATUS_OFF, 368 VMTYPE => 'xen', 369 MEMORY => '16384', 370 VCPU => '8' 371 }, 372 { 373 NAME => 'lvm0041', 374 SUBSYSTEM => 'xm', 375 STATUS => STATUS_OFF, 376 VMTYPE => 'xen', 377 MEMORY => '4096', 378 VCPU => '8' 379 }, 380 { 381 NAME => 'lvm0042', 382 SUBSYSTEM => 'xm', 383 STATUS => STATUS_OFF, 384 VMTYPE => 'xen', 385 MEMORY => '4096', 386 VCPU => '8' 387 }, 388 { 389 NAME => 'lvm0043', 390 SUBSYSTEM => 'xm', 391 STATUS => STATUS_OFF, 392 VMTYPE => 'xen', 393 MEMORY => '16384', 394 VCPU => '16' 395 }, 396 { 397 NAME => 'lvm0044', 398 SUBSYSTEM => 'xm', 399 STATUS => STATUS_OFF, 400 VMTYPE => 'xen', 401 MEMORY => '1024', 402 VCPU => '8' 403 }, 404 { 405 NAME => 'lvm0045', 406 SUBSYSTEM => 'xm', 407 STATUS => STATUS_OFF, 408 VMTYPE => 'xen', 409 MEMORY => '16384', 410 VCPU => '8' 411 }, 412 { 413 NAME => 'lvm0046', 414 SUBSYSTEM => 'xm', 415 STATUS => STATUS_OFF, 416 VMTYPE => 'xen', 417 MEMORY => '16384', 418 VCPU => '8' 419 }, 420 { 421 NAME => 'lvm0047', 422 SUBSYSTEM => 'xm', 423 STATUS => STATUS_OFF, 424 VMTYPE => 'xen', 425 MEMORY => '65536', 426 VCPU => '16' 427 }, 428 { 429 NAME => 'lvm0048', 430 SUBSYSTEM => 'xm', 431 STATUS => STATUS_OFF, 432 VMTYPE => 'xen', 433 MEMORY => '12288', 434 VCPU => '12' 435 }, 436 { 437 NAME => 'lvm0049', 438 SUBSYSTEM => 'xm', 439 STATUS => STATUS_BLOCKED, 440 VMTYPE => 'xen', 441 MEMORY => '2048', 442 VCPU => '2' 443 }, 444 { 445 NAME => 'lvm0050', 446 SUBSYSTEM => 'xm', 447 STATUS => STATUS_RUNNING, 448 VMTYPE => 'xen', 449 MEMORY => '8192', 450 VCPU => '4' 451 } 452 ], 453 xl_list => [ 454 { 455 NAME => 'vm1', 456 SUBSYSTEM => 'xm', 457 STATUS => STATUS_BLOCKED, 458 VMTYPE => 'xen', 459 MEMORY => '20480', 460 VCPU => '4' 461 }, 462 { 463 NAME => 'vm2', 464 SUBSYSTEM => 'xm', 465 STATUS => STATUS_BLOCKED, 466 VMTYPE => 'xen', 467 MEMORY => '4096', 468 VCPU => '2' 469 } 470 ], 471 xl_list2 => [ 472 { 473 NAME => 'SQL LUBSS227', 474 SUBSYSTEM => 'xm', 475 STATUS => STATUS_BLOCKED, 476 VMTYPE => 'xen', 477 MEMORY => '1536', 478 VCPU => '2' 479 }, 480 { 481 NAME => 'SQL LUBSS239', 482 SUBSYSTEM => 'xm', 483 STATUS => STATUS_BLOCKED, 484 VMTYPE => 'xen', 485 MEMORY => '1024', 486 VCPU => '1' 487 }, 488 { 489 NAME => 'SQL LUBSS237', 490 SUBSYSTEM => 'xm', 491 STATUS => STATUS_RUNNING, 492 VMTYPE => 'xen', 493 MEMORY => '2048', 494 VCPU => '4' 495 }, 496 { 497 NAME => 'SQL LUBSS235', 498 SUBSYSTEM => 'xm', 499 STATUS => STATUS_BLOCKED, 500 VMTYPE => 'xen', 501 MEMORY => '2047', 502 VCPU => '4' 503 }, 504 { 505 NAME => 'IIS LUBSIIS12', 506 SUBSYSTEM => 'xm', 507 STATUS => STATUS_BLOCKED, 508 VMTYPE => 'xen', 509 MEMORY => '2048', 510 VCPU => '4' 511 }, 512 { 513 NAME => 'SQL LUBSS245', 514 SUBSYSTEM => 'xm', 515 STATUS => STATUS_BLOCKED, 516 VMTYPE => 'xen', 517 MEMORY => '1024', 518 VCPU => '2' 519 }, 520 { 521 NAME => 'SQL LUBSS238', 522 SUBSYSTEM => 'xm', 523 STATUS => STATUS_BLOCKED, 524 VMTYPE => 'xen', 525 MEMORY => '2048', 526 VCPU => '2' 527 }, 528 { 529 NAME => 'SQL LUBSS242', 530 SUBSYSTEM => 'xm', 531 STATUS => STATUS_RUNNING, 532 VMTYPE => 'xen', 533 MEMORY => '2000', 534 VCPU => '4' 535 }, 536 { 537 NAME => 'SQL LUBSS218', 538 SUBSYSTEM => 'xm', 539 STATUS => STATUS_BLOCKED, 540 VMTYPE => 'xen', 541 MEMORY => '2000', 542 VCPU => '2' 543 }, 544 { 545 NAME => 'SQL REL LUBSS223', 546 SUBSYSTEM => 'xm', 547 STATUS => STATUS_RUNNING, 548 VMTYPE => 'xen', 549 MEMORY => '6000', 550 VCPU => '4' 551 }, 552 { 553 NAME => 'SQL LUBSS230', 554 SUBSYSTEM => 'xm', 555 STATUS => STATUS_BLOCKED, 556 VMTYPE => 'xen', 557 MEMORY => '1535', 558 VCPU => '4' 559 }, 560 { 561 NAME => 'SQL REL LUBSS215', 562 SUBSYSTEM => 'xm', 563 STATUS => STATUS_BLOCKED, 564 VMTYPE => 'xen', 565 MEMORY => '3000', 566 VCPU => '4' 567 }, 568 { 569 NAME => 'SQL REL LUBSS221', 570 SUBSYSTEM => 'xm', 571 STATUS => STATUS_BLOCKED, 572 VMTYPE => 'xen', 573 MEMORY => '2048', 574 VCPU => '4' 575 } 576 ] 577); 578 579 580my %tests_getUUID = ( 581 'xm_list_-l_vmname' => '0004fb00-0006-0000-4acc-3678187fb85c', 582 'xl_list_-v_vmname' => '482e6c75-090e-4cf2-9c06-de39c824cbe4' 583); 584 585plan tests => 586(2 * scalar keys %tests_xm_list) + 587(scalar keys %tests_getUUID) + 5881; 589 590my $inventory = FusionInventory::Test::Inventory->new(); 591 592foreach my $test (keys %tests_xm_list) { 593 my $file = "resources/virtualization/xm/$test"; 594 my @machines = FusionInventory::Agent::Task::Inventory::Virtualization::Xen::_getVirtualMachines(file => $file); 595 cmp_deeply(\@machines, $tests_xm_list{$test}, "$test: parsing"); 596 lives_ok { 597 $inventory->addEntry(section => 'VIRTUALMACHINES', entry => $_) 598 foreach @machines; 599 } "$test: registering"; 600} 601 602foreach my $test (keys %tests_getUUID) { 603 my $file = "resources/virtualization/xm/$test"; 604 my $uuid = FusionInventory::Agent::Task::Inventory::Virtualization::Xen::_getUUID(file => $file); 605 cmp_deeply($uuid, $tests_getUUID{$test}, $test); 606} 607