Start OpenVPN and block until the connection is opened or there is
        an error
        :param timeout: time in seconds to wait for process to start
        :return:

def start(self, timeout=None):
        """
        Start OpenVPN and block until the connection is opened or there is
        an error
        :param timeout: time in seconds to wait for process to start
        :return:
        """
        if not timeout:
            timeout = self.timeout
        self.thread.start()
        start_time = time.time()
        while start_time + timeout > time.time():
            self.thread.join(1)
            if self.error or self.started:
                break
        if self.started:
            logging.info("OpenVPN connected")
            # append instance to connected list
            OpenVPN.connected_instances.append(self)
        else:
            logging.warn("OpenVPN not started")
            for line in self.notifications.split('\n'):
                logging.warn("OpenVPN output:\t\t%s" % line)