Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions workflow/generate_workflows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ function _usage() {
If this option is not chosen, the new entries that would have been
written to your crontab will be printed to stdout.
NOTES:
- This option is not supported on Gaea. Instead, the output will
need to be written to scrontab manually.
- For Orion/Hercules, this option will not work unless run on
the [orion|hercules]-login-1 head node.

Expand Down
1 change: 1 addition & 0 deletions workflow/hosts/gaeac5.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ PARTITION_DTN: 'dtn_f5_f6'
RESERVATION: ''
CLUSTERS: 'c5'
CLUSTERS_DTN: 'es'
CONSTRAINT_DTN: 'f5'
CHGRP_RSTPROD: 'NO'
CHGRP_CMD: 'chgrp rstprod'
HPSS_PROJECT: emc-global
Expand Down
8 changes: 4 additions & 4 deletions workflow/hosts/gaeac6.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ PARTITION_CRON: 'cron_c6'
RESERVATION: ''
CLUSTERS: 'c6'
CLUSTERS_DTN: 'es'
CONSTRAINT_DTN: 'f6'
CHGRP_RSTPROD: 'NO'
CHGRP_CMD: 'chgrp rstprod'
HPSS_PROJECT: emc-global
# TODO enable HPSS archiving by default when DTN/f6 sluggishness is resolved
DO_ARCHCOM: 'NO'
ARCHCOM_TO: 'local'
ATARDIR: '${NOSCRUB}/archive_rotdir/${PSLOT}'
DO_ARCHCOM: 'YES'
ARCHCOM_TO: 'hpss'
ATARDIR: '/NCEPDEV/${HPSS_PROJECT}/1year/${USER}/${machine}/scratch/${PSLOT}'
MAKE_NSSTBUFR: 'NO'
MAKE_ACFTBUFR: 'NO'
DO_TRACKER: 'YES'
Expand Down
7 changes: 5 additions & 2 deletions workflow/rocoto/gfs_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -2523,8 +2523,7 @@ def cleanup(self):
pass
else:
dep_dict = {'type': 'metatask', 'name': f'{self.run}_earc_tars'}

deps.append(rocoto.add_dependency(dep_dict))
deps.append(rocoto.add_dependency(dep_dict))

else:
if self.app_config.mode in ['cycled']:
Expand Down Expand Up @@ -2627,12 +2626,16 @@ def cleanup(self):

dep_dict = {'type': 'task', 'name': f'{self.run}_arch_vrfy'}
deps.append(rocoto.add_dependency(dep_dict))
print('arcom?', self.options['do_archcom'])

Comment thread
DavidHuber-NOAA marked this conversation as resolved.
Outdated
if self.options['do_archcom']:
if self.options['do_globusarch']:
dep_dict = {'type': 'task', 'name': f'{self.run}_globus_arch'}
else:
dep_dict = {'type': 'task', 'name': f'{self.run}_arch_tars'}

deps.append(rocoto.add_dependency(dep_dict))

dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)

resources = self.get_resource('cleanup')
Expand Down
16 changes: 16 additions & 0 deletions workflow/rocoto/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ def _validate_system_key(input_dict, key):
self.queue_service = _validate_system_key(base, 'QUEUE_SERVICE')
self.queue_dtn = _validate_system_key(base, 'QUEUE_DTN')

self.constraint_batch = _validate_system_key(base, 'CONSTRAINT')
self.constraint_service = _validate_system_key(base, 'CONSTRAINT_SERVICE')
self.constraint_dtn = _validate_system_key(base, 'CONSTRAINT_DTN')

def _template_to_rocoto_cycstring(self, template: str, subs_dict: dict = {}) -> str:
'''
Takes a string templated with ${ } and converts it into a string suitable
Expand Down Expand Up @@ -363,6 +367,7 @@ def get_resource(self, task_name):
task_queue = self.queue_service if self.queue_service else self.queue_batch
task_partition = self.partition_service if self.partition_service else self.partition_batch
task_clusters = self.clusters_service if self.clusters_service else self.clusters_batch
task_constraint = self.constraint_service if self.constraint_service else self.constraint_batch
task_reservation = None # Reservations are only for batch nodes
elif dtn_task:
# First check if there is a DTN queue, partition, or clusters
Expand All @@ -388,12 +393,20 @@ def get_resource(self, task_name):
else:
task_clusters = self.clusters_batch

if self.constraint_dtn:
task_constraint = self.constraint_dtn
elif self.constraint_service:
task_constraint = self.constraint_service
else:
task_constraint = self.constraint_batch

task_reservation = None

else: # This is a batch task
task_partition = self.partition_batch
task_queue = self.queue_batch
task_clusters = self.clusters_batch
task_constraint = self.constraint_batch
task_reservation = self.reservation_batch

# Scheduler-specific configurations
Expand Down Expand Up @@ -428,6 +441,9 @@ def get_resource(self, task_name):
if task_clusters:
native += ' --clusters=' + task_clusters

if task_constraint:
native += ' --constraint=' + task_constraint

# Finally, construct and return the task resource dictionary
task_resource = {'account': account,
'walltime': walltime,
Expand Down