Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH buildroot-test 1/2] scripts/autobuild-run: make the HTTP URL really configurable
Date: Sat, 22 Jun 2019 19:11:57 +0200	[thread overview]
Message-ID: <20190622171157.GE13664@scaer> (raw)
In-Reply-To: <20190617182236.23918-1-thomas.petazzoni@bootlin.com>

Thomas, All,

On 2019-06-17 20:22 +0200, Thomas Petazzoni spake thusly:
> The --http-url option allowed to customize the URL at which build
> results are submitted. However, there were two other places in the
> script where autobuild.buildroot.org was hardcoded: when checking the
> script version, and when getting the list of branches to build.
> 
> This commit changes the --http-url to be the base URL of the autobuild
> server, and it is used everywhere instead of hardcoding
> autobuild.buildroot.org.
> 
> Note: users of autobuild-run that were passing a custom --http-url
> option such as http://foo.com/submit/ should change it to just
> http://foo.com/
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
[--SNIP--]
> @@ -178,23 +179,23 @@ def log_write(logf, msg):
>      logf.write("[%s] %s\n" % (strftime("%a, %d %b %Y %H:%M:%S", localtime()), msg))
>      logf.flush()
>  
> -def check_version():
> -    with urlopen_closing('http://autobuild.buildroot.org/version') as r:
> +def check_version(**kwargs):

There is a current work by Atharva to actually remove usage of kwargs
elsewhere in the code.

I think it would be nice to have a new object that contains the server
config:

    class ServerConfig():
        def __init__(self, base_url):
            self.base_url = base_url
        def branches_url(self):
            return urlparse.urljoin(self.base_url, 'branches')
        def submit_url(self):
            return urlparse.urljoin(self.base_url, 'submit')

And then in main (or elsewhere it is meaningful):

    server_cfg = ServerConfig(args['http_url'])

and pass that object to run_instance().

Then the series from Atharva can more easily account for this new
variable.

Regards,
Yann E. MORIN.

> +    with urlopen_closing(urlparse.urljoin(kwargs['http_url'], 'version')) as r:
>          version = int(decode_bytes(r.readline()).strip())
>      if version > VERSION:
>          print("ERROR: script version too old, please upgrade.")
>          sys.exit(1)
>  
> -def get_branch():
> +def get_branch(**kwargs):
>      """Returns the branch that should be built. It fetches a CSV file from
> -    autobuild.buildroot.org that provides the list of branches to test
> +    the autobuild server that provides the list of branches to test
>      (first field) and their weight (second field). We build a list of
>      branches, where the branch name is repeated N times, with N being
>      the weight of the branch. We then pick a random branch in this
>      list. This way, branches with a higher weight are more likely to
>      be selected.
>      """
> -    with urlopen_closing('http://autobuild.buildroot.org/branches') as r:
> +    with urlopen_closing(urlparse.urljoin(kwargs['http_url'], 'branches')) as r:
>          csv_branches = r.readlines()
>      branches = []
>      for branch in csv.reader(csv_branches):
> @@ -314,7 +315,7 @@ def prepare_build(**kwargs):
>                    os.path.relpath(f, dldir))
>          os.remove(f)
>  
> -    branch = get_branch()
> +    branch = get_branch(**kwargs)
>      log_write(log, "INFO: testing branch '%s'" % branch)
>  
>      # Clone Buildroot. This only happens if the source directory
> @@ -679,7 +680,7 @@ def send_results(result, **kwargs):
>                                 "-H", "Expect:",
>                                 "-F", "uploadedfile=@%s" % os.path.join(outputdir, "results.tar.bz2"),
>                                 "-F", "uploadsubmit=1",
> -                               kwargs['http_url']],
> +                               urlparse.urljoin(kwargs['http_url'], 'submit/')],
>                                stdout=log, stderr=log)
>          if ret != 0:
>              log_write(log, "INFO: results could not be submitted, %d" % ret)
> @@ -713,7 +714,7 @@ def run_instance(**kwargs):
>      log_write(kwargs['log'], "INFO: instance started")
>  
>      while True:
> -        check_version()
> +        check_version(**kwargs)
>  
>          ret = prepare_build(**kwargs)
>          if ret != 0:
> @@ -774,7 +775,6 @@ def main():
>      # showing error messages in another language.
>      os.environ['LC_ALL'] = 'C'
>  
> -    check_version()
>      sysinfo = SystemInfo()
>  
>      args = docopt.docopt(doc, version=VERSION)
> -- 
> 2.21.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

      parent reply	other threads:[~2019-06-22 17:11 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-17 18:22 [Buildroot] [PATCH buildroot-test 1/2] scripts/autobuild-run: make the HTTP URL really configurable Thomas Petazzoni
2019-06-17 18:22 ` [Buildroot] [PATCH buildroot-test 2/2] scripts/autobuild-run: support changing repo Thomas Petazzoni
2019-06-22 17:11 ` Yann E. MORIN [this message]

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=20190622171157.GE13664@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox