nxsconfigserver 2.20.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.20.0 → nxsconfigserver-2.21.1}/ChangeLog +8 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/NXSConfigServer.xmi +4 -4
- {nxsconfigserver-2.20.0/nxsconfigserver.egg-info → nxsconfigserver-2.21.1}/PKG-INFO +1 -1
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/Attributes.html +2 -2
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/Commands.html +2 -2
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/FullDocument.html +13 -13
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver/Merger.py +35 -16
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver/NXSConfigServer.py +41 -8
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver/Release.py +1 -1
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver/XMLConfigurator.py +42 -16
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1/nxsconfigserver.egg-info}/PKG-INFO +1 -1
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/NXSConfigServer_test.py +2 -2
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/XMLConfigurator_test.py +10 -10
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/debian10_py2/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/debian10_py3/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/debian11_py3/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/debian8_py2/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/debian8_py3/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/debian9_py2/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/debian9_py3/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/install.sh +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/run.sh +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/ubuntu16.04_py2/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/ubuntu16.04_py3/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.flake8 +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.github/workflows/tests.yml +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.gitignore +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/.oldtravis.yml +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/COPYRIGHT +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/MANIFEST.in +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/NXSConfigServer +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/README.rst +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/conf/my.cnf +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/conf/mysql_create.sql +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc/Makefile +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc/conf.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc/index.rst +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc/make.bat +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc/nxsconfigserver.rst +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/AttrCanFailDataSources.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/AttrJSONSettings.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/AttrLinkDataSources.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/AttrSTEPDataSources.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/AttrSelection.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/AttrVariables.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/AttrVersion.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/AttrXMLString.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/ClassDescription.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdAvailableComponents.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdAvailableDataSources.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdAvailableSelections.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdClose.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponentDataSources.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponentVariables.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponents.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponentsDataSources.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdComponentsVariables.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdCreateConfiguration.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdDataSources.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdDeleteComponent.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdDeleteDataSource.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdDeleteSelection.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdDependentComponents.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdInstantiatedComponents.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdMandatoryComponents.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdMerge.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdOpen.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdSelections.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdSetComponentDataSources.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdSetMandatoryComponents.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdState.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdStatus.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdStoreComponent.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdStoreDataSource.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdStoreSelection.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/CmdUnsetMandatoryComponents.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/Properties.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/States.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/TitleBanner.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/doc_html/index.html +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/man/NXSConfigServer.1 +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver/ComponentParser.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver/Errors.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver/MYSQLDataBase.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver/StreamSet.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver/__init__.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/SOURCES.txt +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/dependency_links.txt +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/not-zip-safe +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/requires.txt +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/top_level.txt +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/setup.cfg +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/setup.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/ComponentHandler_test.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/Errors_test.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/MYSQLDataBase_test.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/Merger_test.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/ServerSetUp.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/StreamSet_test.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/__init__.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/__main__.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/checks.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/test/main.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/tools/ndts.sql +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/tools/setupServer.py +0 -0
- {nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/tools/simpleClient.py +0 -0
|
@@ -1,3 +1,11 @@
|
|
|
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
|
+
|
|
1
9
|
2026-01-16 Jan Kotanski <jankotan@gmail.com>
|
|
2
10
|
* add MergedXML attribute (#88)
|
|
3
11
|
* tagged as v2.20.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
3
|
<classes name="NXSConfigServer" pogoRevision="9.9">
|
|
4
|
-
<description description="NeXuS Configuration Server is a Tango Server with its implementation based
on a MySQL database. It allows to store XML configuration datasources
and components. It also gives possibility to select mandatory components
and perform the process of component merging.

Source code: https://github.com/nexdatas/nxsconfigserver/
Web page: https://nexdatas.github.io/nxsconfigserver/
NexDaTaS Web page: https://nexdatas.github.io
" title="Configuration Server for Nexus Data Writer" sourcePath="/home/jkotan/ndts/
|
|
4
|
+
<description description="NeXuS Configuration Server is a Tango Server with its implementation based
on a MySQL database. It allows to store XML configuration datasources
and components. It also gives possibility to select mandatory components
and perform the process of component merging.

Source code: https://github.com/nexdatas/nxsconfigserver/
Web page: https://nexdatas.github.io/nxsconfigserver/
NexDaTaS Web page: https://nexdatas.github.io
" 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>
|
|
@@ -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,13 +411,13 @@
|
|
|
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="
|
|
414
|
+
<attributes name="XMLCache" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false">
|
|
415
415
|
<dataType xsi:type="pogoDsl:StringType"/>
|
|
416
416
|
<changeEvent fire="false" libCheckCriteria="false"/>
|
|
417
417
|
<archiveEvent fire="false" libCheckCriteria="false"/>
|
|
418
418
|
<dataReadyEvent fire="false" libCheckCriteria="true"/>
|
|
419
419
|
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
|
|
420
|
-
<properties description="XML for merged components without applied variables
|
|
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
421
|
<readExcludedStates>ON</readExcludedStates>
|
|
422
422
|
<readExcludedStates>RUNNING</readExcludedStates>
|
|
423
423
|
<writeExcludedStates>ON</writeExcludedStates>
|
|
@@ -110,14 +110,14 @@
|
|
|
110
110
|
<td> JSON list of datasources to which links will be added </td>
|
|
111
111
|
</tr>
|
|
112
112
|
<tr>
|
|
113
|
-
<td> <a href="
|
|
113
|
+
<td> <a href="AttrXMLCache.html"> XMLCache </a> </td>
|
|
114
114
|
<td> false </td>
|
|
115
115
|
<td> false </td>
|
|
116
116
|
<td> Scalar </td>
|
|
117
117
|
<td> READ </td>
|
|
118
118
|
<td> Tango::DEV_STRING </td>
|
|
119
119
|
<td> EXPERT </td>
|
|
120
|
-
<td> XML for merged components without applied variables
|
|
120
|
+
<td> XML for merged components without applied variables </td>
|
|
121
121
|
</tr>
|
|
122
122
|
</table>
|
|
123
123
|
<br><br>
|
|
@@ -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,7 +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#
|
|
58
|
+
<li> <a href="FullDocument.html#attrXMLCache"> XMLCache </a>
|
|
59
59
|
</ul>
|
|
60
60
|
<li> <a href="FullDocument.html#states"> States </a>
|
|
61
61
|
</ul>
|
|
@@ -265,11 +265,11 @@
|
|
|
265
265
|
<td> Stores the DataSource from XMLString </td>
|
|
266
266
|
</tr>
|
|
267
267
|
<tr>
|
|
268
|
-
<td> <a href="
|
|
268
|
+
<td> <a href="CmdCreateCache.html"> CreateCache </a> </td>
|
|
269
269
|
<td> DEVVAR_STRINGARRAY </td>
|
|
270
270
|
<td> DEV_VOID </td>
|
|
271
271
|
<td> OPERATOR </td>
|
|
272
|
-
<td> Creates the
|
|
272
|
+
<td> Creates the cache configuration script from the given components. The result is strored in XMLCache </td>
|
|
273
273
|
</tr>
|
|
274
274
|
<tr>
|
|
275
275
|
<td> <a href="CmdDeleteComponent.html"> DeleteComponent </a> </td>
|
|
@@ -1057,16 +1057,16 @@
|
|
|
1057
1057
|
</tr>
|
|
1058
1058
|
</table>
|
|
1059
1059
|
<br><br><hr>
|
|
1060
|
-
<a name="
|
|
1060
|
+
<a name="cmdCreateCache"> </a>
|
|
1061
1061
|
<br><br><br>
|
|
1062
|
-
<font size="+1"><u><b> Command
|
|
1062
|
+
<font size="+1"><u><b> Command CreateCache : </b></u></font>
|
|
1063
1063
|
<ul>
|
|
1064
|
-
Creates the
|
|
1064
|
+
Creates the cache configuration script from the given components. The result is strored in XMLCache
|
|
1065
1065
|
</ul>
|
|
1066
1066
|
<br><br><br>
|
|
1067
1067
|
<Table Border=2 Cellpadding=3 CELLSPACING=0>
|
|
1068
1068
|
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
|
|
1069
|
-
<td colspan=0> <font size=+1> <center><b>
|
|
1069
|
+
<td colspan=0> <font size=+1> <center><b> CreateCache Definition </b></font></center></td>
|
|
1070
1070
|
</tr>
|
|
1071
1071
|
<tr>
|
|
1072
1072
|
<td> Input Argument </td>
|
|
@@ -1900,14 +1900,14 @@
|
|
|
1900
1900
|
<td> JSON list of datasources to which links will be added </td>
|
|
1901
1901
|
</tr>
|
|
1902
1902
|
<tr>
|
|
1903
|
-
<td> <a href="
|
|
1903
|
+
<td> <a href="AttrXMLCache.html"> XMLCache </a> </td>
|
|
1904
1904
|
<td> false </td>
|
|
1905
1905
|
<td> false </td>
|
|
1906
1906
|
<td> Scalar </td>
|
|
1907
1907
|
<td> READ </td>
|
|
1908
1908
|
<td> Tango::DEV_STRING </td>
|
|
1909
1909
|
<td> EXPERT </td>
|
|
1910
|
-
<td> XML for merged components without applied variables
|
|
1910
|
+
<td> XML for merged components without applied variables </td>
|
|
1911
1911
|
</tr>
|
|
1912
1912
|
</table>
|
|
1913
1913
|
<br><br>
|
|
@@ -3420,11 +3420,11 @@
|
|
|
3420
3420
|
</table>
|
|
3421
3421
|
<br><br>
|
|
3422
3422
|
<hr>
|
|
3423
|
-
<a name="
|
|
3423
|
+
<a name="attrXMLCache"> </a>
|
|
3424
3424
|
<br><br><br>
|
|
3425
|
-
<font size="+1"><u><b> Attribute
|
|
3425
|
+
<font size="+1"><u><b> Attribute XMLCache : </b></u></font>
|
|
3426
3426
|
<ul>
|
|
3427
|
-
XML for merged components without applied variables
|
|
3427
|
+
XML for merged components without applied variables
|
|
3428
3428
|
</ul>
|
|
3429
3429
|
<br><br><br>
|
|
3430
3430
|
<Table Border=0 Cellpadding=0 CELLSPACING=20>
|
|
@@ -184,7 +184,7 @@ class Merger(object):
|
|
|
184
184
|
res += ":" + name
|
|
185
185
|
return res
|
|
186
186
|
|
|
187
|
-
def __areMergeable(self, elem1, elem2, ancestors):
|
|
187
|
+
def __areMergeable(self, elem1, elem2, ancestors, node):
|
|
188
188
|
""" checks if two elements are mergeable
|
|
189
189
|
|
|
190
190
|
:param elem1: first element
|
|
@@ -216,10 +216,19 @@ class Merger(object):
|
|
|
216
216
|
if tags:
|
|
217
217
|
status = False
|
|
218
218
|
if tagName in self.singles or (name1 and name1 == name2):
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
[
|
|
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
|
|
223
232
|
|
|
224
233
|
if tagName in self.uniqueText:
|
|
225
234
|
text1 = unicode(self.__getText(elem1)).strip()
|
|
@@ -330,6 +339,9 @@ class Merger(object):
|
|
|
330
339
|
|
|
331
340
|
children = list(node)
|
|
332
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)
|
|
333
345
|
while c1 < len(children):
|
|
334
346
|
child1 = children[c1]
|
|
335
347
|
c2 = c1 + 1
|
|
@@ -338,7 +350,7 @@ class Merger(object):
|
|
|
338
350
|
if child1 != child2:
|
|
339
351
|
if self.__areMergeable(
|
|
340
352
|
child1, child2,
|
|
341
|
-
ancestors):
|
|
353
|
+
ancestors, node):
|
|
342
354
|
self.__mergeNodes(child1, child2, node)
|
|
343
355
|
children.pop(c2)
|
|
344
356
|
c2 -= 1
|
|
@@ -359,8 +371,9 @@ class Merger(object):
|
|
|
359
371
|
|
|
360
372
|
self.__mergeChildren(child, newancestors, entrynode,
|
|
361
373
|
datanode, linknode)
|
|
362
|
-
if cName in self.switchable and self.switchdatasources:
|
|
363
|
-
|
|
374
|
+
# if cName in self.switchable and self.switchdatasources:
|
|
375
|
+
# print("CHILD", child.tag, child.get("name"))
|
|
376
|
+
# self.__switch(child)
|
|
364
377
|
if cName in self.linkable and self.linkdatasources:
|
|
365
378
|
datanode = self.__addlink(
|
|
366
379
|
child, newancestors, entrynode, datanode,
|
|
@@ -431,7 +444,8 @@ class Merger(object):
|
|
|
431
444
|
:type node: :obj:`xml.etree.ElementTree.Element`
|
|
432
445
|
"""
|
|
433
446
|
if node is not None:
|
|
434
|
-
|
|
447
|
+
stnodes = []
|
|
448
|
+
modes = []
|
|
435
449
|
mode = None
|
|
436
450
|
dsname = None
|
|
437
451
|
dsnode = None
|
|
@@ -456,13 +470,18 @@ class Merger(object):
|
|
|
456
470
|
elif cName == 'strategy':
|
|
457
471
|
mode = child.get("mode")
|
|
458
472
|
if mode in self.modesToSwitch.keys():
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
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)
|
|
466
485
|
|
|
467
486
|
def __canfail(self, node):
|
|
468
487
|
""" switch the given node to canfail mode
|
|
@@ -135,17 +135,17 @@ class NXSConfigServer(tango.LatestDeviceImpl):
|
|
|
135
135
|
return False
|
|
136
136
|
return True
|
|
137
137
|
|
|
138
|
-
def
|
|
139
|
-
""" Read
|
|
138
|
+
def read_XMLCache(self, attr):
|
|
139
|
+
""" Read XMLCache attribute
|
|
140
140
|
|
|
141
141
|
:param attr: xml string attribute
|
|
142
142
|
:type attr: :class:`tango.Attribute`
|
|
143
143
|
"""
|
|
144
|
-
self.debug_stream("In
|
|
145
|
-
attr.set_value(self.xmlc.
|
|
144
|
+
self.debug_stream("In read_XMLCache()")
|
|
145
|
+
attr.set_value(self.xmlc.xmlcache)
|
|
146
146
|
|
|
147
|
-
def
|
|
148
|
-
"""
|
|
147
|
+
def is_XMLCache_allowed(self, _):
|
|
148
|
+
""" XMLCache attribute State Machine
|
|
149
149
|
|
|
150
150
|
:returns: True if the operation allowed
|
|
151
151
|
:rtype: :obj:`bool`
|
|
@@ -785,7 +785,7 @@ class NXSConfigServer(tango.LatestDeviceImpl):
|
|
|
785
785
|
|
|
786
786
|
:brief: Creates the NDTS configuration script from the
|
|
787
787
|
given components. The result is strored in XMLString
|
|
788
|
-
and
|
|
788
|
+
and XMLCache
|
|
789
789
|
|
|
790
790
|
:param argin: DevVarStringArray list of component names
|
|
791
791
|
:type argin: :obj:`list` <:obj:`str`>
|
|
@@ -810,6 +810,36 @@ class NXSConfigServer(tango.LatestDeviceImpl):
|
|
|
810
810
|
return False
|
|
811
811
|
return True
|
|
812
812
|
|
|
813
|
+
def CreateCache(self, argin):
|
|
814
|
+
""" CreateCache command
|
|
815
|
+
|
|
816
|
+
:brief: Creates the NDTS cache script from the
|
|
817
|
+
given components. The result is strored in XMLString
|
|
818
|
+
and XMLCache
|
|
819
|
+
|
|
820
|
+
:param argin: DevVarStringArray list of component names
|
|
821
|
+
:type argin: :obj:`list` <:obj:`str`>
|
|
822
|
+
"""
|
|
823
|
+
self.debug_stream("In CreateCache()")
|
|
824
|
+
try:
|
|
825
|
+
self.set_state(tango.DevState.RUNNING)
|
|
826
|
+
self.xmlc.createCache(argin)
|
|
827
|
+
self.set_state(tango.DevState.OPEN)
|
|
828
|
+
finally:
|
|
829
|
+
if self.get_state() == tango.DevState.RUNNING:
|
|
830
|
+
self.set_state(tango.DevState.OPEN)
|
|
831
|
+
|
|
832
|
+
def is_CreateCache_allowed(self):
|
|
833
|
+
""" CreateCache command State Machine
|
|
834
|
+
|
|
835
|
+
:returns: True if the operation allowed
|
|
836
|
+
:rtype: :obj:`bool`
|
|
837
|
+
"""
|
|
838
|
+
if self.get_state() in [tango.DevState.ON,
|
|
839
|
+
tango.DevState.RUNNING]:
|
|
840
|
+
return False
|
|
841
|
+
return True
|
|
842
|
+
|
|
813
843
|
def DeleteComponent(self, argin):
|
|
814
844
|
""" DeleteComponent command
|
|
815
845
|
|
|
@@ -1276,6 +1306,9 @@ class NXSConfigServerClass(tango.DeviceClass):
|
|
|
1276
1306
|
'CreateConfiguration':
|
|
1277
1307
|
[[tango.DevVarStringArray, "list of component names"],
|
|
1278
1308
|
[tango.DevVoid, ""]],
|
|
1309
|
+
'CreateCache':
|
|
1310
|
+
[[tango.DevVarStringArray, "list of component names"],
|
|
1311
|
+
[tango.DevVoid, ""]],
|
|
1279
1312
|
'DeleteComponent':
|
|
1280
1313
|
[[tango.DevString, "component name"],
|
|
1281
1314
|
[tango.DevVoid, ""]],
|
|
@@ -1337,7 +1370,7 @@ class NXSConfigServerClass(tango.DeviceClass):
|
|
|
1337
1370
|
"it contains the resulting XML configuration.",
|
|
1338
1371
|
'Display level': tango.DispLevel.EXPERT,
|
|
1339
1372
|
}],
|
|
1340
|
-
'
|
|
1373
|
+
'XMLCache':
|
|
1341
1374
|
[[tango.DevString,
|
|
1342
1375
|
tango.SCALAR,
|
|
1343
1376
|
tango.READ],
|
|
@@ -87,7 +87,7 @@ class XMLConfigurator(object):
|
|
|
87
87
|
#: (:obj:`str`) XML config string
|
|
88
88
|
self.xmlstring = ""
|
|
89
89
|
#: (:obj:`str`) Merged coponents in XML string without variables
|
|
90
|
-
self.
|
|
90
|
+
self.xmlcache = ""
|
|
91
91
|
#: (:obj:`str`) component selection
|
|
92
92
|
self.selection = "{}"
|
|
93
93
|
#: (:obj:`str`) JSON string with arguments to connect to database
|
|
@@ -831,9 +831,12 @@ class XMLConfigurator(object):
|
|
|
831
831
|
name = subc.strip() if subc else ""
|
|
832
832
|
if name:
|
|
833
833
|
if tag and name not in keys:
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
834
|
+
if not onlyexisting:
|
|
835
|
+
raise NonregisteredDBRecordError(
|
|
836
|
+
"The %s %s of %s not registered in the "
|
|
837
|
+
"DataBase" % (
|
|
838
|
+
tag if tag else "variable",
|
|
839
|
+
name, component))
|
|
837
840
|
try:
|
|
838
841
|
xmlds = funValue([name], defsubc)
|
|
839
842
|
except Exception:
|
|
@@ -842,7 +845,7 @@ class XMLConfigurator(object):
|
|
|
842
845
|
raise NonregisteredDBRecordError(
|
|
843
846
|
"The %s %s of %s not registered" % (
|
|
844
847
|
tag if tag else "variable", name, component))
|
|
845
|
-
if tag:
|
|
848
|
+
if tag and xmlds:
|
|
846
849
|
if sys.version_info > (3,):
|
|
847
850
|
root = et.fromstring(
|
|
848
851
|
bytes(xmlds[0], "UTF-8"),
|
|
@@ -908,10 +911,12 @@ class XMLConfigurator(object):
|
|
|
908
911
|
component, self.__varLabel,
|
|
909
912
|
list(self.__parameters.keys()), self.__getVariable)
|
|
910
913
|
|
|
911
|
-
def __attachComponents(self, component):
|
|
914
|
+
def __attachComponents(self, component, onlyexisting=False):
|
|
912
915
|
""" attaches variables to component
|
|
913
916
|
|
|
914
917
|
:param component: given component
|
|
918
|
+
:param onlyexisting: attachElement only if exists
|
|
919
|
+
:type onlyexisting: :obj:`bool`
|
|
915
920
|
:type component: :obj:`str`
|
|
916
921
|
:returns: component with attached variables
|
|
917
922
|
:rtype: :obj:`str`
|
|
@@ -919,13 +924,16 @@ class XMLConfigurator(object):
|
|
|
919
924
|
if not component:
|
|
920
925
|
return
|
|
921
926
|
return self.__attachElements(
|
|
922
|
-
component, self.__cpLabel, [], lambda x, y: [""]
|
|
927
|
+
component, self.__cpLabel, [], lambda x, y: [""],
|
|
928
|
+
onlyexisting=onlyexisting)
|
|
923
929
|
|
|
924
|
-
def __attachDataSources(self, component):
|
|
930
|
+
def __attachDataSources(self, component, onlyexisting=False):
|
|
925
931
|
""" attaches datasources to component
|
|
926
932
|
|
|
927
933
|
:param component: given component
|
|
928
934
|
:type component: :obj:`str`
|
|
935
|
+
:param onlyexisting: attachElement only if exists
|
|
936
|
+
:type onlyexisting: :obj:`bool`
|
|
929
937
|
:returns: component with attached datasources
|
|
930
938
|
:rtype: :obj:`str`
|
|
931
939
|
"""
|
|
@@ -934,7 +942,7 @@ class XMLConfigurator(object):
|
|
|
934
942
|
return self.__attachElements(
|
|
935
943
|
component, self.__dsLabel,
|
|
936
944
|
self.availableDataSources(), self.dataSources,
|
|
937
|
-
"datasource")
|
|
945
|
+
"datasource", onlyexisting=onlyexisting)
|
|
938
946
|
|
|
939
947
|
def merge(self, names):
|
|
940
948
|
""" merges the give components
|
|
@@ -963,13 +971,15 @@ class XMLConfigurator(object):
|
|
|
963
971
|
cpvars[str(key)] = str(value)
|
|
964
972
|
return cpvars
|
|
965
973
|
|
|
966
|
-
def __mergeVars(self, names, withVariables=False):
|
|
974
|
+
def __mergeVars(self, names, withVariables=False, onlyCache=False):
|
|
967
975
|
""" merges the give components
|
|
968
976
|
|
|
969
977
|
:param names: list of component names
|
|
970
978
|
:type names: :obj:`list` <:obj:`str`>
|
|
971
979
|
:param withVariables: if true variables will be substituted
|
|
972
980
|
:param withVariables: :obj:`bool`
|
|
981
|
+
:param onlyCache: if true create only cache
|
|
982
|
+
:param onlyCache: :obj:`bool`
|
|
973
983
|
:returns: merged components
|
|
974
984
|
:rtype: :obj:`str`
|
|
975
985
|
"""
|
|
@@ -980,7 +990,12 @@ class XMLConfigurator(object):
|
|
|
980
990
|
comps = self.__mydb.components(list(set(allnames)))
|
|
981
991
|
xml = self.__merge(comps, skip=withVariables)
|
|
982
992
|
if withVariables:
|
|
983
|
-
|
|
993
|
+
xml = self.__attachDataSources(
|
|
994
|
+
self.__attachComponents(
|
|
995
|
+
xml, onlyexisting=True), onlyexisting=True)
|
|
996
|
+
self.xmlcache = xml or ""
|
|
997
|
+
if onlyCache:
|
|
998
|
+
return self.xmlcache
|
|
984
999
|
if xml is not None:
|
|
985
1000
|
comps = [xml]
|
|
986
1001
|
cpvars = self.__variableComponentValues(comps)
|
|
@@ -998,11 +1013,12 @@ class XMLConfigurator(object):
|
|
|
998
1013
|
:rtype: :obj:`str`
|
|
999
1014
|
"""
|
|
1000
1015
|
mgr = Merger()
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1016
|
+
if not skip:
|
|
1017
|
+
mgr.switchdatasources = json.loads(self.stepdatasources)
|
|
1018
|
+
mgr.linkdatasources = json.loads(self.linkdatasources)
|
|
1019
|
+
mgr.extralinkdatasources = json.loads(self.extralinkdatasources)
|
|
1020
|
+
mgr.canfaildatasources = json.loads(self.canfaildatasources)
|
|
1021
|
+
mgr.extralinkpath = self.__splitExtraPath(self.extraLinkPath)
|
|
1006
1022
|
mgr.skip = skip
|
|
1007
1023
|
mgr.collect(xmls)
|
|
1008
1024
|
mgr.merge()
|
|
@@ -1035,6 +1051,16 @@ class XMLConfigurator(object):
|
|
|
1035
1051
|
epath.append([nd[0], "NX" + nd[0]])
|
|
1036
1052
|
return epath
|
|
1037
1053
|
|
|
1054
|
+
def createCache(self, names):
|
|
1055
|
+
""" creates the final configuration string in the xmlstring attribute
|
|
1056
|
+
|
|
1057
|
+
:param names: list of component names
|
|
1058
|
+
:type names: :obj:`list` <:obj:`str`>
|
|
1059
|
+
"""
|
|
1060
|
+
self.__mergeVars(names, withVariables=True, onlyCache=True)
|
|
1061
|
+
self._streams.info("XMLConfigurator::createConfiguration() "
|
|
1062
|
+
"- Create configuration")
|
|
1063
|
+
|
|
1038
1064
|
def createConfiguration(self, names):
|
|
1039
1065
|
""" creates the final configuration string in the xmlstring attribute
|
|
1040
1066
|
|
|
@@ -137,8 +137,8 @@ class NXSConfigServerTest(XMLConfigurator_test.XMLConfiguratorTest):
|
|
|
137
137
|
# gets xmlconfiguration
|
|
138
138
|
# \param xmlc configuration instance
|
|
139
139
|
# \returns xml configuration string
|
|
140
|
-
def
|
|
141
|
-
return xmlc.
|
|
140
|
+
def getXMLCache(self, xmlc):
|
|
141
|
+
return xmlc.XMLCache
|
|
142
142
|
|
|
143
143
|
|
|
144
144
|
if __name__ == '__main__':
|
|
@@ -176,8 +176,8 @@ class XMLConfiguratorTest(unittest.TestCase):
|
|
|
176
176
|
# gets merged xmlconfiguration
|
|
177
177
|
# \param xmlc configuration instance
|
|
178
178
|
# \returns xml configuration string
|
|
179
|
-
def
|
|
180
|
-
return xmlc.
|
|
179
|
+
def getXMLCache(self, xmlc):
|
|
180
|
+
return xmlc.xmlcache
|
|
181
181
|
|
|
182
182
|
# sets selection configuration
|
|
183
183
|
# \param selectionc configuration instance
|
|
@@ -1202,11 +1202,11 @@ class XMLConfiguratorTest(unittest.TestCase):
|
|
|
1202
1202
|
|
|
1203
1203
|
self.getXML(el)
|
|
1204
1204
|
self.assertEqual(self.getXML(el), '')
|
|
1205
|
-
self.assertEqual(self.
|
|
1205
|
+
self.assertEqual(self.getXMLCache(el), '')
|
|
1206
1206
|
self.assertEqual(el.createConfiguration([]), None)
|
|
1207
1207
|
self.getXML(el)
|
|
1208
1208
|
self.assertEqual(self.getXML(el), '')
|
|
1209
|
-
self.assertEqual(self.
|
|
1209
|
+
self.assertEqual(self.getXMLCache(el), '')
|
|
1210
1210
|
el.setMandatoryComponents(man)
|
|
1211
1211
|
el.close()
|
|
1212
1212
|
|
|
@@ -1249,7 +1249,7 @@ class XMLConfiguratorTest(unittest.TestCase):
|
|
|
1249
1249
|
|
|
1250
1250
|
self.assertEqual(el.createConfiguration([name]), None)
|
|
1251
1251
|
xml = self.getXML(el)
|
|
1252
|
-
mxml = self.
|
|
1252
|
+
mxml = self.getXMLCache(el)
|
|
1253
1253
|
checkxmls(
|
|
1254
1254
|
self,
|
|
1255
1255
|
xml,
|
|
@@ -1315,7 +1315,7 @@ class XMLConfiguratorTest(unittest.TestCase):
|
|
|
1315
1315
|
|
|
1316
1316
|
self.assertEqual(el.createConfiguration([name]), None)
|
|
1317
1317
|
xml = self.getXML(el)
|
|
1318
|
-
mxml = self.
|
|
1318
|
+
mxml = self.getXMLCache(el)
|
|
1319
1319
|
checkxmls(
|
|
1320
1320
|
self,
|
|
1321
1321
|
xml,
|
|
@@ -1329,7 +1329,7 @@ class XMLConfiguratorTest(unittest.TestCase):
|
|
|
1329
1329
|
self.assertEqual(el.createConfiguration([name]), None)
|
|
1330
1330
|
|
|
1331
1331
|
xml = self.getXML(el)
|
|
1332
|
-
mxml = self.
|
|
1332
|
+
mxml = self.getXMLCache(el)
|
|
1333
1333
|
checkxmls(
|
|
1334
1334
|
self,
|
|
1335
1335
|
xml,
|
|
@@ -1400,7 +1400,7 @@ class XMLConfiguratorTest(unittest.TestCase):
|
|
|
1400
1400
|
|
|
1401
1401
|
self.assertEqual(el.createConfiguration([name]), None)
|
|
1402
1402
|
xml = self.getXML(el)
|
|
1403
|
-
mxml = self.
|
|
1403
|
+
mxml = self.getXMLCache(el)
|
|
1404
1404
|
checkxmls(
|
|
1405
1405
|
self,
|
|
1406
1406
|
xml,
|
|
@@ -1416,7 +1416,7 @@ class XMLConfiguratorTest(unittest.TestCase):
|
|
|
1416
1416
|
self.assertEqual(el.createConfiguration([name, name2]), None)
|
|
1417
1417
|
|
|
1418
1418
|
xml = self.getXML(el)
|
|
1419
|
-
mxml = self.
|
|
1419
|
+
mxml = self.getXMLCache(el)
|
|
1420
1420
|
checkxmls(
|
|
1421
1421
|
self,
|
|
1422
1422
|
xml,
|
|
@@ -1437,7 +1437,7 @@ class XMLConfiguratorTest(unittest.TestCase):
|
|
|
1437
1437
|
self.assertEqual(el.createConfiguration([name, name2]), None)
|
|
1438
1438
|
|
|
1439
1439
|
xml = self.getXML(el)
|
|
1440
|
-
mxml = self.
|
|
1440
|
+
mxml = self.getXMLCache(el)
|
|
1441
1441
|
checkxmls(
|
|
1442
1442
|
self,
|
|
1443
1443
|
xml,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nxsconfigserver-2.20.0 → nxsconfigserver-2.21.1}/nxsconfigserver.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|