ppa-assigner: private_only is hardcoded and confusing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu CI Engine |
Fix Released
|
Low
|
Ursula Junque | ||
Ubuntu CI Services |
Fix Released
|
Low
|
Ursula Junque |
Bug Description
private_only is set to False in unit_config, however it needs to be set to True for a pool of private PPAs to work at all. It's name is confusing. As currently implemented, it being set to false does not produce a full set of PPAs, regardless of whether they're public or private. Instead, setting it false only produces a set of public PPAs.
Because it's currently hardcoded, we need to hack in that setting to True before deploying with private PPAs.
Original report follows:
I noticed on a fresh deploy, a ticket I submitted sat in the pending state for ages. I exposed jenkins and had a look:
11:15:24 INFO lander_
11:15:24 WARNING root: No free PPAs can be found. Retrying in 120s
Okay, that seemed odd, but sure enough this was the case:
curl --dump-header - -H "Content-Type: application/json" http://
HTTP/1.1 404 NOT FOUND
Server: gunicorn/0.13.4
Date: Fri, 14 Mar 2014 11:13:16 GMT
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
No free PPAs exist in pool
Now, the weird part is that none of these PPAs are marked as unavailable in the database:
{
"meta": {
"limit": 20,
"next": null,
"offset": 0,
"previous": null,
},
"objects": [
{
"id": 1,
"name": "ppa:ci-
},
{
"id": 2,
"name": "ppa:ci-
},
{
"id": 3,
"name": "ppa:ci-
},
{
"id": 4,
"name": "ppa:ci-
},
{
"id": 5,
"name": "ppa:ci-
},
{
"id": 6,
"name": "ppa:ci-
}
]
}
Related branches
- Evan (community): Approve
- Andy Doan (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 197 lines (+46/-9)7 files modifiedjuju-deployer/configs/unit_config.yaml.tmpl (+1/-1)
juju-deployer/deploy.py (+33/-0)
juju-deployer/test_deploy.py (+1/-0)
ppa-assigner/ppa_assigner/api.py (+1/-1)
ppa-assigner/ppa_assigner/models.py (+1/-1)
ppa-assigner/ppa_assigner/settings.py (+1/-1)
ppa-assigner/ppa_assigner/tests.py (+8/-5)
Changed in ubuntu-ci-services-itself: | |
assignee: | nobody → Andy Doan (doanac) |
milestone: | none → phase-0 |
importance: | Undecided → Critical |
Changed in ubuntu-ci-services-itself: | |
status: | New → Invalid |
status: | Invalid → Triaged |
description: | updated |
Changed in ubuntu-ci-services-itself: | |
assignee: | Andy Doan (doanac) → Ursula Junque (ursinha) |
description: | updated |
summary: |
- ppa-assigner: No free PPAs on fresh deployment + ppa-assigner: private_only is hardcoded and confusing |
Changed in ubuntu-ci-services-itself: | |
importance: | Critical → Low |
tags: | added: airline |
Changed in ubuntu-ci-services-itself: | |
status: | Triaged → In Progress |
Changed in ubuntu-ci-services-itself: | |
status: | In Progress → Fix Released |
Changed in uci-engine: | |
assignee: | nobody → Ursula Junque (ursinha) |
importance: | Undecided → Low |
milestone: | none → phase-0 |
status: | New → Fix Released |
For now, I think we should make the private-ppa option configurable at deployment time with something like:
# unit-config. yaml.tmpl:
private_only: $CI_PRIVATE_PPAS
then deploy.py can default that variable to False and add a new arparse option for "--private-ppas"