Pool

Module to handle a pool.

class qarnot.pool.Pool(connection, name, profile, instancecount=1, shortname=None)[source]

Bases: object

Represents a Qarnot pool.

__init__(connection, name, profile, instancecount=1, shortname=None)[source]

Create a new Pool.

Parameters:
  • connection (qarnot.connection.Connection) – the cluster on which to send the pool
  • name (str) – given name of the pool
  • profile (str) – which profile to use with this task
  • instancecount (int or str) – number of instances or ranges on which to run pool
  • shortname (str) – userfriendly pool name
classmethod from_json(connection, json_pool, is_summary=False)[source]

Create a Pool object from a json pool.

Parameters:
Returns:

The created Pool.

submit()[source]

Submit pool to the cluster if it is not already submitted.

Raises:

Note

Will ensure all added files are on the resource bucket regardless of their uploading mode.

update(flushcache=False)[source]

Update the pool object from the REST Api. The flushcache parameter can be used to force the update, otherwise a cached version of the object will be served when accessing properties of the object. Cache behavior is configurable with auto_update and update_cache_time.

Raises:
commit()[source]

Replicate local changes on the current object instance to the REST API

Raises:

This function need to be call to apply the local elastic pool setting modifications. .. note:: When updating buckets’ properties, auto update will be disabled until commit is called.

setup_elastic(minimum_total_slots=0, maximum_total_slots=1, minimum_idle_slots=0, minimum_idle_time_seconds=0, resize_factor=1, resize_period=90)[source]

Setup the pool elastic properties

Parameters:
  • minimum_total_slots (int) – Minimum slot number for the pool in elastic mode. Defaults to 0.
  • maximum_total_slots (int) – Maximum slot number for the pool in elastic mode. Defaults to 1.
  • minimum_idle_slots (int) – Minimum idling slot number. Defaults to 0.
  • minimum_idle_time_seconds (int) – Wait time in seconds before closing an unused slot if the number of unused slots are upper than the minimum_idle_slots. Defaults to 0.
  • resize_factor (float) – Growing factor of the pool. It must be a number between 0 and 1. Defaults to 1.
  • resize_period (int) – Refresh rate of resizing the pool in elastic mode. Defaults to 90.
delete(purge_resources=False)[source]

Delete this pool on the server.

Parameters:

purge_resources (bool) – parameter value is used to determine if the bucket is also deleted. Defaults to False.

Raises:
close()[source]

Close this pool if running.

Raises:
uuid
Type:str
Getter:Returns this pool’s uuid

The pool’s uuid.

Automatically set when a pool is submitted.

state
Type:str
Getter:return this pool’s state

State of the pool.

Value is in
  • UnSubmitted
  • Submitted
  • PartiallyDispatched
  • FullyDispatched
  • PartiallyExecuting
  • FullyExecuting
  • Closing
  • Closed
  • Failure
  • PendingDelete

Warning

this is the state of the pool when the object was retrieved, call update() for up to date value.

resources
Type:list(Bucket)
Getter:Returns this pool’s resources bucket
Setter:Sets this pool’s resources bucket

Represents resource files.

name
Type:str
Getter:Returns this pool’s name
Setter:Sets this pool’s name

The pool’s name.

Can be set until pool is submitted.

shortname
Type:str
Getter:Returns this pool’s shortname
Setter:Sets this pool’s shortname

The pool’s shortname, must be DNS compliant and unique, if not provided, will default to uuid.

Can be set until pool is submitted.

tags
Type::class:list(str)
Getter:Returns this pool’s tags
Setter:Sets this pool’s tags

Custom tags.

profile
Type:str
Getter:Returns this pool’s profile
Setter:Sets this pool’s profile

The profile to run the pool with.

Can be set until submit() is called.

instancecount
Type:int
Getter:Returns this pool’s instance count
Setter:Sets this pool’s instance count

Number of instances needed for the pool.

Can be set until submit() is called.

running_core_count
Type:int
Getter:Returns this pool’s running core count

Number of core running inside the pool.

running_instance_count
Type:int
Getter:Returns this pool’s running instance count

Number of instances running inside the pool.

