All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joshua Lock <josh@linux.intel.com>
To: bitbake-devel@lists.openembedded.org
Subject: Re: [PATCH 28/32] Hob: allow users to setup the proxy
Date: Wed, 29 Feb 2012 13:29:24 -0800	[thread overview]
Message-ID: <4F4E98B4.70303@linux.intel.com> (raw)
In-Reply-To: <0e99d291a8d3e9ad49ba82d5c30591322e958511.1330523904.git.shane.wang@intel.com>

On 29/02/12 06:15, Shane Wang wrote:
> This patch is to set os.environ to allow users to set the environment variables for http_proxy, https_proxy and ftp_proxy.

I think this needs more work, I have a text entry with an attached 
button that spawns a file chooser. What file would I choose here?

What about if my http, ftp and socks proxy are different?

Cheers,
Joshua

> Signed-off-by: Shane Wang<shane.wang@intel.com>
> ---
>   bitbake/lib/bb/ui/crumbs/builder.py |   23 +++++++++++++++++++++++
>   bitbake/lib/bb/ui/crumbs/hig.py     |   26 +++++++++++++++++++++++++-
>   2 files changed, 48 insertions(+), 1 deletions(-)
>
> diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py
> index 0d7f1c1..e9853f2 100755
> --- a/bitbake/lib/bb/ui/crumbs/builder.py
> +++ b/bitbake/lib/bb/ui/crumbs/builder.py
> @@ -116,6 +116,7 @@ class Configuration:
>
>   class Parameters:
>       '''Represents other variables like available machines, etc.'''
> +    __dummy_proxy__ = "myproxy.example.com:8010"
>
>       def __init__(self, params):
>           # Variables
> @@ -129,6 +130,8 @@ class Parameters:
>           self.image_names = []
>           self.image_addr = params["image_addr"]
>           self.image_types = params["image_types"].split()
> +        self.proxy = self.__dummy_proxy__
> +        self.enable_proxy = False
>
>   class Builder(gtk.Window):
>
> @@ -727,6 +730,19 @@ class Builder(gtk.Window):
>
>           dialog.destroy()
>
> +    def _setup_proxy(self):
> +        if self.parameters.proxy == Parameters.__dummy_proxy__ or self.parameters.proxy.lstrip() == "":
> +            if "http_proxy" in os.environ.keys():
> +                del os.environ["http_proxy"]
> +            if "https_proxy" in os.environ.keys():
> +                del os.environ["https_proxy"]
> +            if "ftp_proxy" in os.environ.keys():
> +                del os.environ["ftp_proxy"]
> +        else:
> +            os.environ["http_proxy"] = self.parameters.proxy
> +            os.environ["https_proxy"] = self.parameters.proxy
> +            os.environ["ftp_proxy"] = self.parameters.proxy
> +
>       def show_adv_settings_dialog(self):
>           dialog = AdvancedSettingDialog(title = "Settings",
>               configuration = copy.deepcopy(self.configuration),
> @@ -735,6 +751,8 @@ class Builder(gtk.Window):
>               all_distros = self.parameters.all_distros,
>               all_sdk_machines = self.parameters.all_sdk_machines,
>               max_threads = self.parameters.max_threads,
> +            proxy = self.parameters.proxy,
> +            enable_proxy = self.parameters.enable_proxy,
>               split_model = self.get_split_model(),
>               parent = self,
>               flags = gtk.DIALOG_MODAL
> @@ -745,6 +763,11 @@ class Builder(gtk.Window):
>           response = dialog.run()
>           if response == gtk.RESPONSE_YES:
>               self.configuration = dialog.configuration
> +            # setup the proxy
> +            self.parameters.enable_proxy = dialog.enable_proxy
> +            if self.parameters.enable_proxy == True:
> +                self.parameters.proxy = dialog.proxy
> +                self._setup_proxy()
>               # DO reparse recipes
>               if dialog.settings_changed:
>                   if self.configuration.curr_mach == "":
> diff --git a/bitbake/lib/bb/ui/crumbs/hig.py b/bitbake/lib/bb/ui/crumbs/hig.py
> index 20585b7..7e1c1ff 100644
> --- a/bitbake/lib/bb/ui/crumbs/hig.py
> +++ b/bitbake/lib/bb/ui/crumbs/hig.py
> @@ -428,7 +428,7 @@ class AdvancedSettingDialog (CrumbsDialog):
>
>       def __init__(self, title, configuration, all_image_types,
>               all_package_formats, all_distros, all_sdk_machines,
> -            max_threads, split_model, parent, flags, buttons):
> +            max_threads, proxy, enable_proxy, split_model, parent, flags, buttons):
>           super(AdvancedSettingDialog, self).__init__(title, parent, flags, buttons)
>
>           # class members from other objects
> @@ -439,6 +439,8 @@ class AdvancedSettingDialog (CrumbsDialog):
>           self.all_distros = all_distros
>           self.all_sdk_machines = all_sdk_machines
>           self.max_threads = max_threads
> +        self.enable_proxy = enable_proxy
> +        self.proxy = proxy
>           self.split_model = split_model
>
>           # class members for internal use
> @@ -614,6 +616,21 @@ class AdvancedSettingDialog (CrumbsDialog):
>           sub_vbox.pack_start(label, expand=False, fill=False)
>           sub_vbox.pack_start(sstatemirror_widget, expand=False, fill=False)
>
> +        sub_vbox = gtk.VBox(False, 6)
> +        advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
> +        self.proxy_checkbox = gtk.CheckButton("Enable Proxy")
> +        self.proxy_checkbox.set_tooltip_text("Check this box to setup the proxy you specified")
> +        self.proxy_checkbox.set_active(self.enable_proxy)
> +        self.proxy_checkbox.connect("toggled", self.proxy_checkbox_toggled_cb)
> +        label = self.gen_label_widget("<span weight=\"bold\">Select Proxy:</span>")
> +        tooltip = "Select the proxy that will be used in do_fetch() source code"
> +        proxy_widget, self.proxy_text = self.gen_entry_widget(self.split_model, self.proxy, self, tooltip)
> +        self.proxy_text.set_editable(self.enable_proxy)
> +        self.proxy_text.set_sensitive(self.enable_proxy)
> +        sub_vbox.pack_start(self.proxy_checkbox, expand=False, fill=False)
> +        sub_vbox.pack_start(label, expand=False, fill=False)
> +        sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
> +
>           return advanced_vbox
>
>       def create_others_page(self):
> @@ -630,6 +647,11 @@ class AdvancedSettingDialog (CrumbsDialog):
>
>           return advanced_vbox
>
> +    def proxy_checkbox_toggled_cb(self, button):
> +        self.enable_proxy = self.proxy_checkbox.get_active()
> +        self.proxy_text.set_editable(self.enable_proxy)
> +        self.proxy_text.set_sensitive(self.enable_proxy)
> +
>       def response_cb(self, dialog, response_id):
>           self.variables = {}
>
> @@ -679,6 +701,8 @@ class AdvancedSettingDialog (CrumbsDialog):
>               self.variables[key] = value
>               it = self.setting_store.iter_next(it)
>
> +        self.proxy = self.proxy_text.get_text()
> +
>           md5 = hashlib.md5(str(sorted(self.variables.items()))).hexdigest()
>           self.settings_changed = (self.md5 != md5)
>

