elasticslice.clients.slurm package¶
Submodules¶
elasticslice.clients.slurm.slurm module¶
-
class
elasticslice.clients.slurm.slurm.KnifeWrapper(config=None)[source]¶ Bases:
objectDefine operations for interacting with Chef via the knife command line utility installed locally
-
class
elasticslice.clients.slurm.slurm.SlurmDynamicManager(server, config=None)[source]¶ Bases:
elasticslice.managers.core.SimpleElasticSliceHelper,elasticslice.managers.core.SimpleElasticSliceManager-
CM_METHODS= ['ensure_sliver', 'update_sliver_status', 'update_available', 'update_all', 'add_nodes', 'delete_nodes']¶
-
DEF_INTERVAL= 60¶
-
DEF_INTERVALS= {'update_available': 600, 'ensure_sliver': 60, 'delete_nodes': 300, 'update_sliver_status': 60, 'update_all': 86400, 'renew': 3600, 'add_nodes': 300, 'ensure_slice': 60}¶
-
DEF_MAX_THRESHOLD= 10¶
-
DEF_MIN_THRESHOLD= 1¶
-
DEF_ORDER= ['ensure_slice', 'ensure_sliver', 'update_sliver_status', 'renew', 'update_all', 'update_available', 'get_system_state', 'add_nodes', 'delete_nodes', 'set_system_state']¶
-
METHOD_RESET_TRIGGERS= {'add_nodes': ['update_sliver_status', 'update_available', 'get_system_state', 'set_system_state'], 'delete_nodes': ['update_sliver_status', 'update_available', 'get_system_state', 'set_system_state']}¶
-
get_nodenames(include_IPs=False, include_fullnames=False)[source]¶ This method returns a list of short (virtual) nodenames for all nodes in the experiment. It can optionally also include external (physical) nodenames, as well as internal (experiment) IP addresses.
-
handle_added_node(node, status)[source]¶ This method should be called by a manager when it sees that an added node has become “ready” or “failed”. @node is a dict like
{ ‘client_id’:’node-1’,’node_id’:’pc100’,...}and @status is either ‘ready’, ‘failed’. The return value is not checked by the caller.
-
handle_deleted_node(node)[source]¶ This method should be called by a manager when it sees that an added node has become “ready” or “failed”. @node is a dict like
{ ‘client_id’:’node-1’,’node_id’:’pc100’,...}The return value is not checked by the caller.
-
update_etc_hosts()[source]¶ This method updates /etc/hosts file. It adds a block of entries for all experiment nodes (obtained using the get_nodenames() funcion) at the end of the file, unless it is already there. A special marker is used to determine whether such block is present or not. This method preserves all manually entered entries before the auto-generated block.
-
-
class
elasticslice.clients.slurm.slurm.SlurmScheduler(config=None)[source]¶ Bases:
objectDefine operations for interacting with the SLURM resource manager and scheduler
-
get_future_compute_cycles(unit='s')[source]¶ Sum up all future compute cycles and convert to the specified units
-
update_slurm_config(node_list=[])[source]¶ This method updates SLURM configuration in /etc/slurm-llnl/slurm.conf. It adds an auto-generated block with lines such as “NodeName=” and “PartitionName=” with all current experiment nodes at the end of the file, unless they such block is already there. A special marker is used to determine whether such lines are present or not. This method preserves all lines that exist in the file before this block.
Arguments: node_list – list of short (virtual) nodenames to be added in SLURM config; if empty, the method does nothing
-