mirror of
https://github.com/openstf/stf
synced 2025-10-04 02:09:32 +02:00
Update to new device DB.
This commit is contained in:
parent
760e09290f
commit
b9484019a3
8 changed files with 32 additions and 53 deletions
|
@ -613,19 +613,19 @@ program
|
||||||
})
|
})
|
||||||
|
|
||||||
program
|
program
|
||||||
.command('generate-fake-device')
|
.command('generate-fake-device [model]')
|
||||||
.description('generates a fake device for testing')
|
.description('generates a fake device for testing')
|
||||||
.option('-n, --number <n>'
|
.option('-n, --number <n>'
|
||||||
, 'how many devices to create (defaults to 1)'
|
, 'how many devices to create (defaults to 1)'
|
||||||
, Number
|
, Number
|
||||||
, 1)
|
, 1)
|
||||||
.action(function(options) {
|
.action(function(model, options) {
|
||||||
var log = logger.createLogger('cli:generate-fake-device')
|
var log = logger.createLogger('cli:generate-fake-device')
|
||||||
, fake = require('./util/fakedevice')
|
, fake = require('./util/fakedevice')
|
||||||
, n = options.number
|
, n = options.number
|
||||||
|
|
||||||
function next() {
|
function next() {
|
||||||
return fake.generate()
|
return fake.generate(model)
|
||||||
.then(function(serial) {
|
.then(function(serial) {
|
||||||
log.info('Created fake device "%s"', serial)
|
log.info('Created fake device "%s"', serial)
|
||||||
|
|
||||||
|
|
|
@ -197,7 +197,7 @@ dbapi.saveDeviceIdentity = function(serial, identity) {
|
||||||
, sdk: identity.sdk
|
, sdk: identity.sdk
|
||||||
, display: identity.display
|
, display: identity.display
|
||||||
, phone: identity.phone
|
, phone: identity.phone
|
||||||
, name: identity.name
|
, product: identity.product
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
var syrup = require('syrup')
|
var syrup = require('syrup')
|
||||||
|
var deviceData = require('stf-device-db')
|
||||||
|
|
||||||
var devutil = require('../../../util/devutil')
|
var devutil = require('../../../util/devutil')
|
||||||
var logger = require('../../../util/logger')
|
var logger = require('../../../util/logger')
|
||||||
|
|
|
@ -27,10 +27,10 @@ module.exports = syrup.serial()
|
||||||
, identity.model
|
, identity.model
|
||||||
, identity.version
|
, identity.version
|
||||||
, identity.abi
|
, identity.abi
|
||||||
, identity.name
|
|
||||||
, identity.sdk
|
, identity.sdk
|
||||||
, new wire.DeviceDisplayMessage(identity.display)
|
, new wire.DeviceDisplayMessage(identity.display)
|
||||||
, new wire.DevicePhoneMessage(identity.phone)
|
, new wire.DevicePhoneMessage(identity.phone)
|
||||||
|
, identity.product
|
||||||
))
|
))
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
|
@ -5,52 +5,28 @@ var logger = require('./logger')
|
||||||
|
|
||||||
var log = logger.createLogger('util:datautil')
|
var log = logger.createLogger('util:datautil')
|
||||||
|
|
||||||
var aliases = {
|
|
||||||
'KYY22': 'L02'
|
|
||||||
, 'SH-06DNERV': 'SH-06D_NERV'
|
|
||||||
}
|
|
||||||
|
|
||||||
var datautil = module.exports = Object.create(null)
|
var datautil = module.exports = Object.create(null)
|
||||||
|
|
||||||
datautil.applyData = function(device) {
|
datautil.applyData = function(device) {
|
||||||
var model = device.model
|
var match = deviceData.find({
|
||||||
var name = device.name
|
model: device.model
|
||||||
|
, name: device.product
|
||||||
|
})
|
||||||
|
|
||||||
if (model) {
|
if (match) {
|
||||||
var match = deviceData.find({model: model, name: name})
|
device.name = match.name.id
|
||||||
|
device.releasedAt = match.date
|
||||||
if (!match) {
|
device.image = match.image
|
||||||
if (aliases[model]) {
|
device.cpu = match.cpu
|
||||||
match = deviceData.find({model: aliases[model], name: name})
|
device.memory = match.memory
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!match) {
|
log.warn(
|
||||||
model = model.replace(/ /g, '_')
|
'Device database does not have a match for device "%s" (model "%s"/"%s")'
|
||||||
match = deviceData.find({model: model, name: name})
|
, device.serial
|
||||||
|
, device.model
|
||||||
if (!match) {
|
, device.product
|
||||||
model = model.replace(/_/g, '')
|
)
|
||||||
match = deviceData.find({model: model, name: name})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (match) {
|
|
||||||
device.name = match.name.id
|
|
||||||
device.model = match.name.long
|
|
||||||
device.releasedAt = match.date
|
|
||||||
device.image = model + '.jpg' // TODO: check for icon/photo file existence
|
|
||||||
device.cpu = match.cpu
|
|
||||||
device.memory = match.memory
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
log.warn(
|
|
||||||
'Device database does not have a match for device "%s" (model "%s")'
|
|
||||||
, device.serial
|
|
||||||
, device.model
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return device
|
return device
|
||||||
|
|
|
@ -133,7 +133,7 @@ devutil.makeIdentity = function(serial, properties) {
|
||||||
, version = properties['ro.build.version.release']
|
, version = properties['ro.build.version.release']
|
||||||
, sdk = properties['ro.build.version.sdk']
|
, sdk = properties['ro.build.version.sdk']
|
||||||
, abi = properties['ro.product.cpu.abi']
|
, abi = properties['ro.product.cpu.abi']
|
||||||
, name = properties['ro.product.name']
|
, product = properties['ro.product.name']
|
||||||
|
|
||||||
// Remove brand prefix for consistency
|
// Remove brand prefix for consistency
|
||||||
if (model.substr(0, brand.length) === brand) {
|
if (model.substr(0, brand.length) === brand) {
|
||||||
|
@ -156,6 +156,6 @@ devutil.makeIdentity = function(serial, properties) {
|
||||||
, version: version
|
, version: version
|
||||||
, abi: abi
|
, abi: abi
|
||||||
, sdk: sdk
|
, sdk: sdk
|
||||||
, name: name
|
, product: product
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,9 @@ var uuid = require('node-uuid')
|
||||||
var _ = require('lodash')
|
var _ = require('lodash')
|
||||||
|
|
||||||
var dbapi = require('../db/api')
|
var dbapi = require('../db/api')
|
||||||
var devices = require('stf-device-db')
|
var devices = require('stf-device-db/dist/devices-latest')
|
||||||
|
|
||||||
module.exports.generate = function() {
|
module.exports.generate = function(wantedModel) {
|
||||||
var serial = util.format(
|
var serial = util.format(
|
||||||
'fake-%s'
|
'fake-%s'
|
||||||
, uuid.v4(null, new Buffer(16)).toString('base64')
|
, uuid.v4(null, new Buffer(16)).toString('base64')
|
||||||
|
@ -20,11 +20,12 @@ module.exports.generate = function() {
|
||||||
, status: 'OFFLINE'
|
, status: 'OFFLINE'
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
var model = wantedModel || _.sample(Object.keys(devices))
|
||||||
return dbapi.saveDeviceIdentity(serial, {
|
return dbapi.saveDeviceIdentity(serial, {
|
||||||
platform: 'Android'
|
platform: 'Android'
|
||||||
, manufacturer: 'Foo Electronics'
|
, manufacturer: 'Foo Electronics'
|
||||||
, operator: 'Loss Networks'
|
, operator: 'Loss Networks'
|
||||||
, model: _.sample(Object.keys(devices))
|
, model: model
|
||||||
, version: '4.1.2'
|
, version: '4.1.2'
|
||||||
, abi: 'armeabi-v7a'
|
, abi: 'armeabi-v7a'
|
||||||
, sdk: 8 + Math.floor(Math.random() * 12)
|
, sdk: 8 + Math.floor(Math.random() * 12)
|
||||||
|
@ -46,6 +47,7 @@ module.exports.generate = function() {
|
||||||
, network: 'LTE'
|
, network: 'LTE'
|
||||||
, phoneNumber: '0000000000'
|
, phoneNumber: '0000000000'
|
||||||
}
|
}
|
||||||
|
, product: model
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
|
|
@ -172,10 +172,10 @@ message DeviceIdentityMessage {
|
||||||
required string model = 5;
|
required string model = 5;
|
||||||
required string version = 6;
|
required string version = 6;
|
||||||
required string abi = 7;
|
required string abi = 7;
|
||||||
required string name = 12;
|
|
||||||
required string sdk = 8;
|
required string sdk = 8;
|
||||||
required DeviceDisplayMessage display = 9;
|
required DeviceDisplayMessage display = 9;
|
||||||
required DevicePhoneMessage phone = 11;
|
required DevicePhoneMessage phone = 11;
|
||||||
|
optional string product = 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
message DeviceProperty {
|
message DeviceProperty {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue