Red Hat Training

A Red Hat training course is available for Red Hat JBoss Operations Network

18.5. グループへのリソースの追加: addMember.js

スクリプトを設定します。これは、スクリプトに必要な 3 つの引数を特定します。
  • リソースを追加するグループ GroupName
  • 追加するリソース名のresourceName。これは検索条件の 1 つです。
  • 追加するリソース タイプの resourceTypeName。これは検索条件の 1 つです。
これには、引数で指定されたグループを検索する検索も含まれます。
function usage() {
        println("Usage: addMember groupName resourceName resourceTypeName");
        throw "Illegal arguments";
}

if( args.length < 3 ) usage();
var groupName = args[0];
var resourceName = args[1];
var resourceTypeName = args[2];

groupcriteria = new ResourceGroupCriteria();
groupcriteria.addFilterName(groupName);

var groups = ResourceGroupManager.findResourceGroupsByCriteria(groupcriteria);
if( groups != null ) {
  if( groups.size() > 1 ) {
        println("Found more than one group.");
  }
  else if( groups.size() == 1 ) {
     group = groups.get(0);
  }
}
グループに追加するリソースを検索します。このスクリプトは、グループに単一のリソースのみを追加するように設計されているため、指定の検索基準 resourceName および resourceTypeName は、単一のリソースのみに一致するのに十分な仕様である 必要 があります。
criteria = new ResourceCriteria();
criteria.addFilterName(resourceName);
criteria.addFilterResourceTypeName(resourceTypeName);

var resources = ResourceManager.findResourcesByCriteria(criteria);
if( resources != null ) {
  if( resources.size() > 1 ) {
        println("Found more than one JBossAS Server instance. Try to specialize.");
     for( i =0; i < resources.size(); ++i) {
          var resource = resources.get(i);
          println("  found " + resource.name );
     }
  }
  else if( resources.size() == 1 ) {
     resource = resources.get(0);
     println("Found one JBossAS Server instance. Trying to add it.");
     println("  " + resource.name );
        ResourceGroupManager.addResourcesToGroup(group.id, [resource.id]);
     println("  Added to " + group.name + "!");
  }
  else {
        println("Did not find any JBossAS Server instance matching your pattern. Try again.");
  }
}
このスクリプトの実行時に、見つかった JBoss インスタンスの名前とグループに追加された内容が出力されます。
[jsmith@server cli]$ ./wrapper.sh addMember myGroup "JBossAS App 1" "JBossAS Server"
Remote server version is: 3.0.1.GA (b2cb23b:859b914)
Login successful
Found one JBossAS Server instance. Trying to add it.
  AS server.example.com JBossAS App 1
  Added to myGroup!