예제 #1
0
 def add_node(p_pyhouse_obj, p_message_obj):
     """ Add node (or update if alreeady present).
     @param p_message_obj: is a decoded json message containing node information
     """
     l_nodes = p_pyhouse_obj.Computer.Nodes
     l_uuid = p_message_obj['UUID']
     l_name = p_message_obj['Name']
     l_now = datetime.datetime.now()
     if l_uuid in l_nodes:
         LOG.info('Node already present {} '.format(l_name))
         p_pyhouse_obj.Computer.Nodes[l_uuid].LastUpdate = l_now
     else:
         LOG.info('Node not present - Adding. {}  {}'.format(
             l_uuid, l_name))
         l_obj = NodeData()
         l_obj.Name = l_name
         l_obj.Key = l_uuid
         l_obj.Active = p_message_obj['Active']
         l_obj.Comment = p_message_obj['Comment']
         l_obj.ConnectionAddr_IPv4 = p_message_obj['ConnectionAddr_IPv4']
         l_obj.ConnectionAddr_IPv6 = p_message_obj['ConnectionAddr_IPv6']
         l_obj.ControllerCount = p_message_obj['ControllerCount']
         l_obj.ControllerTypes = p_message_obj['ControllerTypes']
         l_obj.NodeId = p_message_obj['NodeId']
         l_obj.NodeRole = p_message_obj['NodeRole']
         l_obj.LastUpdate = l_now
         l_obj.UUID = l_uuid
         p_pyhouse_obj.Computer.Nodes[l_uuid] = l_obj
     LOG.info('Contains {} Nodes'.format(len(p_pyhouse_obj.Computer.Nodes)))
예제 #2
0
 def add_node(p_pyhouse_obj, p_message_obj):
     """ Add node (or update if alreeady present).
     @param p_message_obj: is a decoded json message containing node information
     """
     l_nodes = p_pyhouse_obj.Computer.Nodes
     l_uuid = p_message_obj['UUID']
     l_name = p_message_obj['Name']
     l_now = datetime.datetime.now()
     if l_uuid in l_nodes:
         LOG.info('Node already present {} '.format(l_name))
         p_pyhouse_obj.Computer.Nodes[l_uuid].LastUpdate = l_now
     else:
         LOG.info('Node not present - Adding. {}  {}'.format(l_uuid, l_name))
         l_obj = NodeData()
         l_obj.Name = l_name
         l_obj.Key = l_uuid
         l_obj.Active = p_message_obj['Active']
         l_obj.Comment = p_message_obj['Comment']
         l_obj.ConnectionAddr_IPv4 = p_message_obj['ConnectionAddr_IPv4']
         l_obj.ConnectionAddr_IPv6 = p_message_obj['ConnectionAddr_IPv6']
         l_obj.ControllerCount = p_message_obj['ControllerCount']
         l_obj.ControllerTypes = p_message_obj['ControllerTypes']
         l_obj.NodeId = p_message_obj['NodeId']
         l_obj.NodeRole = p_message_obj['NodeRole']
         l_obj.LastUpdate = l_now
         l_obj.UUID = l_uuid
         p_pyhouse_obj.Computer.Nodes[l_uuid] = l_obj
     LOG.info('Contains {} Nodes'.format(len(p_pyhouse_obj.Computer.Nodes)))
예제 #3
0
 def _extract_node(self, p_message):
     l_node = NodeData()
     l_node.Name = self._get_field(p_message, 'Name')
     l_node.Key = l_node.Name
     l_node.Active = True
     l_node.Comment = ''
     l_node.ConnectionAddr_IPv4 = self._get_field(p_message, 'ConnectionAddr_IPv4')
     l_node.ConnectionAddr_IPv6 = self._get_field(p_message, 'ConnectionAddr_IPv6')
     l_node.ControllerCount = self._get_field(p_message, 'ControllerCount')
     l_node.ControllerTypes = self._get_field(p_message, 'ControllerTypes')
     l_node.NodeId = self._get_field(p_message, 'NodeId')
     l_node.NodeRole = self._get_field(p_message, 'NodeRole')
예제 #4
0
 def _extract_node(self, p_message):
     l_node = NodeData()
     l_node.Name = self._get_field(p_message, 'Name')
     l_node.Key = l_node.Name
     l_node.Active = True
     l_node.Comment = ''
     l_node.ConnectionAddr_IPv4 = self._get_field(p_message,
                                                  'ConnectionAddr_IPv4')
     l_node.ConnectionAddr_IPv6 = self._get_field(p_message,
                                                  'ConnectionAddr_IPv6')
     l_node.ControllerCount = self._get_field(p_message, 'ControllerCount')
     l_node.ControllerTypes = self._get_field(p_message, 'ControllerTypes')
     l_node.NodeId = self._get_field(p_message, 'NodeId')
     l_node.NodeRole = self._get_field(p_message, 'NodeRole')
예제 #5
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
예제 #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 initialize_node(self, p_addr_v4, p_addr_v6):
     l_node = NodeData()
     l_node.ConnectionAddr_IPv4 = p_addr_v4
     l_node.ConnectionAddr_IPv6 = p_addr_v6
     return l_node