From 9511468fcfc475dbce27a3ddd1dff0330c96f19f Mon Sep 17 00:00:00 2001 From: kmadisa <kmadisa@ska.ac.za> Date: Mon, 22 Jan 2018 11:59:39 +0000 Subject: [PATCH] Making the Reset command concrete to match with the SKABaseDevice class. --- skabase/SKACapability/SKACapability.xmi | 18 ++++--- .../SKACapability/SKACapability.py | 8 +++ .../SKACapability/test/SKACapability_test.py | 2 +- skabase/SKALogger/SKALogger.xmi | 16 +++--- skabase/SKALogger/SKALogger/SKALogger.py | 8 +++ skabase/SKALogger/test/SKALogger_test.py | 2 +- skabase/SKAObsDevice/SKAObsDevice.xmi | 52 +++++++------------ .../SKAObsDevice/SKAObsDevice/SKAObsDevice.py | 8 +++ .../SKAObsDevice/test/SKAObsDevice_test.py | 2 +- skabase/SKATestDevice/SKATestDevice.xmi | 19 +++---- .../SKATestDevice/SKATestDevice.py | 16 ++++-- .../SKATestDevice/test/SKATestDevice_test.py | 8 +-- 12 files changed, 83 insertions(+), 76 deletions(-) diff --git a/skabase/SKACapability/SKACapability.xmi b/skabase/SKACapability/SKACapability.xmi index 9e6aba3d..05859ed1 100644 --- a/skabase/SKACapability/SKACapability.xmi +++ b/skabase/SKACapability/SKACapability.xmi @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ASCII"?> <pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> <classes name="SKACapability" pogoRevision="9.6"> - <description description="Subarray handling device" title="SKACapability" sourcePath="/home/kat/src/levpro/skabase/SKACapability" language="PythonHL" filestogenerate="XMI file,Code files, Python Package, Protected Regions" license="GPL" copyright="" hasMandatoryProperty="true" hasConcreteProperty="true" hasAbstractCommand="true" hasAbstractAttribute="false"> + <description description="Subarray handling device" title="SKACapability" sourcePath="/home/tango-cs/src/levpro/skabase/SKACapability" language="PythonHL" filestogenerate="XMI file,Code files,Python Package,Protected Regions" license="GPL" copyright="" hasMandatoryProperty="true" hasConcreteProperty="true" hasAbstractCommand="true" hasAbstractAttribute="false"> <inheritances classname="Device_Impl" sourcePath=""/> <inheritances classname="SKAObsDevice" sourcePath="../SKAObsDevice"/> <identification contact="at ska.ac.za - cam" author="cam" emailDomain="ska.ac.za" classFamily="SkaBase" siteSpecific="" platform="All Platforms" bus="Not Applicable" manufacturer="none" reference=""/> @@ -25,11 +25,13 @@ <DefaultPropValue>localhost</DefaultPropValue> </deviceProperties> <deviceProperties name="MetricList" description="A subset of attributes we want to expose as metrics for this device."> - <type xsi:type="pogoDsl:StringType"/> + <type xsi:type="pogoDsl:StringVectorType"/> <status abstract="false" inherited="true" concrete="true"/> - <DefaultPropValue>healthState,adminMode,controlMode</DefaultPropValue> + <DefaultPropValue>healthState</DefaultPropValue> + <DefaultPropValue>adminMode</DefaultPropValue> + <DefaultPropValue>controlMode</DefaultPropValue> </deviceProperties> - <deviceProperties name="GroupDefinitions" description="List of grouped devices managed by a master. Each string in the array is a JSON 
document defining the ``groupname``, ``devices`` and ``groups`` in the group.
A proxy client will be opened for each of the managed devices.
A group will be instantiated for the managed devices per group.
Each entry in the array contains a JSON defining the group, like:
[ {``groupname``: ``group1``, 
 ``devices``: ``csv list of devices in group1``},
 {``groupname``: ``group2``, # a group with devices and a subgroup
 ``devices``: ``csv list of devices in group2``,
 ``groups`` : ``csv list of sub groups``},
 {``groupname``: ``group3``, 
 ``devices`` : ``csv list of devices in group3``}},
 {``groupname``: ``group4``, # a group with only subgroups
 ``groups`` : ``csv list of sub groups``}}]

e.g. for a hierarchy of racks, servers and switches
[{ ``groupname``: ``servers``, 
 ``devices``: ``elt/server/1,elt/server/2,elt/server/3,elt/server/4``},
 {``groupname``: ``switches``, 
 ``devices``: ``elt/switch/A,elt/switch/B``},
 {``groupname``: ``pdus``, 
 ``devices``: ``elt/pdu/rackA,elt/pdu/rackB``},
 {``groupname``:``rackA``, 
 ``devices``: ``elt/server/1,elt/server/2,elt/switch/A,elt/pdu/rackA``},
 {``groupname``:``rackB``,
 ``devices``: ``elt/server/3,elt/server/4,elt/switch/B,elt/pdu/rackB``},
 {``groupname``:``racks``,
 ``groups``: ``rackA,rackB``}]"> + <deviceProperties name="GroupDefinitions" description="Each string in the list is a JSON serialised dict defining the ``group_name``,
