Closed Bug 892691 Opened 10 years ago Closed 9 years ago

Add HD Panda chassis to android production pandas


(Infrastructure & Operations Graveyard :: CIDuty, task)

Not set


(Not tracked)



(Reporter: dividehex, Assigned: pmoore)




(8 files, 1 obsolete file)

The HD Panda Prototype Chassis is alive and kicking in SCL1.  We would like to add the pandas within to the test pool.  (no better proving ground than production imo)
I've run selftests and put the android image on all of them via mozpool.

The pandas are:

and the associated relay board is
Component: Release Engineering → Release Engineering: Platform Support
QA Contact: coop
Product: → Release Engineering
This is on hold until after Moz Summit.  Relops will be demoing the Chassis and Mozpool at the Santa Clara fair.
I'm removing the HD Chassis for the mozsummit demo.  All pandas in this chassis have been locked out in mozpool.
Depends on: 927068
HD Panda Chassis is back and racked in SCL1. (according to bug927068)
I talked to dividehex and these pandas are already in inventory and exist in mozpool
Tested on (environment=pmoore).
Attachment #818480 - Flags: review?(kmoir)
Assignee: nobody → pmoore
Attachment #818480 - Flags: review?(kmoir) → review+
Attachment #818492 - Flags: review?(kmoir) → review+
The attached SQL should import the new pandas (panda-0887 -> panda-0909) and into the production MySQL database, with pandas in a disabled (not enabled) state.

The slavealloc dbimport mechanism imports a CSV file, and converts it to SQL insert statements, denormalising the normalised fields using the following mapping:

This shows that the non-specified slave fields (locked_masterid, current_masterid, notes, custom_tplid) are not included in the generated insert statements. A look at the live database schema shows that NULLs are allowed for the non-specified fields. Therefore the attached SQL import statements are equivalent to using the dbimport mechanism, since they set these unspecified fields to NULL also.

I'm including this attachment for informational purposes, I will now also attach a CSV file which can be used by slavealloc dbimport tool. However this attachment may be useful for validating the data in the database after the dbimport has run.

Please note the pandas are *not* associated to the new buildbot-master89 at this point (i.e. "locked master" and "current master" are not set on the new pandas).
Hi Kim,

Here is the data I would like to import into *production* slavealloc database. Can you review my change?

I will import it using by running /data/releng/www/slavealloc/slavealloc dbimport -D <db url including password> --slave-data <this file>

I believe, since I don't specify --enable on the command line, they will be initially disabled.

Will also attach a patch now for adding the new master.

Many thanks!
Attachment #821762 - Flags: review?(kmoir)
This is the entry for adding buildbot-master89 to the *production* slavealloc database.

I will import it using by running /data/releng/www/slavealloc/slavealloc dbimport -D <db url including password> --master-data <this file>

Again, without the --enabled, the master should be initially disabled.

Please note I can't set the "notes" field with the initial dbimport import. I can do this afterwards in slavealloc (I would add this bug number into the notes field).

Thanks for your review Kim!

Attachment #821772 - Flags: review?(kmoir)
Attachment #821772 - Flags: review?(kmoir) → review+
Comment on attachment 821762 [details]

