示例#1
0
        rOut = sys.stdout
    api = zenApiLib.zenConnector(cfgFilePath=args['configFilePath'],
                                 section=args['configSection'],
                                 loglevel=args['loglevel'])
    api.setRouter('DeviceRouter')
    if args['dontMoveGraphData']:
        retainData = False
    else:
        retainData = True

    # Rename specified device
    deviceName = args['deviceName']
    newDeviceName = args['newDeviceName']
    results = ZenDeviceUidFinder(name=deviceName)
    if results.getCount() != 1:
        print >> sys.stderr, 'Skipping "{}", found {} devices.'.format(
            deviceName, results.getCount())
        sys.exit()

    devUid = results.getFirstUid()
    apiResult = api.callMethod('renameDevice',
                               uid=devUid,
                               newId=newDeviceName,
                               retainGraphData=retainData)
    if not apiResult['result']['success']:
        print >> sys.stderr, 'Renaming API call failed'
        pprint(apiResult)
    else:
        print >> rOut, "Renaming {} to {} initiated - Keeping data {}".format(
            deviceName, newDeviceName, retainData)
示例#2
0
#####################################################
# This script is a basic example of how to remove a   #
# device into Zenoss Resource Manager using the     #
# Zenoss JSON API and the Zenoss RM API Library    #
#####################################################

import sys
import logging
import zenApiLib
from zenApiDeviceRouterHelper import ZenDeviceUidFinder

device_id = sys.argv[1]

response = ZenDeviceUidFinder(name=device_id)

if response.getCount() == 1:
    device_uid = response.getFirstUid()
else:
    print 'Found %s devices.' % (response.getCount())
    sys.exit(1)

dr = zenApiLib.zenConnector(routerName='DeviceRouter')

delete_response = dr.callMethod('removeDevices',
                                uids=device_uid,
                                hashcheck="",
                                action="delete")

if delete_response['result']['success'] == True:
    print 'Successfully deleted device: %s' % (device_uid)
示例#3
0
        except:
            fail()
    data = {'deviceName': device,
            'deviceClass': "/zport/dmd{}".format(deviceClass)}
    return data


def moveDevice(**data):
    '''
    This makes the API call and returns the result
    '''
    dr = zenApiLib.zenConnector(routerName = router)
    response = dr.callMethod(method, **data)
    if response.get('result', {}).get('success', False) is False:
        raise Exception('API call returned unsucessful result.\n%s' % response)
    return response['result']


if __name__ == '__main__':
    '''
    Build the args and make the API call to add the device
    '''
    data = buildArgs()
    deviceFindResults = ZenDeviceUidFinder(name=data['deviceName'])
    if deviceFindResults.getCount() > 1:
        raise Exception('Multiple devices found that matched "%s"' % data['deviceName'])
    data['uid'] = deviceFindResults.getFirstUid()
    api_response = moveDevice(uids=data['uid'], target=data['deviceClass'])
    print(data)
    print(api_response)