diff --git a/src/model_execution_worker/distributed_tasks.py b/src/model_execution_worker/distributed_tasks.py index bb7cadc3e..f1bc9ad4d 100644 --- a/src/model_execution_worker/distributed_tasks.py +++ b/src/model_execution_worker/distributed_tasks.py @@ -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), diff --git a/src/model_execution_worker/tasks.py b/src/model_execution_worker/tasks.py index 882310b88..d9b22ff0a 100755 --- a/src/model_execution_worker/tasks.py +++ b/src/model_execution_worker/tasks.py @@ -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), diff --git a/src/server/oasisapi/analyses/v1_api/tasks.py b/src/server/oasisapi/analyses/v1_api/tasks.py index cabc01f0b..617e951b8 100644 --- a/src/server/oasisapi/analyses/v1_api/tasks.py +++ b/src/server/oasisapi/analyses/v1_api/tasks.py @@ -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:') diff --git a/src/server/oasisapi/analyses/v2_api/tasks.py b/src/server/oasisapi/analyses/v2_api/tasks.py index b0a3f31bf..e1f00db3a 100644 --- a/src/server/oasisapi/analyses/v2_api/tasks.py +++ b/src/server/oasisapi/analyses/v2_api/tasks.py @@ -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:') diff --git a/src/server/oasisapi/analysis_models/migrations/0009_auto_20240117_1401.py b/src/server/oasisapi/analysis_models/migrations/0009_auto_20240117_1401.py new file mode 100644 index 000000000..bddee20f1 --- /dev/null +++ b/src/server/oasisapi/analysis_models/migrations/0009_auto_20240117_1401.py @@ -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), + ), + ] diff --git a/src/server/oasisapi/analysis_models/models.py b/src/server/oasisapi/analysis_models/models.py index 723ea7348..0c6376cc6 100644 --- a/src/server/oasisapi/analysis_models/models.py +++ b/src/server/oasisapi/analysis_models/models.py @@ -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), diff --git a/src/server/oasisapi/analysis_models/v1_api/serializers.py b/src/server/oasisapi/analysis_models/v1_api/serializers.py index fc16fecff..97650d1c6 100644 --- a/src/server/oasisapi/analysis_models/v1_api/serializers.py +++ b/src/server/oasisapi/analysis_models/v1_api/serializers.py @@ -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', ) diff --git a/src/server/oasisapi/analysis_models/v2_api/serializers.py b/src/server/oasisapi/analysis_models/v2_api/serializers.py index f5e8a5ca7..a1ebe631b 100644 --- a/src/server/oasisapi/analysis_models/v2_api/serializers.py +++ b/src/server/oasisapi/analysis_models/v2_api/serializers.py @@ -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', )