[FFE] Proxy "tunnel" for syncdaemon
Bug #929207 reported by
Alejandro J. Cura
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Ubuntu One Client | Status tracked in Trunk | |||||
Stable-3-0 |
Fix Released
|
Undecided
|
Unassigned | |||
Trunk |
Fix Released
|
High
|
Alejandro J. Cura | |||
Ubuntu Single Sign On Client | Status tracked in Trunk | |||||
Stable-3-0 |
Fix Released
|
Undecided
|
Unassigned | |||
Trunk |
Fix Released
|
Undecided
|
Unassigned | |||
ubuntu-sso-client (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | |||
Precise |
Fix Released
|
Undecided
|
Unassigned | |||
ubuntuone-client (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | |||
Precise |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Add proxy support to the Ubuntu One syncdaemon so users behind a proxy server can make use of Ubuntu One.
Syncdaemon must use the proxy support infrastructure as built for ubuntu-sso-client.
For this a separate process must be built, that "tunnels" the syncdaemon storage-protocol thru any proxy configured in the system.
This process should deal with multiple connections (ie: one for the storage-protocol plus a few for any webservice calls).
Related branches
lp:~alecu/ubuntuone-client/proxy-tunnel-server
- Natalia Bidart (community): Approve
- Manuel de la Peña (community): Approve
-
Diff: 953 lines (+899/-1)9 files modifiedMakefile.am (+2/-1)
tests/proxy/__init__.py (+148/-0)
tests/proxy/ssl/dummy.cert (+19/-0)
tests/proxy/ssl/dummy.key (+16/-0)
tests/proxy/test_tunnel_server.py (+351/-0)
ubuntuone/proxy/__init__.py (+14/-0)
ubuntuone/proxy/common.py (+59/-0)
ubuntuone/proxy/logger.py (+37/-0)
ubuntuone/proxy/tunnel_server.py (+253/-0)
lp:~alecu/ubuntuone-client/proxy-tunnel-client
- Natalia Bidart (community): Approve
- Manuel de la Peña (community): Approve
-
Diff: 264 lines (+247/-0)3 files modifiedtests/proxy/test_tunnel_client.py (+144/-0)
tests/proxy/test_tunnel_server.py (+2/-0)
ubuntuone/proxy/tunnel_client.py (+101/-0)
lp:~alecu/ubuntuone-client/proxy-tunnel-process
- Alejandro J. Cura (community): Abstain
- Eric Casteleijn (community): Approve
- Manuel de la Peña (community): Approve
-
Diff: 266 lines (+188/-1)4 files modifiedMakefile.am (+1/-0)
bin/ubuntuone-proxy-tunnel (+24/-0)
tests/proxy/test_tunnel_server.py (+132/-1)
ubuntuone/proxy/tunnel_server.py (+31/-0)
lp:~alecu/ubuntuone-client/proxy-tunnel-useit
- Natalia Bidart (community): Approve
- Alejandro J. Cura (community): Abstain
- Manuel de la Peña (community): Approve
-
Diff: 570 lines (+338/-30)10 files modifiedcontrib/testing/testcase.py (+15/-1)
tests/proxy/test_tunnel_client.py (+1/-1)
tests/proxy/test_tunnel_server.py (+7/-5)
tests/syncdaemon/test_action_queue.py (+51/-0)
tests/syncdaemon/test_tunnel_runner.py (+114/-0)
ubuntuone/proxy/common.py (+1/-0)
ubuntuone/proxy/tunnel_client.py (+71/-18)
ubuntuone/proxy/tunnel_server.py (+2/-3)
ubuntuone/syncdaemon/action_queue.py (+6/-2)
ubuntuone/syncdaemon/tunnel_runner.py (+70/-0)
lp:~alecu/ubuntu-sso-client/updated-txweb
- Alejandro J. Cura (community): Abstain
- Eric Casteleijn (community): Approve
- Diego Sarmentero (community): Approve
-
Diff: 286 lines (+131/-80)2 files modifiedubuntu_sso/utils/webclient/tests/test_webclient.py (+54/-2)
ubuntu_sso/utils/webclient/txweb.py (+77/-78)
lp:~alecu/ubuntuone-client/proxy-tunnel-webcalls
- Roberto Alsina (community): Approve
- Eric Casteleijn (community): Approve
- Diego Sarmentero (community): Approve
-
Diff: 524 lines (+97/-205)2 files modifiedtests/syncdaemon/test_action_queue.py (+51/-137)
ubuntuone/syncdaemon/action_queue.py (+46/-68)
lp:~alecu/ubuntuone-client/proxy-tunnel-auth
- Diego Sarmentero (community): Approve
- Manuel de la Peña (community): Approve
-
Diff: 417 lines (+212/-24)3 files modifiedtests/proxy/test_tunnel_server.py (+128/-3)
ubuntuone/proxy/common.py (+0/-2)
ubuntuone/proxy/tunnel_server.py (+84/-19)
lp:~alecu/ubuntuone-client/proxy-tunnel-cookies
- Manuel de la Peña (community): Approve
- Diego Sarmentero (community): Approve
-
Diff: 480 lines (+121/-36)7 files modifiedtests/proxy/__init__.py (+2/-0)
tests/proxy/test_tunnel_client.py (+22/-8)
tests/proxy/test_tunnel_server.py (+39/-9)
tests/syncdaemon/test_tunnel_runner.py (+6/-2)
ubuntuone/proxy/common.py (+2/-0)
ubuntuone/proxy/tunnel_client.py (+26/-11)
ubuntuone/proxy/tunnel_server.py (+24/-6)
lp:~nataliabidart/ubuntu-sso-client/stable-3-0-update-2.99.91
- Roberto Alsina (community): Approve
-
Diff: 5121 lines (+2191/-925)62 files modifiedbin/ubuntu-sso-login-qt (+6/-3)
bin/ubuntu-sso-proxy-creds-qt (+6/-3)
data/qt/linux.qss (+2/-0)
data/qt/loadingoverlay.ui (+0/-5)
data/qt/proxy_credentials_dialog.ui (+0/-2)
data/qt/reset_password.ui (+199/-262)
data/qt/resources.qrc (+2/-0)
data/qt/setup_account.ui (+1/-36)
data/qt/ssl_dialog.ui (+0/-5)
data/qt/stylesheet.qss (+1/-13)
data/qt/windows.qss (+5/-0)
po/POTFILES.in (+1/-0)
run-tests (+1/-1)
ubuntu_sso/__init__.py (+8/-0)
ubuntu_sso/gtk/gui.py (+18/-33)
ubuntu_sso/gtk/tests/test_gui.py (+34/-5)
ubuntu_sso/qt/__init__.py (+33/-5)
ubuntu_sso/qt/common.py (+3/-3)
ubuntu_sso/qt/current_user_sign_in_page.py (+13/-12)
ubuntu_sso/qt/email_verification_page.py (+8/-5)
ubuntu_sso/qt/enhanced_check_box.py (+9/-3)
ubuntu_sso/qt/forgotten_password_page.py (+5/-1)
ubuntu_sso/qt/loadingoverlay.py (+3/-1)
ubuntu_sso/qt/main.py (+12/-3)
ubuntu_sso/qt/network_detection_page.py (+5/-1)
ubuntu_sso/qt/proxy_dialog.py (+4/-7)
ubuntu_sso/qt/reset_password_page.py (+6/-2)
ubuntu_sso/qt/setup_account_page.py (+19/-18)
ubuntu_sso/qt/sso_wizard_page.py (+116/-76)
ubuntu_sso/qt/tests/__init__.py (+55/-7)
ubuntu_sso/qt/tests/login_u_p.py (+0/-2)
ubuntu_sso/qt/tests/show_gui.py (+0/-2)
ubuntu_sso/qt/tests/test_common.py (+130/-2)
ubuntu_sso/qt/tests/test_current_user_sign_in_page.py (+28/-17)
ubuntu_sso/qt/tests/test_email_verification.py (+6/-7)
ubuntu_sso/qt/tests/test_enhanced_check_box.py (+19/-1)
ubuntu_sso/qt/tests/test_forgotten_password.py (+6/-4)
ubuntu_sso/qt/tests/test_loadingoverlay.py (+0/-3)
ubuntu_sso/qt/tests/test_main.py (+108/-12)
ubuntu_sso/qt/tests/test_proxy_dialog.py (+2/-2)
ubuntu_sso/qt/tests/test_reset_password.py (+9/-17)
ubuntu_sso/qt/tests/test_setup_account.py (+55/-71)
ubuntu_sso/qt/tests/test_ssl_dialog.py (+2/-1)
ubuntu_sso/qt/tests/test_sso_wizard_page.py (+98/-59)
ubuntu_sso/qt/tests/test_ubuntu_sso_wizard.py (+36/-6)
ubuntu_sso/qt/ubuntu_sso_wizard.py (+19/-2)
ubuntu_sso/utils/__init__.py (+15/-2)
ubuntu_sso/utils/linux.py (+19/-0)
ubuntu_sso/utils/runner/glib.py (+1/-1)
ubuntu_sso/utils/runner/tx.py (+1/-1)
ubuntu_sso/utils/tests/test_common.py (+10/-1)
ubuntu_sso/utils/ui.py (+7/-1)
ubuntu_sso/utils/webclient/__init__.py (+18/-2)
ubuntu_sso/utils/webclient/common.py (+110/-2)
ubuntu_sso/utils/webclient/gsettings.py (+21/-14)
ubuntu_sso/utils/webclient/libsoup.py (+48/-4)
ubuntu_sso/utils/webclient/qtnetwork.py (+124/-22)
ubuntu_sso/utils/webclient/tests/__init__.py (+74/-6)
ubuntu_sso/utils/webclient/tests/test_gsettings.py (+44/-61)
ubuntu_sso/utils/webclient/tests/test_webclient.py (+510/-10)
ubuntu_sso/utils/webclient/txweb.py (+77/-78)
ubuntu_sso/utils/windows.py (+19/-0)
lp:~nataliabidart/ubuntuone-client/stable-3-0-update-2.99.91
- Alejandro J. Cura (community): Approve
- Roberto Alsina (community): Approve
-
Diff: 2909 lines (+2139/-257)25 files modifiedMakefile.am (+3/-1)
bin/u1sdtool (+1/-1)
bin/ubuntuone-proxy-tunnel (+24/-0)
contrib/testing/testcase.py (+15/-1)
data/source_ubuntuone-client.py (+2/-29)
docs/Makefile.am (+0/-1)
docs/man/u1sdtool.1 (+1/-1)
docs/man/ubuntuone-preferences.1 (+0/-16)
tests/platform/linux/test_notification.py (+6/-0)
tests/proxy/__init__.py (+150/-0)
tests/proxy/ssl/dummy.cert (+19/-0)
tests/proxy/ssl/dummy.key (+16/-0)
tests/proxy/test_tunnel_client.py (+212/-0)
tests/proxy/test_tunnel_server.py (+655/-0)
tests/syncdaemon/test_action_queue.py (+102/-137)
tests/syncdaemon/test_tunnel_runner.py (+128/-0)
ubuntuone/platform/constants.py (+5/-0)
ubuntuone/platform/linux/notification.py (+3/-0)
ubuntuone/proxy/__init__.py (+14/-0)
ubuntuone/proxy/common.py (+60/-0)
ubuntuone/proxy/logger.py (+36/-0)
ubuntuone/proxy/tunnel_client.py (+181/-0)
ubuntuone/proxy/tunnel_server.py (+376/-0)
ubuntuone/syncdaemon/action_queue.py (+52/-70)
ubuntuone/syncdaemon/tunnel_runner.py (+78/-0)
Changed in ubuntuone-client: | |
status: | Confirmed → In Progress |
tags: | added: u1-fe |
description: | updated |
summary: |
- Proxy "tunnel" for syncdaemon + [FFE] Proxy "tunnel" for syncdaemon |
Changed in ubuntuone-client: | |
status: | In Progress → Fix Committed |
Changed in ubuntuone-client: | |
status: | Fix Committed → In Progress |
Changed in ubuntuone-client: | |
status: | In Progress → Fix Committed |
Changed in ubuntuone-client: | |
status: | Fix Committed → In Progress |
Changed in ubuntuone-client: | |
status: | In Progress → Fix Committed |
Changed in ubuntuone-client: | |
status: | Fix Committed → In Progress |
Changed in ubuntuone-client: | |
status: | In Progress → Fix Committed |
Changed in ubuntuone-client: | |
status: | Fix Committed → In Progress |
Changed in ubuntu-sso-client: | |
status: | New → Fix Committed |
Changed in ubuntuone-client: | |
status: | In Progress → Fix Committed |
Changed in ubuntuone-client: | |
status: | Fix Committed → In Progress |
Changed in ubuntuone-client: | |
status: | In Progress → Fix Committed |
Changed in ubuntuone-client: | |
status: | Fix Committed → In Progress |
Changed in ubuntuone-client: | |
status: | In Progress → Fix Committed |
To post a comment you must log in.
This seems a very intrusive change at this point, so I have some questions:
* Does this change the code path/structure for situations where users use no proxies? I. e. will the "no proxy" case also have a new process and use the same code path? In other words, what's the regression potential for the "no proxy" case?
* Why do we need a separate process for this tunneling? It sounds rather heavy (memory usage, wakeups, startup time, etc.) to have yet another long-running Python process in the system for protocol translation, these can usually happen in-process.
* Where does it get the proxy configuration from? Do you use libproxy? There are quite a few places where proxies are configured (/etc/environment, GNOME control center, Firefox etc.).