Looks good.  As an aside, I noticed that  pandas don't have cnames yet, it would be good to open a bug with IT to set these up.
Attachment #821762 - Flags: review?(kmoir) → review+
Depends on: 931837
Slavealloc production database updated to include masters and slaves (as per attachments and
Added pandas to buildbot-configs/mozilla-tests/
Attachment #823398 - Flags: review?(kmoir)
Depends on: 931848
Attachment #823398 - Flags: review?(kmoir) → review+
Buildbot-configs change applied:

(not merged into production branch)
in production
A patch for devices.json with all the necessary data about foopies and relays (taken from
Attachment #827989 - Flags: review?(bugspam.Callek)
I have created all the necessary directories under /builds for each panda, on each of the associated foopies.
The distribution of new pandas to foopies is as follows:

Foopy name | Number of pandas   | New pandas added
foopy102   | 13 (1 new panda)   | panda-0901
foopy103   | 13 (1 new panda)   | panda-0902
foopy104   | 13 (1 new panda)   | panda-0903
foopy105   | 13                 | 
foopy106   | 19                 | 
foopy107   | 14 (6 new pandas)  | panda-0904 -> panda-0909
foopy108   | 14 (14 new pandas) | panda-0887 -> panda-0900
Depends on: 935483
Comment on attachment 827989 [details] [diff] [review]
New panda relay and foopy data in devices.json

Review of attachment 827989 [details] [diff] [review]:

r-, but rubber-stamp+ once fixed:

We sort devices.json by device name not foopy. So please place them in the list accordingly.
Attachment #827989 - Flags: review?(bugspam.Callek) → review-
Hey Callek,

In that case, I'll supply two patches - the first to tidy up devices.json (to sort by device name, since currently this convention is not strictly followed) and a second patch to add the new pandas.

This is just a cleanup of the initial devices.json file, before I'll add my changes to it.
Attachment #828810 - Flags: review?(bugspam.Callek)
In case you see a lot of change in that patch, and are scared, I wanted to offer some comforting words to you.

Please note that this diff is considerably smaller if you filter out space changes, and apply a more aggressive diff, e.g. using the "diff" utility (rather than an hg diff).

To demonstrate, I left the old version as devices.json, and put the new version as devices2.json locally on my computer, and then ran:

pmoore@Peters-MacBook-Pro-2:~/hg/tools $ diff -d -b buildfarm/mobile/devices.json buildfarm/mobile/devices2.json
>         "_comment": "decommissioned in bug 786366",
<         "pduid": ".AA2",
<         "_comment": "decommissioned in bug 786366"
>         "pduid": ".AA2"
<         "foopy": "None",
<         "_comment": "decommissioned in bug 900507"
>         "_comment": "decommissioned in bug 900507",
>         "foopy": "None"
>     "panda-0033": {
>         "foopy": "foopy52",
>         "relayhost": "",
>         "relayid": "1:4"
>     },
>     "panda-0045": {
>         "foopy": "foopy69",
>         "relayhost": "",
>         "relayid": "1:2"
>     },
>     "panda-0057": {
>         "foopy": "foopy77",
>         "relayhost": "",
>         "relayid": "2:1"
>     },
>     "panda-0069": {
>         "foopy": "foopy78",
>         "relayhost": "",
>         "relayid": "2:5"
>     },
>     "panda-0081": {
>         "foopy": "foopy85",
>         "relayhost": "",
>         "relayid": "2:5"
>     },
<     "panda-0033": {
<         "foopy": "foopy52",
<         "relayhost": "",
<         "relayid": "1:4"
<     }, 
<     "panda-0045": {
<         "foopy": "foopy69",
<         "relayhost": "",
<         "relayid": "1:2"
<     }, 
<     "panda-0057": {
<         "foopy": "foopy77",
<         "relayhost": "",
<         "relayid": "2:1"
<     },
<     "panda-0069": {
<         "foopy": "foopy78",
<         "relayhost": "",
<         "relayid": "2:5"
<     },
<     "panda-0081": {
<         "foopy": "foopy85",
<         "relayhost": "",
<         "relayid": "2:5"
<     },
<     "panda-0885": {
<         "foopy": "foopy94",
<         "relayhost": "",
<         "relayid": "2:3"
<     },
<     "panda-0886": {
<         "foopy": "foopy95",
<         "relayhost": "",
<         "relayid": "2:4"
<     },
>     },
>     "panda-0885": {
>         "foopy": "foopy94",
>         "relayhost": "",
>         "relayid": "2:3"
>     },
>     "panda-0886": {
>         "foopy": "foopy95",
>         "relayhost": "",
>         "relayid": "2:4"
<  }
> }

So you see, a lot of the actual patch is just about tidying up whitespace etc (e.g. trailing spaces in lines).

Please note, I generated this patch by simply sorting the existing devices.json file using this (very simple) python code:

import simplejson as json
devices = json.load(open('/Users/pmoore/hg/tools/buildfarm/mobile/devices.json', 'r'))
with open('/Users/pmoore/hg/tools/buildfarm/mobile/devices2.json', 'w') as devices2:
    devices2.write(json.dumps(devices, sort_keys=True, indent='    '))
As noted above, this patch is to be applied after first sorting/tidying devices.json with previous attachment
Attachment #827989 - Attachment is obsolete: true
Attachment #828823 - Flags: review?(bugspam.Callek)
Attachment #828810 - Flags: review?(bugspam.Callek) → review+
Attachment #828823 - Flags: review?(bugspam.Callek) → review+
Looks like I never got round to closing this bug, but all parts seem to be completed, so closing it now.
Closed: 9 years ago
Resolution: --- → FIXED
Component: Platform Support → Buildduty
Product: Release Engineering → Infrastructure & Operations
Product: Infrastructure & Operations → Infrastructure & Operations Graveyard
You need to log in before you can comment on or make changes to this bug.