Is there a convenient way to bulk upgrade probes? I realize I can click-and-drag to groups, but I only want to upgrade systems that have the probe installed already.
Have you tried dragging the probe you would like to upgrade onto your hub or domain and checked the "update only" checkbox? It's my understanding that this will only upgrade the probe on the robots where it currently exists.
If you open the Distribution application (from the Windows Start menu or the Tools menu in Infrastructure Manager), you can create a task and select the targets based on the existence of a probe installed on them. When you upgrad a probe, you can just distribute it to robots that are already running it.
I do this by using a script and you can add logic how you want and create distsrv jobs within seconds. Below is an example script that queries the DB for robots checks them if they are old robot version it adds a job to deploy robot_update. You will have to fill in the SQL info and distsrv address to use and it should work just be sure to make the SQL query only return robots you want to include. Be sure to check the query and i recommend finding some way to only do certain chunks at a time either by hub or OS or subnet or whatever it be. Once ran you can track the job or cancel it via the DistSrv probe GUI.
--Create Connection String to the NimbusSLM DBlocal cs = "Provider=SQLOLEDB;Initial Catalog=NimbusSLM;Data Source=192.168.1.1;User Id=sqluser;Password=sqlpassword;Network Library=dbmssocn;Language=us_english"--Open the Connection Stringret = database.open(cs)if ret ~= nil and ret == 0 thenprint("DB Connection opened Successfully")--Specify the DistSrv Robot Addressstrdistsrvaddress = "/NimsoftNOC/NOC_HUB_01/nocserverwithdistsrv"--Specify the Query to pull Robot information to loop for changesquery = "SELECT robot, address FROM [dbo].[CM_NIMBUS_ROBOT] WHERE robot_active = 1 AND hub like '%HUB01%'"--Set variable to the returned table of Robotslocal robotslist = database.query(query)print("Robots to check for updating = "..#robotslist)-- Now loop Robots and do workfor j=1,#robotslist do--Set the Robot address for updateslocal strrobotaddress = robotslist[j].address--Get the Problist from the Controller Probelocal getprobes = nimbus.request(robotslist[j].address.."/controller","probe_list")if getprobes ~= nil then--Get the controller probe version which is the robot versionlocal probeversion = getprobes.controller.pkg_versionprint("Robot = "..robotslist[j].robot.." Current Version = "..getprobes.controller.pkg_version)--Do the work if the version matches criteria--if probeversion ~= nil and probeversion ~= "5.63" thenprint("This Robot needs updated to the latest version!")--Create and fill PDS Package for use with sending Callbacks to Add Jobsargs = pds.create()print(strdistsrvaddress)--Job ID Must be unique per deployment as it groups the dists by this job idpds.putString(args,"job_id","Robot Update Deployment JOB")--Specify a Job Descriptionpds.putString(args,"job_description","This Deployment is to update the Robots from older versions to the newest version")--This is the package to deploypds.putString(args,"package","robot_update")--This is the version of the package to deploy--pds.putString(args,"version","")--This is the full address of the robot to distsrv sends probe packagepds.putString(args,"robot",strrobotaddress)--This if 1 only sends if the package already exists, 0 it always updatespds.putString(args,"update","0")--This is the time in unix time to start, if less than current it starts immediatelypds.putString(args,"start_at","1000")--Set the variable and send the PDS Args to Job_addlocal distsrv_job_add = nimbus.request(strdistsrvaddress.."/distsrv","job_add",args)--Delte the PDS after its used for memory and cleanuppds.delete(args)--endendendelseprint("DB Connection FAILED!")end
VictorG wrote:Have you tried dragging the probe you would like to upgrade onto your hub or domain and checked the "update only" checkbox? It's my understanding that this will only upgrade the probe on the robots where it currently exists.
Winner! Thanks for your help!
I can't say that the other options didn't work as I didn't try them out - but this one is simple and effective.
Retrieving data ...