ossiejhmoore icon

OSCript : List All Agents

ossiejhmoore | PRO | 07/26/12 01:30:32 PM UTC | 0 ⭐ | 266 👁️ | Never ⏰ | []
Java |

1.47 KB

|

None

|

0 👍

/

0 👎

function void ListAllAgentIds()
 
    Object  osAgents
    Object  osNext
    String  path
    List    children
    List    descendants
    Integer i
    List    usedIds = {}
    
    //get root "Agents" node by looping through the children
    //of AgentController's parent and finding the "Agents" ospace
    //(probably a better way do do this)
    children = OS.Children( $llagent.AgentController.OSParent )
    for i = 1 to Length(children)
        osNext = children[ i ]
        if (osNext.OSName == "Agents")
            osAgents = osNext
            children = Undefined
            break
        end
    end
    
    //build list of all agents with valid agent id.
    //might as well echo the id and full path to the agent
    //while i am at it.
    descendants = $kernel.OSpaceUtils.GetDescendants(osAgents)
    for i = 1 to Length(descendants)
        osNext = descendants[ i ]
        if ((IsDefined(osNext.fAgentId)) && (osNext.fAgentId != 0))
            usedIds = {@usedIds, osNext.fAgentId}
            echo(osNext.fAgentId, " ", GetAgentPath(osNext))
        end
    end
    descendants = Undefined
    
    //sort used agent ids
    usedIds = List.Sort(usedIds)
    
    //print out used ids
    for i = 1 to Length(usedIds)
        echo(usedIds[ i ])
    end
 
end
 
function String GetAgentPath(Object osAgent)
 
    Object osNext
    String path
    Boolean done
    
    osNext = osAgent
    done = false
    while(!done)
        done = (osNext.OSName == "Agents")
        if (Length(path) > 0) 
            path = Str.Format("%1:%2", osNext.OSName, path)
        else
            path = osNext.OSName
        end
        osNext = osNext.OSParent
    end
    return path
end

Comments