Class: Google::Apis::BatchV1::TaskGroup

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/batch_v1/classes.rb,
lib/google/apis/batch_v1/representations.rb,
lib/google/apis/batch_v1/representations.rb

Overview

A TaskGroup contains one or multiple Tasks that share the same Runnable but with different runtime parameters.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ TaskGroup

Returns a new instance of TaskGroup.



1889
1890
1891
# File 'lib/google/apis/batch_v1/classes.rb', line 1889

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#nameString

Output only. TaskGroup name. The system generates this field based on parent Job name. For example: "projects/123456/locations/us-west1/jobs/job01/ taskGroups/group01". Corresponds to the JSON property name

Returns:

  • (String)


1837
1838
1839
# File 'lib/google/apis/batch_v1/classes.rb', line 1837

def name
  @name
end

#parallelismFixnum

Max number of tasks that can run in parallel. Default to min(task_count, 1000). Field parallelism must be 1 if the scheduling_policy is IN_ORDER. Corresponds to the JSON property parallelism

Returns:

  • (Fixnum)


1843
1844
1845
# File 'lib/google/apis/batch_v1/classes.rb', line 1843

def parallelism
  @parallelism
end

#permissive_sshBoolean Also known as: permissive_ssh?

When true, Batch will configure SSH to allow passwordless login between VMs running the Batch tasks in the same TaskGroup. Corresponds to the JSON property permissiveSsh

Returns:

  • (Boolean)


1849
1850
1851
# File 'lib/google/apis/batch_v1/classes.rb', line 1849

def permissive_ssh
  @permissive_ssh
end

#require_hosts_fileBoolean Also known as: require_hosts_file?

When true, Batch will populate a file with a list of all VMs assigned to the TaskGroup and set the BATCH_HOSTS_FILE environment variable to the path of that file. Defaults to false. Corresponds to the JSON property requireHostsFile

Returns:

  • (Boolean)


1857
1858
1859
# File 'lib/google/apis/batch_v1/classes.rb', line 1857

def require_hosts_file
  @require_hosts_file
end

#task_countFixnum

Number of Tasks in the TaskGroup. Default is 1. Corresponds to the JSON property taskCount

Returns:

  • (Fixnum)


1863
1864
1865
# File 'lib/google/apis/batch_v1/classes.rb', line 1863

def task_count
  @task_count
end

#task_count_per_nodeFixnum

Max number of tasks that can be run on a VM at the same time. If not specified, the system will decide a value based on available compute resources on a VM and task requirements. Corresponds to the JSON property taskCountPerNode

Returns:

  • (Fixnum)


1870
1871
1872
# File 'lib/google/apis/batch_v1/classes.rb', line 1870

def task_count_per_node
  @task_count_per_node
end

#task_environmentsArray<Google::Apis::BatchV1::Environment>

An array of environment variable mappings, which are passed to Tasks with matching indices. If task_environments is used then task_count should not be specified in the request (and will be ignored). Task count will be the length of task_environments. Tasks get a BATCH_TASK_INDEX and BATCH_TASK_COUNT environment variable, in addition to any environment variables set in task_environments, specifying the number of Tasks in the Task's parent TaskGroup, and the specific Task's index in the TaskGroup (0 through BATCH_TASK_COUNT - 1). task_environments supports up to 200 entries. Corresponds to the JSON property taskEnvironments



1882
1883
1884
# File 'lib/google/apis/batch_v1/classes.rb', line 1882

def task_environments
  @task_environments
end

#task_specGoogle::Apis::BatchV1::TaskSpec

Spec of a task Corresponds to the JSON property taskSpec



1887
1888
1889
# File 'lib/google/apis/batch_v1/classes.rb', line 1887

def task_spec
  @task_spec
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
# File 'lib/google/apis/batch_v1/classes.rb', line 1894

def update!(**args)
  @name = args[:name] if args.key?(:name)
  @parallelism = args[:parallelism] if args.key?(:parallelism)
  @permissive_ssh = args[:permissive_ssh] if args.key?(:permissive_ssh)
  @require_hosts_file = args[:require_hosts_file] if args.key?(:require_hosts_file)
  @task_count = args[:task_count] if args.key?(:task_count)
  @task_count_per_node = args[:task_count_per_node] if args.key?(:task_count_per_node)
  @task_environments = args[:task_environments] if args.key?(:task_environments)
  @task_spec = args[:task_spec] if args.key?(:task_spec)
end