예제 #1
0
 def doPyHouseLogin(self, p_client, p_pyhouse_obj):
     """Login to PyHouse via MQTT
     """
     self.m_client = p_client
     l_name = p_pyhouse_obj.Computer.Name
     try:
         l_node = copy.deepcopy(p_pyhouse_obj.Computer.Nodes[l_name])
     except (KeyError, TypeError):
         l_node = NodeData()
     l_node.NodeInterfaces = {}
예제 #2
0
 def doPyHouseLogin(self, p_client, p_pyhouse_obj):
     """Login to PyHouse via MQTT
     """
     self.m_client = p_client
     try:
         l_node = copy.deepcopy(p_pyhouse_obj.Computer.Nodes[p_pyhouse_obj.Computer.Name])
     except KeyError:
         l_node = NodeData()
     l_node.NodeInterfaces = {}
     self.MqttPublish('computer/startup', l_node)
예제 #3
0
 def send_who_is_there(p_pyhouse_obj):
     l_topic = "computer/node/whoisthere"
     l_uuid = p_pyhouse_obj.Computer.UUID
     try:
         l_node = p_pyhouse_obj.Computer.Nodes[l_uuid]
     except KeyError as e_err:
         LOG.error('No such node {}'.format(e_err))
         l_node = NodeData()
     l_node.NodeInterfaces = None
     p_pyhouse_obj.APIs.Computer.MqttAPI.MqttPublish(
         l_topic, l_node)  # /computer/node/whoisthere
     _l_runID = p_pyhouse_obj.Twisted.Reactor.callLater(
         REPEAT_DELAY, Util.send_who_is_there, p_pyhouse_obj)
예제 #4
0
 def _read_one_node_xml(p_node_xml):
     """
     Read the existing XML file (if it exists) and get the node info.
     """
     l_node_obj = NodeData()
     XmlConfigTools.read_base_object_xml(l_node_obj, p_node_xml)
     l_node_obj.ConnectionAddr_IPv4 = PutGetXML.get_text_from_xml(p_node_xml, 'ConnectionAddressV4')
     l_node_obj.ConnectionAddr_IPv6 = PutGetXML.get_text_from_xml(p_node_xml, 'ConnectionAddressV6')
     l_node_obj.NodeRole = PutGetXML.get_int_from_xml(p_node_xml, 'NodeRole')
     try:
         l_node_obj.NodeInterfaces = Xml._read_interfaces_xml(p_node_xml.find('InterfaceSection'))
     except AttributeError as e_err:
         LOG.error('ERROR OneNodeRead error {}'.format(e_err))
     return l_node_obj
예제 #5
0
    def send_who_is_there(p_pyhouse_obj):
        l_topic = TOPIC + "whoisthere"
        l_uuid = p_pyhouse_obj.Computer.UUID
        try:
            l_node = p_pyhouse_obj.Computer.Nodes[l_uuid]
        except KeyError as e_err:
            LOG.error('No such node {}'.format(e_err))
            l_node = NodeData()
        l_node.NodeInterfaces = None
        p_pyhouse_obj.APIs.Computer.MqttAPI.MqttPublish(l_topic, l_node)  # /computer/node/whoisthere

        l_topic = 'login/initial'
        l_message = {}
        p_pyhouse_obj.APIs.Computer.MqttAPI.MqttPublish(l_topic, l_message)  # /login/initial

        _l_runID = p_pyhouse_obj.Twisted.Reactor.callLater(REPEAT_DELAY, Util.send_who_is_there, p_pyhouse_obj)
예제 #6
0
    def _read_one_node_xml(p_node_xml):
        """
        Use the passed in xml to create a node entry.

        @param p_node_xml: is the element in the Xml config file that describes a node.
        @return: a node object filled in.
        """
        l_node_obj = NodeData()
        XmlConfigTools.read_base_UUID_object_xml(l_node_obj, p_node_xml)
        l_node_obj.ConnectionAddr_IPv4 = PutGetXML.get_text_from_xml(p_node_xml, 'ConnectionAddressV4')
        l_node_obj.ConnectionAddr_IPv6 = PutGetXML.get_text_from_xml(p_node_xml, 'ConnectionAddressV6')
        l_node_obj.NodeRole = PutGetXML.get_int_from_xml(p_node_xml, 'NodeRole')
        try:
            l_node_obj.LastUpdate = PutGetXML.get_date_time_from_xml(p_node_xml, 'LastUpdate')
        except AttributeError:
            l_node_obj.LastUpdate = datetime.datetime.now()
        try:
            l_node_obj.NodeInterfaces = Xml._read_interfaces_xml(p_node_xml.find('InterfaceSection'))
        except AttributeError as e_err:
            LOG.error('ERROR OneNodeRead error {}'.format(e_err))
        return l_node_obj
예제 #7
0
 def test_06_AllInterfaces(self):
     l_node = NodeData()
     l_if, _l_v4, _l_v6 = Interfaces._get_all_interfaces()
     l_node.NodeInterfaces = l_if
예제 #8
0
 def test_05_AllInterfaces(self):
     l_node = NodeData()
     l_if, _l_v4, _l_v6 = Interfaces._get_all_interfaces()
     l_node.NodeInterfaces = l_if
예제 #9
0
 def test_05_AllInterfaces(self):
     l_node = NodeData()
     l_node.NodeInterfaces = Interfaces._get_all_interfaces()
     print(PrettyFormatAny.form(l_node.NodeInterfaces, 'Node Interfaces'))