def test_get_bootable_blocks_geometry_10():
    """
    get-bootable-blocks test run: geometry_10

    """

    args      = """--geometry 90x90x90x90x11 arg"""

    cmdout    = ''

    cmderr    = \
"""Invalid Geometry. Geometry must be in the form of AxBxCxDxE
"""

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       256, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('get-bootable-blocks.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 2
0
def test_qmove_queu_4():
    """
    qmove test run: queu_4

    """

    args      = """q1 q2 1 2 3"""

    cmdout    = ''

    cmderr    = \
"""jobid must be an integer: q2
"""

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       256, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('qmove.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
def test_schedctl_reread_2():
    """
    schedctl test run: reread_2

        Command Output:
        Attempting to reread utility functions.
        
        Command Error/Debug:
        
    """

    args      = """--reread-policy"""
    exp_rs    = 0

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('schedctl.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
def test_setres_add_res_2():
    """
    setres test run: add_res_2

        Command Output:
        
        Command Error/Debug:Must supply a start time for the reservation with -s
        
        
    """

    args      = """-n resname -D ANL-R00-R01-2048 ANL-R00-1024 ANL-R01-1024"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('setres.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 5
0
def test_qdel_jobid_1():
    """
    qdel test run: jobid_1

        Command Output:
        
        Command Error/Debug:jobid must be an integer: myq
        
        
    """

    args      = """myq 1 2 3 4"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qdel.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
def test_schedctl_inherit_3():
    """
    schedctl test run: inherit_3

        Command Output:
        no jobs matched
        
        Command Error/Debug:
        
    """

    args      = """--inherit 1.0 1 2 3"""
    exp_rs    = 0

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('schedctl.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
def test_setres_modify_14():
    """
    setres test run: modify_14

        Command Output:
        
        Command Error/Debug:Missing partitions: ANL-R00-R01-2048 ANL-R00-1024 ANL-R01-1024
        
        
    """

    args      = """-m -n resname -A myproj --block_passthrough ANL-R00-R01-2048 ANL-R00-1024 ANL-R01-1024"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('setres.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
def test_setres_id_change_2():
    """
    setres test run: id_change_2

        Command Output:
        Setting cycle_id to 8
        
        Command Error/Debug:
        
    """

    args      = """--cycle_id 8"""
    exp_rs    = 0

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('setres.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 9
0
def test_qsub_mode_option_4():
    """
    qsub test run: mode_option_4

        Command Output:
        
        Command Error/Debug:node count out of realistic range
        
        
    """

    args      = """-A Acceptance -q testing -n 49152 -t 60 --mode script /bin/ls"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qsub.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 10
0
def test_qsub_inputfile_option_1():
    """
    qsub test run: inputfile_option_1

        Command Output:
        
        Command Error/Debug:file /Users/georgerojas/p/Cobalt/cobalt/testsuite/TestCobaltClients/none not found, or is not a file
        
        
    """

    args      = """-i none -t10 -n 10 /bin/ls"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qsub.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 11
0
def test_partlist_argument_1():
    """
    partlist test run: argument_1

    """

    args      = """arg"""

    cmdout    = ''

    cmderr    = \
"""No arguments required
"""

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       256, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('partlist.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 12
0
def test_qsub_script_3():
    """
    qsub test run: script_3

        Command Output:
        
        Command Error/Debug:Mode already set to 'script' and trying to set it again to 'vn'
        
        
    """

    args      = """--mode vn cobalt_script1.sh"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qsub.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 13
0
def test_qmove_queue_1():
    """
    qmove test run: queue_1

        Command Output:
        
        Command Error/Debug:Failed to match any jobs or queues
        
        
    """

    args      = """myq 1 2 3"""
    exp_rs    = 0

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qmove.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 14
0
def test_nodelist_options_4():
    """
    nodelist test run: options_4

    """

    args      = """--version"""

    cmdout    = \
"""version: "nodelist.py " + TBD + , Cobalt  + TBD
"""

    cmderr    = ''

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       0, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('nodelist.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
def test_nodeadm_combo_1():
    """
    nodeadm test run: combo_1

        Command Output:
        
        Command Error/Debug:nodeadm is only supported on cluster systems.  Try partlist instead.
        
        
    """

    args      = """--up --down p1"""
    exp_rs    = 0

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('nodeadm.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 16
0
def test_releaseres_version():
    """
    releaseres test run: version

    """

    args      = """--version"""

    cmdout    = \
"""version: "releaseres.py " + $Id: releaseres.py 2146 2011-04-29 16:19:22Z richp $ + , Cobalt  + $Version$
"""

    cmderr    = ''

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       0, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('releaseres.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 17
0
def test_slpstat_version():
    """
    slpstat test run: version

    """

    args      = """--version"""

    cmdout    = \
"""version: "slpstat.py " + $Revision: 1221 $ + , Cobalt  + $Version$
"""

    cmderr    = ''

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       0, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('slpstat.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 18
0
def test_schedctl_save_2():
    """
    schedctl test run: save_2

    """

    args      = """--savestate s"""

    cmdout    = ''

    cmderr    = \
"""directory s does not exist
"""

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       256, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('schedctl.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 19
0
def test_qalter_geometry_2():
    """
    qalter test run: geometry_2

        Command Output:
        
        Command Error/Debug:Invalid geometry entered: 
        
        
    """

    args      = """-v --geometry 10x10x10x10x10 1 2 3 4 5"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qalter.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 20
0
def test_schedctl_combo_1():
    """
    schedctl test run: combo_1

    """

    args      = """--start --stop"""

    cmdout    = ''

    cmderr    = \
"""Option combinations not allowed with: start option(s)
"""

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       256, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('schedctl.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 21
0
def test_qsub_cwd_option_5():
    """
    qsub test run: cwd_option_5

        Command Output:
        32
        
        Command Error/Debug:
        
    """

    args      = """--cwd /tmp -t10 -n 10 -e p -o x /bin/ls"""
    exp_rs    = 0

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qsub.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 22
0
def test_showres_combo():
    """
    showres test run: combo

    """

    args      = """-l -x"""

    cmdout    = ''

    cmderr    = \
"""Only use -l or -x not both
"""

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       256, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('showres.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 23
0
def test_qsub_no_roject_specified():
    """
    qsub test run: no_roject_specified

        Command Output:
        
        Command Error/Debug:'time' not provided
        
        
    """

    args      = """-A -t50 -n10 /bin/ls"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qsub.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 24
0
def test_qsub_invalid_user():
    """
    qsub test run: invalid_user

        Command Output:
        
        Command Error/Debug:user naughtyuser does not exist.
        
        
    """

    args      = """--run_users naughtyuser -t10 -n10 /bin/ls"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qsub.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 25
0
def test_qsub_invalid_geometry_6():
    """
    qsub test run: invalid_geometry_6

        Command Output:
        23
        
        Command Error/Debug:
        
    """

    args      = """--mode script -t50 -n10 --geometry 128x64x32x4    /bin/ls"""
    exp_rs    = 0

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('qsub.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 26
0
def test_setres_modify_15():
    """
    setres test run: modify_15

        Command Output:
        
        Command Error/Debug:cannot find reservation named 'resname'
        
        
    """

    args      = """-m -n resname"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('setres.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 27
0
def test_setres_id_change_7():
    """
    setres test run: id_change_7

        Command Output:
        
        Command Error/Debug:No partition arguments or other options allowed with id change options
        
        
    """

    args      = """--cycle_id 8 -p ANL-R00-R01-2048"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('setres.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 28
0
def test_setres_force_4():
    """
    setres test run: force_4

        Command Output:
        
        Command Error/Debug:--force_id can only be used with --cycle_id and/or --res_id.
        
        
    """

    args      = """--force_id -m -n resname"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('setres.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
def test_schedctl_combo_1():
    """
    schedctl test run: combo_1

        Command Output:
        
        Command Error/Debug:Option combinations not allowed with: start option(s)
        
        
    """

    args      = """--start --stop"""
    exp_rs    = 256

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('schedctl.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
def test_get_bootable_blocks_version():
    """
    get-bootable-blocks test run: version

    """

    args      = """--version"""

    cmdout    = \
"""version: "get-bootable-blocks.py " + TBD + , Cobalt  + TBD
"""

    cmderr    = ''

    stubout   = ''

    stubout_file = "stub.out"

    expected_results = ( 
                       0, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('get-bootable-blocks.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 31
0
def test_releaseres_arg_6():
    """
    releaseres test run: arg_6

    """

    args = """-p p1 s1 s2 s3"""

    cmdout = ''

    cmderr    = \
"""Usage: releaseres.py [--version | --help | --debug] <reservation name>

releaseres.py: error: no such option: -p
"""

    stubout = ''

    stubout_file = "stub.out"

    expected_results = (
        512,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('releaseres.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 32
0
def test_nodelist_arg_2():
    """
    nodelist test run: arg_2

        Command Output:
        
        Command Error/Debug:No arguments needed
        nodelist is only supported on cluster systems.  Try partlist instead.
        
        
    """

    args      = """arg1"""
    exp_rs    = 0

    user    = pwd.getpwuid(os.getuid())[0] 
    _args   = args.replace('<USER>',user)

    results = testutils.run_cmd('nodelist.py',_args,None) 
    rs      = results[0]
    cmd_out = results[1]
    cmd_err = results[3]

    # Test Pass Criterias
    no_rs_err     = (rs == exp_rs)
    no_fatal_exc  = (cmd_out.find("FATAL EXCEPTION") == -1)

    result = no_rs_err and no_fatal_exc

    errmsg  = "\n\nFailed Data:\n\n" \
        "Return Status %s, Expected Return Status %s\n\n" \
        "Command Output:\n%s\n\n" \
        "Command Error:\n%s\n\n" \
        "Arguments: %s" % (str(rs), str(exp_rs), str(cmd_out), str(cmd_err), _args)

    assert result, errmsg
Ejemplo n.º 33
0
def test_qrls_dependancy_option():
    """
    qrls test run: dependancy_option

    """

    args = """-d --dependencies 1 2"""

    cmdout    = \
"""   Removed dependencies from jobs: 
      1
      2
"""

    cmderr    = \
"""
qrls.py -d --dependencies 1 2

component: "queue-manager.get_jobs", defer: False
  get_jobs(
     [{'user_hold': '*', 'tag': 'job', 'user': '******', 'jobid': 1}, {'user_hold': '*', 'tag': 'job', 'user': '******', 'jobid': 2}],
     )


component: "queue-manager.set_jobs", defer: False
  set_jobs(
     [{'user_hold': '*', 'tag': 'job', 'is_active': '*', 'user': '******', 'jobid': 1}, {'user_hold': '*', 'tag': 'job', 'is_active': '*', 'user': '******', 'jobid': 2}],
     {'all_dependencies': []},
     gooduser,
     )


"""

    stubout   = \
"""
GET_JOBS

jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>
jobid:2
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
is_active:*
is_active type: <type 'str'>
jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>
is_active:*
is_active type: <type 'str'>
jobid:2
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>

New Job Info:

all_dependencies:[]
all_dependencies type: <type 'list'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('qrls.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 34
0
def test_qrls_jobid_2():
    """
    qrls test run: jobid_2

    """

    args = """1 2 3 4"""

    cmdout    = \
"""   Failed to remove user hold on jobs: 
      job 1 does not have a 'user hold'
      job 2 does not have a 'user hold'
      job 3 does not have a 'user hold'
      job 4 does not have a 'user hold'
"""

    cmderr = ''

    stubout   = \
"""
GET_JOBS

jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>
jobid:2
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>
jobid:3
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>
jobid:4
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
is_active:*
is_active type: <type 'str'>
jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>
is_active:*
is_active type: <type 'str'>
jobid:2
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>
is_active:*
is_active type: <type 'str'>
jobid:3
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>
is_active:*
is_active type: <type 'str'>
jobid:4
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>

New Job Info:

user_hold:False
user_hold type: <type 'bool'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('qrls.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 35
0
def test_qhold_debg_option():
    """
    qhold test run: debg_option

    """

    args      = """-d 1"""

    cmdout    = \
"""   Failed to place user hold on jobs: 
      job 1 encountered an unexpected problem while attempting to place the 'user hold'
"""

    cmderr    = \
"""
qhold.py -d 1

component: "queue-manager.get_jobs", defer: False
  get_jobs(
     [{'user_hold': '*', 'tag': 'job', 'user': '******', 'jobid': 1}],
     )


component: "queue-manager.set_jobs", defer: False
  set_jobs(
     [{'user_hold': '*', 'tag': 'job', 'is_active': '*', 'user': '******', 'jobid': 1}],
     {'user_hold': True},
     gooduser,
     )


Response: [{'queue': 'kebra', 'has_completed': False, 'errorpath': '/tmp', 'mode': 'smp', 'outputpath': '/tmp', 'is_active': False, 'jobid': 1, 'project': 'my_project', 'tag': 'job', 'notify': '*****@*****.**', 'nodes': 512, 'walltime': 5, 'user_hold': False, 'procs': 512, 'user': '******'}]
"""

    stubout   = \
"""
GET_JOBS

jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
is_active:*
is_active type: <type 'str'>
jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>

New Job Info:

user_hold:True
user_hold type: <type 'bool'>
"""

    stubout_file = "stub.out"

    expected_results = ( 
                       0, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('qhold.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 36
0
def test_qhold_jobid_3():
    """
    qhold test run: jobid_3

    """

    args      = """1"""

    cmdout    = \
"""   Failed to place user hold on jobs: 
      job 1 encountered an unexpected problem while attempting to place the 'user hold'
"""

    cmderr    = ''

    stubout   = \
"""
GET_JOBS

jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
is_active:*
is_active type: <type 'str'>
jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
user_hold:*
user_hold type: <type 'str'>

New Job Info:

user_hold:True
user_hold type: <type 'bool'>
"""

    stubout_file = "stub.out"

    expected_results = ( 
                       0, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('qhold.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 37
0
def test_userres_arg_4():
    """
    userres test run: arg_4

    """

    args = """s1 s2 s3"""

    cmdout    = \
"""Releasing reservation 's1'
Releasing reservation 's2'
Releasing reservation 's3'
"""

    cmderr = ''

    stubout   = \
"""
GET_RESERVATIONS

cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s1
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s2
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s3
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
\RELEASE_RESERVATIONS

name:s1
name type: <type 'str'>
user: gooduser
\RELEASE_RESERVATIONS

name:s2
name type: <type 'str'>
user: gooduser
\RELEASE_RESERVATIONS

name:s3
name type: <type 'str'>
user: gooduser
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("NO CYCLE")

    results = testutils.run_cmd('userres.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 38
0
def test_releaseres_arg_4():
    """
    releaseres test run: arg_4

    """

    args = """s1 s2 s3"""

    cmdout    = \
"""Released reservation 's1' for partitions: ['p1', 'p2']
Released reservation 's2' for partitions: ['p1', 'p2']
Released reservation 's3' for partitions: ['p1', 'p2']
"""

    cmderr = ''

    stubout   = \
"""
GET_RESERVATIONS

name:s1
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s2
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s3
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
\RELEASE_RESERVATIONS

name:s1
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s2
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s3
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
user: gooduser
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('releaseres.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 39
0
def test_slpstat_debug_1():
    """
    slpstat test run: debug_1

    """

    args = """-d"""

    cmdout    = \
"""Name  Location  Update Time               
==========================================
S0    P0        Mon Apr 22 17:06:10 2013  
S1    P1        Mon Apr 22 17:06:20 2013  
S2    P2        Mon Apr 22 17:06:30 2013  
S3    P3        Mon Apr 22 17:06:40 2013  
S4    P4        Mon Apr 22 17:06:50 2013  
"""

    cmderr    = \
"""
slpstat.py -d

component: "service-location.get_services", defer: False
  get_services(
     [{'stamp': '*', 'tag': 'service', 'name': '*', 'location': '*'}],
     )


"""

    stubout   = \
"""
GET_SERVICES

location:*
location type: <type 'str'>
name:*
name type: <type 'str'>
stamp:*
stamp type: <type 'str'>
tag:service
tag type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('slpstat.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 40
0
def test_qmove_queue_2():
    """
    qmove test run: queue_2

    """

    args = """-d myq 1 2 3"""

    cmdout    = \
"""moved job 1 to queue 'kebra'
moved job 2 to queue 'kebra'
moved job 3 to queue 'kebra'
"""

    cmderr    = \
"""
qmove.py -d myq 1 2 3

component: "queue-manager.get_jobs", defer: False
  get_jobs(
     [{'project': '*', 'queue': '*', 'tag': 'job', 'notify': '*', 'user': '******', 'nodes': '*', 'walltime': '*', 'procs': '*', 'jobid': 1}, {'project': '*', 'queue': '*', 'tag': 'job', 'notify': '*', 'user': '******', 'nodes': '*', 'walltime': '*', 'procs': '*', 'jobid': 2}, {'project': '*', 'queue': '*', 'tag': 'job', 'notify': '*', 'user': '******', 'nodes': '*', 'walltime': '*', 'procs': '*', 'jobid': 3}],
     )


component: "queue-manager.set_jobs", defer: False
  set_jobs(
     [{'errorpath': '/tmp', 'args': '', 'is_active': False, 'geometry': None, 'mode': 'smp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'procs': '512', 'walltime': '5', 'queue': 'jello', 'envs': {}, 'user_hold': False, 'jobid': 1, 'project': 'my_project', 'submittime': '60', 'state': 'user_hold', 'score': 50, 'location': '/tmp', 'nodes': '512', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'], 'user': '******'}],
     {'errorpath': '/tmp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'project': 'my_project', 'envs': {}, 'submittime': '60', 'state': 'user_hold', 'score': 50, 'location': '/tmp', 'nodes': '512', 'args': '', 'is_active': False, 'user': '******', 'procs': '512', 'walltime': '5', 'geometry': None, 'user_hold': False, 'jobid': 1, 'queue': 'myq', 'mode': 'smp', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']},
     gooduser,
     )


component: "queue-manager.set_jobs", defer: False
  set_jobs(
     [{'errorpath': '/tmp', 'args': '', 'is_active': False, 'geometry': None, 'mode': 'smp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'procs': '1024', 'walltime': '10', 'queue': 'bello', 'envs': {}, 'user_hold': False, 'jobid': 2, 'project': 'my_project', 'submittime': '60', 'state': 'user_hold', 'score': 55, 'location': '/tmp', 'nodes': '1024', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'], 'user': '******'}],
     {'errorpath': '/tmp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'project': 'my_project', 'envs': {}, 'submittime': '60', 'state': 'user_hold', 'score': 55, 'location': '/tmp', 'nodes': '1024', 'args': '', 'is_active': False, 'user': '******', 'procs': '1024', 'walltime': '10', 'geometry': None, 'user_hold': False, 'jobid': 2, 'queue': 'myq', 'mode': 'smp', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']},
     gooduser,
     )


component: "queue-manager.set_jobs", defer: False
  set_jobs(
     [{'errorpath': '/tmp', 'args': '', 'is_active': False, 'geometry': None, 'mode': 'smp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'procs': '1536', 'walltime': '15', 'queue': 'aaa', 'envs': {}, 'user_hold': False, 'jobid': 3, 'project': 'my_project', 'submittime': '60', 'state': 'user_hold', 'score': 40, 'location': '/tmp', 'nodes': '1536', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'], 'user': '******'}],
     {'errorpath': '/tmp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'project': 'my_project', 'envs': {}, 'submittime': '60', 'state': 'user_hold', 'score': 40, 'location': '/tmp', 'nodes': '1536', 'args': '', 'is_active': False, 'user': '******', 'procs': '1536', 'walltime': '15', 'geometry': None, 'user_hold': False, 'jobid': 3, 'queue': 'myq', 'mode': 'smp', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']},
     gooduser,
     )


"""

    stubout   = \
"""
GET_JOBS

jobid:1
jobid type: <type 'int'>
nodes:*
nodes type: <type 'str'>
notify:*
notify type: <type 'str'>
procs:*
procs type: <type 'str'>
project:*
project type: <type 'str'>
queue:*
queue type: <type 'str'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
walltime:*
walltime type: <type 'str'>
jobid:2
jobid type: <type 'int'>
nodes:*
nodes type: <type 'str'>
notify:*
notify type: <type 'str'>
procs:*
procs type: <type 'str'>
project:*
project type: <type 'str'>
queue:*
queue type: <type 'str'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
walltime:*
walltime type: <type 'str'>
jobid:3
jobid type: <type 'int'>
nodes:*
nodes type: <type 'str'>
notify:*
notify type: <type 'str'>
procs:*
procs type: <type 'str'>
project:*
project type: <type 'str'>
queue:*
queue type: <type 'str'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
walltime:*
walltime type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:1
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:512
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:512
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:jello
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:50
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:land
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:5
walltime type: <type 'str'>

New Job Info:

args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:1
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:512
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:512
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:myq
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:50
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:land
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:5
walltime type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:2
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:1024
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:1024
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:bello
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:55
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:house
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:10
walltime type: <type 'str'>

New Job Info:

args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:2
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:1024
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:1024
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:myq
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:55
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:house
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:10
walltime type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:3
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:1536
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:1536
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:aaa
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:40
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:dog
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:15
walltime type: <type 'str'>

New Job Info:

args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:3
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:1536
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:1536
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:myq
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:40
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:dog
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:15
walltime type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('qmove.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 41
0
def test_showres_arg_2():
    """
    showres test run: arg_2

    """

    args      = """--oldts"""

    cmdout    = \
"""Reservation  Queue  User      Start                     Duration  Passthrough  Partitions  Remaining  T-Minus  
===============================================================================================================
*            kebra  gooduser  Tue Mar 26 21:56:40 2013  00:08     Blocked      [P1-10]     15:56:40   active   
"""

    cmderr    = ''

    stubout   = \
"""
GET_IMPLEMENTATION


GET_RESERVATIONS

block_passthrough:*
block_passthrough type: <type 'str'>
cycle:*
cycle type: <type 'str'>
cycle_id:*
cycle_id type: <type 'str'>
duration:*
duration type: <type 'str'>
name:*
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
project:*
project type: <type 'str'>
queue:*
queue type: <type 'str'>
res_id:*
res_id type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = ( 
                       0, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('showres.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 42
0
def test_showres_debug():
    """
    showres test run: debug

    """

    args      = """--debug"""

    cmdout    = \
"""Reservation  Queue  User      Start                                 Duration  Passthrough  Partitions  Remaining  T-Minus  
===========================================================================================================================
*            kebra  gooduser  Tue Mar 26 21:56:40 2013 +0000 (UTC)  00:08     Blocked      [P1-10]     15:56:40   active   
"""

    cmderr    = \
"""
showres.py --debug

component: "system.get_implementation", defer: False
  get_implementation(
     )


component: "scheduler.get_reservations", defer: False
  get_reservations(
     [{'users': '*', 'block_passthrough': '*', 'duration': '*', 'cycle': '*', 'project': '*', 'cycle_id': '*', 'name': '*', 'queue': '*', 'start': '*', 'partitions': '*', 'res_id': '*'}],
     )


"""

    stubout   = \
"""
GET_IMPLEMENTATION


GET_RESERVATIONS

block_passthrough:*
block_passthrough type: <type 'str'>
cycle:*
cycle type: <type 'str'>
cycle_id:*
cycle_id type: <type 'str'>
duration:*
duration type: <type 'str'>
name:*
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
project:*
project type: <type 'str'>
queue:*
queue type: <type 'str'>
res_id:*
res_id type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = ( 
                       0, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('showres.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 43
0
def test_nodelist_debug():
    """
    nodelist test run: debug

    """

    args = """-d"""

    cmdout    = \
"""Host  Queue  State  Backfill
==============================
D1    QD1    good   -       
D2    QD2    bad    -       
D3    QD3    ugly   -       
U1    QU1    one    -       
U2    QU2    two    -       
U3    QU3    three  -       
"""

    cmderr    = \
"""
nodelist.py -d

component: "system.get_implementation", defer: False
  get_implementation(
     )


component: "system.get_node_status", defer: False
  get_node_status(
     )


component: "system.get_queue_assignments", defer: False
  get_queue_assignments(
     )


component: "system.get_backfill_windows", defer: False
  get_backfill_windows(
     )


component: "scheduler.get_reservations", defer: False
  get_reservations(
     [{'queue': '*', 'active': True, 'partitions': '*'}],
     )


"""

    stubout   = \
"""
GET_IMPLEMENTATION


GET_NODES_STATUS


GET_QUEUE_ASSIGNMENTS


GET_BACKFILL_WINDOWS


GET_RESERVATIONS

active:True
active type: <type 'bool'>
partitions:*
partitions type: <type 'str'>
queue:*
queue type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('nodelist.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 44
0
def test_nodelist_arg_2():
    """
    nodelist test run: arg_2

    """

    args = """arg1"""

    cmdout    = \
"""Host  Queue  State  Backfill
==============================
D1    QD1    good   -       
D2    QD2    bad    -       
D3    QD3    ugly   -       
U1    QU1    one    -       
U2    QU2    two    -       
U3    QU3    three  -       
"""

    cmderr    = \
"""No arguments needed
"""

    stubout   = \
"""
GET_IMPLEMENTATION


GET_NODES_STATUS


GET_QUEUE_ASSIGNMENTS


GET_BACKFILL_WINDOWS


GET_RESERVATIONS

active:True
active type: <type 'bool'>
partitions:*
partitions type: <type 'str'>
queue:*
queue type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('nodelist.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 45
0
def test_userres_arg_9():
    """
    userres test run: arg_9

    """

    args = """--debug p1 s1 s2 s3"""

    cmdout    = \
"""Setting new start time for for reservation 'p1': Tue Mar 26 17:01:40 2013
Setting new start time for for reservation 's1': Tue Mar 26 17:01:40 2013
Setting new start time for for reservation 's2': Tue Mar 26 17:01:40 2013
Setting new start time for for reservation 's3': Tue Mar 26 17:01:40 2013
"""

    cmderr    = \
"""
userres.py --debug p1 s1 s2 s3

component: "scheduler.get_reservations", defer: False
  get_reservations(
     [{'duration': '*', 'start': '*', 'cycle': '*', 'name': 'p1', 'users': '*'}, {'duration': '*', 'start': '*', 'cycle': '*', 'name': 's1', 'users': '*'}, {'duration': '*', 'start': '*', 'cycle': '*', 'name': 's2', 'users': '*'}, {'duration': '*', 'start': '*', 'cycle': '*', 'name': 's3', 'users': '*'}],
     )


component: "scheduler.set_reservations", defer: False
  set_reservations(
     [{'name': 'p1'}],
     {'start': 1364335300.0},
     gooduser,
     )


component: "scheduler.set_reservations", defer: False
  set_reservations(
     [{'name': 's1'}],
     {'start': 1364335300.0},
     gooduser,
     )


component: "scheduler.set_reservations", defer: False
  set_reservations(
     [{'name': 's2'}],
     {'start': 1364335300.0},
     gooduser,
     )


component: "scheduler.set_reservations", defer: False
  set_reservations(
     [{'name': 's3'}],
     {'start': 1364335300.0},
     gooduser,
     )


"""

    stubout   = \
"""
GET_RESERVATIONS

cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:p1
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s1
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s2
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s3
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>

SET_RESERVATIONS

name:p1
name type: <type 'str'>
start:1364335300.0
start type: <type 'float'>
user: gooduser

SET_RESERVATIONS

name:s1
name type: <type 'str'>
start:1364335300.0
start type: <type 'float'>
user: gooduser

SET_RESERVATIONS

name:s2
name type: <type 'str'>
start:1364335300.0
start type: <type 'float'>
user: gooduser

SET_RESERVATIONS

name:s3
name type: <type 'str'>
start:1364335300.0
start type: <type 'float'>
user: gooduser
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('userres.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 46
0
def test_nodeadm_down_2():
    """
    nodeadm test run: down_2

    """

    args      = """-d --down p1 p2 p3"""

    cmdout    = \
"""nodes marked down:
   D1
   D2
   D3
   D4
   D5

unknown nodes:
   p1
   p2
   p3
"""

    cmderr    = \
"""
nodeadm.py -d --down p1 p2 p3

component: "system.get_implementation", defer: False
  get_implementation(
     )


component: "system.nodes_down", defer: False
  nodes_down(
     ['p1', 'p2', 'p3'],
     gooduser,
     )


"""

    stubout   = \
"""
GET_IMPLEMENTATION


NODES_DOWN

whoami: gooduser
p1
p2
p3
"""

    stubout_file = "stub.out"

    expected_results = ( 
                       0, # Expected return status 
                       cmdout, # Expected command output
                       stubout, # Expected stub functions output
                       cmderr, # Expected command error output 
                       ) 

    testutils.save_testhook("")

    results = testutils.run_cmd('nodeadm.py',args,stubout_file) 
    result  = testutils.validate_results(results,expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 47
0
def test_qdel_debug_option():
    """
    qdel test run: debug_option

    """

    args = """-d 1"""

    cmdout    = \
"""      Deleted Jobs
JobID  User      
=================
1      gooduser  
"""

    cmderr    = \
"""
qdel.py -d 1

component: "queue-manager.del_jobs", defer: True
  del_jobs(
     [{'tag': 'job', 'user': '******', 'jobid': 1}],
     False,
     gooduser,
     )


"""

    stubout   = \
"""
DEL_JOBS

force:False
whoami:gooduser
jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('qdel.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 48
0
def test_qmove_queue_3():
    """
    qmove test run: queue_3

    """

    args = """1 2 3 4"""

    cmdout    = \
"""moved job 2 to queue 'kebra'
moved job 3 to queue 'kebra'
moved job 4 to queue 'kebra'
"""

    cmderr = ''

    stubout   = \
"""
GET_JOBS

jobid:2
jobid type: <type 'int'>
nodes:*
nodes type: <type 'str'>
notify:*
notify type: <type 'str'>
procs:*
procs type: <type 'str'>
project:*
project type: <type 'str'>
queue:*
queue type: <type 'str'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
walltime:*
walltime type: <type 'str'>
jobid:3
jobid type: <type 'int'>
nodes:*
nodes type: <type 'str'>
notify:*
notify type: <type 'str'>
procs:*
procs type: <type 'str'>
project:*
project type: <type 'str'>
queue:*
queue type: <type 'str'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
walltime:*
walltime type: <type 'str'>
jobid:4
jobid type: <type 'int'>
nodes:*
nodes type: <type 'str'>
notify:*
notify type: <type 'str'>
procs:*
procs type: <type 'str'>
project:*
project type: <type 'str'>
queue:*
queue type: <type 'str'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
walltime:*
walltime type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:2
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:512
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:512
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:jello
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:50
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:land
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:5
walltime type: <type 'str'>

New Job Info:

args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:2
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:512
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:512
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:1
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:50
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:land
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:5
walltime type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:3
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:1024
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:1024
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:bello
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:55
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:house
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:10
walltime type: <type 'str'>

New Job Info:

args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:3
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:1024
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:1024
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:1
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:55
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:house
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:10
walltime type: <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:4
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:1536
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:1536
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:aaa
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:40
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:dog
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:15
walltime type: <type 'str'>

New Job Info:

args:
args type: <type 'str'>
envs:{}
envs type: <type 'dict'>
errorpath:/tmp
errorpath type: <type 'str'>
geometry:None
geometry type: <type 'NoneType'>
has_completed:False
has_completed type: <type 'bool'>
is_active:False
is_active type: <type 'bool'>
jobid:4
jobid type: <type 'int'>
location:/tmp
location type: <type 'str'>
mode:smp
mode type: <type 'str'>
nodes:1536
nodes type: <type 'str'>
notify:[email protected]
notify type: <type 'str'>
outputpath:/tmp
outputpath type: <type 'str'>
procs:1536
procs type: <type 'str'>
project:my_project
project type: <type 'str'>
queue:1
queue type: <type 'str'>
resid:None
resid type: <type 'NoneType'>
score:40
score type: <type 'int'>
state:user_hold
state type: <type 'str'>
submittime:60
submittime type: <type 'str'>
tag:job
tag type: <type 'str'>
user:dog
user type: <type 'str'>
user_hold:False
user_hold type: <type 'bool'>
user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']
user_list type: <type 'list'>
walltime:15
walltime type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('qmove.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 49
0
def test_qdel_jobid_2():
    """
    qdel test run: jobid_2

    """

    args = """1 2 3 4"""

    cmdout    = \
"""      Deleted Jobs
JobID  User      
=================
1      gooduser  
2      gooduser  
3      gooduser  
4      gooduser  
"""

    cmderr = ''

    stubout   = \
"""
DEL_JOBS

force:False
whoami:gooduser
jobid:1
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
jobid:2
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
jobid:3
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
jobid:4
jobid type: <type 'int'>
tag:job
tag type: <type 'str'>
user:gooduser
user type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('qdel.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 50
0
def test_releaseres_arg_9():
    """
    releaseres test run: arg_9

    """

    args = """--debug p1 s1 s2 s3"""

    cmdout    = \
"""Released reservation 'p1' for partitions: ['p1', 'p2']
Released reservation 's1' for partitions: ['p1', 'p2']
Released reservation 's2' for partitions: ['p1', 'p2']
Released reservation 's3' for partitions: ['p1', 'p2']
"""

    cmderr    = \
"""
releaseres.py --debug p1 s1 s2 s3

component: "scheduler.get_reservations", defer: False
  get_reservations(
     [{'name': 'p1', 'partitions': '*'}, {'name': 's1', 'partitions': '*'}, {'name': 's2', 'partitions': '*'}, {'name': 's3', 'partitions': '*'}],
     )


component: "scheduler.release_reservations", defer: False
  release_reservations(
     [{'name': 'p1', 'partitions': '*'}, {'name': 's1', 'partitions': '*'}, {'name': 's2', 'partitions': '*'}, {'name': 's3', 'partitions': '*'}],
     gooduser,
     )


"""

    stubout   = \
"""
GET_RESERVATIONS

name:p1
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s1
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s2
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s3
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
\RELEASE_RESERVATIONS

name:p1
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s1
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s2
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
name:s3
name type: <type 'str'>
partitions:*
partitions type: <type 'str'>
user: gooduser
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('releaseres.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 51
0
def test_qselect_debug_flag():
    """
    qselect test run: debug_flag

    """

    args = """-d"""

    cmdout    = \
"""   The following jobs matched your query:
      100
"""

    cmderr    = \
"""
qselect.py -d

component: "queue-manager.get_jobs", defer: False
  get_jobs(
     [{'project': '*', 'queue': '*', 'state': '*', 'tag': 'job', 'mode': '*', 'nodes': '*', 'walltime': '*', 'jobid': '*'}],
     )


[{'errorpath': '/tmp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'project': 'my_project', 'envs': {}, 'submittime': '60', 'state': '*', 'score': 50, 'location': '/tmp', 'nodes': '512', 'args': '', 'is_active': False, 'user': '******', 'procs': '512', 'walltime': '5', 'geometry': None, 'user_hold': False, 'jobid': 100, 'queue': 'jello', 'mode': 'smp', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']}]
"""

    stubout   = \
"""
GET_JOBS

jobid:*
jobid type: <type 'str'>
mode:*
mode type: <type 'str'>
nodes:*
nodes type: <type 'str'>
project:*
project type: <type 'str'>
queue:*
queue type: <type 'str'>
state:*
state type: <type 'str'>
tag:job
tag type: <type 'str'>
walltime:*
walltime type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('qselect.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 52
0
def test_userres_arg_7():
    """
    userres test run: arg_7

    """

    args = """s1 s2 s3 s4"""

    cmdout    = \
"""Setting new start time for for reservation 's1': Tue Mar 26 17:01:40 2013
Setting new start time for for reservation 's2': Tue Mar 26 17:01:40 2013
Setting new start time for for reservation 's3': Tue Mar 26 17:01:40 2013
Setting new start time for for reservation 's4': Tue Mar 26 17:01:40 2013
"""

    cmderr = ''

    stubout   = \
"""
GET_RESERVATIONS

cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s1
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s2
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s3
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>
cycle:*
cycle type: <type 'str'>
duration:*
duration type: <type 'str'>
name:s4
name type: <type 'str'>
start:*
start type: <type 'str'>
users:*
users type: <type 'str'>

SET_RESERVATIONS

name:s1
name type: <type 'str'>
start:1364335300.0
start type: <type 'float'>
user: gooduser

SET_RESERVATIONS

name:s2
name type: <type 'str'>
start:1364335300.0
start type: <type 'float'>
user: gooduser

SET_RESERVATIONS

name:s3
name type: <type 'str'>
start:1364335300.0
start type: <type 'float'>
user: gooduser

SET_RESERVATIONS

name:s4
name type: <type 'str'>
start:1364335300.0
start type: <type 'float'>
user: gooduser
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('userres.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 53
0
def test_partlist_debug():
    """
    partlist test run: debug

    """

    args = """-d"""

    cmdout    = \
"""Name  Queue                                                  State  Backfill
==============================================================================
P10   zq:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq     idle   -       
P9    yours:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq  idle   -       
P8    myq:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq    idle   -       
P7    dito:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq   idle   -       
P6    hhh:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq    idle   -       
P5    bbb:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq    idle   -       
P4    aaa:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq    idle   -       
P3    bello:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq  idle   -       
P2    jello:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq  idle   -       
P1    kebra:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq  idle   -       
"""

    cmderr    = \
"""
partlist.py -d

component: "system.get_partitions", defer: True
  get_partitions(
     [{'queue': '*', 'scheduled': '*', 'state': '*', 'tag': 'partition', 'name': '*', 'backfill_time': '*', 'children': '*', 'functional': '*', 'draining': '*', 'size': '*'}],
     )


component: "scheduler.get_reservations", defer: False
  get_reservations(
     [{'queue': '*', 'active': True, 'partitions': '*'}],
     )


"""

    stubout   = \
"""
GET_PARTITIONS

plist: [{'queue': '*', 'scheduled': '*', 'state': '*', 'tag': 'partition', 'name': '*', 'backfill_time': '*', 'children': '*', 'functional': '*', 'draining': '*', 'size': '*'}]

GET_RESERVATIONS

active:True
active type: <type 'bool'>
partitions:*
partitions type: <type 'str'>
queue:*
queue type: <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('partlist.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 54
0
def test_boot_block_reboot_3():
    """
    boot-block test run: reboot_3

    """

    args = """--reboot --jobid 1 --block b"""

    cmdout    = \
"""Block free on b initiated.
Block b successfully freed.
status 1
status 2
status 3
Boot for location b complete.
"""

    cmderr = ''

    stubout   = \
"""
INITIATE_PROXY_FREE

block: b, type = <type 'str'>
user: gooduser
jobid: 1, type = <type 'int'>

GET_BLOCK_BGSCHED_STATUS

block: b, type = <type 'str'>

INITIATE_PROXY_BOOT

block: b, type = <type 'str'>
user: gooduser
jobid: 1, type = <type 'int'>

GET_BOOT_STATUSES_AND_STRINGS

block: b, type = <type 'str'>

GET_BOOT_STATUSES_AND_STRINGS

block: b, type = <type 'str'>

REAP_BOOT

block: b, type = <type 'str'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('boot-block.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result
Ejemplo n.º 55
0
def test_schedctl_combo_8():
    """
    schedctl test run: combo_8

    """

    args = """--inherit 1.1 --score 1.1 1 2 3 4"""

    cmdout    = \
"""updating scores for jobs: 1, 2, 3, 4
updating inheritance fraction for jobs: 1, 2, 3, 4
"""

    cmderr = ''

    stubout   = \
"""
ADJUST_JOB_SCORES

jobid:1
jobid type: <type 'int'>
jobid:2
jobid type: <type 'int'>
jobid:3
jobid type: <type 'int'>
jobid:4
jobid type: <type 'int'>
new score: 1.1, type = <type 'str'>

SET_JOBS


Original Jobs:

user: gooduser
jobid:1
jobid type: <type 'int'>
jobid:2
jobid type: <type 'int'>
jobid:3
jobid type: <type 'int'>
jobid:4
jobid type: <type 'int'>

New Job Info:

dep_frac:1.1
dep_frac type: <type 'float'>
"""

    stubout_file = "stub.out"

    expected_results = (
        0,  # Expected return status 
        cmdout,  # Expected command output
        stubout,  # Expected stub functions output
        cmderr,  # Expected command error output 
    )

    testutils.save_testhook("")

    results = testutils.run_cmd('schedctl.py', args, stubout_file)
    result = testutils.validate_results(results, expected_results)

    testutils.remove_testhook()

    correct = 1
    assert result == correct, "Result:\n%s" % result