``devices`` and ``subgroups`` in the group. A TANGO Group object is created
for each item in the list, according to the hierarchy defined. This provides
easy access to the managed devices in bulk, or individually.

The general format of the list is as follows, with optional ``devices`` and
``subgroups`` keys:
 [ {``group_name``: ``<name>``,
 ``devices``: [``<dev name>``, ...]},
 {``group_name``: ``<name>``,
 ``devices``: [``<dev name>``, ``<dev name>``, ...],
 ``subgroups`` : [{<nested group>},
 {<nested group>}, ...]},
 ...
 ]

For example, a hierarchy of racks, servers and switches:
 [ {``group_name``: ``servers``,
 ``devices``: [``elt/server/1``, ``elt/server/2``,
 ``elt/server/3``, ``elt/server/4``]},
 {``group_name``: ``switches``,
 ``devices``: [``elt/switch/A``, ``elt/switch/B``]},
 {``group_name``: ``pdus``,
 ``devices``: [``elt/pdu/rackA``, ``elt/pdu/rackB``]},
 {``group_name``: ``racks``,
 ``subgroups``: [
 {``group_name``: ``rackA``,
 ``devices``: [``elt/server/1``, ``elt/server/2``,
 ``elt/switch/A``, ``elt/pdu/rackA``]},
 {``group_name``: ``rackB``,
 ``devices``: [``elt/server/3``, ``elt/server/4``,
 ``elt/switch/B``, ``elt/pdu/rackB``],
 ``subgroups``: []}
 ]} ]"> <type xsi:type="pogoDsl:StringVectorType"/> <status abstract="false" inherited="true" concrete="true"/> </deviceProperties> @@ -54,14 +56,14 @@ </argout> <status abstract="true" inherited="true" concrete="false"/> </commands> - <commands name="Reset" description="Reset device to its default state" execMethod="reset" displayLevel="OPERATOR" polledPeriod="0"> + <commands name="Reset" description="Reset device to its default state" execMethod="reset" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> <argin description=""> <type xsi:type="pogoDsl:VoidType"/> </argin> <argout description=""> <type xsi:type="pogoDsl:VoidType"/> </argout> - <status abstract="true" inherited="true" concrete="false"/> + <status abstract="false" inherited="true" concrete="true" concreteHere="true"/> </commands> <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0"> <argin description="none"> @@ -155,12 +157,12 @@ <status abstract="false" inherited="true" concrete="true"/> <properties description="Build state of this device" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="centralLoggingLevel" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> + <attributes name="centralLoggingLevel" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> <dataType xsi:type="pogoDsl:UShortType"/> <status abstract="false" inherited="true" concrete="true"/> <properties description="Current logging level to Central logging target for this device - 