-- 
Joshua Lock
         Yocto Project "Johannes factotum"
         Intel Open Source Technology Centre



  reply	other threads:[~2012-02-29 21:37 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-29 14:11 [PATCH 00/32] Hob related fixes Shane Wang
2012-02-29 14:14 ` [PATCH 01/32] Hob: make HobViewTable more general in hob and make the image selection dialog and the image details page reuse it Shane Wang
2012-02-29 21:28   ` Joshua Lock
2012-03-02  7:19     ` Wang, Shane
2012-02-29 14:14 ` [PATCH 02/32] Hob: avoid the image selection dialog to walk through all directories and its sub-directories, when users click "My images" Shane Wang
2012-02-29 21:30   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 03/32] Hob: cleanup those class methods in HobWidget Shane Wang
2012-02-29 14:15 ` [PATCH 04/32] Hob: fixed the issue in the brought-in-by dialog Shane Wang
2012-02-29 21:28   ` Joshua Lock
2012-03-02  7:22     ` Wang, Shane
2012-03-02 18:02       ` Joshua Lock
2012-03-07 23:21         ` Wang, Shane
2012-03-07 23:56           ` Joshua Lock
2012-02-29 14:15 ` [PATCH 05/32] Hob: include hddimg and iso into image types Shane Wang
2012-02-29 21:27   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 06/32] Hob: implement a self-defined notebook visual component for Hob Shane Wang
2012-02-29 21:27   ` Joshua Lock
2012-03-02  7:06     ` Wang, Shane
2012-03-02 18:06       ` Joshua Lock
2012-02-29 14:15 ` [PATCH 07/32] Hob: use HobNotebook to enable a notebook in build details page Shane Wang
2012-02-29 21:32   ` Joshua Lock
2012-03-02 13:34     ` Wang, Shane
2012-02-29 14:15 ` [PATCH 08/32] Hob: image configuration page doesn't need dialogs any more Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 09/32] Hob: fix a bug in builder.configuration.curr_mach Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 10/32] Hob: add ignore_all_errors to avoid showing error dialog multiple times Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-03-02  7:31     ` Wang, Shane
2012-02-29 14:15 ` [PATCH 11/32] Hob: make the image configuration page not to flash the progress bar Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 12/32] Hob: enable indicators on the "Included" tab in the recipe selection page and the package selection page Shane Wang
2012-02-29 14:15 ` [PATCH 13/32] crumbs: Factor common dialogue configuration out Shane Wang
2012-02-29 14:15 ` [PATCH 14/32] crumbs/builder: use the name Hob consistently Shane Wang
2012-02-29 14:15 ` [PATCH 15/32] crumbs: move towards more standard dialogue spacing Shane Wang
2012-02-29 14:15 ` [PATCH 16/32] crumbs: fix button order in several dialogues Shane Wang
2012-02-29 14:15 ` [PATCH 17/32] hig: try to avoid setting explicit dialogue sizes Shane Wang
2012-02-29 14:15 ` [PATCH 18/32] crumbs/hig: tweak UI and layout of LayerSelectionDialog Shane Wang
2012-02-29 14:15 ` [PATCH 19/32] Hob(crumbs/builder.py): remove the code commented out in the builder.py Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 20/32] command.py: remove the resolve parameter in generateTargetsTree Shane Wang
2012-02-29 21:28   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 21/32] cooker.py: Fix a bug due to variable name Shane Wang
2012-02-29 21:28   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 22/32] cooker: fix calculating of depends and rdepends Shane Wang
2012-02-29 21:28   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 23/32] Hob(crumbs/hoblistmodel.py): Fix recipe's populate() function Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 24/32] Hob(crumbs/hoblistmodel.py): Add mapping for rprovides and pkg Shane Wang
2012-02-29 21:30   ` Joshua Lock
2012-03-01  4:20     ` Xu, Dongxiao
2012-03-02 13:31     ` Wang, Shane
2012-02-29 14:15 ` [PATCH 25/32] Hob: Add an extra 50M space if zypper is selected Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-03-01  4:19     ` Xu, Dongxiao
2012-03-01 19:22       ` Joshua Lock
2012-02-29 14:15 ` [PATCH 26/32] Hob: fix a bug that the image size is shown incorrectly in the image details page Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 27/32] Hob: add "OK" button to "BinbDialog" Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-03-01  4:20     ` Xu, Dongxiao
2012-03-02 13:29     ` Wang, Shane
2012-02-29 14:15 ` [PATCH 28/32] Hob: allow users to setup the proxy Shane Wang
2012-02-29 21:29   ` Joshua Lock [this message]
2012-03-02 13:29     ` Wang, Shane
2012-03-02 18:14       ` Joshua Lock
2012-02-29 14:15 ` [PATCH 29/32] Hob(crumbs/builder.py): adjust the main window's position and ignore the case lower than 1024x768 Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 30/32] Hob: Fix pressing "stop" build Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 31/32] runqueue.py: initialize rqexe at RunQueue's init function Shane Wang
2012-02-29 21:29   ` Joshua Lock
2012-02-29 14:15 ` [PATCH 32/32] Hob: Disable the handling of "NoProvider" event Shane Wang
2012-03-01 15:23   ` Richard Purdie
2012-03-02  1:24     ` Xu, Dongxiao
2012-02-29 21:27 ` [PATCH 00/32] Hob related fixes Joshua Lock
2012-03-02  6:48   ` Wang, Shane
2012-03-03  3:50     ` Oren Leaffer
2012-03-01 15:32 ` Richard Purdie
2012-03-01 15:35 ` Richard Purdie
2012-03-02  1:23   ` Wang, Shane

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F4E98B4.70303@linux.intel.com \
    --to=josh@linux.intel.com \
    --cc=bitbake-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.