From d1a046d88e9715e2136a57add8722aff601b62a3 Mon Sep 17 00:00:00 2001
From: Drew Devereux <drew.devereux@csiro.au>
Date: Fri, 14 Aug 2020 10:28:43 +0800
Subject: [PATCH] 0.6.5 observation state machine fix

---
 .release                                  | 4 ++--
 README.md                                 | 4 ++++
 src/ska/base/release.py                   | 2 +-
 src/ska/base/state_machine.py             | 1 +
 tests/data/observation_state_machine.json | 5 +++++
 tests/data/subarray_state_machine.json    | 5 +++++
 6 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/.release b/.release
index 51faac07..f979421c 100644
--- a/.release
+++ b/.release
@@ -1,2 +1,2 @@
-release=0.6.4
-tag=lmcbaseclasses-0.6.4
+release=0.6.5
+tag=lmcbaseclasses-0.6.5
diff --git a/README.md b/README.md
index a416cd46..8d7a79a6 100644
--- a/README.md
+++ b/README.md
@@ -25,6 +25,10 @@ The lmc-base-classe repository contains set of eight classes as mentioned in SKA
 
 ## Version History
 
+#### 0.6.5
+- Fix to observation state machine: allow Abort() from RESETTING observation
+  state
+
 #### 0.6.4
 - Refactor state machine to use pytransitions library.
 - Minor behavioural change: Off() command is accepted in every obsState, rather
diff --git a/src/ska/base/release.py b/src/ska/base/release.py
index 22e3240f..e62b34d2 100644
--- a/src/ska/base/release.py
+++ b/src/ska/base/release.py
@@ -7,7 +7,7 @@
 """Release information for lmc-base-classes Python Package"""
 
 name = """lmcbaseclasses"""
-version = "0.6.4"
+version = "0.6.5"
 version_info = version.split(".")
 description = """A set of generic base devices for SKA Telescope."""
 author = "SKA India and SARAO and CSIRO"
diff --git a/src/ska/base/state_machine.py b/src/ska/base/state_machine.py
index 044a97df..8ecbfa56 100644
--- a/src/ska/base/state_machine.py
+++ b/src/ska/base/state_machine.py
@@ -404,6 +404,7 @@ class ObservationStateMachine(Machine):
                 "source": [
                     ObsState.IDLE.name, ObsState.CONFIGURING.name,
                     ObsState.READY.name, ObsState.SCANNING.name,
+                    ObsState.RESETTING.name,
                 ],
                 "trigger": "abort_started",
                 "dest": ObsState.ABORTING.name,
diff --git a/tests/data/observation_state_machine.json b/tests/data/observation_state_machine.json
index 4165bae0..8aa6c51d 100644
--- a/tests/data/observation_state_machine.json
+++ b/tests/data/observation_state_machine.json
@@ -189,6 +189,11 @@
         "obs_reset_failed",
         "FAULT"
     ],
+    [
+        "RESETTING",
+        "abort_started",
+        "ABORTING"
+    ],
     [
         "RESETTING",
         "fatal_error",
diff --git a/tests/data/subarray_state_machine.json b/tests/data/subarray_state_machine.json
index 2c416dcd..807358c8 100644
--- a/tests/data/subarray_state_machine.json
+++ b/tests/data/subarray_state_machine.json
@@ -494,6 +494,11 @@
         "obs_reset_failed",
         "FAULT"
     ],
+    [
+        "RESETTING",
+        "abort_started",
+        "ABORTING"
+    ],
     [
         "RESETTING",
         "fatal_error",
-- 
GitLab