nxsconfigserver 2.17.0__tar.gz → 2.18.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/install.sh +5 -5
  2. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.github/workflows/tests.yml +1 -1
  3. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/ChangeLog +4 -0
  4. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/NXSConfigServer.xmi +13 -2
  5. {nxsconfigserver-2.17.0/nxsconfigserver.egg-info → nxsconfigserver-2.18.0}/PKG-INFO +5 -2
  6. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/README.rst +1 -1
  7. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/Commands.html +7 -0
  8. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/FullDocument.html +57 -0
  9. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver/NXSConfigServer.py +35 -0
  10. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver/Release.py +1 -1
  11. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver/XMLConfigurator.py +14 -0
  12. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0/nxsconfigserver.egg-info}/PKG-INFO +5 -2
  13. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/setup.py +3 -0
  14. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/XMLConfigurator_test.py +75 -0
  15. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/debian10_py2/Dockerfile +0 -0
  16. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/debian10_py3/Dockerfile +0 -0
  17. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/debian11_py3/Dockerfile +0 -0
  18. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/debian8_py2/Dockerfile +0 -0
  19. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/debian8_py3/Dockerfile +0 -0
  20. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/debian9_py2/Dockerfile +0 -0
  21. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/debian9_py3/Dockerfile +0 -0
  22. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/run.sh +0 -0
  23. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/ubuntu16.04_py2/Dockerfile +0 -0
  24. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/ubuntu16.04_py3/Dockerfile +0 -0
  25. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
  26. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
  27. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
  28. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.flake8 +0 -0
  29. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.gitignore +0 -0
  30. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/.oldtravis.yml +0 -0
  31. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/COPYRIGHT +0 -0
  32. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/MANIFEST.in +0 -0
  33. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/NXSConfigServer +0 -0
  34. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/conf/my.cnf +0 -0
  35. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/conf/mysql_create.sql +0 -0
  36. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc/Makefile +0 -0
  37. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc/conf.py +0 -0
  38. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc/index.rst +0 -0
  39. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc/make.bat +0 -0
  40. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc/nxsconfigserver.rst +0 -0
  41. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/AttrCanFailDataSources.html +0 -0
  42. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/AttrJSONSettings.html +0 -0
  43. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/AttrLinkDataSources.html +0 -0
  44. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/AttrSTEPDataSources.html +0 -0
  45. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/AttrSelection.html +0 -0
  46. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/AttrVariables.html +0 -0
  47. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/AttrVersion.html +0 -0
  48. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/AttrXMLString.html +0 -0
  49. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/Attributes.html +0 -0
  50. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/ClassDescription.html +0 -0
  51. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdAvailableComponents.html +0 -0
  52. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdAvailableDataSources.html +0 -0
  53. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdAvailableSelections.html +0 -0
  54. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdClose.html +0 -0
  55. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdComponentDataSources.html +0 -0
  56. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdComponentVariables.html +0 -0
  57. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdComponents.html +0 -0
  58. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdComponentsDataSources.html +0 -0
  59. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdComponentsVariables.html +0 -0
  60. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdCreateConfiguration.html +0 -0
  61. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdDataSources.html +0 -0
  62. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdDeleteComponent.html +0 -0
  63. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdDeleteDataSource.html +0 -0
  64. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdDeleteSelection.html +0 -0
  65. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdDependentComponents.html +0 -0
  66. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdInstantiatedComponents.html +0 -0
  67. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdMandatoryComponents.html +0 -0
  68. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdMerge.html +0 -0
  69. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdOpen.html +0 -0
  70. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdSelections.html +0 -0
  71. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdSetComponentDataSources.html +0 -0
  72. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdSetMandatoryComponents.html +0 -0
  73. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdState.html +0 -0
  74. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdStatus.html +0 -0
  75. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdStoreComponent.html +0 -0
  76. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdStoreDataSource.html +0 -0
  77. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdStoreSelection.html +0 -0
  78. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/CmdUnsetMandatoryComponents.html +0 -0
  79. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/Properties.html +0 -0
  80. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/States.html +0 -0
  81. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/TitleBanner.html +0 -0
  82. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/doc_html/index.html +0 -0
  83. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/man/NXSConfigServer.1 +0 -0
  84. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver/ComponentParser.py +0 -0
  85. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver/Errors.py +0 -0
  86. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver/MYSQLDataBase.py +0 -0
  87. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver/Merger.py +0 -0
  88. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver/StreamSet.py +0 -0
  89. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver/__init__.py +0 -0
  90. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver.egg-info/SOURCES.txt +0 -0
  91. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver.egg-info/dependency_links.txt +0 -0
  92. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver.egg-info/not-zip-safe +0 -0
  93. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver.egg-info/requires.txt +0 -0
  94. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/nxsconfigserver.egg-info/top_level.txt +0 -0
  95. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/setup.cfg +0 -0
  96. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/ComponentHandler_test.py +0 -0
  97. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/Errors_test.py +0 -0
  98. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/MYSQLDataBase_test.py +0 -0
  99. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/Merger_test.py +0 -0
  100. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/NXSConfigServer_test.py +0 -0
  101. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/ServerSetUp.py +0 -0
  102. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/StreamSet_test.py +0 -0
  103. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/__init__.py +0 -0
  104. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/__main__.py +0 -0
  105. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/checks.py +0 -0
  106. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/test/main.py +0 -0
  107. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/tools/ndts.sql +0 -0
  108. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/tools/setupServer.py +0 -0
  109. {nxsconfigserver-2.17.0 → nxsconfigserver-2.18.0}/tools/simpleClient.py +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  echo "restart mysql service"