initialises to CentralLoggingLevelDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="elementLoggingLevel" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> + <attributes name="elementLoggingLevel" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> <dataType xsi:type="pogoDsl:UShortType"/> <status abstract="false" inherited="true" concrete="true"/> <properties description="Current logging level to Element logging target for this device - 
initialises to ElementLoggingLevelDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> diff --git a/skabase/SKACapability/SKACapability/SKACapability.py b/skabase/SKACapability/SKACapability/SKACapability.py index 2d3fbd18..ee6cd82b 100644 --- a/skabase/SKACapability/SKACapability/SKACapability.py +++ b/skabase/SKACapability/SKACapability/SKACapability.py @@ -144,6 +144,14 @@ class SKACapability(SKAObsDevice): # Commands # -------- + @command( + ) + @DebugIt() + def Reset(self): + # PROTECTED REGION ID(SKACapability.Reset) ENABLED START # + pass + # PROTECTED REGION END # // SKACapability.Reset + @command( dtype_in='uint16', doc_in="The number of instances to configure for this Capability.", diff --git a/skabase/SKACapability/test/SKACapability_test.py b/skabase/SKACapability/test/SKACapability_test.py index 596da283..461a97a3 100644 --- a/skabase/SKACapability/test/SKACapability_test.py +++ b/skabase/SKACapability/test/SKACapability_test.py @@ -39,7 +39,7 @@ class SKACapabilityDeviceTestCase(DeviceTestCase): # PROTECTED REGION ID(SKACapability.test_additionnal_import) ENABLED START # # PROTECTED REGION END # // SKACapability.test_additionnal_import device = SKACapability - properties = {'SkaLevel': '4', 'CentralLoggingTarget': '', 'ElementLoggingTarget': '', 'StorageLoggingTarget': 'localhost', 'MetricList': 'healthState,adminMode,controlMode', 'GroupDefinitions': '', 'CapType': '', 'CapID': '', 'subID': '', + properties = {'SkaLevel': '4', 'CentralLoggingTarget': '', 'ElementLoggingTarget': '', 'StorageLoggingTarget': 'localhost', 'MetricList': 'healthState', 'GroupDefinitions': '', 'CapType': '', 'CapID': '', 'subID': '', } empty = None # Should be [] diff --git a/skabase/SKALogger/SKALogger.xmi b/skabase/SKALogger/SKALogger.xmi index 240416f3..6dab222d 100644 --- a/skabase/SKALogger/SKALogger.xmi +++ b/skabase/SKALogger/SKALogger.xmi @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ASCII"?> <pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> <classes name="SKALogger" pogoRevision="9.6"> - <description description="A generic base device for Logging for SKA." title="SKALogger" sourcePath="/home/kat/src/levpro/skabase/SKALogger" language="PythonHL" filestogenerate="XMI file,Code files, Python Package, Protected Regions" license="GPL" copyright="" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="true" hasAbstractAttribute="false"> + <description description="A generic base device for Logging for SKA." title="SKALogger" sourcePath="/home/tango-cs/src/levpro/skabase/SKALogger" language="PythonHL" filestogenerate="XMI file,Code files,Python Package,Protected Regions" license="GPL" copyright="" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false"> <inheritances classname="Device_Impl" sourcePath=""/> <inheritances classname="SKABaseDevice" sourcePath="../SKABaseDevice"/> <identification contact="at ska.ac.za - cam" author="cam" emailDomain="ska.ac.za" classFamily="OtherInstruments" siteSpecific="" platform="All Platforms" bus="Not Applicable" manufacturer="SKASA" reference="SKA-SKALogger"/> @@ -12,11 +12,13 @@ <DefaultPropValue>4</DefaultPropValue> </deviceProperties> <deviceProperties name="MetricList" description="A subset of attributes we want to expose as metrics for this device."> - <type xsi:type="pogoDsl:StringType"/> + <type xsi:type="pogoDsl:StringVectorType"/> <status abstract="false" inherited="true" concrete="true"/> - <DefaultPropValue>healthState,adminMode,controlMode</DefaultPropValue> + <DefaultPropValue>healthState</DefaultPropValue> + <DefaultPropValue>adminMode</DefaultPropValue> + <DefaultPropValue>controlMode</DefaultPropValue> </deviceProperties> - <deviceProperties name="GroupDefinitions" description="List of grouped devices managed by a master. Each string in the array is a JSON 
document defining the ``groupname``, ``devices`` and ``groups`` in the group.
A proxy client will be opened for each of the managed devices.
A group will be instantiated for the managed devices per group.
Each entry in the array contains a JSON defining the group, like:
[ {``groupname``: ``group1``, 
 ``devices``: ``csv list of devices in group1``},
 {``groupname``: ``group2``, # a group with devices and a subgroup
 ``devices``: ``csv list of devices in group2``,
 ``groups`` : ``csv list of sub groups``},
 {``groupname``: ``group3``, 
 ``devices`` : ``csv list of devices in group3``}},
 {``groupname``: ``group4``, # a group with only subgroups
 ``groups`` : ``csv list of sub groups``}}]

e.g. for a hierarchy of racks, servers and switches
[{ ``groupname``: ``servers``, 
 ``devices``: ``elt/server/1,elt/server/2,elt/server/3,elt/server/4``},
 {``groupname``: ``switches``, 
 ``devices``: ``elt/switch/A,elt/switch/B``},
 {``groupname``: ``pdus``, 
 ``devices``: ``elt/pdu/rackA,elt/pdu/rackB``},
 {``groupname``:``rackA``, 
 ``devices``: ``elt/server/1,elt/server/2,elt/switch/A,elt/pdu/rackA``},
 {``groupname``:``rackB``,
 ``devices``: ``elt/server/3,elt/server/4,elt/switch/B,elt/pdu/rackB``},
 {``groupname``:``racks``,
 ``groups``: ``rackA,rackB``}]"> + <deviceProperties name="GroupDefinitions" description="Each string in the list is a JSON serialised dict defining the ``group_name``,
``devices`` and ``subgroups`` in the group. A TANGO Group object is created
for each item in the list, according to the hierarchy defined. This provides
easy access to the managed devices in bulk, or individually.

The general format of the list is as follows, with optional ``devices`` and
``subgroups`` keys:
 [ {``group_name``: ``<name>``,
 ``devices``: [``<dev name>``, ...]},
 {``group_name``: ``<name>``,
 ``devices``: [``<dev name>``, ``<dev name>``, ...],
 ``subgroups`` : [{<nested group>},
 {<nested group>}, ...]},
 ...
 ]

