Skip to content

Commit

Permalink
Always post model version info on worker startup (platform 2) (#948)
Browse files Browse the repository at this point in the history
* test edited migration

* Update refs to field names

* migration rename works

* DISABLE_WORKER_REG now only skips model settings POST

* pep

* Add new env var

* Add DISABLE_WORKER_SETTINGS_REG to skip model_settings post

* PEP
  • Loading branch information
sambles authored Jan 18, 2024
1 parent 2c5ce3b commit 6db360b
Show file tree
Hide file tree
Showing 8 changed files with 89 additions and 25 deletions.
18 changes: 12 additions & 6 deletions src/model_execution_worker/distributed_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,17 +245,23 @@ def register_worker(sender, **k):
logging.info('settings: {}'.format(m_settings))
logging.info('oasislmf config: {}'.format(m_conf))

# Check for 'DISABLE_WORKER_REG' before se:NERDTreeToggle
# unding task to API
if settings.getboolean('worker', 'DISABLE_WORKER_REG', fallback=False):
logging.info(('Worker auto-registration DISABLED: to enable:\n'
' set DISABLE_WORKER_REG=False in conf.ini or\n'
# skip adding model settings on register
if settings.getboolean('worker', 'DISABLE_WORKER_SETTINGS_REG', fallback=False):
m_settings = None
logging.info(('Worker settings registration DISABLED: to enable:\n'
' set DISABLE_WORKER_SETTINGS_REG=False in conf.ini or\n'
' set the envoritment variable OASIS_DISABLE_WORKER_REG=False'))
else:
logging.info('Auto registrating with the Oasis API:')
m_settings = get_model_settings()
logging.info('settings: {}'.format(m_settings))

# Send Worker Info
if settings.getboolean('worker', 'DISABLE_WORKER_REG', fallback=False):
logging.info(('Worker auto-registration settings DISABLED: to enable:\n'
' set DISABLE_WORKER_REG=False in conf.ini or\n'
' set the envoritment variable OASIS_DISABLE_WORKER_REG=False'))
else:
logging.info('Auto registrating with the Oasis API:')
signature(
'run_register_worker_v2',
args=(m_supplier, m_name, m_id, m_settings, m_version, m_conf),
Expand Down
15 changes: 11 additions & 4 deletions src/model_execution_worker/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,16 +187,23 @@ def register_worker(sender, **k):
logging.info('Worker: SUPPLIER_ID={}, MODEL_ID={}, VERSION_ID={}'.format(m_supplier, m_name, m_id))
logging.info('versions: {}'.format(m_version))

# Check for 'DISABLE_WORKER_REG' before sending task to API
# skip adding model settings on register
if settings.getboolean('worker', 'DISABLE_WORKER_SETTINGS_REG', fallback=False):
m_settings = None
logging.info(('Worker settings registration DISABLED: to enable:\n'
' set DISABLE_WORKER_SETTINGS_REG=False in conf.ini or\n'
' set the envoritment variable OASIS_DISABLE_WORKER_REG=False'))
else:
m_settings = get_model_settings()
logging.info('settings: {}'.format(m_settings))

# Send Worker Info
if settings.getboolean('worker', 'DISABLE_WORKER_REG', fallback=False):
logging.info(('Worker auto-registration DISABLED: to enable:\n'
' set DISABLE_WORKER_REG=False in conf.ini or\n'
' set the envoritment variable OASIS_DISABLE_WORKER_REG=False'))
else:
logging.info('Auto registrating with the Oasis API:')
m_settings = get_model_settings()
logging.info('settings: {}'.format(m_settings))

signature(
'run_register_worker',
args=(m_supplier, m_name, m_id, m_settings, m_version),
Expand Down
6 changes: 3 additions & 3 deletions src/server/oasisapi/analyses/v1_api/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -323,9 +323,9 @@ def run_register_worker(m_supplier, m_name, m_id, m_settings, m_version):
# Update model version info
if m_version:
try:
model.ver_ktools = m_version['ktools']
model.ver_oasislmf = m_version['oasislmf']
model.ver_platform = m_version['platform']
model.v1_ver_ktools = m_version['ktools']
model.v1_ver_oasislmf = m_version['oasislmf']
model.v1_ver_platform = m_version['platform']
logger.info('Updated model versions')
except Exception as e:
logger.info('Failed to set model veriosns:')
Expand Down
6 changes: 3 additions & 3 deletions src/server/oasisapi/analyses/v2_api/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -346,9 +346,9 @@ def run_register_worker_v2(m_supplier, m_name, m_id, m_settings, m_version, m_co
# Update model version info
if m_version:
try:
model.ver_ktools = m_version['ktools']
model.ver_oasislmf = m_version['oasislmf']
model.ver_platform = m_version['platform']
model.v2_ver_ktools = m_version['ktools']
model.v2_ver_oasislmf = m_version['oasislmf']
model.v2_ver_platform = m_version['platform']
logger.info('Updated model versions')
except Exception as e:
logger.info('Failed to set model veriosns:')
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Generated by Django 3.2.20 on 2024-01-17 14:01

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('analysis_models', '0008_analysismodel_run_mode'),
]

operations = [
migrations.RenameField(
model_name='analysismodel',
old_name='ver_ktools',
new_name='v1_ver_ktools',
),
migrations.RenameField(
model_name='analysismodel',
old_name='ver_oasislmf',
new_name='v1_ver_oasislmf',
),
migrations.RenameField(
model_name='analysismodel',
old_name='ver_platform',
new_name='v1_ver_platform',
),
migrations.AddField(
model_name='analysismodel',
name='v2_ver_ktools',
field=models.CharField(default=None, help_text='V2 worker, ktools version.', max_length=255, null=True),
),
migrations.AddField(
model_name='analysismodel',
name='v2_ver_oasislmf',
field=models.CharField(default=None, help_text='V2 worker, oasislmf version.', max_length=255, null=True),
),
migrations.AddField(
model_name='analysismodel',
name='v2_ver_platform',
field=models.CharField(default=None, help_text='V2 worker, platform version.', max_length=255, null=True),
),
]
14 changes: 11 additions & 3 deletions src/server/oasisapi/analysis_models/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,17 @@ class AnalysisModel(TimeStampedModel):
groups = models.ManyToManyField(Group, blank=True, default=None, help_text='Groups allowed to access this object')
data_files = models.ManyToManyField(DataFile, blank=True, related_name='analyses_model_data_files')
template_files = models.ManyToManyField(SettingsTemplate, blank=True, related_name='analyses_model_settings_template')
ver_ktools = models.CharField(max_length=255, null=True, default=None, help_text=_('The worker ktools version.'))
ver_oasislmf = models.CharField(max_length=255, null=True, default=None, help_text=_('The worker oasislmf version.'))
ver_platform = models.CharField(max_length=255, null=True, default=None, help_text=_('The worker platform version.'))

# V1 worker version info
v1_ver_ktools = models.CharField(max_length=255, null=True, default=None, help_text=_('V1 worker, ktools version.'))
v1_ver_oasislmf = models.CharField(max_length=255, null=True, default=None, help_text=_('V1 worker, oasislmf version.'))
v1_ver_platform = models.CharField(max_length=255, null=True, default=None, help_text=_('V1 worker, platform version.'))

# V2 worker version info
v2_ver_ktools = models.CharField(max_length=255, null=True, default=None, help_text=_('V2 worker, ktools version.'))
v2_ver_oasislmf = models.CharField(max_length=255, null=True, default=None, help_text=_('V2 worker, oasislmf version.'))
v2_ver_platform = models.CharField(max_length=255, null=True, default=None, help_text=_('V2 worker, platform version.'))

oasislmf_config = models.TextField(default='')
deleted = models.BooleanField(default=False, editable=False)
run_mode = models.CharField(max_length=max(len(c) for c in run_mode_choices._db_values),
Expand Down
6 changes: 3 additions & 3 deletions src/server/oasisapi/analysis_models/v1_api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ class Meta:
ref_name = "v1_" + __qualname__.split('.')[0]
model = AnalysisModel
fields = (
'ver_ktools',
'ver_oasislmf',
'ver_platform',
'v1_ver_ktools',
'v1_ver_oasislmf',
'v1_ver_platform',
)
6 changes: 3 additions & 3 deletions src/server/oasisapi/analysis_models/v2_api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,9 @@ class Meta:
ref_name = "v2_" + __qualname__.split('.')[0]
model = AnalysisModel
fields = (
'ver_ktools',
'ver_oasislmf',
'ver_platform',
'v2_ver_ktools',
'v2_ver_oasislmf',
'v2_ver_platform',
)


Expand Down

0 comments on commit 6db360b

Please sign in to comment.