Ejemplo n.º 1
0
def setup_power(server, module):
    from ucsm_apis.server.power import server_power_exists
    from ucsm_apis.server.power import server_power_on
    from ucsm_apis.server.power import server_power_off
    from ucsm_apis.server.power import server_power_cycle_wait
    from ucsm_apis.server.power import server_power_cycle_immediate

    ansible = module.params
    args_mo = _get_mo_params(ansible)
    exists = server_power_exists(handle=server, **args_mo)

    if ansible["state"] == "on":
        if module.check_mode or exists:
            return not exists
        server_power_on(handle=server, **args_mo)
    elif ansible["state"] == "off":
        if module.check_mode or not exists:
            return exists
        server_power_off(handle=server, **args_mo)
    else:
        if module.check_mode:
            return True
        if ansible["state"] == "cycle-wait":
            server_power_cycle_wait(handle=server, **args_mo)
        elif ansible["state"] == "cycle-immediate":
            server_power_cycle_immediate(handle=server, **args_mo)

    return True
Ejemplo n.º 2
0
def test_power_on_chassis1_blade1_notexist(mock_login, mock_query_dn):
    mock_login.return_value = True
    mock_query_dn.return_value = None

    expected_error_message = "server_power_set: Failed to set server power "\
        "failed, error: server sys/chassis-1/blade-1 does not exist"
    with assert_raises(UcsOperationError) as error:
        server_power_on(handle, chassis_id=1, blade_id=1)
    assert_equal(error.exception.message, expected_error_message)
Ejemplo n.º 3
0
def test_power_on_chassisNone_blade1(mock_login):
    mock_login.return_value = True

    expected_error_message = "server_admin_state_set: Failed to set power "\
        "state failed, error: Missing mandatory arguments. Specify either "\
        "of (chassis_id, blade_id) or rack_id"
    with assert_raises(UcsOperationError) as error:
        server_power_on(handle, blade_id=1)
    assert_equal(error.exception.message, expected_error_message)
Ejemplo n.º 4
0
def test_power_on_chassis1_blade1_not_assigned_to_dn(mock_login,
                                                     mock_query_dn):
    mock_login.return_value = True

    server_mo = Mock()
    server_mo.assigned_to_dn = None

    mock_query_dn.return_value = server_mo

    expected_error_message = "server_power_set: Failed to set server power "\
        "failed, error: server sys/chassis-1/blade-1 is not associated to a "\
        "service profile"
    with assert_raises(UcsOperationError) as error:
        server_power_on(handle, chassis_id=1, blade_id=1)
    assert_equal(error.exception.message, expected_error_message)
Ejemplo n.º 5
0
def test_power_on_chassis1_blade1_pass(mock_login, mock_query_dn, mock_commit):
    from ucsmsdk.mometa.compute.ComputeBlade import ComputeBlade
    from ucsmsdk.mometa.ls.LsServer import LsServer

    mock_login.return_value = True

    server_mo = Mock()
    server_mo.assigned_to_dn = "org-root/ls-testsp"

    sp_mo = LsServer("org-root", name="testsp")

    mock_query_dn.side_effect = [server_mo, sp_mo]
    mock_commit.return_value = None

    assert server_power_on(handle, chassis_id=1, blade_id=1) is None