Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.

3. Getting Data for Single and Multiple Resources


When you run any sort of operation or function, you frequently have to pull the results from that operation, the data, into another function.
For example, this exports and writes whatever the results from the data variable was:
exporter.write(data.get(0))
Copy to Clipboard Toggle word wrap
Using get(0) takes the first object that was returned and uses it.
There can be instances when there are a lot of objects returned that could potentially be used in the next step of the script, and there are a couple of different ways to handle it.
One option, instead of get(0), is to work incrementally through each object in a list. For example, this gets the data for each metric definition (i) for a resource.

Example 3. get(i)

if( mdefs != null ) {
  if( mdefs.size() > 1 ) {
     for( i =0; i < mdefs.size(); ++i) {
          mdef = mdefs.get(i);
          var data = MeasurementDataManager.findDataForResource(resources.get(0).id,[mdef.id],start,end,"")

	  exporter.write(data.get(0));
     }
  }
  ...8<...
Copy to Clipboard Toggle word wrap
Other objects can be sent to an array, and then the operation or task can be performed for each object in that array. This example searches for all JBoss AS 5 servers, sends the results to an array, and then performs a restart operation on each server.

Example 4. An Array

//find the resources
//use a plugin filter to make sure they are all of the same type
criteria = new ResourceCriteria();
criteria.addFilterPluginName('JBossAS5')

var resources = ResourceManager.findResourcesByCriteria(criteria).toArray();
var resType = ResourceTypeManager.getResourceTypeByNameAndPlugin('JBossAS Server', 'JBossAS5');

// go through the array
var idx=0;
var jbossServers = new Array();

for( i in resources ) {
     if( resources[i].resourceType.id == resType.id ) {
          jbossServers[idx] = resources[i];
          idx = idx + 1;     
     }
}

// restart the resources
for( a in resources ) {
     var jboss = ProxyFactory.getResource(jbossServers[a].id);
     jboss.restart()
}
Copy to Clipboard Toggle word wrap
The util.js support script has a foreach function that also iterates cleanly through arrays, collections, and maps, as well as generic objects.
Which method you use to handle multiple objects — or whether you even want to handle multiple objects — depends on the type of information and the purpose of the script. These are just some options to keep in mind.
Nach oben
Red Hat logoGithubredditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat Dokumentation

Wir helfen Red Hat Benutzern, mit unseren Produkten und Diensten innovativ zu sein und ihre Ziele zu erreichen – mit Inhalten, denen sie vertrauen können. Entdecken Sie unsere neuesten Updates.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

Theme

© 2025 Red Hat