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)
##################################################### # 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)
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)