コード例 #1
0
def test_pcs_status():
    pcs = PCSStatus(context_wrap(CLUSTER_NORMAL))
    assert pcs.nodes == ['myhost15', 'myhost17', 'myhost16']
    assert pcs.get('Stack') == 'corosync'
    assert pcs.get('Cluster name') == 'openstack'
    assert pcs.get('Current DC') == 'myhost15 (1) - partition with quorum'
    assert pcs.get("Nodes configured") == "3"
    assert pcs.get("Resources configured") == "143"
    assert pcs.get("Online") == "[ myhost15 myhost16 myhost17 ]"
    assert pcs.get('Nonexistent key') is None
コード例 #2
0
def test_cluster_warning():
    pcs = PCSStatus(context_wrap(CLUSTER_WARNINGS))
    assert pcs.nodes == []
    assert pcs.data['WARNING'] == [
        "WARNING: We don't know where, but something awful is going to happen",
        "WARNING: This is another made-up warning, please supply real ones"
    ]
コード例 #3
0
def test_pcs_uncleannode():
    pcs = PCSStatus(context_wrap(CLUSTER_UNCLEANNODE))
    assert pcs.nodes == ['control-0', 'control-1', 'control-2']
    assert pcs.bad_nodes == [{
        'status': 'UNCLEAN (online)',
        'name': 'control-2'
    }]
コード例 #4
0
def test_pcs_output1():
    pcs = PCSStatus(context_wrap(CLUSTER_OUTPUT_PACEMAKER_VERSION2))
    assert pcs.get(
        'Current DC'
    ) == 'host2 (2) (version 2.1.0-8.el8-7c3f660707) - partition with quorum'
    assert pcs.get('Cluster name') == 'cluster1'
    assert pcs.nodes == ['host1', 'host2']
    assert pcs['Nodes configured'] == '2'
    assert pcs['Resources configured'] == '6'
    assert len(pcs['Full list of resources']) == 7
    assert 'Tickets' in pcs
    assert not pcs['Tickets']
    assert len(pcs['Failed Fencing Actions']) == 6
    assert len(pcs['Fencing History']) == 5
    assert 'Migration Summary' in pcs
    assert not pcs['Migration Summary']
    assert len(pcs['Node List']) == 1
コード例 #5
0
def test_pcs_nodes_and_resources():
    pcs = PCSStatus(context_wrap(CLUSTER_NODES_AND_RESOURCES))
    assert pcs.nodes == ['overcloud-controller-0', 'overcloud-controller-1', 'overcloud-controller-2']
    # 3 nodes and 112 resources configured
    assert pcs.data['Nodes configured'] == '3'
    assert pcs.data['Resources configured'] == '112'
    assert pcs.data['Daemon Status'] == [
        'corosync: active/enabled',
        'pacemaker: active/enabled',
        'pcsd: active/enabled',
    ]
コード例 #6
0
def test_pcs_output2():
    pcs = PCSStatus(context_wrap(CLUSTER_OUTPUT_PACEMAKER_VERSION_1))
    assert pcs['Nodes configured'] == '2'
    assert pcs['Resources configured'] == '1'
    assert len(pcs['Full list of resources']) == 1
    assert 'clusterfence	(stonith:fence_aws):	Stopped' in pcs[
        'Full list of resources']
    assert 'Failed Actions' in pcs
    assert len(pcs['Failed Actions']) == 4
    assert "* clusterfence_start_0 on test-host1 'unknown error' (1): call=78, status=Timed Out, exitreason=''," in pcs.data[
        'Failed Actions']
    assert 'Migration Summary' in pcs
    assert len(pcs['Migration Summary']) == 4
    assert "clusterfence: migration-threshold=1000000 fail-count=1000000 last-failure='Thu Feb 17 16:35:17 2022'" in pcs.data[
        'Migration Summary']
    assert len(pcs['Node Attributes']) == 2
    assert '* Node test-host1 (1):' in pcs['Node Attributes']
コード例 #7
0
def test_cluster_not_running():
    pcs = PCSStatus(context_wrap(CLUSTER_NOT_RUNNING))
    assert pcs.nodes == []