4
- if [ "$1" = "debian11" ] || [ "$1" = "debian12" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu24.04" ]; then
4
+ if [ "$1" = "debian11" ] || [ "$1" = "debian12" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu24.04" ]; then
5
5
  docker exec --user root ndts service mariadb restart
6
6
  else
7
7
  # workaround for a bug in debian9, i.e. starting mysql hangs
@@ -16,7 +16,7 @@ fi
16
16
 
17
17
  echo "install tango-common"
18
18
  docker exec --user root ndts /bin/bash -c 'apt-get -qq update; export DEBIAN_FRONTEND=noninteractive; apt-get -qq install -y tango-common; sleep 10'
19
- if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ]; then
19
+ if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ]; then
20
20
  # docker exec --user tango ndts /bin/bash -c '/usr/lib/tango/DataBaseds 2 -ORBendPoint giop:tcp::10000 &'
21
21
  docker exec --user root ndts /bin/bash -c 'echo -e "[client]\nuser=root\npassword=rootpw" > /root/.my.cnf'
22
22
  docker exec --user root ndts /bin/bash -c 'echo -e "[client]\nuser=tango\nhost=localhost\npassword=rootpw" > /var/lib/tango/.my.cnf'
@@ -32,7 +32,7 @@ fi
32
32
  echo "install tango-db"
33
33
  docker exec --user root ndts /bin/bash -c 'apt-get -qq update; export DEBIAN_FRONTEND=noninteractive; apt-get -qq install -y tango-db; sleep 10'
34
34
  if [ "$?" -ne "0" ]; then exit 255; fi
35
- if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ]; then
35
+ if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ]; then
36
36
  docker exec --user tango ndts /usr/bin/mysql -e 'create database tango'
37
37
  docker exec --user tango ndts /bin/bash -c '/usr/bin/mysql tango < /usr/share/dbconfig-common/data/tango-db/install/mysql'
38
38
  fi
@@ -52,12 +52,12 @@ if [ "$2" = "2" ]; then
52
52
  echo "install pytango and nxsconfigserver-db"
53
53
  docker exec --user root ndts /bin/bash -c 'apt-get -qq update; apt-get install -y python-pytango nxsconfigserver-db ; sleep 10'
54
54
  else
