def remote_createTunnel(self, name, targetIP): """ Create a new GRE Tunnel. @param name: Unique name of the network group. @type name: str @param targetIP: Target IP for the GRE Tunnel. @type targetIP: str @return: Exit status of command. @rtype: twisted.internet.defer.Deferred """ if name not in self._bridges: raise InternalError('Bridge does not exist.') key = (name, targetIP) if key in self._uid: raise InternalError('Tunnel already exists.') while 1: uid = randomString(self._UID_LEN) if uid not in self._uid.itervalues(): break self._uid[key] = uid port = 'gre-{0}'.format(uid) return execute(('/usr/bin/ovs-vsctl', 'add-port', 'br-{0}'.format(name), port, '--', 'set', 'interface', port, 'type=gre', 'options:remote_ip={0}'.format(targetIP)), reactor=self._reactor)
def remote_createTunnel(self, name, targetIP): """ Create a new GRE Tunnel. @param name: Unique name of the network group. @type name: str @param targetIP: Target IP for the GRE Tunnel. @type targetIP: str @return: Exit status of command. @rtype: twisted.internet.defer.Deferred """ if name not in self._bridges: raise InternalError('Bridge does not exist.') key = (name, targetIP) if key in self._uid: raise InternalError('Tunnel already exists.') while 1: uid = randomString(self._UID_LEN) if uid not in self._uid.itervalues(): break self._uid[key] = uid port = 'gre-{0}'.format(uid) return execute( ('/usr/bin/ovs-vsctl', 'add-port', 'br-{0}'.format(name), port, '--', 'set', 'interface', port, 'type=gre', 'options:remote_ip={0}'.format(targetIP)), reactor=self._reactor)
def stop(self, name): """ Stop the container. @param name: Name of the container which should be stopped. @type name: str @param command: Deferred whose callback is triggered on success or whose errback is triggered on failure with an error message. @type command: twisted.internet.defer.Deferred """ log.msg("Stop container '{0}'".format(name)) return execute(('/usr/bin/lxc-stop', '-n', name), reactor=self._reactor)
def remote_destroyBridge(self, name): """ Destroy a OVS Bridge. @param name: Unique name of the network group. @type name: str @return: Exit status of command. @rtype: twisted.internet.defer.Deferred """ if name not in self._bridges: raise InternalError("Bridge does not exist.") self._bridges.remove(name) return execute(("/usr/bin/ovs-vsctl", "del-br", "br-{0}".format(name)), reactor=self._reactor)
def remote_destroyBridge(self, name): """ Destroy a OVS Bridge. @param name: Unique name of the network group. @type name: str @return: Exit status of command. @rtype: twisted.internet.defer.Deferred """ if name not in self._bridges: raise InternalError('Bridge does not exist.') self._bridges.remove(name) return execute(('/usr/bin/ovs-vsctl', 'del-br', 'br-{0}'.format(name)), reactor=self._reactor)
def remote_createBridge(self, name): """ Create a new OVS Bridge. @param name: Unique name of the network group. @type name: str @return: Exit status of command. @rtype: twisted.internet.defer.Deferred """ if name in self._bridges: raise InternalError('Bridge already exists.') self._bridges.add(name) return execute(('/usr/bin/ovs-vsctl', '--', '--may-exist', 'add-br', 'br-{0}'.format(name)), reactor=self._reactor)
def start(self, name): """ Start the container. @param name: Name of the container which should be started. @type name: str @return: Deferred whose callback is triggered on success or whose errback is triggered on failure with an error message. @rtype: twisted.internet.defer.Deferred """ self._setupFiles() log.msg("Start container '{0}'".format(name)) return execute(('/usr/bin/lxc-start', '-n', name, '-f', self._conf, '-d'), reactor=self._reactor)
def start(self, name): """ Start the container. @param name: Name of the container which should be started. @type name: str @return: Deferred whose callback is triggered on success or whose errback is triggered on failure with an error message. @rtype: twisted.internet.defer.Deferred """ self._setupFiles() log.msg("Start container '{0}'".format(name)) return execute( ('/usr/bin/lxc-start', '-n', name, '-f', self._conf, '-d'), reactor=self._reactor)
def remote_destroyTunnel(self, name, targetIP): """ Destroy a GRE Tunnel. @param name: Unique name of the network group. @type name: str @param targetIP: Target IP for the GRE Tunnel. @type targetIP: str @return: Exit status of command. @rtype: twisted.internet.defer.Deferred """ if name not in self._bridges: raise InternalError("Bridge does not exist.") key = (name, targetIP) if key not in self._uid: raise InternalError("Tunnel deos not exist.") return execute(("/usr/bin/ovs-vsctl", "del-port", "gre-{0}".format(self._uid.pop(key))), reactor=self._reactor)
def remote_destroyTunnel(self, name, targetIP): """ Destroy a GRE Tunnel. @param name: Unique name of the network group. @type name: str @param targetIP: Target IP for the GRE Tunnel. @type targetIP: str @return: Exit status of command. @rtype: twisted.internet.defer.Deferred """ if name not in self._bridges: raise InternalError('Bridge does not exist.') key = (name, targetIP) if key not in self._uid: raise InternalError('Tunnel deos not exist.') return execute(('/usr/bin/ovs-vsctl', 'del-port', 'gre-{0}'.format( self._uid.pop(key))), reactor=self._reactor)