X-Git-Url: https://git.llucax.com/software/pymin.git/blobdiff_plain/180412078618672ce9966eef6a38b1db8e343c34..29ad7f7c872353579d714ac13d0640b86df9b248:/pymin/services/ppp/__init__.py diff --git a/pymin/services/ppp/__init__.py b/pymin/services/ppp/__init__.py index 028eb91..868b6d5 100644 --- a/pymin/services/ppp/__init__.py +++ b/pymin/services/ppp/__init__.py @@ -7,20 +7,9 @@ from pymin.dispatcher import Handler, handler, HandlerError from pymin.services.util import Restorable, ConfigWriter \ ,TransactionalHandler, DictSubHandler, call -__ALL__ = ('PppHandler') +__ALL__ = ('PppHandler',) -class Error(HandlerError): - r""" - Error(command) -> Error instance :: Base ConnectionHandler exception class. - - All exceptions raised by the ConnectionHandler inherits from this one, so you can - easily catch any ConnectionHandler exception. - - message - A descriptive error message. - """ - pass - -class ConnectionError(Error, KeyError): +class ConnectionError(HandlerError, KeyError): r""" ConnectionError(hostname) -> ConnectionError instance @@ -78,8 +67,8 @@ class ConnectionHandler(DictSubHandler): handler_help = u"Manages connections for the ppp service" - _dict_subhandler_attr = 'conns' - _dict_subhandler_class = Connection + _cont_subhandler_attr = 'conns' + _cont_subhandler_class = Connection class PppHandler(Restorable, ConfigWriter, TransactionalHandler): @@ -105,16 +94,18 @@ class PppHandler(Restorable, ConfigWriter, TransactionalHandler): @handler('Starts the service') def start(self, name): if name in self.conns: - #call(('pon', name)) - print ('pon', name) + call(['pppd','call', name],stdout=None, stderr=None) + #print ('pon', name) else: raise ConnectionNotFoundError(name) @handler('Stops the service') def stop(self, name): if name in self.conns: - #call(('poff', name)) - print ('poff', name) + if path.exists('/var/run/ppp-' + name + '.pid'): + pid = file('/var/run/ppp-' + name + '.pid').readline().strip() + call(['kill',pid],stdout=None, stderr=None) + #print ('poff', name) else: raise ConnectionNotFoundError(name) @@ -154,4 +145,4 @@ if __name__ == '__main__': p.conn.add('ppptunnel_c','dominio\luca','luca',type='TUNNEL',server='192.168.0.23') p.commit() print p.conn.list() - print p.conn.show() \ No newline at end of file + print p.conn.show()