55
- if [ "$1" = "debian10" ] || [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu22.04" ] || [ "$1" = "ubuntu20.04" ] || [ "$1" = "ubuntu20.10" ] || [ "$1" = "debian11" ] || [ "$1" = "debian12" ] ; then
55
+ if [ "$1" = "debian10" ] || [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu22.04" ] || [ "$1" = "ubuntu20.04" ] || [ "$1" = "ubuntu20.10" ] || [ "$1" = "debian11" ] || [ "$1" = "debian12" ] ; then
56
56
  echo "install pytango"
57
57
  docker exec --user root ndts /bin/bash -c 'apt-get -qq update; apt-get install -y python3-tango'
58
58
  echo "install nxsconfigserver-db"
59
59
  docker exec --user root ndts /bin/bash -c 'apt-get -qq update; apt-get install -y nxsconfigserver-db'
60
- if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ]; then
60
+ if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ]; then
61
61
  docker exec --user root ndts /usr/bin/mysql -e 'GRANT ALL PRIVILEGES ON nxsconfig.* TO "tango"@"%" identified by "rootpw"'
62
62
  docker exec --user root ndts /usr/bin/mysql -e 'GRANT ALL PRIVILEGES ON nxsconfig.* TO "tango"@"localhost" identified by "rootpw"'
63
63
  docker exec --user root ndts /usr/bin/mysql -e 'FLUSH PRIVILEGES'
@@ -24,7 +24,7 @@ jobs:
24
24
  runs-on: ubuntu-latest
25
25
  strategy:
26
26
  matrix:
27
- os: [debian12, debian11, debian10, ubuntu24.10, ubuntu24.04, ubuntu22.04]
27
+ os: [debian12, debian11, debian10, ubuntu25.04, ubuntu24.04, ubuntu22.04]
28
28
  steps:
29
29
  - uses: actions/checkout@v2
30
30
  - uses: actions/setup-python@v2
