From 32db2fc97e959820c271697d70b8014a02255b7e Mon Sep 17 00:00:00 2001 From: Gianluca Marotta Date: Tue, 23 Feb 2021 13:41:39 +0100 Subject: [PATCH 1/4] Added transaction ID to CBF configuration; Sending OFF command in case CBF is ON-EMPTY --- csp-lmc-common/csp_lmc_common/CspSubarray.py | 20 ++++-- .../csp_lmc_common/csp_manage_json.py | 2 + .../tests/integration/MidCspSubarray_test.py | 64 ++++++++++++++++++- 3 files changed, 78 insertions(+), 8 deletions(-) diff --git a/csp-lmc-common/csp_lmc_common/CspSubarray.py b/csp-lmc-common/csp_lmc_common/CspSubarray.py index 3ad5bd7..dabd9e7 100644 --- a/csp-lmc-common/csp_lmc_common/CspSubarray.py +++ b/csp-lmc-common/csp_lmc_common/CspSubarray.py @@ -573,7 +573,8 @@ class CspSubarray(SKASubarray): self.logger.info("Call Off Command") device = self.target subelement_thr = {} - self.thread_succeeded = {} + device_to_turn_off = [] + self.empty_succeeded = {} off_failed = False # First loop that start the sub-element threads to get the ObsState.EMPTY for fqdn in device._sc_subarray_fqdn: @@ -581,20 +582,25 @@ class CspSubarray(SKASubarray): # requested state if device._sc_subarray_state[fqdn] == tango.DevState.OFF: continue - if device._sc_subarray_obs_state[fqdn] != ObsState.EMPTY: + elif device._sc_subarray_obs_state[fqdn] != ObsState.EMPTY: subelement_thr[fqdn] = threading.Thread(target=self.off_sequence, name="Thread-OffSequence", args=(fqdn,)) subelement_thr[fqdn].start() + device_to_turn_off.append(fqdn) else: - self.logger.info(f'ObsState of device {fqdn} is not EMPTY. ObsState:{device._sc_subarray_obs_state[fqdn]}') + self.logger.info(f'ObsState of device {fqdn} is already EMPTY. ObsState:{device._sc_subarray_obs_state[fqdn]}') + device_to_turn_off.append(fqdn) + self.empty_succeeded[fqdn] = True + # Second loop check if the thread is succeeded and send the Off command to sub-element for fqdn in subelement_thr.keys(): subelement_thr[fqdn].join() - if any(self.thread_succeeded[fqdn] == True for fqdn in subelement_thr.keys()): - for fqdn in subelement_thr.keys(): + if all(self.empty_succeeded[fqdn] for fqdn in device_to_turn_off): + for fqdn in device_to_turn_off: try: + self.logger.info('Sending Off Command...') (result_code, message) = device._sc_subarray_proxies[fqdn].Off() except tango.DevFailed as tango_err: message = str(tango_err.args[0].desc) @@ -644,9 +650,9 @@ class CspSubarray(SKASubarray): # if ObsState is: RESOURCING, ABORTING start again to wait end of the transition if device._sc_subarray_obs_state[fqdn] == ObsState.EMPTY: - self.thread_succeeded[fqdn] = True + self.empty_succeeded[fqdn] = True else: - self.thread_succeeded[fqdn] = False + self.empty_succeeded[fqdn] = False class AssignResourcesCommand(SKASubarray.AssignResourcesCommand): @transaction_id diff --git a/csp-lmc-common/csp_lmc_common/csp_manage_json.py b/csp-lmc-common/csp_lmc_common/csp_manage_json.py index 9d88f01..e28103b 100644 --- a/csp-lmc-common/csp_lmc_common/csp_manage_json.py +++ b/csp-lmc-common/csp_lmc_common/csp_manage_json.py @@ -66,6 +66,8 @@ class JsonConfiguration: """ common_dict = self.get_section('common') cbf_dict = self.get_section('cbf') + if 'transaction_id' in self.config: + common_dict['transaction_id'] = self.get_section('transaction_id') config_converted = {**common_dict, **cbf_dict} validate_csp_config(version=0, config=config_converted) self.config = config_converted diff --git a/csp-lmc-mid/tests/integration/MidCspSubarray_test.py b/csp-lmc-mid/tests/integration/MidCspSubarray_test.py index ff3fc2f..551aa55 100755 --- a/csp-lmc-mid/tests/integration/MidCspSubarray_test.py +++ b/csp-lmc-mid/tests/integration/MidCspSubarray_test.py @@ -178,7 +178,17 @@ class TestCspSubarray(TestBase): 'subarrayID': 1, 'dish': { 'receptorIDList': list(map(str, argin))}} return json.dumps(param) - + + @pytest.mark.transaction_id_in_CBF + def test_transaction_id_is_present_in_CBF_configuration(self): + """ + Test if the transaction id is properly sent to CBF + """ + self._configure_scan() + latest_configuration = self.cbf_subarray01.latestscanconfig + assert 'transaction_id' in latest_configuration + + @pytest.mark.init_EMPTY def test_AFTER_initialization(self): """ @@ -315,6 +325,30 @@ class TestCspSubarray(TestBase): prober_subarray_state = Probe(self.midcsp_subarray01, "State", DevState.ON, f"CSP Subarray not OFF") Poller(4, 0.2).check(prober_subarray_state) + @pytest.mark.off_empty + def test_OffCommand_after_EMPTY(self): + """ + Test that the Off command send the device in OFF-EMPTY + if it is ON-EMPTY + """ + self._setup_subarray() + subarray_state = self.midcsp_subarray01.State() + obs_state = self.midcsp_subarray01.obsState + LOGGER.info("CSPSubarray state before test:{}-{}".format(subarray_state, obs_state)) + self.midcsp_subarray01.Off() + prober_subarray_state = Probe(self.midcsp_subarray01, "State", DevState.OFF, f"CSP Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) + prober_subarray_state = Probe(self.cbf_subarray01, "State", DevState.OFF, f"CBF Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.cbf_subarray01, "obsState", ObsState.EMPTY, f"CBF Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) + receptors = self.midcsp_subarray01.assignedReceptors + LOGGER.info(f'type of {type(receptors)}') + LOGGER.info(f'list of receptors{receptors}') + assert not receptors.any(), f"CSP Subarray is not empty" + @pytest.mark.off_resourcing def test_OffCommand_after_RESOURCING(self): """ @@ -335,6 +369,10 @@ class TestCspSubarray(TestBase): Poller(4, 0.2).check(prober_subarray_state) prober_subarray_obsstate = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") Poller(4, 0.2).check(prober_subarray_obsstate) + prober_subarray_state = Probe(self.cbf_subarray01, "State", DevState.OFF, f"CBF Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.cbf_subarray01, "obsState", ObsState.EMPTY, f"CBF Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) receptors = self.midcsp_subarray01.assignedReceptors LOGGER.info(f'list of receptors{receptors}') assert not receptors.any(), f"CSP Subarray is not empty" @@ -351,6 +389,10 @@ class TestCspSubarray(TestBase): Poller(4, 0.2).check(prober_subarray_state) prober_subarray_obsstate = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") Poller(4, 0.2).check(prober_subarray_obsstate) + prober_subarray_state = Probe(self.cbf_subarray01, "State", DevState.OFF, f"CBF Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.cbf_subarray01, "obsState", ObsState.EMPTY, f"CBF Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) receptors = self.midcsp_subarray01.assignedReceptors assert not receptors.any(), f"CSP Subarray is not empty" @@ -366,6 +408,10 @@ class TestCspSubarray(TestBase): Poller(10, 0.2).check(prober_subarray_state) prober_subarray_obsstate = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") Poller(10, 0.2).check(prober_subarray_obsstate) + prober_subarray_state = Probe(self.cbf_subarray01, "State", DevState.OFF, f"CBF Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.cbf_subarray01, "obsState", ObsState.EMPTY, f"CBF Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) receptors = self.midcsp_subarray01.assignedReceptors assert not receptors.any(), f"CSP Subarray is not empty" @@ -383,6 +429,10 @@ class TestCspSubarray(TestBase): Poller(10, 0.2).check(prober_subarray_state) prober_subarray_obsstate = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") Poller(10, 0.2).check(prober_subarray_obsstate) + prober_subarray_state = Probe(self.cbf_subarray01, "State", DevState.OFF, f"CBF Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.cbf_subarray01, "obsState", ObsState.EMPTY, f"CBF Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) receptors = self.midcsp_subarray01.assignedReceptors assert not receptors.any(), f"CSP Subarray is not empty" @@ -404,6 +454,10 @@ class TestCspSubarray(TestBase): Poller(10, 0.2).check(prober_subarray_state) prober_subarray_obsstate = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") Poller(10, 0.2).check(prober_subarray_obsstate) + prober_subarray_state = Probe(self.cbf_subarray01, "State", DevState.OFF, f"CBF Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.cbf_subarray01, "obsState", ObsState.EMPTY, f"CBF Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) receptors = self.midcsp_subarray01.assignedReceptors assert not receptors.any(), f"CSP Subarray is not empty" @@ -422,6 +476,10 @@ class TestCspSubarray(TestBase): Poller(4, 0.2).check(prober_subarray_state) prober_subarray_obsstate = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") Poller(4, 0.2).check(prober_subarray_obsstate) + prober_subarray_state = Probe(self.cbf_subarray01, "State", DevState.OFF, f"CBF Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.cbf_subarray01, "obsState", ObsState.EMPTY, f"CBF Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) receptors = self.midcsp_subarray01.assignedReceptors assert not receptors.any(), f"CSP Subarray is not empty" @@ -440,6 +498,10 @@ class TestCspSubarray(TestBase): Poller(4, 0.2).check(prober_subarray_state) prober_subarray_obsstate = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") Poller(4, 0.2).check(prober_subarray_obsstate) + prober_subarray_state = Probe(self.cbf_subarray01, "State", DevState.OFF, f"CBF Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.cbf_subarray01, "obsState", ObsState.EMPTY, f"CBF Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) receptors = self.midcsp_subarray01.assignedReceptors assert not receptors.any(), f"CSP Subarray is not empty" -- GitLab From 6a3bb5073c163f0952b857ccaf5d386bab5f7b95 Mon Sep 17 00:00:00 2001 From: Gianluca Marotta Date: Tue, 23 Feb 2021 15:53:23 +0100 Subject: [PATCH 2/4] changes in setup_subarray in integration tests with off command --- .../tests/integration/MidCspSubarray_test.py | 27 +++++++------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/csp-lmc-mid/tests/integration/MidCspSubarray_test.py b/csp-lmc-mid/tests/integration/MidCspSubarray_test.py index 551aa55..835f182 100755 --- a/csp-lmc-mid/tests/integration/MidCspSubarray_test.py +++ b/csp-lmc-mid/tests/integration/MidCspSubarray_test.py @@ -76,24 +76,15 @@ class TestCspSubarray(TestBase): subarray_state = self.midcsp_subarray01.State() obs_state = self.midcsp_subarray01.obsState if subarray_state == DevState.ON: - if obs_state == ObsState.FAULT: - self.midcsp_subarray01.ObsReset() - prober_obs_state = Probe(self.midcsp_subarray01, "obsState", ObsState.IDLE, f"CSP Subarray not IDLE") - Poller(4, 0.2).check(prober_obs_state) - obs_state = self.midcsp_subarray01.obsState - if obs_state == ObsState.EMPTY: - return - if obs_state == ObsState.READY: - self._goto_idle() - if obs_state == ObsState.ABORTED: - self.midcsp_subarray01.ObsReset() - prober_obs_state = Probe(self.midcsp_subarray01, "obsState", ObsState.IDLE, f"CSP Subarray not IDLE") - Poller(4, 0.2).check(prober_obs_state) - obs_state = self.midcsp_subarray01.obsState - if obs_state == ObsState.IDLE: - self._release_all_receptors() - prober_obs_state = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") - Poller(4, 0.2).check(prober_obs_state) + self.midcsp_subarray01.Off() + prober_subarray_state = Probe(self.midcsp_subarray01, "State", DevState.OFF, f"CSP Subarray not OFF") + Poller(4, 0.2).check(prober_subarray_state) + prober_subarray_obsstate = Probe(self.midcsp_subarray01, "obsState", ObsState.EMPTY, f"CSP Subarray not EMPTY") + Poller(4, 0.2).check(prober_subarray_obsstate) + self.midcsp_subarray01.On() + prober_subarray_state = Probe(self.midcsp_subarray01, "State", DevState.ON, f"CSP Subarray not ON") + Poller(4, 0.2).check(prober_subarray_state) + def _setup_subarray_off(self): """ Set the subarray state to OFF-EMPTY -- GitLab From af9cd9b8400b847314d171916adab4baf0f99fa1 Mon Sep 17 00:00:00 2001 From: Gianluca Marotta Date: Tue, 23 Feb 2021 16:26:44 +0100 Subject: [PATCH 3/4] check before on command in unit test --- csp-lmc-common/tests/unit/cspsubarray_unit_test.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/csp-lmc-common/tests/unit/cspsubarray_unit_test.py b/csp-lmc-common/tests/unit/cspsubarray_unit_test.py index a2c9893..bee02f9 100644 --- a/csp-lmc-common/tests/unit/cspsubarray_unit_test.py +++ b/csp-lmc-common/tests/unit/cspsubarray_unit_test.py @@ -81,6 +81,8 @@ def test_cspsbarray_state_after_On_WITH_exception_raised_by_subelement_subarray( with fake_tango_system(device_under_test, initial_dut_properties=dut_properties, proxies_to_mock=proxies_to_mock) as tango_context: cbf_subarray_device_proxy_mock.On.side_effect = raise_devfailed_exception pss_subarray_device_proxy_mock.On.side_effect = return_ok + prober_state = Probe(tango_context.device, "State", DevState.OFF, f"State is not OFF") + Poller(3, 0.1).check(prober_state) tango_context.device.On() assert tango_context.device.State() == DevState.FAULT assert tango_context.device.obsState == ObsState.EMPTY @@ -108,6 +110,8 @@ def test_cspsbarray_state_after_On_WITH_command_failed_code_returned_by_subeleme with fake_tango_system(device_under_test, initial_dut_properties=dut_properties, proxies_to_mock=proxies_to_mock) as tango_context: cbf_subarray_device_proxy_mock.On.side_effect = return_failed pss_subarray_device_proxy_mock.On.side_effect = return_ok + prober_state = Probe(tango_context.device, "State", DevState.OFF, f"State is not OFF") + Poller(3, 0.1).check(prober_state) tango_context.device.On() assert tango_context.device.State() == DevState.FAULT assert tango_context.device.obsState == ObsState.EMPTY @@ -134,6 +138,8 @@ def test_cspsbarray_state_after_On_WITH_command_failed_code_returned_by_pss_suba with fake_tango_system(device_under_test, initial_dut_properties=dut_properties, proxies_to_mock=proxies_to_mock) as tango_context: cbf_subarray_device_proxy_mock.On.side_effect = return_ok pss_subarray_device_proxy_mock.On.side_effect = return_failed + prober_state = Probe(tango_context.device, "State", DevState.OFF, f"State is not OFF") + Poller(3, 0.1).check(prober_state) tango_context.device.On() assert tango_context.device.State() == DevState.ON assert tango_context.device.obsState == ObsState.EMPTY @@ -161,6 +167,8 @@ def test_cspsbarray_state_after_On_forwarded_to_subelement_subarray(): with fake_tango_system(device_under_test, initial_dut_properties=dut_properties, proxies_to_mock=proxies_to_mock) as tango_context: cbf_subarray_device_proxy_mock.On.side_effect = return_ok pss_subarray_device_proxy_mock.On.side_effect = return_ok + prober_state = Probe(tango_context.device, "State", DevState.OFF, f"State is not OFF") + Poller(3, 0.1).check(prober_state) tango_context.device.On() assert tango_context.device.State() == DevState.ON assert tango_context.device.obsState == ObsState.EMPTY @@ -192,8 +200,8 @@ def test_cspsubarray_transaction_id_in_log(capsys): with fake_tango_system(device_under_test, initial_dut_properties=dut_properties, proxies_to_mock=proxies_to_mock) as tango_context: cbf_subarray_device_proxy_mock.On.side_effect = return_ok pss_subarray_device_proxy_mock.On.side_effect = return_ok - prober_obs_state = Probe(tango_context.device, "State", DevState.OFF, f"State is not OFF") - Poller(3, 0.1).check(prober_obs_state) + prober_state = Probe(tango_context.device, "State", DevState.OFF, f"State is not OFF") + Poller(3, 0.1).check(prober_state) tango_context.device.On() assert tango_context.device.State() == DevState.ON #tango_context.device.AssignResources('{"subarrayID":1,"dish":{"receptorIDList":["0001","0002"]}}') -- GitLab From 0241f5d5100073f6dd7dee1893917e7334c27dc6 Mon Sep 17 00:00:00 2001 From: Gianluca Marotta Date: Tue, 23 Feb 2021 17:19:55 +0100 Subject: [PATCH 4/4] update release packages (0.7.4) and helm chart (0.1.5) --- csp-lmc-common/HISTORY | 4 ++++ csp-lmc-common/csp_lmc_common/release.py | 2 +- csp-lmc-mid/.release | 6 +++--- csp-lmc-mid/HISTORY | 5 +++++ csp-lmc-mid/charts/mid-csp-umbrella/Chart.yaml | 4 ++-- csp-lmc-mid/charts/mid-csp/Chart.yaml | 4 ++-- csp-lmc-mid/charts/mid-csp/values.yaml | 2 +- csp-lmc-mid/csp_lmc_mid/release.py | 2 +- csp-lmc-mid/requirements.txt | 2 +- 9 files changed, 20 insertions(+), 11 deletions(-) diff --git a/csp-lmc-common/HISTORY b/csp-lmc-common/HISTORY index 6e5d546..bb5236c 100644 --- a/csp-lmc-common/HISTORY +++ b/csp-lmc-common/HISTORY @@ -1,3 +1,7 @@ +0.7.4 +- OFF command when sub-element is ON-EMPTY +- Added transaction id to the common section of ADR-18/22 json config file. + 0.7.3 - Solved dead-lock on Abort Command during Configuration - Restart Command check the if subelements are EMPTY diff --git a/csp-lmc-common/csp_lmc_common/release.py b/csp-lmc-common/csp_lmc_common/release.py index 4440c19..f889629 100755 --- a/csp-lmc-common/csp_lmc_common/release.py +++ b/csp-lmc-common/csp_lmc_common/release.py @@ -10,7 +10,7 @@ """Release information for Python Package""" name = """csp-lmc-common""" -version = "0.7.3" +version = "0.7.4" version_info = version.split(".") description = """SKA CSP.LMC Common Software""" author = "INAF-OAA" diff --git a/csp-lmc-mid/.release b/csp-lmc-mid/.release index 8a67666..4b40209 100644 --- a/csp-lmc-mid/.release +++ b/csp-lmc-mid/.release @@ -9,7 +9,7 @@ """Release information for Python Package""" name = """MID CSP.LMC""" -version = "0.7.3" +version = "0.7.4" version_info = version.split(".") description = """SKA MID CSP.LMC Classes""" author = "E.G" @@ -20,5 +20,5 @@ copyright = """""" #!!!! UPDATE THE MID-CSP IMAGE VERSION #!!!! DO BEFORE TAGGING !!!! -release=0.7.3 -tag=mid-csp-lmc-0.7.3 +release=0.7.4 +tag=mid-csp-lmc-0.7.4 diff --git a/csp-lmc-mid/HISTORY b/csp-lmc-mid/HISTORY index 295c86e..e8b4a5c 100644 --- a/csp-lmc-mid/HISTORY +++ b/csp-lmc-mid/HISTORY @@ -1,3 +1,8 @@ +0.7.4 +- use csp-lmc-common 0.7.4 +- update integration test for transaction id and off command when empty +!!! Release helm chart 0.1.5 !!! + 0.7.3 -use csp-lmc-common 0.7.3 !!! Release helm chart 0.1.4 !!! diff --git a/csp-lmc-mid/charts/mid-csp-umbrella/Chart.yaml b/csp-lmc-mid/charts/mid-csp-umbrella/Chart.yaml index b369375..9ac3b87 100644 --- a/csp-lmc-mid/charts/mid-csp-umbrella/Chart.yaml +++ b/csp-lmc-mid/charts/mid-csp-umbrella/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: mid-csp-umbrella description: A Helm chart for deploying the whole Mid_CSP prototype on Kubernetes version: 0.1.0 -appVersion: 0.7.3 +appVersion: 0.7.4 icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png dependencies: - name: tango-base @@ -15,5 +15,5 @@ dependencies: version: 0.1.1 repository: https://nexus.engageska-portugal.pt/repository/helm-chart - name: mid-csp - version: 0.1.4 + version: 0.1.5 repository: "file://../mid-csp" diff --git a/csp-lmc-mid/charts/mid-csp/Chart.yaml b/csp-lmc-mid/charts/mid-csp/Chart.yaml index 6295973..c8af061 100644 --- a/csp-lmc-mid/charts/mid-csp/Chart.yaml +++ b/csp-lmc-mid/charts/mid-csp/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 name: mid-csp description: A Helm chart for deploying the Mid_CSP.LMC devices on Kubernetes -version: 0.1.4 -appVersion: "0.7.3" +version: 0.1.5 +appVersion: "0.7.4" icon: https://www.skatelescope.org/wp-content/uploads/2016/07/09545_NEW_LOGO_2014.png dependencies: - name: tango-util diff --git a/csp-lmc-mid/charts/mid-csp/values.yaml b/csp-lmc-mid/charts/mid-csp/values.yaml index b6b761b..2c27add 100644 --- a/csp-lmc-mid/charts/mid-csp/values.yaml +++ b/csp-lmc-mid/charts/mid-csp/values.yaml @@ -37,7 +37,7 @@ midcsplmc: image: registry: nexus.engageska-portugal.pt/ska-docker image: mid-csp-lmc - tag: 0.7.3 + tag: 0.7.4 pullPolicy: IfNotPresent resources: diff --git a/csp-lmc-mid/csp_lmc_mid/release.py b/csp-lmc-mid/csp_lmc_mid/release.py index 515bf05..c64bc1a 100755 --- a/csp-lmc-mid/csp_lmc_mid/release.py +++ b/csp-lmc-mid/csp_lmc_mid/release.py @@ -10,7 +10,7 @@ """Release information for Python Package""" name = """mid-csp-lmc""" -version = "0.7.3" +version = "0.7.4" version_info = version.split(".") description = """SKA MID CSP.LMC""" author = "INAF-OAA" diff --git a/csp-lmc-mid/requirements.txt b/csp-lmc-mid/requirements.txt index 95dacc1..5b82270 100644 --- a/csp-lmc-mid/requirements.txt +++ b/csp-lmc-mid/requirements.txt @@ -2,7 +2,7 @@ numpy == 1.17.2 pytango >= 9.3.2 jsonschema >= 3.2.0 lmcbaseclasses >= 0.8.0 -csp-lmc-common >= 0.7.3 +csp-lmc-common >= 0.7.4 ska-log-transactions ska-telescope-model==0.2.0 -- GitLab