streamtool chresourcespec

Usage

chresourcespec [-d,--domain-id <did>] [-i,--instance-id <instance>] [--noprompt] --numresources <number[,tag,...]["[exclusive]" | "[shared]"] where number > 0> [-U,--User <user>] [-h,--help] [--trace <level>] [-v,--verbose <level>] [--zkconnect {<host>:<port>},... | --embeddedzk] <resourceSpecId>

The streamtool chresourcespec command changes the specification for a resource in an instance.

Authority

You must have read, write, and search authority for the hosts instance object. By default, the DomainAdministrator and InstanceAdministrator roles have this authority. For more information about access control lists, see streamtool getacl.

Description

There is one resource specification identifier for each --numresources option that you specified when you created the instance or allocated resources to the instance. To get the list of resources and resource specification identifiers for the instance, use the streamtool getresourcestate command.

You can use the streamtool chresourcespec command to change the --numresources details by using the appropriate resource specification number. Streams allocates new resources from the domain to match the new --numresources specification; it does not use existing resources in the instance to satisfy this specification. If you change the resource specifications such that some resources that are allocated to the instance no longer match any specifications for that instance, they are deallocated from the instance when it restarts.

Adding an asterisk (*) to a tag name indicates that you want a resource with the tag restricted.

  • The tags that you specify in this command must exist. For more information about creating tags, see streamtool man mkhosttag.
  • The changes that you specify in this command occur when the instance restarts.

To remove a resource specification from the instance, use the streamtool rmresourcespec command.

Options

-d,--domain-id <did>
Specifies the domain identifier.

If you do not specify this option, Streams uses the domain name that is set in the STREAMS_DOMAIN_ID environment variable. By default, that domain name is StreamsDomain. If you are using the interactive streamtool interface, it uses the name of the active domain for the current streamtool session or else it prompts you for the domain name.

The active domain for the current streamtool session is set every time that you successfully run a streamtool command with a -d or --domain-id option. Alternatively, you can run the streamtool domain command in the interactive interface.

--embeddedzk

Specifies to use the embedded copy of ZooKeeper. This option is not supported within the interactive streamtool interface.

If you are not using the interactive streamtool interface and you do not specify either this option or the --zkconnect option, Streams uses the ZooKeeper connection that is associated with the active domain or the domain that is specified in the --domain-id option. Streams determines which connection maps to the domain by using cached information about the domains. In this scenario, if the domain identifier is not unique in the Streams configuration cache, the command fails.

-h,--help
Specifies to show the command syntax.
-i,--instance-id <instance>
Specifies the instance identifier.

If you do not specify this option, Streams uses the instance identifier that is set in the STREAMS_INSTANCE_ID environment variable. By default, that instance identifier is StreamsInstance. If you are using the interactive streamtool interface, it tries to use an instance ID that you specified in a previous command. If no such value is found, the command uses the STREAMS_INSTANCE_ID environment variable. Alternatively, you can run the streamtool instance command in the interactive interface.

--noprompt
Specifies to suppress confirmation prompts.
--numresources <number[,tag,...]["[exclusive]" | "[shared]"] where number > 0>
Specifies to get the designated number of available resources from the domain. You can also specify optional resource selection criteria.

The --numresources specification syntax is:

number-of-resources,optional-selection-tags optional TagRestriction marker[optional-sharing-mode]
where number-of-resources is a number greater than 0, optional-selection-tags is ',tag,...', optional TagRestriction marker is * (asterisk), and optional-sharing-mode is [shared] or [exclusive].

Examples of --numresources specifications are:

  • --numresources 2, which is a shared request for two hosts with the 'execution' or no tags.
  • --numresources 2[exclusive], which is an exclusive request.
  • --numresources 1,ingest, which is a shared request for one host with the 'ingest' tag.
  • --numresources 1,ingest*, which is a shared request for one host with the 'ingest' tag and a TagRestriction between the new resource and this tag.
  • --numresources 1,ingest[exclusive], which is an exclusive request.

The specification can indicate a sharing mode: [shared] or [exclusive]. Specifications are shared by default. Resources that are selected by a shared specification can be used to satisfy other shared specifications. When an instance adds a resource by using an exclusive specification, the resource cannot be used by other instances in the domain.

The specification can indicate a restriction between a tag and a resource. An asterisk (*) on the tag name provides the marker for this TagRestriction.

The resource selection processing strives to select the least number of available resources that satisfy all of the --numresources specifications.

--trace <level>
Specifies the trace setting. The following valid levels are listed in order of increasing verbosity, which is to say that the first level in the list generates the least amount of information:
  • off
  • error
  • warn
  • info
  • debug
  • trace
The default value is off.
-U,--User <user>
Specifies an Streams user ID that has authority to run the command.
-v,--verbose <level>
Specifies to provide more detailed command output. The verbosity level can be 0-3, where 0 disables detailed reporting and each increment provides more detailed output.
--zkconnect <{<host>:<port>},...>

The name of one or more host and port pairs that specify the configured ZooKeeper servers. This option is not supported within the interactive streamtool interface.

If you are not using the interactive streamtool interface and you do not specify this option, Streams tries to use:

  1. The --embeddedzk option
  2. The value from the STREAMS_ZKCONNECT environment variable
  3. A ZooKeeper connection string that is derived from cached information about the current domain.

Arguments

resourceSpecId
Specifies the resource specification identifier.