def serialize(self):
        """This function serialize into a simple dict object.
        It is used when transferring data to other daemons over the network (http)

        Here is the generic function that simply export attributes declared in the
        properties dictionary and the running_properties of the object.

        :return: Dictionary containing key and value from properties and running_properties
        :rtype: dict
        """
        cls = self.__class__
        # id is not in *_properties
        res = {'uuid': self.uuid}
        for prop in cls.properties:
            if hasattr(self, prop) and getattr(self, prop, None) is not None:
                res[prop] = serialize(getattr(self, prop), True)
        for prop in cls.running_properties:
            if hasattr(self, prop) and getattr(self, prop, None) is not None:
                res[prop] = serialize(getattr(self, prop), True)

        return res
This function serialize into a simple dict object.
        It is used when transferring data to other daemons over the network (http)

        Here is the generic function that simply export attributes declared in the
        properties dictionary and the running_properties of the object.

        :return: Dictionary containing key and value from properties and running_properties
        :rtype: dict