@@ -1,3 +1,7 @@
1
+ 2025-07-10 Jan Kotanski <jankotan@gmail.com>
2
+ * add InstantiatedDataSources command (#73)
3
+ * tagged as v2.18.0
4
+
1
5
  2025-04-15 Jan Kotanski <jankotan@gmail.com>
2
6
  * add ExtraLinkDataSources attribute and ExtraLinkPath property(#68)
3
7
  * tagged as v2.17.0
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="ASCII"?>
2
2
  <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://tango.org/pogo/PogoDsl">
3
- <classes name="NXSConfigServer" pogoRevision="9.8">
4
- <description description="NeXuS Configuration Server is a Tango Server with its implementation based&#xA;on a MySQL database. It allows to store XML configuration datasources&#xA;and components. It also gives possibility to select mandatory components&#xA;and perform the process of component merging.&#xA;&#xA;Source code: https://github.com/nexdatas/nxsconfigserver/&#xA;Web page: https://nexdatas.github.io/nxsconfigserver/&#xA;NexDaTaS Web page: https://nexdatas.github.io&#xA;" title="Configuration Server for Nexus Data Writer" sourcePath="/home/jkotan/ndts/nxsconfigserver" language="Python" filestogenerate="XMI file,Protected Regions,html Pages" license="GPL" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false" descriptionHtmlExists="false">
3
+ <classes name="NXSConfigServer" pogoRevision="9.9">
4
+ <description description="NeXuS Configuration Server is a Tango Server with its implementation based&#xA;on a MySQL database. It allows to store XML configuration datasources&#xA;and components. It also gives possibility to select mandatory components&#xA;and perform the process of component merging.&#xA;&#xA;Source code: https://github.com/nexdatas/nxsconfigserver/&#xA;Web page: https://nexdatas.github.io/nxsconfigserver/&#xA;NexDaTaS Web page: https://nexdatas.github.io&#xA;" title="Configuration Server for Nexus Data Writer" sourcePath="/home/jkotan/ndts/nxsconfigserver" language="Python" filestogenerate="XMI file,Code files,Protected Regions,html Pages" license="GPL" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false" descriptionHtmlExists="false">
5
5
  <inheritances classname="Device_Impl" sourcePath=""/>
6
6
  <identification contact="at desy.de - jan.kotanski" author="jan.kotanski" emailDomain="desy.de" classFamily="Acquisition" siteSpecific="" platform="All Platforms" bus="Not Applicable" manufacturer="DESY" reference=""/>
7
7
  </description>
@@ -318,6 +318,17 @@
318
318
  <excludedStates>ON</excludedStates>
319
319
  <excludedStates>RUNNING</excludedStates>
320
320
  </commands>
321
+ <commands name="InstantiatedDataSources" description="Returns a list of required datasources" execMethod="instantiated_data_sources" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
322
+ <argin description="list of datasources names">
323
+ <type xsi:type="pogoDsl:StringArrayType"/>
324
+ </argin>
325
+ <argout description="list of instantiated datasources">
326
+ <type xsi:type="pogoDsl:StringArrayType"/>
327
+ </argout>
328
+ <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
329
+ <excludedStates>ON</excludedStates>
330
+ <excludedStates>RUNNING</excludedStates>
331
+ </commands>
321
332
  <attributes name="XMLString" attType="Scalar" rwType="READ_WRITE" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
322
333
  <dataType xsi:type="pogoDsl:StringType"/>
323
334
  <changeEvent fire="false" libCheckCriteria="false"/>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxsconfigserver
3
- Version: 2.17.0
3
+ Version: 2.18.0
4
4
  Summary: Configuration Server for Nexus Data Writer
5
5
  Home-page: http://github.com/jkotan/nexdatas/nxsconfigserver
6
6
  Author: Jan Kotanski, Eugen Wintersberger , Halil Pasic
@@ -21,6 +21,9 @@ Classifier: Programming Language :: Python :: 3.7
21
21
  Classifier: Programming Language :: Python :: 3.8
22
22
  Classifier: Programming Language :: Python :: 3.9
23
23
  Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
24
27
 
25
28
  ======================================================
26
29
  Welcome to NeXuS Configuration Server's documentation!
@@ -95,7 +98,7 @@ with proper privileges.
95
98
  Debian packages
96
99
  ^^^^^^^^^^^^^^^
97
100
 
98
- Debian Bookworm, Bullseye, Buster and as well as Ubuntu Lunar, Jammy packages can be found in the HDRI repository.
101
+ Debian Bookworm, Bullseye, Buster and as well as Ubuntu Plucky, Noble, Jammy packages can be found in the HDRI repository.
99
102
 
100
103
  To install the debian packages, add the PGP repository key
101
104
 
@@ -71,7 +71,7 @@ with proper privileges.
71
71
  Debian packages
72
72
  ^^^^^^^^^^^^^^^
73
73
 
74
- Debian Bookworm, Bullseye, Buster and as well as Ubuntu Lunar, Jammy packages can be found in the HDRI repository.
74
+ Debian Bookworm, Bullseye, Buster and as well as Ubuntu Plucky, Noble, Jammy packages can be found in the HDRI repository.
75
75
 
76
76
  To install the debian packages, add the PGP repository key
77
77
 
@@ -211,6 +211,13 @@
211
211
  <td> OPERATOR </td>
212
212
  <td> Returns a list of dependent component names for a given components </td>
213
213
  </tr>
214
+ <tr>
215
+ <td> <a href="CmdInstantiatedDataSources.html"> InstantiatedDataSources </a> </td>
216
+ <td> DEVVAR_STRINGARRAY </td>
217
+ <td> DEVVAR_STRINGARRAY </td>
218
+ <td> OPERATOR </td>
219
+ <td> Returns a list of required datasources </td>
220
+ </tr>
214
221
  </table>
215
222
  </body>
216
223
  </html>
@@ -42,6 +42,7 @@
42
42
  <li> <a href="FullDocument.html#cmdComponentVariables"> ComponentVariables </a>
43
43
  <li> <a href="FullDocument.html#cmdMerge"> Merge </a>
44
44
  <li> <a href="FullDocument.html#cmdDependentComponents"> DependentComponents </a>
45
+ <li> <a href="FullDocument.html#cmdInstantiatedDataSources"> InstantiatedDataSources </a>
45
46
  </ul>
46
47
  <li> <a href="FullDocument.html#attributes"> Attributes </a>
47
48
  <ul>
@@ -360,6 +361,13 @@
360
361
  <td> OPERATOR </td>
361
362
  <td> Returns a list of dependent component names for a given components </td>
362
363
  </tr>
364
+ <tr>
365
+ <td> <a href="CmdInstantiatedDataSources.html"> InstantiatedDataSources </a> </td>
366
+ <td> DEVVAR_STRINGARRAY </td>
367
+ <td> DEVVAR_STRINGARRAY </td>
368
+ <td> OPERATOR </td>
369
+ <td> Returns a list of required datasources </td>
370
+ </tr>
363
371
  </table>
364
372
  <br><br><hr>
365
373
  <a name="cmdState"> </a>
@@ -1733,6 +1741,55 @@
1733
1741
  <td> .. </td>
1734
1742
  </tr>
1735
1743
  </table>
1744
+ <br><br><hr>
1745
+ <a name="cmdInstantiatedDataSources"> </a>
1746
+ <br><br><br>
1747
+ <font size="+1"><u><b> Command InstantiatedDataSources : </b></u></font>
1748
+ <ul>
1749
+ Returns a list of required datasources
1750
+ </ul>
1751
+ <br><br><br>
1752
+ <Table Border=2 Cellpadding=3 CELLSPACING=0>
1753
+ <tr bgcolor="#CCCCFF" class="TableHeadingColor">
1754
+ <td colspan=0> <font size=+1> <center><b> InstantiatedDataSources Definition </b></font></center></td>
1755
+ </tr>
1756
+ <tr>
1757
+ <td> Input Argument </td>
1758
+ <td> Tango::DEVVAR_STRINGARRAY </td>
1759
+ <td> list of datasources names </td>
1760
+ </tr>
1761
+ <tr>
1762
+ <td> Output Argument </td>
1763
+ <td> Tango::DEVVAR_STRINGARRAY </td>
1764
+ <td> list of instantiated datasources </td>
1765
+ </tr>
1766
+ <tr>
1767
+ <td> DisplayLevel </td>
1768
+ <td> OPERATOR </td>
1769
+ <td> .. </td>
1770
+ </tr>
1771
+ <tr>
1772
+ <td> Inherited </td>
1773
+ <td> false </td>
1774
+ <td> .. </td>
1775
+ </tr>
1776
+ <tr>
1777
+ <td> Abstract </td>
1778
+ <td> false </td>
1779
+ <td> .. </td>
1780
+ </tr>
1781
+ <tr>
1782
+ <td> Polling Period </td>
1783
+ <td> Not polled </td>
1784
+ <td> .. </td>
1785
+ </tr>
1786
+ <Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td><Td><Hr></Td></Tr>
1787
+ <tr>
1788
+ <td> Command NOT allowed for </td>
1789
+ <td> <font size="-1"> <li> ON </li> <li> RUNNING </li> </font> </td>
1790
+ <td> .. </td>
1791
+ </tr>
1792
+ </table>
1736
1793
  <br><br>
1737
1794
  <hr>
1738
1795
  <a name="attributes"> </a>
@@ -522,6 +522,38 @@ class NXSConfigServer(tango.LatestDeviceImpl):
522
522
  return False
523
523
  return True
524
524
 
525
+ def InstantiatedDataSources(self, argin):
526
+ """ InstantiatedDataSources command
527
+
528
+ :brief: Returns a list of required components
529
+
530
+ :param argin: DevVarStringArray list of component names
531
+ :type argin: :obj:`list` <:obj:`str`>
532
+ :returns: DevVarStringArray list of instantiated components
533
+ :rtype: :obj:`list` <:obj:`str`>
534
+ """
535
+ self.debug_stream("In InstantiateDataSources()")
536
+ try:
537
+ self.set_state(tango.DevState.RUNNING)
538
+ argout = self.xmlc.instantiatedDataSources(argin)
539
+ self.set_state(tango.DevState.OPEN)
540
+ finally:
541
+ if self.get_state() == tango.DevState.RUNNING:
542
+ self.set_state(tango.DevState.OPEN)
543
+
544
+ return argout
545
+
546
+ def is_InstantiatedDataSources_allowed(self):
547
+ """ DataSources command State Machine
548
+
549
+ :returns: True if the operation allowed
550
+ :rtype: :obj:`bool`
551
+ """
552
+ if self.get_state() in [tango.DevState.ON,
553
+ tango.DevState.RUNNING]:
554
+ return False
555
+ return True
556
+
525
557
  def DataSources(self, argin):
526
558
  """ DataSources command
527
559
 
@@ -1195,6 +1227,9 @@ class NXSConfigServerClass(tango.DeviceClass):
1195
1227
  'InstantiatedComponents':
1196
1228
  [[tango.DevVarStringArray, "list of component names"],
1197
1229
  [tango.DevVarStringArray, "list of instantiated components"]],
1230
+ 'InstantiatedDataSources':
1231
+ [[tango.DevVarStringArray, "list of component names"],
1232
+ [tango.DevVarStringArray, "list of instantiated datasources"]],
1198
1233
  'DataSources':
1199
1234
  [[tango.DevVarStringArray, "list of DataSource names"],
1200
1235
  [tango.DevVarStringArray, "list of required DataSources"]],
@@ -20,4 +20,4 @@
20
20
  """ release version module """
21
21
 
22
22
  #: version number
23
- __version__ = "2.17.0"
23
+ __version__ = "2.18.0"
@@ -353,6 +353,20 @@ class XMLConfigurator(object):
353
353
  comps = [self.__instantiate(cp) for cp in comps]
354
354
  return comps
355
355
 
356
+ def instantiatedDataSources(self, names):
357
+ """ instantiates the required datasources
358
+
359
+ :param names: list of datasource names
360
+ :type names: :obj:`list` <:obj:`str`>
361
+ :returns: list of instantiated datasources
362
+ :rtype: :obj:`list` <:obj:`str`>
363
+ """
364
+ comps = []
365
+ if self.__mydb:
366
+ comps = self.__mydb.dataSources(names)
367
+ comps = [self.__instantiate(ds) for ds in comps]
368
+ return comps
369
+
356
370
  def __instantiate(self, xmlcp):
357
371
  """ instantiates the xml component
358
372
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxsconfigserver
3
- Version: 2.17.0
3
+ Version: 2.18.0
4
4
  Summary: Configuration Server for Nexus Data Writer
5
5
  Home-page: http://github.com/jkotan/nexdatas/nxsconfigserver
6
6
  Author: Jan Kotanski, Eugen Wintersberger , Halil Pasic
@@ -21,6 +21,9 @@ Classifier: Programming Language :: Python :: 3.7
21
21
  Classifier: Programming Language :: Python :: 3.8
22
22
  Classifier: Programming Language :: Python :: 3.9
23
23
  Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
24
27
 
25
28
  ======================================================
26
29
  Welcome to NeXuS Configuration Server's documentation!
@@ -95,7 +98,7 @@ with proper privileges.
95
98
  Debian packages
96
99
  ^^^^^^^^^^^^^^^
97
100
 
98
- Debian Bookworm, Bullseye, Buster and as well as Ubuntu Lunar, Jammy packages can be found in the HDRI repository.
101
+ Debian Bookworm, Bullseye, Buster and as well as Ubuntu Plucky, Noble, Jammy packages can be found in the HDRI repository.
99
102
 
100
103
  To install the debian packages, add the PGP repository key
101
104
 
@@ -123,6 +123,9 @@ SETUPDATA = dict(
123
123
  'Programming Language :: Python :: 3.8',
124
124
  'Programming Language :: Python :: 3.9',
125
125
  'Programming Language :: Python :: 3.10',
126
+ 'Programming Language :: Python :: 3.11',
127
+ 'Programming Language :: Python :: 3.12',
128
+ 'Programming Language :: Python :: 3.13',
126
129
  ],
127
130
  install_requires=install_requires,
128
131
  scripts=['NXSConfigServer'],
@@ -9668,6 +9668,81 @@ ds.result = nxsconfigserver.__version__</result></datasource>"""
9668
9668
  el.setMandatoryComponents(man)
9669
9669
  el.close()
9670
9670
 
9671
+ # creatConf test
9672
+ # \brief It tests XMLConfigurator
9673
+ def test_instantiatedDataSources(self):
9674
+ fun = sys._getframe().f_code.co_name
9675
+ print("Run: %s.%s() " % (self.__class__.__name__, fun))
9676
+
9677
+ el = self.openConf()
9678
+ man = el.mandatoryComponents()
9679
+ el.unsetMandatoryComponents(man)
9680
+ self.__man += man
9681
+
9682
+ revision = long(el.version.split('.')[-1])
9683
+
9684
+ # avc = el.availableComponents()
9685
+
9686
+ xds = [
9687
+ '<datasource name="%s" type="PYEVAL">'
9688
+ '<result name="result">'
9689
+ 'ds.result = ds.%s + ds.%s\n'
9690
+ '</result>\n'
9691
+ '$datasources.%s\n'
9692
+ '$datasources.%s\n'
9693
+ '</datasource>',
9694
+ '<datasource name="%s" type="CLIENT"><record name="r1" />'
9695
+ '</datasource>',
9696
+ '<datasource name="%s" type="CLIENT"><record name="r2" />'
9697
+ '</datasource>',
9698
+ '<datasource name="%s" type="CLIENT"><record name="r3" />'
9699
+ '</datasource>',
9700
+ ]
9701
+
9702
+ odsname = "pmcs_test.datasource"
9703
+ avds = el.availableDataSources()
9704
+ self.assertTrue(isinstance(avds, list))
9705
+ dsnp = len(xds)
9706
+ dsname = []
9707
+ for i in range(dsnp):
9708
+
9709
+ dsname.append(odsname + '_%s' % i)
9710
+ while dsname[i] in avds:
9711
+ dsname[i] = dsname[i] + '_%s' % i
9712
+
9713
+ for i in range(dsnp):
9714
+ if not i:
9715
+ self.setXML(el, xds[i] % (
9716
+ dsname[0],
9717
+ dsname[1], dsname[2], dsname[1], dsname[2]))
9718
+ else:
9719
+ self.setXML(el, xds[i] % dsname[i])
9720
+ self.assertEqual(el.storeDataSource(dsname[i]), None)
9721
+ self.__ds.append(dsname[i])
9722
+
9723
+ css = [dsname[0], dsname[3]]
9724
+ comps = el.instantiatedDataSources(css)
9725
+ self.assertEqual(len(comps), 2)
9726
+ self.assertEqual(
9727
+ comps[0],
9728
+ '<datasource name="%s" type="PYEVAL">'
9729
+ '<result name="result">ds.result = ds.%s + ds.%s\n'
9730
+ '</result>\n\n'
9731
+ '<datasource name="%s" type="CLIENT"><record name="r1" />'
9732
+ '</datasource>\n\n'
9733
+ '<datasource name="%s" type="CLIENT"><record name="r2" />'
9734
+ '</datasource>\n'
9735
+ '</datasource>' % (dsname[0], dsname[1], dsname[2],
9736
+ dsname[1], dsname[2]))
9737
+ self.assertEqual(
9738
+ comps[1],
9739
+ '<datasource name="%s" type="CLIENT"><record name="r3" />'
9740
+ '</datasource>' % (dsname[3]))
9741
+
9742
+ self.assertEqual(long(el.version.split('.')[-1]), revision + 4)
9743
+ el.setMandatoryComponents(man)
9744
+ el.close()
9745
+
9671
9746
  # creatConf test
9672
9747
  # \brief It tests XMLConfigurator
9673
9748
  def test_instantiatedComponents_mixed(self):