removed zeroconf for now, may be added back later, closes #8

added avahi service configuration file
some small improvments
This commit is contained in:
Giovanni Harting
2015-09-02 00:29:14 +02:00
parent d1ac2d0171
commit 2602852e63
4 changed files with 20 additions and 36 deletions

15
ledd.service Normal file
View File

@@ -0,0 +1,15 @@
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<!-- Place this file in /etc/avahi/services/ for your clients to find the daemon -->
<service-group>
<name>LedD Daemon</name>
<service>
<type>_ledd._tcp</type>
<port>1425</port>
</service>
</service-group>

View File

@@ -23,9 +23,7 @@ import sys
import traceback import traceback
import time import time
import asyncio import asyncio
import spectra import spectra
from zeroconf import Zeroconf, ServiceInfo
from ledd import controller, VERSION from ledd import controller, VERSION
from ledd.decorators import ledd_protocol from ledd.decorators import ledd_protocol
@@ -57,10 +55,6 @@ class Daemon:
except FileNotFoundError: except FileNotFoundError:
log.info("No config file found!") log.info("No config file found!")
# create zeroconf service info
self.zinfo = ServiceInfo("_ledd._tcp.local.", "LedD Daemon._ledd._tcp.local.",
port=self.config.get(self.daemonSection, 'port', fallback=1425))
# SQL init # SQL init
self.sqldb = sqlite3.connect(self.config.get(self.databaseSection, 'name', fallback='ledd.sqlite')) self.sqldb = sqlite3.connect(self.config.get(self.databaseSection, 'name', fallback='ledd.sqlite'))
self.sqldb.row_factory = sqlite3.Row self.sqldb.row_factory = sqlite3.Row
@@ -75,9 +69,6 @@ class Daemon:
log.debug(self.controllers) log.debug(self.controllers)
logging.getLogger("asyncio").setLevel(logging.DEBUG) logging.getLogger("asyncio").setLevel(logging.DEBUG)
# announce server to network
self.register_zeroconf()
# main loop # main loop
self.loop = asyncio.get_event_loop() self.loop = asyncio.get_event_loop()
coro = self.loop.create_server(LedDProtocol, coro = self.loop.create_server(LedDProtocol,
@@ -87,7 +78,6 @@ class Daemon:
self.loop.run_forever() self.loop.run_forever()
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit):
log.info("Exiting") log.info("Exiting")
self.deregister_zeroconf()
self.sqldb.close() self.sqldb.close()
self.server.close() self.server.close()
self.loop.run_until_complete(self.server.wait_closed()) self.loop.run_until_complete(self.server.wait_closed())
@@ -127,24 +117,6 @@ class Daemon:
c.close() c.close()
self.check_db() self.check_db()
def register_zeroconf(self):
try:
zeroconf = Zeroconf()
zeroconf.register_service(self.zinfo)
log.info("Registered ledd daemon with zeroconf")
except OSError as e:
log.warning("Failed to register service with ZeroConf: %s", e)
pass
def deregister_zeroconf(self):
try:
zeroconf = Zeroconf()
zeroconf.unregister_service(self.zinfo)
log.info("Unregistered ledd daemon with zeroconf")
except OSError as e:
log.warning("Failed to deregister service with ZeroConf: %s", e)
pass
@ledd_protocol(protocol) @ledd_protocol(protocol)
def start_effect(self, req_json): def start_effect(self, req_json):
""" """

View File

@@ -25,6 +25,6 @@ setup(name='LedD',
license='GPLv3', license='GPLv3',
packages=['ledd'], packages=['ledd'],
install_requires=[ install_requires=[
'nose', 'spectra', 'zeroconf', 'nose', 'spectra',
], ],
zip_safe=False) zip_safe=False)

View File

@@ -15,6 +15,9 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging import logging
import ledd.daemon
import sys
import os
from pkgutil import iter_modules from pkgutil import iter_modules
@@ -41,15 +44,9 @@ if "smbus" not in (name for loader, name, ispkg in iter_modules()):
SMBus = SMBus SMBus = SMBus
import sys
sys.modules['smbus'] = SMBusModule sys.modules['smbus'] = SMBusModule
sys.modules['smbus'].SMBus = SMBus sys.modules['smbus'].SMBus = SMBus
import ledd.daemon
import sys
import os
if __name__ == "__main__": if __name__ == "__main__":
logging.basicConfig(level=logging.DEBUG, logging.basicConfig(level=logging.DEBUG,
format="[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s", format="[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s",
@@ -71,4 +68,4 @@ if __name__ == "__main__":
else: else:
sys.exit() sys.exit()
except OSError as e: except OSError as e:
log.fatal("Forking failed: %s", os.strerror(int(str(e)))) log.fatal("Start failed: %s", e)