removed zeroconf for now, may be added back later, closes #8
added avahi service configuration file some small improvments
This commit is contained in:
15
ledd.service
Normal file
15
ledd.service
Normal 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>
|
@@ -23,9 +23,7 @@ import sys
|
||||
import traceback
|
||||
import time
|
||||
import asyncio
|
||||
|
||||
import spectra
|
||||
from zeroconf import Zeroconf, ServiceInfo
|
||||
|
||||
from ledd import controller, VERSION
|
||||
from ledd.decorators import ledd_protocol
|
||||
@@ -57,10 +55,6 @@ class Daemon:
|
||||
except FileNotFoundError:
|
||||
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
|
||||
self.sqldb = sqlite3.connect(self.config.get(self.databaseSection, 'name', fallback='ledd.sqlite'))
|
||||
self.sqldb.row_factory = sqlite3.Row
|
||||
@@ -75,9 +69,6 @@ class Daemon:
|
||||
log.debug(self.controllers)
|
||||
logging.getLogger("asyncio").setLevel(logging.DEBUG)
|
||||
|
||||
# announce server to network
|
||||
self.register_zeroconf()
|
||||
|
||||
# main loop
|
||||
self.loop = asyncio.get_event_loop()
|
||||
coro = self.loop.create_server(LedDProtocol,
|
||||
@@ -87,7 +78,6 @@ class Daemon:
|
||||
self.loop.run_forever()
|
||||
except (KeyboardInterrupt, SystemExit):
|
||||
log.info("Exiting")
|
||||
self.deregister_zeroconf()
|
||||
self.sqldb.close()
|
||||
self.server.close()
|
||||
self.loop.run_until_complete(self.server.wait_closed())
|
||||
@@ -127,24 +117,6 @@ class Daemon:
|
||||
c.close()
|
||||
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)
|
||||
def start_effect(self, req_json):
|
||||
"""
|
||||
|
2
setup.py
2
setup.py
@@ -25,6 +25,6 @@ setup(name='LedD',
|
||||
license='GPLv3',
|
||||
packages=['ledd'],
|
||||
install_requires=[
|
||||
'nose', 'spectra', 'zeroconf',
|
||||
'nose', 'spectra',
|
||||
],
|
||||
zip_safe=False)
|
||||
|
11
start.py
11
start.py
@@ -15,6 +15,9 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import logging
|
||||
import ledd.daemon
|
||||
import sys
|
||||
import os
|
||||
|
||||
from pkgutil import iter_modules
|
||||
|
||||
@@ -41,15 +44,9 @@ if "smbus" not in (name for loader, name, ispkg in iter_modules()):
|
||||
SMBus = SMBus
|
||||
|
||||
|
||||
import sys
|
||||
|
||||
sys.modules['smbus'] = SMBusModule
|
||||
sys.modules['smbus'].SMBus = SMBus
|
||||
|
||||
import ledd.daemon
|
||||
import sys
|
||||
import os
|
||||
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig(level=logging.DEBUG,
|
||||
format="[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s",
|
||||
@@ -71,4 +68,4 @@ if __name__ == "__main__":
|
||||
else:
|
||||
sys.exit()
|
||||
except OSError as e:
|
||||
log.fatal("Forking failed: %s", os.strerror(int(str(e))))
|
||||
log.fatal("Start failed: %s", e)
|
||||
|
Reference in New Issue
Block a user