nxsconfigserver 2.19.0__tar.gz → 2.21.1__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.
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/debian11_py3/Dockerfile +1 -1
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/install.sh +5 -5
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.github/workflows/tests.yml +3 -30
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/ChangeLog +12 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/NXSConfigServer.xmi +13 -1
- {nxsconfigserver-2.19.0/nxsconfigserver.egg-info → nxsconfigserver-2.21.1}/PKG-INFO +6 -5
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/README.rst +5 -4
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/Attributes.html +10 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/Commands.html +2 -2
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/FullDocument.html +181 -7
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver/Merger.py +45 -21
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver/NXSConfigServer.py +64 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver/Release.py +1 -1
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver/XMLConfigurator.py +52 -18
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1/nxsconfigserver.egg-info}/PKG-INFO +6 -5
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/NXSConfigServer_test.py +6 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/XMLConfigurator_test.py +45 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/debian10_py2/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/debian10_py3/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/debian8_py2/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/debian8_py3/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/debian9_py2/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/debian9_py3/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/run.sh +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/ubuntu16.04_py2/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/ubuntu16.04_py3/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.flake8 +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.gitignore +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/.oldtravis.yml +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/COPYRIGHT +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/MANIFEST.in +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/NXSConfigServer +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/conf/my.cnf +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/conf/mysql_create.sql +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc/Makefile +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc/conf.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc/index.rst +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc/make.bat +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc/nxsconfigserver.rst +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/AttrCanFailDataSources.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/AttrJSONSettings.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/AttrLinkDataSources.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/AttrSTEPDataSources.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/AttrSelection.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/AttrVariables.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/AttrVersion.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/AttrXMLString.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/ClassDescription.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdAvailableComponents.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdAvailableDataSources.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdAvailableSelections.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdClose.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponentDataSources.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponentVariables.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponents.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponentsDataSources.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponentsVariables.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdCreateConfiguration.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdDataSources.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdDeleteComponent.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdDeleteDataSource.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdDeleteSelection.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdDependentComponents.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdInstantiatedComponents.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdMandatoryComponents.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdMerge.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdOpen.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdSelections.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdSetComponentDataSources.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdSetMandatoryComponents.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdState.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdStatus.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdStoreComponent.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdStoreDataSource.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdStoreSelection.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/CmdUnsetMandatoryComponents.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/Properties.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/States.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/TitleBanner.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/doc_html/index.html +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/man/NXSConfigServer.1 +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver/ComponentParser.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver/Errors.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver/MYSQLDataBase.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver/StreamSet.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver/__init__.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/SOURCES.txt +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/dependency_links.txt +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/not-zip-safe +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/requires.txt +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/top_level.txt +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/setup.cfg +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/setup.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/ComponentHandler_test.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/Errors_test.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/MYSQLDataBase_test.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/Merger_test.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/ServerSetUp.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/StreamSet_test.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/__init__.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/__main__.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/checks.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/test/main.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/tools/ndts.sql +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/tools/setupServer.py +0 -0
- {nxsconfigserver-2.19.0 → nxsconfigserver-2.21.1}/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" = "ubuntu25.04" ] || [ "$1" = "ubuntu24.04" ]; then
|
|
4
|
+
if [ "$1" = "debian11" ] || [ "$1" = "debian12" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian13" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu25.10" ] || [ "$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" ] || [ "$1" = "ubuntu25.04" ]; then
|
|
19
|
+
if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "debian13" ]; 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" ] || [ "$1" = "ubuntu25.04" ]; then
|
|
35
|
+
if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.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" = "ubuntu25.04" ] || [ "$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" = "ubuntu25.10" ] || [ "$1" = "ubuntu22.04" ] || [ "$1" = "ubuntu20.04" ] || [ "$1" = "ubuntu20.10" ] || [ "$1" = "debian11" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian12" ] || [ "$1" = "debian13" ] ; 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" ] || [ "$1" = "ubuntu25.04" ]; then
|
|
60
|
+
if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.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,
|
|
27
|
+
os: [debian13, debian12tg10, debian12, debian11, ubuntu25.10, ubuntu24.04, ubuntu22.04]
|
|
28
28
|
steps:
|
|
29
29
|
- uses: actions/checkout@v2
|
|
30
30
|
- uses: actions/setup-python@v2
|
|
@@ -47,33 +47,6 @@ jobs:
|
|
|
47
47
|
OSYS: ${{ matrix.os }}
|
|
48
48
|
run: .ci/run.sh ${OSYS} 3
|
|
49
49
|
- name: Stop the docker
|
|
50
|
-
run: docker container stop ndts
|
|
51
|
-
|
|
52
|
-
python2_tests:
|
|
53
|
-
runs-on: ubuntu-latest
|
|
54
|
-
strategy:
|
|
55
|
-
matrix:
|
|
56
|
-
os: [debian10]
|
|
57
|
-
steps:
|
|
58
|
-
- uses: actions/checkout@v2
|
|
59
|
-
- uses: actions/setup-python@v2
|
|
60
|
-
- name: Update bash files
|
|
61
50
|
run: |
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- name: Build the docker
|
|
65
|
-
env:
|
|
66
|
-
OSYS: ${{ matrix.os }}
|
|
67
|
-
run: docker build -t ndts .ci/${OSYS}_py2
|
|
68
|
-
- name: Run the docker
|
|
69
|
-
run: docker run --name ndts -d -it -v `pwd`:/home/tango ndts
|
|
70
|
-
- name: install tango and nxsconfigserver
|
|
71
|
-
env:
|
|
72
|
-
OSYS: ${{ matrix.os }}
|
|
73
|
-
run: .ci/install.sh ${OSYS} 2
|
|
74
|
-
- name: run tests
|
|
75
|
-
env:
|
|
76
|
-
OSYS: ${{ matrix.os }}
|
|
77
|
-
run: .ci/run.sh ${OSYS} 2
|
|
78
|
-
- name: Stop the docker
|
|
79
|
-
run: docker container stop ndts
|
|
51
|
+
docker exec --user root ndts /bin/bash -c "chown -R 1001 /home/tango "
|
|
52
|
+
docker container stop ndts
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
2026-01-20 Jan Kotanski <jankotan@gmail.com>
|
|
2
|
+
* improve duplicated strategy and datasource tag merging (#94)
|
|
3
|
+
* tagged as v2.21.1
|
|
4
|
+
|
|
5
|
+
2026-01-19 Jan Kotanski <jankotan@gmail.com>
|
|
6
|
+
* changed MergedXML to XMLCache attribute (#88)
|
|
7
|
+
* tagged as v2.21.0
|
|
8
|
+
|
|
9
|
+
2026-01-16 Jan Kotanski <jankotan@gmail.com>
|
|
10
|
+
* add MergedXML attribute (#88)
|
|
11
|
+
* tagged as v2.20.0
|
|
12
|
+
|
|
1
13
|
2025-07-29 Jan Kotanski <jankotan@gmail.com>
|
|
2
14
|
* clear the link name (#79)
|
|
3
15
|
* tagged as v2.19.0
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
<excludedStates>ON</excludedStates>
|
|
165
165
|
<excludedStates>RUNNING</excludedStates>
|
|
166
166
|
</commands>
|
|
167
|
-
<commands name="
|
|
167
|
+
<commands name="CreateCache" description="Creates the cache configuration script from the given components. The result is strored in XMLCache" execMethod="create_cache" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false">
|
|
168
168
|
<argin description="list of component names">
|
|
169
169
|
<type xsi:type="pogoDsl:StringArrayType"/>
|
|
170
170
|
</argin>
|
|
@@ -411,6 +411,18 @@
|
|
|
411
411
|
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
|
|
412
412
|
<properties description="JSON list of datasources to which links will be added" label="Datasources to which extra links will be added" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
|
|
413
413
|
</attributes>
|
|
414
|
+
<attributes name="XMLCache" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
|
|
415
|
+
<dataType xsi:type="pogoDsl:StringType"/>
|
|
416
|
+
<changeEvent fire="false" libCheckCriteria="false"/>
|
|
417
|
+
<archiveEvent fire="false" libCheckCriteria="false"/>
|
|
418
|
+
<dataReadyEvent fire="false" libCheckCriteria="true"/>
|
|
419
|
+
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
|
|
420
|
+
<properties description="XML for merged components without applied variables" label="XML for merged components" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
|
|
421
|
+
<readExcludedStates>ON</readExcludedStates>
|
|
422
|
+
<readExcludedStates>RUNNING</readExcludedStates>
|
|
423
|
+
<writeExcludedStates>ON</writeExcludedStates>
|
|
424
|
+
<writeExcludedStates>RUNNING</writeExcludedStates>
|
|
425
|
+
</attributes>
|
|
414
426
|
<states name="ON" description="Server is ON">
|
|
415
427
|
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
|
|
416
428
|
</states>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nxsconfigserver
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.21.1
|
|
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
|
|
@@ -98,21 +98,22 @@ with proper privileges.
|
|
|
98
98
|
Debian packages
|
|
99
99
|
^^^^^^^^^^^^^^^
|
|
100
100
|
|
|
101
|
-
Debian Bookworm, Bullseye
|
|
101
|
+
Debian Trixie, Bookworm, Bullseye and as well as Ubuntu Questing, Noble, Jammy packages can be found in the HDRI repository.
|
|
102
102
|
|
|
103
103
|
To install the debian packages, add the PGP repository key
|
|
104
104
|
|
|
105
105
|
.. code-block:: console
|
|
106
106
|
|
|
107
107
|
$ sudo su
|
|
108
|
-
$
|
|
108
|
+
$ curl -s http://repos.pni-hdri.de/debian_repo.pub.gpg | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/debian-hdri-repo.gpg --import
|
|
109
|
+
$ chmod 644 /etc/apt/trusted.gpg.d/debian-hdri-repo.gpg
|
|
109
110
|
|
|
110
|
-
and then download the corresponding source list, e.g. for
|
|
111
|
+
and then download the corresponding source list, e.g. for trixie
|
|
111
112
|
|
|
112
113
|
.. code-block:: console
|
|
113
114
|
|
|
114
115
|
$ cd /etc/apt/sources.list.d
|
|
115
|
-
$ wget http://repos.pni-hdri.de/
|
|
116
|
+
$ wget http://repos.pni-hdri.de/trixie-pni-hdri.sources
|
|
116
117
|
|
|
117
118
|
Finally, for python2 packages
|
|
118
119
|
|
|
@@ -71,21 +71,22 @@ with proper privileges.
|
|
|
71
71
|
Debian packages
|
|
72
72
|
^^^^^^^^^^^^^^^
|
|
73
73
|
|
|
74
|
-
Debian Bookworm, Bullseye
|
|
74
|
+
Debian Trixie, Bookworm, Bullseye and as well as Ubuntu Questing, 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
|
|
|
78
78
|
.. code-block:: console
|
|
79
79
|
|
|
80
80
|
$ sudo su
|
|
81
|
-
$
|
|
81
|
+
$ curl -s http://repos.pni-hdri.de/debian_repo.pub.gpg | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/debian-hdri-repo.gpg --import
|
|
82
|
+
$ chmod 644 /etc/apt/trusted.gpg.d/debian-hdri-repo.gpg
|
|
82
83
|
|
|
83
|
-
and then download the corresponding source list, e.g. for
|
|
84
|
+
and then download the corresponding source list, e.g. for trixie
|
|
84
85
|
|
|
85
86
|
.. code-block:: console
|
|
86
87
|
|
|
87
88
|
$ cd /etc/apt/sources.list.d
|
|
88
|
-
$ wget http://repos.pni-hdri.de/
|
|
89
|
+
$ wget http://repos.pni-hdri.de/trixie-pni-hdri.sources
|
|
89
90
|
|
|
90
91
|
Finally, for python2 packages
|
|
91
92
|
|
|
@@ -109,6 +109,16 @@
|
|
|
109
109
|
<td> OPERATOR </td>
|
|
110
110
|
<td> JSON list of datasources to which links will be added </td>
|
|
111
111
|
</tr>
|
|
112
|
+
<tr>
|
|
113
|
+
<td> <a href="AttrXMLCache.html"> XMLCache </a> </td>
|
|
114
|
+
<td> false </td>
|
|
115
|
+
<td> false </td>
|
|
116
|
+
<td> Scalar </td>
|
|
117
|
+
<td> READ </td>
|
|
118
|
+
<td> Tango::DEV_STRING </td>
|
|
119
|
+
<td> EXPERT </td>
|
|
120
|
+
<td> XML for merged components without applied variables </td>
|
|
121
|
+
</tr>
|
|
112
122
|
</table>
|
|
113
123
|
<br><br>
|
|
114
124
|
<hr>
|
|
@@ -114,11 +114,11 @@
|
|
|
114
114
|
<td> Stores the DataSource from XMLString </td>
|
|
115
115
|
</tr>
|
|
116
116
|
<tr>
|
|
117
|
-
<td> <a href="
|
|
117
|
+
<td> <a href="CmdCreateCache.html"> CreateCache </a> </td>
|
|
118
118
|
<td> DEVVAR_STRINGARRAY </td>
|
|
119
119
|
<td> DEV_VOID </td>
|
|
120
120
|
<td> OPERATOR </td>
|
|
121
|
-
<td> Creates the
|
|
121
|
+
<td> Creates the cache configuration script from the given components. The result is strored in XMLCache </td>
|
|
122
122
|
</tr>
|
|
123
123
|
<tr>
|
|
124
124
|
<td> <a href="CmdDeleteComponent.html"> DeleteComponent </a> </td>
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
<li> <a href="FullDocument.html#cmdStoreSelection"> StoreSelection </a>
|
|
29
29
|
<li> <a href="FullDocument.html#cmdStoreComponent"> StoreComponent </a>
|
|
30
30
|
<li> <a href="FullDocument.html#cmdStoreDataSource"> StoreDataSource </a>
|
|
31
|
-
<li> <a href="FullDocument.html#
|
|
31
|
+
<li> <a href="FullDocument.html#cmdCreateCache"> CreateCache </a>
|
|
32
32
|
<li> <a href="FullDocument.html#cmdDeleteComponent"> DeleteComponent </a>
|
|
33
33
|
<li> <a href="FullDocument.html#cmdDeleteSelection"> DeleteSelection </a>
|
|
34
34
|
<li> <a href="FullDocument.html#cmdDeleteDataSource"> DeleteDataSource </a>
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
<li> <a href="FullDocument.html#attrLinkDataSources"> LinkDataSources </a>
|
|
56
56
|
<li> <a href="FullDocument.html#attrCanFailDataSources"> CanFailDataSources </a>
|
|
57
57
|
<li> <a href="FullDocument.html#attrExtraLinkDataSources"> ExtraLinkDataSources </a>
|
|
58
|
+
<li> <a href="FullDocument.html#attrXMLCache"> XMLCache </a>
|
|
58
59
|
</ul>
|
|
59
60
|
<li> <a href="FullDocument.html#states"> States </a>
|
|
60
61
|
</ul>
|
|
@@ -264,11 +265,11 @@
|
|
|
264
265
|
<td> Stores the DataSource from XMLString </td>
|
|
265
266
|
</tr>
|
|
266
267
|
<tr>
|
|
267
|
-
<td> <a href="
|
|
268
|
+
<td> <a href="CmdCreateCache.html"> CreateCache </a> </td>
|
|
268
269
|
<td> DEVVAR_STRINGARRAY </td>
|
|
269
270
|
<td> DEV_VOID </td>
|
|
270
271
|
<td> OPERATOR </td>
|
|
271
|
-
<td> Creates the
|
|
272
|
+
<td> Creates the cache configuration script from the given components. The result is strored in XMLCache </td>
|
|
272
273
|
</tr>
|
|
273
274
|
<tr>
|
|
274
275
|
<td> <a href="CmdDeleteComponent.html"> DeleteComponent </a> </td>
|
|
@@ -1056,16 +1057,16 @@
|
|
|
1056
1057
|
</tr>
|
|
1057
1058
|
</table>
|
|
1058
1059
|
<br><br><hr>
|
|
1059
|
-
<a name="
|
|
1060
|
+
<a name="cmdCreateCache"> </a>
|
|
1060
1061
|
<br><br><br>
|
|
1061
|
-
<font size="+1"><u><b> Command
|
|
1062
|
+
<font size="+1"><u><b> Command CreateCache : </b></u></font>
|
|
1062
1063
|
<ul>
|
|
1063
|
-
Creates the
|
|
1064
|
+
Creates the cache configuration script from the given components. The result is strored in XMLCache
|
|
1064
1065
|
</ul>
|
|
1065
1066
|
<br><br><br>
|
|
1066
1067
|
<Table Border=2 Cellpadding=3 CELLSPACING=0>
|
|
1067
1068
|
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
|
|
1068
|
-
<td colspan=0> <font size=+1> <center><b>
|
|
1069
|
+
<td colspan=0> <font size=+1> <center><b> CreateCache Definition </b></font></center></td>
|
|
1069
1070
|
</tr>
|
|
1070
1071
|
<tr>
|
|
1071
1072
|
<td> Input Argument </td>
|
|
@@ -1898,6 +1899,16 @@
|
|
|
1898
1899
|
<td> OPERATOR </td>
|
|
1899
1900
|
<td> JSON list of datasources to which links will be added </td>
|
|
1900
1901
|
</tr>
|
|
1902
|
+
<tr>
|
|
1903
|
+
<td> <a href="AttrXMLCache.html"> XMLCache </a> </td>
|
|
1904
|
+
<td> false </td>
|
|
1905
|
+
<td> false </td>
|
|
1906
|
+
<td> Scalar </td>
|
|
1907
|
+
<td> READ </td>
|
|
1908
|
+
<td> Tango::DEV_STRING </td>
|
|
1909
|
+
<td> EXPERT </td>
|
|
1910
|
+
<td> XML for merged components without applied variables </td>
|
|
1911
|
+
</tr>
|
|
1901
1912
|
</table>
|
|
1902
1913
|
<br><br>
|
|
1903
1914
|
<hr>
|
|
@@ -3409,6 +3420,169 @@
|
|
|
3409
3420
|
</table>
|
|
3410
3421
|
<br><br>
|
|
3411
3422
|
<hr>
|
|
3423
|
+
<a name="attrXMLCache"> </a>
|
|
3424
|
+
<br><br><br>
|
|
3425
|
+
<font size="+1"><u><b> Attribute XMLCache : </b></u></font>
|
|
3426
|
+
<ul>
|
|
3427
|
+
XML for merged components without applied variables
|
|
3428
|
+
</ul>
|
|
3429
|
+
<br><br><br>
|
|
3430
|
+
<Table Border=0 Cellpadding=0 CELLSPACING=20>
|
|
3431
|
+
<TR>
|
|
3432
|
+
<TD ALIGN="left" VALIGN=top>
|
|
3433
|
+
<Table Border=2 Cellpadding=3 CELLSPACING=0>
|
|
3434
|
+
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
|
|
3435
|
+
<td colspan=0> <font size=+1> <center><b> Attribute Definition </b></font></center></td>
|
|
3436
|
+
</tr>
|
|
3437
|
+
<tr>
|
|
3438
|
+
<td> Attribute Type </td>
|
|
3439
|
+
<td> Scalar </td>
|
|
3440
|
+
</tr>
|
|
3441
|
+
<tr>
|
|
3442
|
+
<td> R/W Type </td>
|
|
3443
|
+
<td> READ </td>
|
|
3444
|
+
</tr>
|
|
3445
|
+
<tr>
|
|
3446
|
+
<td> Data Type </td>
|
|
3447
|
+
<td> Tango::DEV_STRING </td>
|
|
3448
|
+
</tr>
|
|
3449
|
+
<tr>
|
|
3450
|
+
<td> Display Level </td>
|
|
3451
|
+
<td> EXPERT </td>
|
|
3452
|
+
</tr>
|
|
3453
|
+
<tr>
|
|
3454
|
+
<td> Inherited </td>
|
|
3455
|
+
<td> false </td>
|
|
3456
|
+
</tr>
|
|
3457
|
+
<tr>
|
|
3458
|
+
<td> Abstract </td>
|
|
3459
|
+
<td> false </td>
|
|
3460
|
+
</tr>
|
|
3461
|
+
<tr>
|
|
3462
|
+
<td> Polling Period </td>
|
|
3463
|
+
<td> Not polled </td>
|
|
3464
|
+
</tr>
|
|
3465
|
+
<tr>
|
|
3466
|
+
<td> Memorized </td>
|
|
3467
|
+
<td> Not set </td>
|
|
3468
|
+
</tr>
|
|
3469
|
+
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr>
|
|
3470
|
+
<tr>
|
|
3471
|
+
<td> Read NOT allowed for </td>
|
|
3472
|
+
<td> <font size="-1"> <li> ON </li> <li> RUNNING </li> </font> </td>
|
|
3473
|
+
</tr>
|
|
3474
|
+
</table>
|
|
3475
|
+
</td>
|
|
3476
|
+
<TD ALIGN="Center" VALIGN=top>
|
|
3477
|
+
<Table Border=2 Cellpadding=3 CELLSPACING=0>
|
|
3478
|
+
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
|
|
3479
|
+
<td colspan=0> <font size=+1> <center><b> Attribute Properties </b></font></center></td>
|
|
3480
|
+
</tr>
|
|
3481
|
+
<tr>
|
|
3482
|
+
<td> label </td>
|
|
3483
|
+
<td> XML for merged components </td>
|
|
3484
|
+
</tr>
|
|
3485
|
+
<tr>
|
|
3486
|
+
<td> unit </td>
|
|
3487
|
+
<td> </td>
|
|
3488
|
+
</tr>
|
|
3489
|
+
<tr>
|
|
3490
|
+
<td> standard unit </td>
|
|
3491
|
+
<td> </td>
|
|
3492
|
+
</tr>
|
|
3493
|
+
<tr>
|
|
3494
|
+
<td> display unit </td>
|
|
3495
|
+
<td> </td>
|
|
3496
|
+
</tr>
|
|
3497
|
+
<tr>
|
|
3498
|
+
<td> format </td>
|
|
3499
|
+
<td> </td>
|
|
3500
|
+
</tr>
|
|
3501
|
+
<tr>
|
|
3502
|
+
<td> max_value </td>
|
|
3503
|
+
<td> </td>
|
|
3504
|
+
</tr>
|
|
3505
|
+
<tr>
|
|
3506
|
+
<td> min_value </td>
|
|
3507
|
+
<td> </td>
|
|
3508
|
+
</tr>
|
|
3509
|
+
<tr>
|
|
3510
|
+
<td> max_alarm </td>
|
|
3511
|
+
<td> </td>
|
|
3512
|
+
</tr>
|
|
3513
|
+
<tr>
|
|
3514
|
+
<td> min_alarm </td>
|
|
3515
|
+
<td> </td>
|
|
3516
|
+
</tr>
|
|
3517
|
+
<tr>
|
|
3518
|
+
<td> max_warning </td>
|
|
3519
|
+
<td> </td>
|
|
3520
|
+
</tr>
|
|
3521
|
+
<tr>
|
|
3522
|
+
<td> min_warning </td>
|
|
3523
|
+
<td> </td>
|
|
3524
|
+
</tr>
|
|
3525
|
+
<tr>
|
|
3526
|
+
<td> delta_time </td>
|
|
3527
|
+
<td> </td>
|
|
3528
|
+
</tr>
|
|
3529
|
+
<tr>
|
|
3530
|
+
<td> delta_val </td>
|
|
3531
|
+
<td> </td>
|
|
3532
|
+
</tr>
|
|
3533
|
+
</table>
|
|
3534
|
+
</td>
|
|
3535
|
+
<TD ALIGN="Right" VALIGN=top>
|
|
3536
|
+
<Table Border=2 Cellpadding=3 CELLSPACING=0>
|
|
3537
|
+
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
|
|
3538
|
+
<td colspan=0> <font size=+1> <center><b> Attribute Event Criteria </b></font></center></td>
|
|
3539
|
+
</tr>
|
|
3540
|
+
<tr>
|
|
3541
|
+
<td> Periodic </td>
|
|
3542
|
+
<td> Not set </td>
|
|
3543
|
+
</tr>
|
|
3544
|
+
<tr>
|
|
3545
|
+
<td> Relative Change </td>
|
|
3546
|
+
<td> Not set </td>
|
|
3547
|
+
</tr>
|
|
3548
|
+
<tr>
|
|
3549
|
+
<td> Absolute Change </td>
|
|
3550
|
+
<td> Not set </td>
|
|
3551
|
+
</tr>
|
|
3552
|
+
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr>
|
|
3553
|
+
<tr>
|
|
3554
|
+
<td> Archive Periodic </td>
|
|
3555
|
+
<td> Not set </td>
|
|
3556
|
+
</tr>
|
|
3557
|
+
<tr>
|
|
3558
|
+
<td> Archive Relative Change </td>
|
|
3559
|
+
<td> Not set </td>
|
|
3560
|
+
</tr>
|
|
3561
|
+
<tr>
|
|
3562
|
+
<td> Archive Absolute Change </td>
|
|
3563
|
+
<td> Not set </td>
|
|
3564
|
+
</tr>
|
|
3565
|
+
<Tr BGCOLOR="#CCCCFF"><Td><Hr></Td><Td><Hr></Td></Tr>
|
|
3566
|
+
<tr>
|
|
3567
|
+
<td> Push Change event by user code </td>
|
|
3568
|
+
<td> false </td>
|
|
3569
|
+
</tr>
|
|
3570
|
+
<Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr>
|
|
3571
|
+
<tr>
|
|
3572
|
+
<td> Push Archive event by user code </td>
|
|
3573
|
+
<td> false </td>
|
|
3574
|
+
</tr>
|
|
3575
|
+
<Tr BGCOLOR="#CCCCFF"><Td> </Td><Td> </Td></Tr>
|
|
3576
|
+
<tr>
|
|
3577
|
+
<td> Push DataReady event by user code </td>
|
|
3578
|
+
<td> false </td>
|
|
3579
|
+
</tr>
|
|
3580
|
+
</table>
|
|
3581
|
+
</td>
|
|
3582
|
+
</TR>
|
|
3583
|
+
</table>
|
|
3584
|
+
<br><br>
|
|
3585
|
+
<hr>
|
|
3412
3586
|
<br><br>
|
|
3413
3587
|
<hr>
|
|
3414
3588
|
<a name="states"> </a>
|
|
@@ -77,6 +77,8 @@ class Merger(object):
|
|
|
77
77
|
|
|
78
78
|
#: (:obj:`xml.etree.ElementTree.Element`) DOM root node
|
|
79
79
|
self.__root = None
|
|
80
|
+
#: (:obj:`bool`) do not merge node on false
|
|
81
|
+
self.skip = False
|
|
80
82
|
#: (:obj:`list` <:obj:`str`> ) tags which cannot have the same siblings
|
|
81
83
|
self.singles = ['strategy', 'dimensions', 'definition',
|
|
82
84
|
'record', 'device', 'query', 'database',
|
|
@@ -182,7 +184,7 @@ class Merger(object):
|
|
|
182
184
|
res += ":" + name
|
|
183
185
|
return res
|
|
184
186
|
|
|
185
|
-
def __areMergeable(self, elem1, elem2, ancestors):
|
|
187
|
+
def __areMergeable(self, elem1, elem2, ancestors, node):
|
|
186
188
|
""" checks if two elements are mergeable
|
|
187
189
|
|
|
188
190
|
:param elem1: first element
|
|
@@ -214,20 +216,32 @@ class Merger(object):
|
|
|
214
216
|
if tags:
|
|
215
217
|
status = False
|
|
216
218
|
if tagName in self.singles or (name1 and name1 == name2):
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
[
|
|
219
|
+
if not self.skip:
|
|
220
|
+
if tags and tags[0] == ('TANGO', 'CLIENT'):
|
|
221
|
+
node.remove(elem2)
|
|
222
|
+
elif tags and tags[0] == ('CLIENT', 'TANGO'):
|
|
223
|
+
node.remove(elem1)
|
|
224
|
+
else:
|
|
225
|
+
raise IncompatibleNodeError(
|
|
226
|
+
"Incompatible element attributes %s: %s %s"
|
|
227
|
+
% (str(self.__getAncestors(elem1, ancestors)),
|
|
228
|
+
str(node.get("name")), str(tags)),
|
|
229
|
+
[elem1, elem2])
|
|
230
|
+
else:
|
|
231
|
+
status = False
|
|
221
232
|
|
|
222
233
|
if tagName in self.uniqueText:
|
|
223
234
|
text1 = unicode(self.__getText(elem1)).strip()
|
|
224
235
|
text2 = unicode(self.__getText(elem2)).strip()
|
|
225
236
|
if text1 != text2 and text1 and text2:
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
237
|
+
if not self.skip:
|
|
238
|
+
raise IncompatibleNodeError(
|
|
239
|
+
"Incompatible \n%s element value\n%s \n%s "
|
|
240
|
+
% (str(self.__getAncestors(elem1, ancestors)),
|
|
241
|
+
text1, text2),
|
|
242
|
+
[elem1, elem2])
|
|
243
|
+
else:
|
|
244
|
+
status = False
|
|
231
245
|
return status
|
|
232
246
|
|
|
233
247
|
def __checkAttributes(self, elem1, elem2):
|
|
@@ -325,6 +339,9 @@ class Merger(object):
|
|
|
325
339
|
|
|
326
340
|
children = list(node)
|
|
327
341
|
c1 = 0
|
|
342
|
+
if unicode(node.tag) in self.switchable and self.switchdatasources:
|
|
343
|
+
# print("NODE", node.tag, node.get("name"))
|
|
344
|
+
self.__switch(node)
|
|
328
345
|
while c1 < len(children):
|
|
329
346
|
child1 = children[c1]
|
|
330
347
|
c2 = c1 + 1
|
|
@@ -333,7 +350,7 @@ class Merger(object):
|
|
|
333
350
|
if child1 != child2:
|
|
334
351
|
if self.__areMergeable(
|
|
335
352
|
child1, child2,
|
|
336
|
-
ancestors):
|
|
353
|
+
ancestors, node):
|
|
337
354
|
self.__mergeNodes(child1, child2, node)
|
|
338
355
|
children.pop(c2)
|
|
339
356
|
c2 -= 1
|
|
@@ -354,8 +371,9 @@ class Merger(object):
|
|
|
354
371
|
|
|
355
372
|
self.__mergeChildren(child, newancestors, entrynode,
|
|
356
373
|
datanode, linknode)
|
|
357
|
-
if cName in self.switchable and self.switchdatasources:
|
|
358
|
-
|
|
374
|
+
# if cName in self.switchable and self.switchdatasources:
|
|
375
|
+
# print("CHILD", child.tag, child.get("name"))
|
|
376
|
+
# self.__switch(child)
|
|
359
377
|
if cName in self.linkable and self.linkdatasources:
|
|
360
378
|
datanode = self.__addlink(
|
|
361
379
|
child, newancestors, entrynode, datanode,
|
|
@@ -426,7 +444,8 @@ class Merger(object):
|
|
|
426
444
|
:type node: :obj:`xml.etree.ElementTree.Element`
|
|
427
445
|
"""
|
|
428
446
|
if node is not None:
|
|
429
|
-
|
|
447
|
+
stnodes = []
|
|
448
|
+
modes = []
|
|
430
449
|
mode = None
|
|
431
450
|
dsname = None
|
|
432
451
|
dsnode = None
|
|
@@ -451,13 +470,18 @@ class Merger(object):
|
|
|
451
470
|
elif cName == 'strategy':
|
|
452
471
|
mode = child.get("mode")
|
|
453
472
|
if mode in self.modesToSwitch.keys():
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
473
|
+
stnodes.append(child)
|
|
474
|
+
modes.append(mode)
|
|
475
|
+
# else:
|
|
476
|
+
# break
|
|
477
|
+
# if stnode not None and dsnode is not None:
|
|
478
|
+
# break
|
|
479
|
+
if stnodes and dsnode is not None:
|
|
480
|
+
for si, stn in enumerate(stnodes):
|
|
481
|
+
mode = modes[si]
|
|
482
|
+
if mode in self.modesToSwitch.keys():
|
|
483
|
+
stn.attrib["mode"] = self.modesToSwitch[mode]
|
|
484
|
+
# print("SWITCH", node.get("name"), dsname, dsnode)
|
|
461
485
|
|
|
462
486
|
def __canfail(self, node):
|
|
463
487
|
""" switch the given node to canfail mode
|