tests/wamp/.crossbar/config.json
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Fri, 10 Aug 2018 17:45:33 +0300
changeset 2278 a3ac46366b86
parent 1895 876ce4e492a1
child 2194 35d6b9321ffd
permissions -rw-r--r--
Dirty fix for error '_object_has_no_attribute_'getSlave' in EtherCAT extension

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1433, in OnPouSelectedChanged
window.RefreshView()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 837, in RefreshView
self.RefreshProcessVariables()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 886, in RefreshProcessVariables
slaves = self.Controler.GetSlaves(**self.CurrentNodesFilter)
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/EthercatMaster.py", line 341, in GetSlaves
for slave in self.Config.getConfig().getSlave():
<type 'exceptions.AttributeError'>:_'lxml.etree._Element'_object_has_no_attribute_'getSlave'

Steps to reproduce problem:

- Add new EtherCAT master
- Add new EthercatNode to the master
- double click on


this is looks like dirty hack to fix strange problem with initial[0]
changing its type after returning from _init_ method to lxml.etree._Element
As a result all methods generated by class factory are lost.

For example, in function initMethod initial[0].__class__ points to
xmlclass.xmlclass.Config. After map(self.append, initial)
self.Config.__class__ is 'xmlclass.xmlclass.Config' as well.
But after returning from initMethod (_init) in CreateElement
self.Config.__class__ has changed to lxml.etree._Element.


I've noticed similar behavior if copy/deepcopy is used for any child
of etree.ElementBase. See simple example below.
[-------------------------------------------------------------]
#!/usr/bin/python

from __future__ import print_function
from lxml import etree
import copy

class DefaultElementClass(etree.ElementBase):
def getLocalTag(self):
return etree.QName(self.tag).localname


def printInformation(x):
print(x, x.__class__, "getLocalTag" in dir(x))


a = DefaultElementClass()
printInformation(a)

#
printInformation(copy.copy(a))
printInformation(copy.deepcopy(a))
[-------------------------------------------------------------]
1439
a68cd4253259 Added stub code for runtime WAMP client. Added runtime command line switch to select WAMP url and Nevow web site port. Web port is now fixed, next port number is not tested if bind fails.
Edouard Tisserant
parents:
diff changeset
     1
{
1895
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
     2
    "version": 2,
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
     3
    "controller": {},
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
     4
    "workers": [
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
     5
        {
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
     6
            "type": "router",
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
     7
            "options": {
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
     8
                "pythonpath": [
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
     9
                    ".."
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    10
                ]
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    11
            },
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    12
            "realms": [
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    13
                {
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    14
                    "name": "Automation",
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    15
                    "roles": [
1439
a68cd4253259 Added stub code for runtime WAMP client. Added runtime command line switch to select WAMP url and Nevow web site port. Web port is now fixed, next port number is not tested if bind fails.
Edouard Tisserant
parents:
diff changeset
    16
                        {
1895
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    17
                            "name": "anonymous",
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    18
                            "permissions": [
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    19
                                {
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    20
                                    "uri": "",
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    21
                                    "match": "prefix",
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    22
                                    "allow": {
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    23
                                        "call": true,
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    24
                                        "register": true,
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    25
                                        "publish": true,
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    26
                                        "subscribe": true
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    27
                                    },
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    28
                                    "disclose": {
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    29
                                        "caller": false,
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    30
                                        "publisher": false
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    31
                                    },
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    32
                                    "cache": true
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    33
                                }
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    34
                            ]
1439
a68cd4253259 Added stub code for runtime WAMP client. Added runtime command line switch to select WAMP url and Nevow web site port. Web port is now fixed, next port number is not tested if bind fails.
Edouard Tisserant
parents:
diff changeset
    35
                        }
1895
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    36
                    ]
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    37
                }
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    38
            ],
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    39
            "transports": [
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    40
                {
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    41
                    "type": "websocket",
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    42
                    "endpoint": {
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    43
                        "type": "tcp",
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    44
                        "port": 8888
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    45
                    },
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    46
                    "url": "ws://127.0.0.1:8888/",
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    47
                    "serializers": [
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    48
                        "msgpack"
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    49
                    ]
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    50
                }
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    51
            ]
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    52
        }
876ce4e492a1 Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant
parents: 1440
diff changeset
    53
    ]
1439
a68cd4253259 Added stub code for runtime WAMP client. Added runtime command line switch to select WAMP url and Nevow web site port. Web port is now fixed, next port number is not tested if bind fails.
Edouard Tisserant
parents:
diff changeset
    54
}