Exemplo n.º 1
0
def itoolkit_run_command(command):
    conn = dbi.connect()
    itransport = iDB2Call(conn)
    itool = iToolKit()
    itool.add(iCmd('command', command, {'error': 'on'}))
    itool.call(itransport)

    rc = IBMi_COMMAND_RC_UNEXPECTED
    out = ''
    err = ''

    command_output = itool.dict_out('command')

    if 'success' in command_output:
        rc = IBMi_COMMAND_RC_SUCCESS
        out = command_output['success']
    elif 'error' in command_output:
        command_error = command_output['error']
        if 'joblog' in command_error:
            rc = IBMi_COMMAND_RC_ERROR
            err = command_error['joblog']
        else:
            # should not be here, must xmlservice has internal error
            rc = IBMi_COMMAND_RC_ITOOLKIT_NO_KEY_JOBLOG
            err = "iToolKit result dict does not have key 'joblog', the output is %s" % command_output
    else:
        # should not be here, must xmlservice has internal error
        rc = IBMi_COMMAND_RC_ITOOLKIT_NO_KEY_ERROR
        err = "iToolKit result dict does not have key 'error', the output is %s" % command_output

    return rc, out, err
def test_idb2call_with_uid_pwd(mocker, database_callproc):

    ibm_db = mocker.patch('itoolkit.db2.idb2call.ibm_db', create=True)
    connect = mocker.patch('itoolkit.db2.idb2call.connect', create=True)

    class MockConn(object):
        pass

    ibm_db.IBM_DBConnection = MockConn
    connect.return_value = database_callproc

    user = '******'
    password = '******'

    transport = iDB2Call(user, password)
    tk = iToolKit()
    out = transport.call(tk)

    assert isinstance(out, (bytes, str))

    kwargs = dict(database='*LOCAL', user=user, password=password)
    connect.assert_called_once_with(**kwargs)

    cursor = database_callproc.cursor()

    cursor.callproc.assert_called_once()
    cursor.__iter__.assert_called_once()
def test_idb2call_transport_minimal_execute(database_execute):
    transport = iDB2Call(database_execute)
    tk = iToolKit()
    out = transport.call(tk)

    assert isinstance(out, (bytes, str))

    cursor = database_execute.cursor()

    cursor.execute.assert_called_once()
    cursor.__iter__.assert_called_once()
def test_idb2call_with_ibm_db(mocker, database_callproc):

    ibm_db = mocker.patch('itoolkit.db2.idb2call.ibm_db', create=True)
    Connection = mocker.patch('itoolkit.db2.idb2call.Connection', create=True) # noqa N806

    class MockConn(object):
        pass

    ibm_db.IBM_DBConnection = MockConn
    Connection.return_value = database_callproc

    conn = MockConn()
    transport = iDB2Call(conn)
    tk = iToolKit()
    out = transport.call(tk)

    assert isinstance(out, (bytes, str))

    Connection.assert_called_once_with(conn)

    cursor = database_callproc.cursor()

    cursor.callproc.assert_called_once()
    cursor.__iter__.assert_called_once()
from itoolkit import iCmd, iData, iPgm, iToolKit
from itoolkit.db2.idb2call import iDB2Call

itransport = iDB2Call()
itool = iToolKit()

itool.add(iPgm('my_key', 'STRJVM', {'error': 'on', 'lib': 'QGPL'}))

itool.call(itransport)
Exemplo n.º 6
0
def getNonconfigureDisk():
    conn = ibmi_util.itoolkit_init()
    itransport = iDB2Call(conn)
    itool = iToolKit()
    itool.add(
        iPgm('qyasrdi', 'QYASRDI').addParm(
            iDS('DMIN0100_t', {
                'len': 'dmilen'
            }).addData(iData('dniRet', '10i0', '')).addData(
                iData('dmiAvl', '10i0',
                      '')).addData(iData('dmiOfset', '10i0', '')).addData(
                          iData('dmiNbr', '10i0', '',
                                {'enddo': 'mycnt'})).addData(
                                    iData('dmiLen', '10i0', '')).addData(
                                        iData('dmiRes', '10i0', '')).
            addData(
                iDS('res_t', {
                    'dim': '999',
                    'dou': 'mycnt'
                }).addData(iData(
                    'resDurn', '10a',
                    '')).addData(iData(
                        'resDuff', '1a',
                        '')).addData(iData('resTrnaswdu', '10a', '')).addData(
                            iData('resTnawdu', '4a', '')).addData(
                                iData('resDuaindpsf', '1a', '')).addData(
                                    iData('resDuaiedpsf', '1a', '')).addData(
                                        iData('resRes', '5a', '')).addData(
                                            iData('resDpsn', '10i0', '')).
                addData(iData('resCaadps', '10i0', '')))).addParm(
                    iData('rcvlen', '10i0', '', {'setlen': 'dmilen'})).addParm(
                        iData('fmtnam', '10a', 'DMIN0100')).addParm(
                            iData('dmiDurna', '10a', '*UNCONFIG')).addParm(
                                iData('dmiNbr', '10i0', '1')).addParm(
                                    iDS('ERRC0100_t', {
                                        'len': 'errlen'
                                    }).addData(iData(
                                        'errRet', '10i0', '')).addData(
                                            iData('errAvl', '10i0',
                                                  '')).addData(
                                                      iData(
                                                          'errExp', '7A', '',
                                                          {'setlen': 'errlen'
                                                           })).addData(
                                                               iData(
                                                                   'errRsv',
                                                                   '1A', ''))))
    itool.call(itransport)
    qyasrdi = itool.dict_out('qyasrdi')
    diskList = ''
    if 'success' in qyasrdi:
        DMIN0100_t = qyasrdi['DMIN0100_t']
        if int(DMIN0100_t['dmiNbr']) > 0:
            res_t = DMIN0100_t['res_t']
            if int(DMIN0100_t['dmiNbr']) == 1:
                diskList = res_t['resDurn']
            else:
                for rec in res_t:
                    diskList += rec['resDurn'] + ' '
        if diskList.endswith(' '):
            diskList = diskList[:-1]
    return diskList
Exemplo n.º 7
0
def test_db2_import_ok(database):
    from itoolkit.db2.idb2call import iDB2Call

    with pytest.deprecated_call():
        iDB2Call(database)