Exemple #1
0
def _init(dispatcher, plugin):
    plugin.register_schema_definition(
        'Ipmi', {
            'type': 'object',
            'additionalProperties': False,
            'properties': {
                'id': {
                    'type': 'integer'
                },
                'password': {
                    'type': 'string',
                    'maxLength': 20
                },
                'dhcp': {
                    'type': 'boolean'
                },
                'address': {
                    '$ref': 'Ipv4Address'
                },
                'netmask': {
                    'type': 'integer'
                },
                'gateway': {
                    'anyOf': [{
                        '$ref': 'Ipv4Address'
                    }, {
                        'type': 'null'
                    }]
                },
                'vlan_id': {
                    'type': ['integer', 'null']
                }
            }
        })

    plugin.register_provider('ipmi', IPMIProvider)
    plugin.register_task_handler('ipmi.update', ConfigureIPMITask)

    # Load ipmi kernel module
    try:
        kld.kldload('/boot/kernel/ipmi.ko')
    except OSError as err:
        if err.errno != errno.EEXIST:
            logger.warning('Cannot load IPMI module: %s', str(err))
            logger.warning('IPMI unavailable')
            return

    # Scan available channels
    for i in range(1, 17):
        try:
            system('/usr/local/bin/ipmitool', 'lan', 'print', str(i))
        except SubprocessException:
            continue

        channels.append(i)
Exemple #2
0
async def setup(middleware):

    try:
        kld.kldload('/boot/kernel/ipmi.ko')
    except OSError as e:
        # Only skip if not already loaded
        if e.errno != errno.EEXIST:
            middleware.logger.warn(f'Cannot load IPMI module: {e}')
            return

    # Scan available channels
    for i in range(1, 17):
        try:
            await run('/usr/local/bin/ipmitool', 'lan', 'print', str(i))
        except subprocess.CalledProcessError:
            continue
        channels.append(i)
Exemple #3
0
async def setup(middleware):

    try:
        kld.kldload('/boot/kernel/ipmi.ko')
    except OSError as e:
        # Only skip if not already loaded
        if e.errno != errno.EEXIST:
            middleware.logger.warn(f'Cannot load IPMI module: {e}')
            return

    # Scan available channels
    for i in range(1, 17):
        try:
            await run('/usr/local/bin/ipmitool', 'lan', 'print', str(i))
        except subprocess.CalledProcessError:
            continue
        channels.append(i)
Exemple #4
0
def _init(dispatcher, plugin):
    plugin.register_schema_definition('ipmi', {
        'type': 'object',
        'additionalProperties': False,
        'properties': {
            'id': {'type': 'integer'},
            'password': {
                'type': 'string',
                'maxLength': 20
            },
            'dhcp': {'type': 'boolean'},
            'address': {'$ref': 'ipv4-address'},
            'netmask': {'type': 'integer'},
            'gateway': {
                'anyOf': [
                    {'$ref': 'ipv4-address'},
                    {'type': 'null'}
                ]
            },
            'vlan_id': {'type': ['integer', 'null']}
        }
    })

    plugin.register_provider('ipmi', IPMIProvider)
    plugin.register_task_handler('ipmi.update', ConfigureIPMITask)

    # Load ipmi kernel module
    try:
        kld.kldload('/boot/kernel/ipmi.ko')
    except OSError as err:
        if err.errno != errno.EEXIST:
            logger.warning('Cannot load IPMI module: %s', str(err))
            logger.warning('IPMI unavailable')
            return

    # Scan available channels
    for i in range(1, 17):
        try:
            system('/usr/local/bin/ipmitool', 'lan', 'print', str(i))
        except SubprocessException:
            continue

        channels.append(i)