For example, a hierarchy of racks, servers and switches:
 [ {``group_name``: ``servers``,
 ``devices``: [``elt/server/1``, ``elt/server/2``,
 ``elt/server/3``, ``elt/server/4``]},
 {``group_name``: ``switches``,
 ``devices``: [``elt/switch/A``, ``elt/switch/B``]},
 {``group_name``: ``pdus``,
 ``devices``: [``elt/pdu/rackA``, ``elt/pdu/rackB``]},
 {``group_name``: ``racks``,
 ``subgroups``: [
 {``group_name``: ``rackA``,
 ``devices``: [``elt/server/1``, ``elt/server/2``,
 ``elt/switch/A``, ``elt/pdu/rackA``]},
 {``group_name``: ``rackB``,
 ``devices``: [``elt/server/3``, ``elt/server/4``,
 ``elt/switch/B``, ``elt/pdu/rackB``],
 ``subgroups``: []}
 ]} ]"> <type xsi:type="pogoDsl:StringVectorType"/> <status abstract="false" inherited="true" concrete="true"/> </deviceProperties> @@ -48,7 +50,7 @@ <status abstract="false" inherited="false" concrete="true"/> <DefaultPropValue>4</DefaultPropValue> </deviceProperties> - <commands name="Log" description="LogConsumer interface" displayLevel="OPERATOR" polledPeriod="0"> + <commands name="Log" description="LogConsumer interface" execMethod="log" displayLevel="OPERATOR" polledPeriod="0"> <argin description="none"> <type xsi:type="pogoDsl:StringArrayType"/> </argin> @@ -102,14 +104,14 @@ </argout> <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> </commands> - <commands name="Reset" description="Reset device to its default state" execMethod="reset" displayLevel="OPERATOR" polledPeriod="0"> + <commands name="Reset" description="Reset device to its default state" execMethod="reset" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> <argin description=""> <type xsi:type="pogoDsl:VoidType"/> </argin> <argout description=""> <type xsi:type="pogoDsl:VoidType"/> </argout> - <status abstract="true" inherited="true" concrete="false"/> + <status abstract="false" inherited="true" concrete="true" concreteHere="true"/> </commands> <commands name="GetMetrics" description="Gets list of attributes marked as metrics, with their values, 
for device" execMethod="get_metrics" displayLevel="OPERATOR" polledPeriod="0"> <argin description=""> diff --git a/skabase/SKALogger/SKALogger/SKALogger.py b/skabase/SKALogger/SKALogger/SKALogger.py index 5bb0474f..6761bf38 100644 --- a/skabase/SKALogger/SKALogger/SKALogger.py +++ b/skabase/SKALogger/SKALogger/SKALogger.py @@ -159,6 +159,14 @@ class SKALogger(SKABaseDevice): pass # PROTECTED REGION END # // SKALogger.SetStorageLoggingLevel + @command( + ) + @DebugIt() + def Reset(self): + # PROTECTED REGION ID(SKALogger.Reset) ENABLED START # + pass + # PROTECTED REGION END # // SKALogger.Reset + # ---------- # Run server # ---------- diff --git a/skabase/SKALogger/test/SKALogger_test.py b/skabase/SKALogger/test/SKALogger_test.py index 45b3a768..65824447 100644 --- a/skabase/SKALogger/test/SKALogger_test.py +++ b/skabase/SKALogger/test/SKALogger_test.py @@ -39,7 +39,7 @@ class SKALoggerDeviceTestCase(DeviceTestCase): # PROTECTED REGION ID(SKALogger.test_additionnal_import) ENABLED START # # PROTECTED REGION END # // SKALogger.test_additionnal_import device = SKALogger - properties = {'SkaLevel': '4', 'MetricList': 'healthState,adminMode,controlMode', 'GroupDefinitions': '', 'CentralLoggingTarget': '', 'ElementLoggingTarget': '', 'StorageLoggingTarget': 'localhost', 'CentralLoggingLevelDefault': '2', 'ElementLoggingLevelDefault': '3', 'StorageLoggingLevelDefault': '4', + properties = {'SkaLevel': '4', 'MetricList': 'healthState', 'GroupDefinitions': '', 'CentralLoggingTarget': '', 'ElementLoggingTarget': '', 'StorageLoggingTarget': 'localhost', 'CentralLoggingLevelDefault': '2', 'ElementLoggingLevelDefault': '3', 'StorageLoggingLevelDefault': '4', } empty = None # Should be [] diff --git a/skabase/SKAObsDevice/SKAObsDevice.xmi b/skabase/SKAObsDevice/SKAObsDevice.xmi index 8e7ef6a6..32b9d742 100644 --- a/skabase/SKAObsDevice/SKAObsDevice.xmi +++ b/skabase/SKAObsDevice/SKAObsDevice.xmi @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ASCII"?> <pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> <classes name="SKAObsDevice" pogoRevision="9.6"> - <description description="A generic base device for Observations for SKA." title="SKAObsDevice" sourcePath="/home/kat/src/levpro/skabase/SKAObsDevice" language="PythonHL" filestogenerate="XMI file,Code files, Python Package, Protected Regions" license="GPL" copyright="" hasMandatoryProperty="false" hasConcreteProperty="false" hasAbstractCommand="true" hasAbstractAttribute="false"> + <description description="A generic base device for Observations for SKA." title="SKAObsDevice" sourcePath="/home/tango-cs/src/levpro/skabase/SKAObsDevice" language="PythonHL" filestogenerate="XMI file,Code files,Python Package,Protected Regions" license="GPL" copyright="" hasMandatoryProperty="false" hasConcreteProperty="false" hasAbstractCommand="true" hasAbstractAttribute="false"> <inheritances classname="Device_Impl" sourcePath=""/> <inheritances classname="SKABaseDevice" sourcePath="../SKABaseDevice"/> <identification contact="at ska.ac.za - cam" author="cam" emailDomain="ska.ac.za" classFamily="OtherInstruments" siteSpecific="" platform="All Platforms" bus="Not Applicable" manufacturer="SKASA" reference="SKA-SKAObsDevice"/> @@ -25,11 +25,13 @@ <DefaultPropValue>localhost</DefaultPropValue> </deviceProperties> <deviceProperties name="MetricList" description="A subset of attributes we want to expose as metrics for this device."> - <type xsi:type="pogoDsl:StringType"/> + <type xsi:type="pogoDsl:StringVectorType"/> <status abstract="false" inherited="true" concrete="true"/> - <DefaultPropValue>healthState,adminMode,controlMode</DefaultPropValue> + <DefaultPropValue>healthState</DefaultPropValue> + <DefaultPropValue>adminMode</DefaultPropValue> + <DefaultPropValue>controlMode</DefaultPropValue> </deviceProperties> - <deviceProperties name="GroupDefinitions" description="List of grouped devices managed by a master. Each string in the array is a JSON 
document defining the ``groupname``, ``devices`` and ``groups`` in the group.
A proxy client will be opened for each of the managed devices.
A group will be instantiated for the managed devices per group.
Each entry in the array contains a JSON defining the group, like:
[ {``groupname``: ``group1``, 
 ``devices``: ``csv list of devices in group1``},
 {``groupname``: ``group2``, # a group with devices and a subgroup
 ``devices``: ``csv list of devices in group2``,
 ``groups`` : ``csv list of sub groups``},
 {``groupname``: ``group3``, 
 ``devices`` : ``csv list of devices in group3``}},
 {``groupname``: ``group4``, # a group with only subgroups
 ``groups`` : ``csv list of sub groups``}}]

e.g. for a hierarchy of racks, servers and switches
[{ ``groupname``: ``servers``, 
 ``devices``: ``elt/server/1,elt/server/2,elt/server/3,elt/server/4``},
 {``groupname``: ``switches``, 
 ``devices``: ``elt/switch/A,elt/switch/B``},
 {``groupname``: ``pdus``, 
 ``devices``: ``elt/pdu/rackA,elt/pdu/rackB``},
 {``groupname``:``rackA``, 
 ``devices``: ``elt/server/1,elt/server/2,elt/switch/A,elt/pdu/rackA``},
 {``groupname``:``rackB``,
 ``devices``: ``elt/server/3,elt/server/4,elt/switch/B,elt/pdu/rackB``},
 {``groupname``:``racks``,
 ``groups``: ``rackA,rackB``}]"> + <deviceProperties name="GroupDefinitions" description="Each string in the list is a JSON serialised dict defining the ``group_name``,
``devices`` and ``subgroups`` in the group. A TANGO Group object is created
for each item in the list, according to the hierarchy defined. This provides
easy access to the managed devices in bulk, or individually.

The general format of the list is as follows, with optional ``devices`` and
``subgroups`` keys:
 [ {``group_name``: ``<name>``,
 ``devices``: [``<dev name>``, ...]},
 {``group_name``: ``<name>``,
 ``devices``: [``<dev name>``, ``<dev name>``, ...],
 ``subgroups`` : [{<nested group>},
 {<nested group>}, ...]},
 ...
 ]

For example, a hierarchy of racks, servers and switches:
 [ {``group_name``: ``servers``,
 ``devices``: [``elt/server/1``, ``elt/server/2``,
 ``elt/server/3``, ``elt/server/4``]},
 {``group_name``: ``switches``,
 ``devices``: [``elt/switch/A``, ``elt/switch/B``]},
 {``group_name``: ``pdus``,
 ``devices``: [``elt/pdu/rackA``, ``elt/pdu/rackB``]},
 {``group_name``: ``racks``,
 ``subgroups``: [
 {``group_name``: ``rackA``,
 ``devices``: [``elt/server/1``, ``elt/server/2``,
 ``elt/switch/A``, ``elt/pdu/rackA``]},
 {``group_name``: ``rackB``,
 ``devices``: [``elt/server/3``, ``elt/server/4``,
 ``elt/switch/B``, ``elt/pdu/rackB``],
 ``subgroups``: []}
 ]} ]"> <type xsi:type="pogoDsl:StringVectorType"/> <status abstract="false" inherited="true" concrete="true"/> </deviceProperties> @@ -42,14 +44,14 @@ </argout> <status abstract="true" inherited="false" concrete="false" concreteHere="false"/> </commands> - <commands name="Reset" description="Reset device to its default state" execMethod="reset" displayLevel="OPERATOR" polledPeriod="0"> + <commands name="Reset" description="Reset device to its default state" execMethod="reset" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> <argin description=""> <type xsi:type="pogoDsl:VoidType"/> </argin> <argout description=""> <type xsi:type="pogoDsl:VoidType"/> </argout> - <status abstract="true" inherited="true" concrete="false"/> + <status abstract="false" inherited="true" concrete="true" concreteHere="true"/> </commands> <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0"> <argin description="none"> @@ -144,83 +146,73 @@ <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> <properties description="Configuration delay expected in seconds" label="" unit="seconds" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="buildState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="60000" maxX="" maxY="" allocReadMember="true" isDynamic="false"> + <attributes name="buildState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="60000" maxX="" maxY="" allocReadMember="true"> <dataType xsi:type="pogoDsl:StringType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="Build state of this device" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="versionId" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="60000" maxX="" maxY="" allocReadMember="true" isDynamic="false"> + <attributes name="versionId" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="60000" maxX="" maxY="" allocReadMember="true"> <dataType xsi:type="pogoDsl:StringType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="Build state of this device" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="centralLoggingLevel" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" allocReadMember="true" isDynamic="false"> + <attributes name="centralLoggingLevel" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" allocReadMember="true"> <dataType xsi:type="pogoDsl:UShortType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="Current logging level to Central logging target for this device - 
