An event type for publishing changes in system data.
diff --git a/docs/LocationService.html b/docs/LocationService.html
index 11ef55d..dd8fc19 100644
--- a/docs/LocationService.html
+++ b/docs/LocationService.html
@@ -105,7 +105,7 @@
Module csw.LocationService
elif typ == "AkkaLocation":
return AkkaLocation.schema().loads(s)
else:
- raise Exception("Invalid Location type: " + typ)
+ raise Exception("Invalid location type: " + typ)
_pdocIgnoreGenerated("AkkaLocation")
@@ -585,7 +585,7 @@
Class variables
elif typ == "AkkaLocation":
return AkkaLocation.schema().loads(s)
else:
- raise Exception("Invalid Location type: " + typ)
+ raise Exception("Invalid location type: " + typ)
Subclasses
diff --git a/examples/TestCommandServer.py b/examples/TestCommandServer.py
index cf8431b..57c16f4 100644
--- a/examples/TestCommandServer.py
+++ b/examples/TestCommandServer.py
@@ -11,6 +11,7 @@
class MyComponentHandlers(ComponentHandlers):
+ prefix = "CSW.pycswTest"
async def longRunningCommand(self, runId: str, command: ControlCommand) -> CommandResponse:
await asyncio.sleep(3)
@@ -71,9 +72,9 @@ def onOneway(self, runId: str, command: ControlCommand) -> CommandResponse:
"""
n = len(command.paramSet)
print(f"MyComponentHandlers Received oneway {str(command)} with {n} params")
- filt = command.get("filter").values[0]
- encoder = command.get("encoder").values[0]
- print(f"filter = {filt}, encoder = {encoder}")
+ # filt = command.get("filter").values[0]
+ # encoder = command.get("encoder").values[0]
+ # print(f"filter = {filt}, encoder = {encoder}")
return Accepted(runId)
def validateCommand(self, runId: str, command: ControlCommand) -> CommandResponse:
@@ -96,8 +97,12 @@ def currentStates(self) -> List[CurrentState]:
floatArrayParam = Parameter("FloatArrayValue", "FloatArrayKey", [[1.2, 2.3, 3.4], [5.6, 7.8, 9.1]], "marcsec")
intMatrixParam = Parameter("IntMatrixValue", "IntMatrixKey",
[[[1, 2, 3, 4], [5, 6, 7, 8]], [[-1, -2, -3, -4], [-5, -6, -7, -8]]], "meter")
- return [CurrentState("csw.assembly", "PyCswState", [intParam, intArrayParam, floatArrayParam, intMatrixParam])]
+ return [CurrentState(self.prefix, "PyCswState", [intParam, intArrayParam, floatArrayParam, intMatrixParam])]
# noinspection PyTypeChecker
-commandServer = CommandServer("csw.pycswTest", MyComponentHandlers())
+handlers = MyComponentHandlers()
+commandServer = CommandServer(handlers.prefix, handlers)
+handlers.commandServer = commandServer
+print(f"Starting test command server on port {commandServer.port}")
+commandServer.start()
diff --git a/tests/PyTestAssemblyEventHandlers.out b/tests/PyTestAssemblyEventHandlers.out
index 89122da..da5c621 100644
--- a/tests/PyTestAssemblyEventHandlers.out
+++ b/tests/PyTestAssemblyEventHandlers.out
@@ -1,5 +1,3 @@
{"_type":"SystemEvent","eventId":"test","source":"CSW.TestPublisher","eventName":"testEvent1","eventTime":"1970-01-01T00:00:00Z","paramSet":[{"DoubleKey":{"keyName":"assemblyEventValue","values":[42.0],"units":"NoUnits"}}]}
{"_type":"SystemEvent","eventId":"test","source":"CSW.TestPublisher","eventName":"testEvent2","eventTime":"1970-01-01T00:00:00Z","paramSet":[{"IntKey":{"keyName":"IntValue","values":[42],"units":"arcsec"}},{"IntArrayKey":{"keyName":"IntArrayValue","values":[[1,2,3,4],[5,6,7,8]],"units":"NoUnits"}},{"FloatArrayKey":{"keyName":"FloatArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"marcsec"}},{"IntMatrixKey":{"keyName":"IntMatrixValue","values":[[[1,2,3,4],[5,6,7,8]],[[-1,-2,-3,-4],[-5,-6,-7,-8]]],"units":"meter"}}]}
-{"_type":"SystemEvent","eventId":"test","source":"CSW.TestPublisher","eventName":"testEvent2","eventTime":"1970-01-01T00:00:00Z","paramSet":[{"IntKey":{"keyName":"IntValue","values":[42],"units":"arcsec"}},{"IntArrayKey":{"keyName":"IntArrayValue","values":[[1,2,3,4],[5,6,7,8]],"units":"NoUnits"}},{"FloatArrayKey":{"keyName":"FloatArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"marcsec"}},{"IntMatrixKey":{"keyName":"IntMatrixValue","values":[[[1,2,3,4],[5,6,7,8]],[[-1,-2,-3,-4],[-5,-6,-7,-8]]],"units":"meter"}}]}
-{"_type":"SystemEvent","eventId":"test","source":"CSW.TestPublisher","eventName":"testEvent3","eventTime":"1970-01-01T00:00:00Z","paramSet":[{"StructKey":{"keyName":"MyStruct","values":[{"paramSet":[{"CoordKey":{"keyName":"CoordParam","values":[{"_type":"EqCoord","tag":"BASE","ra":659912249999,"dec":-109892300000,"frame":"FK5","catalogName":"none","pm":{"pmx":0.5,"pmy":2.33}},{"_type":"SolarSystemCoord","tag":"BASE","body":"Venus"},{"_type":"MinorPlanetCoord","tag":"GUIDER1","epoch":2000.0,"inclination":324000000000,"longAscendingNode":7200000000,"argOfPerihelion":360000000000,"meanDistance":1.4,"eccentricity":0.234,"meanAnomaly":792000000000},{"_type":"CometCoord","tag":"BASE","epochOfPerihelion":2000.0,"inclination":324000000000,"longAscendingNode":7200000000,"argOfPerihelion":360000000000,"perihelionDistance":1.4,"eccentricity":0.234},{"_type":"AltAzCoord","tag":"301 deg","alt":153000000000,"az":0}],"units":"NoUnits"}},{"ShortKey":{"keyName":"shortValue","values":[42],"units":"arcsec"}},{"BooleanKey":{"keyName":"booleanValue","values":[true,false],"units":"arcsec"}},{"IntArrayKey":{"keyName":"IntArrayValue","values":[[1,2,3,4],[5,6,7,8]],"units":"NoUnits"}},{"LongKey":{"keyName":"longValue","values":[42],"units":"arcsec"}},{"FloatKey":{"keyName":"floatValue","values":[42.1],"units":"arcsec"}},{"FloatArrayKey":{"keyName":"FloatArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"arcsec"}},{"IntMatrixKey":{"keyName":"IntMatrixValue","values":[[[1,2,3,4],[5,6,7,8]],[[-1,-2,-3,-4],[-5,-6,-7,-8]]],"units":"meter"}},{"DoubleArrayKey":{"keyName":"DoubleArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"arcsec"}},{"IntKey":{"keyName":"IntValue","values":[42],"units":"arcsec"}}]}],"units":"NoUnits"}},{"CoordKey":{"keyName":"CoordParam","values":[{"_type":"EqCoord","tag":"BASE","ra":659912249999,"dec":-109892300000,"frame":"FK5","catalogName":"none","pm":{"pmx":0.5,"pmy":2.33}},{"_type":"SolarSystemCoord","tag":"BASE","body":"Venus"},{"_type":"MinorPlanetCoord","tag":"GUIDER1","epoch":2000.0,"inclination":324000000000,"longAscendingNode":7200000000,"argOfPerihelion":360000000000,"meanDistance":1.4,"eccentricity":0.234,"meanAnomaly":792000000000},{"_type":"CometCoord","tag":"BASE","epochOfPerihelion":2000.0,"inclination":324000000000,"longAscendingNode":7200000000,"argOfPerihelion":360000000000,"perihelionDistance":1.4,"eccentricity":0.234},{"_type":"AltAzCoord","tag":"301 deg","alt":153000000000,"az":0}],"units":"NoUnits"}},{"ByteKey":{"keyName":"byteValue","values":[-34,-83,-66,-17],"units":"NoUnits"}},{"ShortKey":{"keyName":"shortValue","values":[42],"units":"arcsec"}},{"BooleanKey":{"keyName":"booleanValue","values":[true,false],"units":"arcsec"}},{"ByteArrayKey":{"keyName":"ByteArrayValue","values":[[-34,-83,-66,-17],[1,2,3,4]],"units":"NoUnits"}},{"IntArrayKey":{"keyName":"IntArrayValue","values":[[1,2,3,4],[5,6,7,8]],"units":"NoUnits"}},{"LongKey":{"keyName":"longValue","values":[42],"units":"arcsec"}},{"FloatKey":{"keyName":"floatValue","values":[42.1],"units":"arcsec"}},{"FloatArrayKey":{"keyName":"FloatArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"arcsec"}},{"IntMatrixKey":{"keyName":"IntMatrixValue","values":[[[1,2,3,4],[5,6,7,8]],[[-1,-2,-3,-4],[-5,-6,-7,-8]]],"units":"meter"}},{"DoubleArrayKey":{"keyName":"DoubleArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"arcsec"}},{"IntKey":{"keyName":"IntValue","values":[42],"units":"arcsec"}}]}
{"_type":"SystemEvent","eventId":"test","source":"CSW.TestPublisher","eventName":"testEvent3","eventTime":"1970-01-01T00:00:00Z","paramSet":[{"StructKey":{"keyName":"MyStruct","values":[{"paramSet":[{"CoordKey":{"keyName":"CoordParam","values":[{"_type":"EqCoord","tag":"BASE","ra":659912249999,"dec":-109892300000,"frame":"FK5","catalogName":"none","pm":{"pmx":0.5,"pmy":2.33}},{"_type":"SolarSystemCoord","tag":"BASE","body":"Venus"},{"_type":"MinorPlanetCoord","tag":"GUIDER1","epoch":2000.0,"inclination":324000000000,"longAscendingNode":7200000000,"argOfPerihelion":360000000000,"meanDistance":1.4,"eccentricity":0.234,"meanAnomaly":792000000000},{"_type":"CometCoord","tag":"BASE","epochOfPerihelion":2000.0,"inclination":324000000000,"longAscendingNode":7200000000,"argOfPerihelion":360000000000,"perihelionDistance":1.4,"eccentricity":0.234},{"_type":"AltAzCoord","tag":"301 deg","alt":153000000000,"az":0}],"units":"NoUnits"}},{"ShortKey":{"keyName":"shortValue","values":[42],"units":"arcsec"}},{"BooleanKey":{"keyName":"booleanValue","values":[true,false],"units":"arcsec"}},{"IntArrayKey":{"keyName":"IntArrayValue","values":[[1,2,3,4],[5,6,7,8]],"units":"NoUnits"}},{"LongKey":{"keyName":"longValue","values":[42],"units":"arcsec"}},{"FloatKey":{"keyName":"floatValue","values":[42.1],"units":"arcsec"}},{"FloatArrayKey":{"keyName":"FloatArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"arcsec"}},{"IntMatrixKey":{"keyName":"IntMatrixValue","values":[[[1,2,3,4],[5,6,7,8]],[[-1,-2,-3,-4],[-5,-6,-7,-8]]],"units":"meter"}},{"DoubleArrayKey":{"keyName":"DoubleArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"arcsec"}},{"IntKey":{"keyName":"IntValue","values":[42],"units":"arcsec"}}]}],"units":"NoUnits"}},{"CoordKey":{"keyName":"CoordParam","values":[{"_type":"EqCoord","tag":"BASE","ra":659912249999,"dec":-109892300000,"frame":"FK5","catalogName":"none","pm":{"pmx":0.5,"pmy":2.33}},{"_type":"SolarSystemCoord","tag":"BASE","body":"Venus"},{"_type":"MinorPlanetCoord","tag":"GUIDER1","epoch":2000.0,"inclination":324000000000,"longAscendingNode":7200000000,"argOfPerihelion":360000000000,"meanDistance":1.4,"eccentricity":0.234,"meanAnomaly":792000000000},{"_type":"CometCoord","tag":"BASE","epochOfPerihelion":2000.0,"inclination":324000000000,"longAscendingNode":7200000000,"argOfPerihelion":360000000000,"perihelionDistance":1.4,"eccentricity":0.234},{"_type":"AltAzCoord","tag":"301 deg","alt":153000000000,"az":0}],"units":"NoUnits"}},{"ByteKey":{"keyName":"byteValue","values":[-34,-83,-66,-17],"units":"NoUnits"}},{"ShortKey":{"keyName":"shortValue","values":[42],"units":"arcsec"}},{"BooleanKey":{"keyName":"booleanValue","values":[true,false],"units":"arcsec"}},{"ByteArrayKey":{"keyName":"ByteArrayValue","values":[[-34,-83,-66,-17],[1,2,3,4]],"units":"NoUnits"}},{"IntArrayKey":{"keyName":"IntArrayValue","values":[[1,2,3,4],[5,6,7,8]],"units":"NoUnits"}},{"LongKey":{"keyName":"longValue","values":[42],"units":"arcsec"}},{"FloatKey":{"keyName":"floatValue","values":[42.1],"units":"arcsec"}},{"FloatArrayKey":{"keyName":"FloatArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"arcsec"}},{"IntMatrixKey":{"keyName":"IntMatrixValue","values":[[[1,2,3,4],[5,6,7,8]],[[-1,-2,-3,-4],[-5,-6,-7,-8]]],"units":"meter"}},{"DoubleArrayKey":{"keyName":"DoubleArrayValue","values":[[1.2,2.3,3.4],[5.6,7.8,9.1]],"units":"arcsec"}},{"IntKey":{"keyName":"IntValue","values":[42],"units":"arcsec"}}]}
diff --git a/tests/testSupport/project/Common.scala b/tests/testSupport/project/Common.scala
index a0f3eeb..96d1845 100755
--- a/tests/testSupport/project/Common.scala
+++ b/tests/testSupport/project/Common.scala
@@ -36,7 +36,7 @@ object Common extends AutoPlugin {
),
resolvers ++= Seq(
"jitpack" at "https://jitpack.io",
- "bintray" at "https://jcenter.bintray.com",
+// "bintray" at "https://jcenter.bintray.com",
Resolver.bintrayRepo("lonelyplanet", "maven")
),
version := "0.0.1",
diff --git a/tests/testSupport/test-assembly/src/main/scala/org/tmt/csw/testassembly/TestAssemblyHandlers.scala b/tests/testSupport/test-assembly/src/main/scala/org/tmt/csw/testassembly/TestAssemblyHandlers.scala
index dda7d4a..d6855df 100755
--- a/tests/testSupport/test-assembly/src/main/scala/org/tmt/csw/testassembly/TestAssemblyHandlers.scala
+++ b/tests/testSupport/test-assembly/src/main/scala/org/tmt/csw/testassembly/TestAssemblyHandlers.scala
@@ -1,7 +1,6 @@
package org.tmt.csw.testassembly
import java.io.{File, FileOutputStream}
-
import akka.actor.typed.{ActorSystem, Behavior}
import akka.actor.typed.scaladsl.{ActorContext, Behaviors}
import csw.command.client.messages.TopLevelActorMessage
@@ -247,9 +246,10 @@ class TestAssemblyHandlers(ctx: ActorContext[TopLevelActorMessage],
testFd.write(s"$s\n".getBytes())
}
- pythonService.subscribeCurrentState { cs =>
+ val currentStateSubscription = pythonService.subscribeCurrentState { cs =>
testLog(s"Received current state from python service: $cs")
}
+
try {
val longRunningCommand = makeTestCommand("LongRunningCommand")
val validateResponse =
@@ -273,6 +273,9 @@ class TestAssemblyHandlers(ctx: ActorContext[TopLevelActorMessage],
testLog(
s"Response from simple submit to ${pythonConnection.componentId.fullName}: $simpleCommandResponse")
+ // Test cancel of current state subscription
+ currentStateSubscription.cancel()
+
val resultCommand = makeTestCommand("ResultCommand")
val resultCommandResponse =
Await.result(pythonService.submit(resultCommand), 5.seconds)