def _background(meta, oauth, dialog, builder, lets_connect): try: cert, key = create_keypair(oauth, meta.api_base_uri) meta.cert = cert meta.key = key meta.config = get_profile_config(oauth, meta.api_base_uri, meta.profile_id) ovpn_text = format_like_ovpn(meta.config, meta.cert, meta.key) config_dict = parse_ovpn(ovpn_text) if meta.two_factor: GLib.idle_add(lambda: two_auth_step(builder, oauth, meta, config_dict=config_dict, lets_connect=lets_connect)) else: GLib.idle_add(lambda: finalizing_step(meta=meta, builder=builder, config_dict=config_dict, lets_connect=lets_connect)) GLib.idle_add(lambda: dialog.hide()) except Exception as e: error = e GLib.idle_add(lambda: error_helper( dialog, "can't finalize configuration", "{}: {}".format( type(error).__name__, str(error)))) GLib.idle_add(lambda: dialog.hide()) raise
def _background(meta, oauth, dialog, builder): try: cert, key = create_keypair(oauth, meta.api_base_uri) meta.cert = cert meta.key = key meta.config = get_profile_config(oauth, meta.api_base_uri, meta.profile_id) except Exception as e: GLib.idle_add( lambda: error_helper(dialog, "can't finalize configuration", "{}: {}".format(type(e).__name__, str(e)))) GLib.idle_add(lambda: dialog.hide()) raise else: try: uuid = store_provider(meta) monitor_vpn( uuid=uuid, callback=lambda *args, **kwargs: vpn_change(builder=builder)) GLib.idle_add( lambda: notify("eduVPN provider added", "added provider '{}'". format(meta.display_name))) except Exception as e: GLib.idle_add( lambda: error_helper(dialog, "can't store configuration", "{} {}".format(type(e).__name__, str(e)))) GLib.idle_add(lambda: dialog.hide()) raise else: GLib.idle_add(lambda: dialog.hide()) GLib.idle_add(lambda: update_providers(builder))
def _fetch_updated_config(oauth, meta, builder, info): config = get_profile_config(oauth, meta.api_base_uri, meta.profile_id) meta.config = config config_dict = parse_ovpn(meta.config) update_config_provider(meta, config_dict) _2fa_check(meta, builder, oauth, config_dict, info)
def activate_connection(meta, builder): """do the actual connecting action""" logger.info("Connecting to {}".format(meta.display_name)) notify("eduVPN connecting...", "Connecting to '{}'".format(meta.display_name)) try: if not meta.token: logger.error("metadata for {} doesn't contain oauth2 token".format(meta.uuid)) else: oauth = oauth_from_token(meta=meta) config = get_profile_config(oauth, meta.api_base_uri, meta.profile_id) meta.config = config update_config_provider(meta) if datetime.now() > datetime.fromtimestamp(meta.token['expires_at']): logger.info("key pair is expired") cert, key = create_keypair(oauth, meta.api_base_uri) update_keys_provider(meta.uuid, cert, key) connect_provider(meta.uuid) except Exception as e: switch = builder.get_object('connect-switch') GLib.idle_add(switch.set_active, False) window = builder.get_object('eduvpn-window') error_helper(window, "can't enable connection", "{}: {}".format(type(e).__name__, str(e))) raise
def _fetch_updated_config(oauth, meta, builder, info, lets_connect): # type: (str, Metadata, Gtk.builder, dict, bool) -> None config = get_profile_config(oauth, meta.api_base_uri, meta.profile_id) meta.config = config config_dict = parse_ovpn(meta.config) update_config_provider(meta, config_dict) _2fa_check(meta, builder, oauth, config_dict, info, lets_connect)
def _fetch_updated_config(oauth, meta, builder, info): # type : (oauth, Metadata, verifier, Gtk.Builder ) -> None config = get_profile_config(oauth, meta.api_base_uri, meta.profile_id) meta.config = config config_dict = parse_ovpn(meta.config) update_config_provider(meta, config_dict) _2fa_check(meta, builder, oauth, config_dict, info)
def test_get_profile_config(self): get_profile_config(oauth=self.oauth, api_base_uri='test', profile_id='test')