initialises to CentralLoggingLevelDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="elementLoggingLevel" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" allocReadMember="true" isDynamic="false"> + <attributes name="elementLoggingLevel" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" allocReadMember="true"> <dataType xsi:type="pogoDsl:UShortType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="Current logging level to Element logging target for this device - 
initialises to ElementLoggingLevelDefault on startup" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="storageLoggingLevel" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true" isDynamic="false"> + <attributes name="storageLoggingLevel" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true"> <dataType xsi:type="pogoDsl:UShortType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="Current logging level to Syslog for this device - 
initialises from StorageLoggingLevelDefault on first execution of device.
Needs to be READ_WRITE To make it memorized - but writing this attribute should 
do the same as command SetStorageLoggingLevel to ensure the targets and adjustments
are made correctly" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="healthState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" allocReadMember="true" isDynamic="false"> + <attributes name="healthState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" allocReadMember="true"> <dataType xsi:type="pogoDsl:EnumType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="The health state reported for this device. It interprets the current device condition 
and condition of all managed devices to set this. Most possibly an aggregate attribute." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="adminMode" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true" isDynamic="false"> + <attributes name="adminMode" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true"> <dataType xsi:type="pogoDsl:EnumType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="The admin mode reported for this device. It may interpret the current device condition 
and condition of all managed devices to set this. Most possibly an aggregate attribute." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="controlMode" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true" isDynamic="false"> + <attributes name="controlMode" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true"> <dataType xsi:type="pogoDsl:EnumType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="The control mode of the device. REMOTE, LOCAL
TANGO Device accepts only from a ‘local’ client and ignores commands and queries received from TM
or any other ‘remote’ clients. The Local clients has to release LOCAL control before REMOTE clients
can take control again." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="simulationMode" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true" isDynamic="false"> + <attributes name="simulationMode" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true"> <dataType xsi:type="pogoDsl:BooleanType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="Reports the simulation mode of the device. Some devices may implement both modes,
while others will have simulators that set simulationMode to True while the real
devices always set simulationMode to False." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> - <attributes name="testMode" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true" isDynamic="false"> + <attributes name="testMode" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="1000" maxX="" maxY="" memorized="true" allocReadMember="true"> <dataType xsi:type="pogoDsl:StringType"/> <changeEvent fire="false" libCheckCriteria="false"/> <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> <status abstract="false" inherited="true" concrete="true" concreteHere="false"/> <properties description="The test mode of the device. 
Either no test mode (empty string) or an indication of the test mode." label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> </attributes> @@ -249,13 +241,5 @@ <status abstract="false" inherited="true" concrete="true"/> </states> <preferences docHome="./doc_html" makefileHome="/usr/share/pogo/preferences"/> - <overlodedPollPeriodObject name="centralLoggingLevel" type="attribute" pollPeriod="0"/> - <overlodedPollPeriodObject name="elementLoggingLevel" type="attribute" pollPeriod="0"/> - <overlodedPollPeriodObject name="storageLoggingLevel" type="attribute" pollPeriod="0"/> - <overlodedPollPeriodObject name="healthState" type="attribute" pollPeriod="0"/> - <overlodedPollPeriodObject name="adminMode" type="attribute" pollPeriod="0"/> - <overlodedPollPeriodObject name="controlMode" type="attribute" pollPeriod="0"/> - <overlodedPollPeriodObject name="simulationMode" type="attribute" pollPeriod="0"/> - <overlodedPollPeriodObject name="testMode" type="attribute" pollPeriod="0"/> </classes> </pogoDsl:PogoSystem> diff --git a/skabase/SKAObsDevice/SKAObsDevice/SKAObsDevice.py b/skabase/SKAObsDevice/SKAObsDevice/SKAObsDevice.py index 4bd03aa1..935f6450 100644 --- a/skabase/SKAObsDevice/SKAObsDevice/SKAObsDevice.py +++ b/skabase/SKAObsDevice/SKAObsDevice/SKAObsDevice.py @@ -144,6 +144,14 @@ class SKAObsDevice(SKABaseDevice): # Commands # -------- + @command( + ) + @DebugIt() + def Reset(self): + # PROTECTED REGION ID(SKAObsDevice.Reset) ENABLED START # + pass + # PROTECTED REGION END # // SKAObsDevice.Reset + # ---------- # Run server # ---------- diff --git a/skabase/SKAObsDevice/test/SKAObsDevice_test.py b/skabase/SKAObsDevice/test/SKAObsDevice_test.py index c8d826d5..4e4c4a44 100644 --- a/skabase/SKAObsDevice/test/SKAObsDevice_test.py +++ b/skabase/SKAObsDevice/test/SKAObsDevice_test.py @@ -39,7 +39,7 @@ class SKAObsDeviceDeviceTestCase(DeviceTestCase): # PROTECTED REGION ID(SKAObsDevice.test_additionnal_import) ENABLED START # # PROTECTED REGION END # // SKAObsDevice.test_additionnal_import device = SKAObsDevice - properties = {'SkaLevel': '4', 'CentralLoggingTarget': '', 'ElementLoggingTarget': '', 'StorageLoggingTarget': 'localhost', 'MetricList': 'healthState,adminMode,controlMode', 'GroupDefinitions': '', + properties = {'SkaLevel': '4', 'CentralLoggingTarget': '', 'ElementLoggingTarget': '', 'StorageLoggingTarget': 'localhost', 'MetricList': 'healthState', 'GroupDefinitions': '', } empty = None # Should be [] diff --git a/skabase/SKATestDevice/SKATestDevice.xmi b/skabase/SKATestDevice/SKATestDevice.xmi index f627daec..a8bad685 100644 --- a/skabase/SKATestDevice/SKATestDevice.xmi +++ b/skabase/SKATestDevice/SKATestDevice.xmi @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ASCII"?> <pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> <classes name="SKATestDevice" pogoRevision="9.6"> - <description description="A generic Test device for testing SKA base class functionalites." title="SKATestDevice" sourcePath="/home/kat/git/levpro/skabase/SKATestDevice" language="PythonHL" filestogenerate="XMI file,Code files,Python Package,Protected Regions" license="GPL" copyright="" hasMandatoryProperty="false" hasConcreteProperty="false" hasAbstractCommand="true" hasAbstractAttribute="false"> + <description description="A generic Test device for testing SKA base class functionalites." title="SKATestDevice" sourcePath="/home/tango-cs/src/levpro/skabase/SKATestDevice" language="PythonHL" filestogenerate="XMI file,Code files,Python Package,Protected Regions" license="GPL" copyright="" hasMandatoryProperty="false" hasConcreteProperty="false" hasAbstractCommand="false" hasAbstractAttribute="false"> <inheritances classname="Device_Impl" sourcePath=""/> <inheritances classname="SKABaseDevice" sourcePath="../SKABaseDevice"/> <identification contact="at ska.ac.za - cam" author="cam" emailDomain="ska.ac.za" classFamily="OtherInstruments" siteSpecific="" platform="All Platforms" bus="Not Applicable" manufacturer="SKASA" reference="SKA-SKATestDevice"/> @@ -37,9 +37,11 @@ <status abstract="false" inherited="true" concrete="true"/> </deviceProperties> <deviceProperties name="MetricList" description="A subset of attributes we want to expose as metrics for this device."> - <type xsi:type="pogoDsl:StringType"/> + <type xsi:type="pogoDsl:StringVectorType"/> <status abstract="false" inherited="true" concrete="true"/> - <DefaultPropValue>healthState,adminMode,controlMode</DefaultPropValue> + <DefaultPropValue>healthState</DefaultPropValue> + <DefaultPropValue>adminMode</DefaultPropValue> + <DefaultPropValue>controlMode</DefaultPropValue> </deviceProperties> <deviceProperties name="GroupDefinitions" description="Each string in the list is a JSON serialised dict defining the ``group_name``,
``devices`` and ``subgroups`` in the group. A TANGO Group object is created
for each item in the list, according to the hierarchy defined. This provides
easy access to the managed devices in bulk, or individually.

