~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/soyuz/doc/buildd-mass-retry.txt

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-09-27 13:10:47 UTC
  • mfrom: (14027.3.8 megalint-2)
  • Revision ID: launchpad@pqm.canonical.com-20110927131047-hadx9vzjec3mowue
[r=jtv][no-qa] Mega-lint cleanup.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
= Testing buildd-mass-retry behaviour =
 
1
Buildd-mass-retry behaviour
 
2
===========================
2
3
 
3
 
  >>> import subprocess
4
 
  >>> import os
5
 
  >>> import sys
6
 
  >>> from canonical.config import config
 
4
    >>> import subprocess
 
5
    >>> import os
 
6
    >>> import sys
 
7
    >>> from canonical.config import config
7
8
 
8
9
'buildd-mass-retry' is a tool designed to retry a group of 'failed'
9
10
build records in a distroseries and/or architecture.
10
11
 
11
 
  >>> script = os.path.join(config.root, "scripts", "ftpmaster-tools",
12
 
  ...                       "buildd-mass-retry.py")
 
12
    >>> script = os.path.join(
 
13
    ...     config.root, "scripts", "ftpmaster-tools", "buildd-mass-retry.py")
13
14
 
14
15
The user can specify a distribution, a suite name (-s) and/or and
15
16
architecture (-a) as a build record provider, it will restrict the
29
30
 
30
31
Passing only suite, request retry on all failed states:
31
32
 
32
 
  >>> process = subprocess.Popen([sys.executable, script, "-v", "-NFDC",
33
 
  ...                             "-s", "hoary"],
34
 
  ...                            stdout=subprocess.PIPE,
35
 
  ...                            stderr=subprocess.PIPE,)
36
 
  >>> stdout, stderr = process.communicate()
37
 
  >>> process.returncode
38
 
  0
39
 
  >>> print stderr
40
 
  INFO    Creating lockfile: ...
41
 
  INFO    Initializing Build Mass-Retry for 'The Hoary Hedgehog Release/RELEASE'
42
 
  INFO    Processing builds in 'Failed to build'
43
 
  INFO    Processing builds in 'Dependency wait'
44
 
  INFO    Retrying i386 build of libstdc++ b8p in ubuntu hoary RELEASE (12)
45
 
  INFO    Processing builds in 'Chroot problem'
46
 
  INFO    Success.
47
 
  INFO    Dry-run.
48
 
  DEBUG   Removing lock file: ...
49
 
  <BLANKLINE>
 
