summaryrefslogtreecommitdiffstats
path: root/docs/testing/user/testspecification
diff options
context:
space:
mode:
Diffstat (limited to 'docs/testing/user/testspecification')
-rw-r--r--docs/testing/user/testspecification/highavailability/index.rst150
1 files changed, 150 insertions, 0 deletions
diff --git a/docs/testing/user/testspecification/highavailability/index.rst b/docs/testing/user/testspecification/highavailability/index.rst
index 280a241e..443abd0e 100644
--- a/docs/testing/user/testspecification/highavailability/index.rst
+++ b/docs/testing/user/testspecification/highavailability/index.rst
@@ -749,5 +749,155 @@ Post conditions
Restart the processes of "haproxy" if they are not running.
+----------------------------------------------------------------
+Test Case 9 - Controller node OpenStack service down - Database
+----------------------------------------------------------------
+Short name
+----------
+
+dovetail.ha.database
+
+Use case specification
+----------------------
+
+This test case verifies that the high availability of the data base instances
+used by OpenStack (mysql) on control node is working properly.
+Specifically, this test case kills the processes of database service on a
+selected control node, then checks whether the request of the related
+OpenStack command is OK and the killed processes are recovered.
+
+Test preconditions
+------------------
+
+In this test case, an attacker called "kill-process" is needed.
+This attacker includes three parameters: fault_type, process_name and host.
+
+The purpose of this attacker is to kill any process with a specific process
+name which is run on the host node. In case that multiple processes use the
+same name on the host node, all of them are going to be killed by this attacker.
+
+Basic test flow execution description and pass/fail criteria
+------------------------------------------------------------
+
+Methodology for verifying service continuity and recovery
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+In order to verify this service two different monitors are going to be used.
+
+As first monitor is used a OpenStack command and acts as watcher for
+database connection of different OpenStack components.
+
+For second monitor is used a process monitor and the main purpose is to watch
+whether the database processes on the host node are killed properly.
+
+Therefore, in this test case, there are two metrics:
+- service_outage_time, which indicates the maximum outage time (seconds)
+ of the specified OpenStack command request
+- process_recover_time, which indicates the maximum time (seconds) from the
+ process being killed to recovered
+
+Test execution
+''''''''''''''
+* Test action 1: Connect to Node1 through SSH, and check that "database"
+ processes are running on Node1
+* Test action 2: Start two monitors: one for "database" processes on the host
+ node and the other for connection toward database from OpenStack
+ components, verifying the results of openstack image list, openstack router list,
+ openstack stack list and openstack volume list.
+ Each monitor will run as an independent process
+* Test action 3: Connect to Node1 through SSH, and then kill the "mysql"
+ process(es)
+* Test action 4: Stop monitors after a period of time specified by "waiting_time".
+ The monitor info will be aggregated.
+* Test action 5: Verify the SLA and set the verdict of the test case to pass or fail.
+
+
+Pass / fail criteria
+''''''''''''''''''''
+
+Check whether the SLA is passed:
+- The process outage time is less than 30s.
+- The service outage time is less than 5s.
+
+The database operations are carried out in above order and no errors occur.
+
+A negative result will be generated if the above is not met in completion.
+
+Post conditions
+---------------
+
+The database service is up and running again.
+If the database service did not recover successfully by itself,
+the test explicitly restarts the database service.
+
+---------------------------------------------------------------------------
+Test Case 10 - Controller node OpenStack service down - Controller Restart
+---------------------------------------------------------------------------
+
+Short name
+----------
+
+dovetail.ha.controller_restart
+
+Use case specification
+----------------------
+
+This test case verifies that the high availability of controller node is working
+properly.
+Specifically, this test case shutdowns a specified controller node via IPMI,
+then checks whether all services provided by the controller node are OK with
+some monitor tools.
+
+Test preconditions
+------------------
+
+In this test case, an attacker called "host-shutdown" is needed.
+This attacker includes two parameters: fault_type and host.
+
+The purpose of this attacker is to shutdown a controller and check whether the
+services are handled by this controller are still working normally.
+
+Basic test flow execution description and pass/fail criteria
+------------------------------------------------------------
+
+Methodology for verifying service continuity and recovery
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+In order to verify this service one monitor is going to be used.
+
+This monitor is using an OpenStack command and the respective command name of
+the OpenStack component that we want to verify that the respective service is
+still running normally.
+
+In this test case, there is one metric: 1)service_outage_time: which indicates
+the maximum outage time (seconds) of the specified OpenStack command request.
+
+Test execution
+''''''''''''''
+* Test action 1: Connect to Node1 through SSH, and check that controller services
+ are running normally
+* Test action 2: Start monitors: each monitor will run as independently
+ process, monitoring the image list, router list, stack list and volume list accordingly.
+ The monitor info will be collected.
+* Test action 3: Using the IPMI component, the Node1 is shut-down remotely.
+* Test action 4: Stop monitors after a period of time specified by "waiting_time".
+ The monitor info will be aggregated.
+* Test action 5: Verify the SLA and set the verdict of the test case to pass or fail.
+
+
+Pass / fail criteria
+''''''''''''''''''''
+
+Check whether the SLA is passed:
+- The process outage time is less than 30s.
+- The service outage time is less than 5s.
+
+The controller operations are carried out in above order and no errors occur.
+
+A negative result will be generated if the above is not met in completion.
+
+Post conditions
+---------------
+The controller has been restarted
ref='#n437'>437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758