The general format of the list is as follows, with optional ``devices`` and
``subgroups`` keys:
 [ {``group_name``: ``<name>``,
 ``devices``: [``<dev name>``, ...]},
 {``group_name``: ``<name>``,
 ``devices``: [``<dev name>``, ``<dev name>``, ...],
 ``subgroups`` : [{<nested group>},
 {<nested group>}, ...]},
 ...
 ]

For example, a hierarchy of racks, servers and switches:
 [ {``group_name``: ``servers``,
 ``devices``: [``elt/server/1``, ``elt/server/2``,
 ``elt/server/3``, ``elt/server/4``]},
 {``group_name``: ``switches``,
 ``devices``: [``elt/switch/A``, ``elt/switch/B``]},
 {``group_name``: ``pdus``,
 ``devices``: [``elt/pdu/rackA``, ``elt/pdu/rackB``]},
 {``group_name``: ``racks``,
 ``subgroups``: [
 {``group_name``: ``rackA``,
 ``devices``: [``elt/server/1``, ``elt/server/2``,
 ``elt/switch/A``, ``elt/pdu/rackA``]},
 {``group_name``: ``rackB``,
 ``devices``: [``elt/server/3``, ``elt/server/4``,
 ``elt/switch/B``, ``elt/pdu/rackB``],
 ``subgroups``: []}
 ]} ]"> <type xsi:type="pogoDsl:StringVectorType"/> @@ -49,15 +51,6 @@ <type xsi:type="pogoDsl:UShortType"/> <status abstract="false" inherited="true" concrete="true"/> </deviceProperties> - <commands name="ObsState" description="Set the observation state" execMethod="obs_state" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description="Observation state"> - <type xsi:type="pogoDsl:ConstStringType"/> - </argout> - <status abstract="true" inherited="false" concrete="false" concreteHere="false"/> - </commands> <commands name="Reset" description="Reset device to its default state" execMethod="reset" displayLevel="OPERATOR" polledPeriod="0"> <argin description=""> <type xsi:type="pogoDsl:VoidType"/> @@ -65,7 +58,7 @@ <argout description=""> <type xsi:type="pogoDsl:VoidType"/> </argout> - <status abstract="true" inherited="true" concrete="false"/> + <status abstract="false" inherited="true" concrete="true" concreteHere="true"/> </commands> <commands name="GetMetrics" description="Gets list of attributes marked as metrics, with their values, 
for device" execMethod="get_metrics" displayLevel="OPERATOR" polledPeriod="0"> <argin description=""> diff --git a/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py b/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py index 39c596cd..8e6eee11 100644 --- a/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py +++ b/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py @@ -143,10 +143,18 @@ class SKATestDevice(SKABaseDevice): # -------- @command( - dtype_in='str', - doc_in="JSON encoded dict with this format\n{``group``: str, # name of existing group\n ``command``: str, # name of command to run\n ``arg_type``: str, # data type of command input argument\n ``arg_value``: str, # value for command input argument\n ``forward``: bool # True if command should be forwarded to all subgroups (default)\n}", - dtype_out='str', - doc_out="Return value from command on the group, as a JSON encoded string.\nThis will be a list of dicts of the form \n[ \n{``device_name``: str, # TANGO device name\n ``argout``: <value>, # return value from command (type depends on command)\n ``failed``: bool # True if command failed\n},\n{ ... },\n ... ]", + ) + @DebugIt() + def Reset(self): + # PROTECTED REGION ID(SKATestDevice.Reset) ENABLED START # + pass + # PROTECTED REGION END # // SKATestDevice.Reset + + @command( + dtype_in='str', + doc_in="JSON encoded dict with this format\n{``group``: str, # name of existing group\n ``command``: str, # name of command to run\n ``arg_type``: str, # data type of command input argument\n ``arg_value``: str, # value for command input argument\n ``forward``: bool # True if command should be forwarded to all subgroups (default)\n}", + dtype_out='str', + doc_out="Return value from command on the group, as a JSON encoded string.\nThis will be a list of dicts of the form \n[ \n{``device_name``: str, # TANGO device name\n ``argout``: <value>, # return value from command (type depends on command)\n ``failed``: bool # True if command failed\n},\n{ ... },\n ... ]", ) @DebugIt() def RunGroupCommand(self, argin): diff --git a/skabase/SKATestDevice/test/SKATestDevice_test.py b/skabase/SKATestDevice/test/SKATestDevice_test.py index 7fff47a5..f57f8236 100644 --- a/skabase/SKATestDevice/test/SKATestDevice_test.py +++ b/skabase/SKATestDevice/test/SKATestDevice_test.py @@ -39,7 +39,7 @@ class SKATestDeviceDeviceTestCase(DeviceTestCase): # PROTECTED REGION ID(SKATestDevice.test_additionnal_import) ENABLED START # # PROTECTED REGION END # // SKATestDevice.test_additionnal_import device = SKATestDevice - properties = {'SkaLevel': '4', 'CentralLoggingTarget': '', 'ElementLoggingTarget': '', 'StorageLoggingTarget': 'localhost', 'CentralLoggingLevelDefault': '', 'ElementLoggingLevelDefault': '', 'StorageLoggingLevelStorage': '', 'MetricList': 'healthState,adminMode,controlMode', 'GroupDefinitions': '', 'StorageLoggingLevelDefault': '', + properties = {'SkaLevel': '4', 'CentralLoggingTarget': '', 'ElementLoggingTarget': '', 'StorageLoggingTarget': 'localhost', 'CentralLoggingLevelDefault': '', 'ElementLoggingLevelDefault': '', 'StorageLoggingLevelStorage': '', 'MetricList': 'healthState', 'GroupDefinitions': '', 'StorageLoggingLevelDefault': '', } empty = None # Should be [] @@ -57,12 +57,6 @@ class SKATestDeviceDeviceTestCase(DeviceTestCase): # PROTECTED REGION END # // SKATestDevice.test_properties pass - def test_ObsState(self): - """Test for ObsState""" - # PROTECTED REGION ID(SKATestDevice.test_ObsState) ENABLED START # - self.device.ObsState() - # PROTECTED REGION END # // SKATestDevice.test_ObsState - def test_Reset(self): """Test for Reset""" # PROTECTED REGION ID(SKATestDevice.test_Reset) ENABLED START # -- GitLab