errors
Type:list(str)
Getter:Returns this pool’s error list

Error reason if any, empty string if none

creation_date
Type:str
Getter:Returns this pool’s creation date

Creation date of the pool (UTC Time)

status
Type:qarnot.status.Status
Getter:Returns this pool’s status

Status of the task

auto_update
Type:bool
Getter:Returns this pool’s auto update state
Setter:Sets this pool’s auto update state

Auto update state, default to True When auto update is disabled properties will always return cached value for the object and a call to update() will be required to get latest values from the REST Api.

update_cache_time
Type:int
Getter:Returns this pool’s auto update state
Setter:Sets this pool’s auto update state

Cache expiration time, default to 5s

is_elastic
Type:bool
Getter:Returns this pool’s is_elastic
Setter:Sets this pool’s is_elastic

Define if you use a static or an elastic pool.

elastic_minimum_slots
Type:int
Getter:Returns this pool’s elastic_minimum_slots
Setter:Sets this pool’s elastic_minimum_slots

The minimum slot number of the elastic pool. Define the minimum number of pool instances stay open during the pool execution.

elastic_maximum_slots
Type:int
Getter:Returns this pool’s elastic_maximum_slots
Setter:Sets this pool’s elastic_maximum_slots

The maximum slot number of the elastic pool. Define the maximum number of pool instances opened during the pool execution.

elastic_minimum_idle_slots
Type:int
Getter:Returns this pool’s elastic_minimum_idle_slots
Setter:Sets this pool’s elastic_minimum_idle_slots

The minimum idle number of the elastic pool. Define the minimum number of the idle pool instances stay opened during the pool execution. It should be lower to elastic_minimum_slots to be usefull

elastic_minimum_idle_time
Type:int
Getter:Returns this pool’s elastic_minimum_idle_time
Setter:Sets this pool’s elastic_minimum_idle_time

Wait time in seconds before closing an unused slot if the number of unused slots are upper than the minimum_idle_slots.

elastic_resize_factor
Type:float
Getter:Returns this pool’s elastic_resize_factor
Setter:Sets this pool’s elastic_resize_factor

The resize factor of the pool. It represent the resize factor of the slots. It’s a decimal number upper than 0 and and equal or lower the 1

elastic_resize_period
Type:int
Getter:Returns this pool’s elastic_resize_period
Setter:Sets this pool’s elastic_resize_period

The resize period of the elastic pool in second. This is the refresh rate of resizing the elastic pool.

preparation_command_line
Type:str:
Getter:Returns this pool’s command line.
Setter:set the pool’s command line.

Update the pool command line if needed The command line is a command running before each task execution.

constants
Type:dictionary{str : str}
Getter:Returns this pool’s constants dictionary.
Setter:set the pool’s constants dictionary.

Update the constants if needed Constants are the parametrazer of the profils. Use them to adjust your profile parametter.

constraints
Type:dictionary{str : str}
Getter:Returns this pool’s constraints dictionary.
Setter:set the pool’s constraints dictionary.

Update the constraints if needed advance usage

tasks_default_wait_for_pool_resources_synchronization
Type:bool
Getter:Returns this task’s tasks_default_wait_for_pool_resources_synchronization.
Setter:set the task’s tasks_default_wait_for_pool_resources_synchronization.
Raises:qarnot.exceptions.AttributeError – can’t set this attribute on a launched task
auto_delete

Autodelete this pool if it is finished and your max number of pool is reach

Can be set until submit() is called.

Type:bool
Getter:Returns is this pool must autodelete
Setter:Sets this pool’s autodelete
Default_value:“False”
Raises:AttributeError – if you try to reset the auto_delete after the pool is submit
completion_ttl

The pool will be auto delete completion_ttl after it is finished

Can be set until submit() is called.

Getter:Returns this pool’s completed time to live.
Type:str
Setter:Sets this pool’s this pool’s completed time to live.
Type:str or datetime.timedelta
Default_value:“”
Raises:AttributeError – if you try to set it after the pool is submitted

The completion_ttl must be a timedelta or a time span format string (example: ‘d.hh:mm:ss’ or ‘hh:mm:ss’)

__repr__() <==> repr(x)[source]