33
    >>> process = subprocess.Popen(
 
34
    ...     [sys.executable, script, "-v", "-NFDC", "-s", "hoary"],
 
35
    ...     stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
36
    >>> stdout, stderr = process.communicate()
 
37
    >>> process.returncode
 
38
    0
 
39
    >>> print stderr
 
40
    INFO    Creating lockfile: ...
 
41
    INFO    Initializing Build Mass-Retry for
 
42
    'The Hoary Hedgehog Release/RELEASE'
 
43
    INFO    Processing builds in 'Failed to build'
 
44
    INFO    Processing builds in 'Dependency wait'
 
45
    INFO    Retrying i386 build of libstdc++ b8p in ubuntu hoary RELEASE (12)
 
46
    INFO    Processing builds in 'Chroot problem'
 
47
    INFO    Success.
 
48
    INFO    Dry-run.
 
49
    DEBUG   Removing lock file: ...
 
50
    <BLANKLINE>
50
51
 
51
52
Superseded builds won't be retried; buildd-manager will just skip the build
52
53
and set it to SUPERSEDED.
53
54
 
54
 
  >>> from zope.security.proxy import removeSecurityProxy
55
 
  >>> from lp.soyuz.interfaces.binarypackagebuild import (
56
 
  ...     IBinaryPackageBuildSet)
57
 
  >>> from lp.soyuz.enums import PackagePublishingStatus
58
 
  >>> build = getUtility(IBinaryPackageBuildSet).getByID(12)
59
 
  >>> pub = removeSecurityProxy(build.current_source_publication)
 
55
    >>> from zope.security.proxy import removeSecurityProxy
 
56
    >>> from lp.soyuz.interfaces.binarypackagebuild import (
 
57
    ...     IBinaryPackageBuildSet)
 
58
    >>> from lp.soyuz.enums import PackagePublishingStatus
 
59
    >>> build = getUtility(IBinaryPackageBuildSet).getByID(12)
 
60
    >>> pub = removeSecurityProxy(build.current_source_publication)
60
61
 
61
62
Let's mark the build from the previous run superseded.
62
63
 
63
 
  >>> pub.status = PackagePublishingStatus.SUPERSEDED
64
 
  >>> print build.current_source_publication
65
 
  None
66
 
  >>> transaction.commit()
 
64
    >>> pub.status = PackagePublishingStatus.SUPERSEDED
 
65
    >>> print build.current_source_publication
 
66
    None
 
67
    >>> transaction.commit()
67
68
 
68
69
A new run doesn't pick it up.
69
70
 
70
 
  >>> process = subprocess.Popen([sys.executable, script, "-v", "-NFDC",
71
 
  ...                             "-s", "hoary"],
72
 
  ...                            stdout=subprocess.PIPE,
73
 
  ...                            stderr=subprocess.PIPE,)
74
 
  >>> stdout, stderr = process.communicate()
75
 
  >>> process.returncode
76
 
  0
77
 
  >>> print stderr
78
 
  INFO    Creating lockfile: ...
79
 
  INFO    Initializing Build Mass-Retry for 'The Hoary Hedgehog Release/RELEASE'
80
 
  INFO    Processing builds in 'Failed to build'
81
 
  INFO    Processing builds in 'Dependency wait'
82
 
  DEBUG   Skipping superseded i386 build of libstdc++ b8p in ubuntu hoary RELEASE (12)
83
 
  INFO    Processing builds in 'Chroot problem'
84
 
  INFO    Success.
85
 
  INFO    Dry-run.
86
 
  DEBUG   Removing lock file: ...
87
 
  <BLANKLINE>
 
71
    >>> process = subprocess.Popen(
 
72
    ...     [sys.executable, script, "-v", "-NFDC", "-s", "hoary"],
 
73
    ...     stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
74
    >>> stdout, stderr = process.communicate()
 
75
    >>> process.returncode
 
76
    0
 
77
    >>> print stderr
 
78
    INFO    Creating lockfile: ...
 
79
    INFO    Initializing Build Mass-Retry for
 
80
    'The Hoary Hedgehog Release/RELEASE'
 
81
    INFO    Processing builds in 'Failed to build'
 
82
    INFO    Processing builds in 'Dependency wait'
 
83
    DEBUG   Skipping superseded i386 build of libstdc++ b8p in
 
84
    ubuntu hoary RELEASE (12)
 
85
    INFO    Processing builds in 'Chroot problem'
 
86
    INFO    Success.
 
87
    INFO    Dry-run.
 
88
    DEBUG   Removing lock file: ...
 
89
    <BLANKLINE>
88
90
 
89
 
  >>> pub.status = PackagePublishingStatus.PUBLISHED
90
 
  >>> transaction.commit()
 
91
    >>> pub.status = PackagePublishingStatus.PUBLISHED
 
92
    >>> transaction.commit()
91
93
 
92
94
Passing an architecture, which contains no failed build records,
93
95
nothing is done:
94
96
 
95
 
  >>> process = subprocess.Popen([sys.executable, script, "-v", "-NFDC",
96
 
  ...                             "-s", "hoary", "-a", "hppa"],
97
 
  ...                            stdout=subprocess.PIPE,
98
 
  ...                            stderr=subprocess.PIPE,)
99
 
  >>> stdout, stderr = process.communicate()
100
 
  >>> process.returncode
101
 
  0
102
 
  >>> print stderr
103
 
  INFO    Creating lockfile: ...
104
 
  INFO    Initializing Build Mass-Retry for 'The Hoary Hedgehog Release for hppa (hppa)/RELEASE'
105
 
  INFO    Processing builds in 'Failed to build'
106
 
  INFO    Processing builds in 'Dependency wait'
107
 
  INFO    Processing builds in 'Chroot problem'
108
 
  INFO    Success.
109
 
  INFO    Dry-run.
110
 
  DEBUG   Removing lock file: ...
111
 
  <BLANKLINE>
 
97
    >>> process = subprocess.Popen(
 
98
    ...     [
 
99
    ...         sys.executable, script,
 
100
    ...         "-v", "-NFDC", "-s", "hoary", "-a", "hppa",
 
101
    ...     ],
 
102
    ...     stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
103
    >>> stdout, stderr = process.communicate()
 
104
    >>> process.returncode
 
105
    0
 
106
    >>> print stderr
 
107
    INFO    Creating lockfile: ...
 
108
    INFO    Initializing Build Mass-Retry for
 
109
    'The Hoary Hedgehog Release for hppa (hppa)/RELEASE'
 
110
    INFO    Processing builds in 'Failed to build'
 
111
    INFO    Processing builds in 'Dependency wait'
 
112
    INFO    Processing builds in 'Chroot problem'
 
113
    INFO    Success.
 
114
    INFO    Dry-run.
 
115
    DEBUG   Removing lock file: ...
 
116
    <BLANKLINE>
112
117
 
113
118
 
114
119
Selecting only a specific failed state:
115
120
 
116
 
  >>> process = subprocess.Popen([sys.executable, script, "-v", "-NF",
117
 
  ...                             "-s", "hoary"],
118
 
  ...                            stdout=subprocess.PIPE,
119
 
  ...                            stderr=subprocess.PIPE,)
120
 
  >>> stdout, stderr = process.communicate()
121
 
  >>> process.returncode
122
 
  0
123
 
  >>> print stderr
124
 
  INFO    Creating lockfile: ...
125
 
  INFO    Initializing Build Mass-Retry for 'The Hoary Hedgehog Release/RELEASE'
126
 
  INFO    Processing builds in 'Failed to build'
127
 
  INFO    Success.
128
 
  INFO    Dry-run.
129
 
  DEBUG   Removing lock file: ...
130
 
  <BLANKLINE>
 
121
    >>> process = subprocess.Popen(
 
122
    ...     [sys.executable, script, "-v", "-NF", "-s", "hoary"],
 
123
    ...     stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
124
    >>> stdout, stderr = process.communicate()
 
125
    >>> process.returncode
 
126
    0
 
127
    >>> print stderr
 
128
    INFO    Creating lockfile: ...
 
129
    INFO    Initializing Build Mass-Retry for
 
130
    'The Hoary Hedgehog Release/RELEASE'
 
131
    INFO    Processing builds in 'Failed to build'
 
132
    INFO    Success.
 
133
    INFO    Dry-run.
 
134
    DEBUG   Removing lock file: ...
 
135
    <BLANKLINE>