Your browser was unable to load all of the resources. They may have been blocked by your firewall, proxy or browser configuration.
Press Ctrl+F5 or Ctrl+Shift+R to have your browser try again.

Creating resources #3474

mroche ·
I would like to use the Pre-Queue Script to check for the existence of a resource where the name is derived from the configuration name and if it does not exist to create one. Is that possible?
  • replies 3
  • views 1688
  • stars 0
robinshen ADMIN ·
Yes this is possible via below pre-queue script:

groovy:

import com.pmease.quickbuild.entitymanager.ResourceManager;
import com.pmease.quickbuild.model.Resource;
import com.pmease.quickbuild.resource.*;
import com.pmease.quickbuild.resource.nodeselection.*;
import com.pmease.quickbuild.grid.*;

if (ResourceManager.instance.get(configuration.name) == null) {
def resource = new Resource();
resource.name = configuration.name;
def resourceProvider = new ResourceProvider();
resourceProvider.nodeSelection = new AnyBuildAgentSelection();
resourceProvider.resourceCount = 1;
resource.providers.add(resourceProvider);
ResourceManager.instance.save(resource, null);
}
udvs ·

This does not work for QuickBuild version 13.0.22.
Got the following error: "unable to resolve class ResourceProvider".
How can I create resources via script at QuickBuild 13?

robinshen ADMIN ·

Please use below code instead for QB13:

groovy:
import com.pmease.quickbuild.entitymanager.ResourceManager;
import com.pmease.quickbuild.model.Resource;
import com.pmease.quickbuild.resource.*;
import com.pmease.quickbuild.resource.nodeselection.*;
import com.pmease.quickbuild.grid.*;

if (ResourceManager.instance.get(configuration.name) == null) {
  def resource = new Resource();
  resource.name = configuration.name;
  def nodeResourceType = new NodeResourceType();
  resource.type = nodeResourceType;
  def resourceProvider = new NodeResourceProvider();
  resourceProvider.nodeSelection = new AnyBuildAgentSelection();
  resourceProvider.resourceCount = 1;
  nodeResourceType.providers.add(resourceProvider);
  ResourceManager.instance.save(resource, null);
}