mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-17 21:53:17 +02:00
improve device state consistency (#831)
Signed-off-by: Denis barbaron <denis.barbaron@orange.com> Co-authored-by: Karol Wrótniak <karol.wrotniak@droidsonroids.pl>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Copyright © 2019-2024 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
* Copyright © 2019-2025 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
**/
|
||||
|
||||
var r = require('rethinkdb')
|
||||
@@ -14,7 +14,6 @@ const uuid = require('uuid')
|
||||
const apiutil = require('../util/apiutil')
|
||||
const Promise = require('bluebird')
|
||||
const _ = require('lodash')
|
||||
const timeutil = require('../util/timeutil')
|
||||
|
||||
dbapi.DuplicateSecondaryIndexError = function DuplicateSecondaryIndexError() {
|
||||
Error.call(this)
|
||||
@@ -1175,7 +1174,7 @@ dbapi.saveDeviceInitialState = function(serial, device) {
|
||||
, owner: null
|
||||
, status: device.status
|
||||
, statusChangedAt: r.now()
|
||||
, statusTimeStamp: timeutil.now('nano')
|
||||
, statusTimeStamp: device.statusTimeStamp
|
||||
, ready: false
|
||||
, reverseForwards: []
|
||||
, remoteConnect: false
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Copyright © 2019-2024 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
* Copyright © 2019-2025 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
**/
|
||||
|
||||
var Promise = require('bluebird')
|
||||
@@ -99,6 +99,7 @@ module.exports = db.ensureConnectivity(function(options) {
|
||||
message.provider.channel
|
||||
, message.provider.name
|
||||
)
|
||||
, message.statusTimeStamp
|
||||
, new wire.DeviceGroupMessage(
|
||||
device.group.id
|
||||
, device.group.name
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Copyright © 2024 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
* Copyright © 2024-2025 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
**/
|
||||
|
||||
var Promise = require('bluebird')
|
||||
@@ -171,6 +171,7 @@ module.exports = function(options) {
|
||||
solo
|
||||
, options.name
|
||||
)
|
||||
, timeutil.now('nano')
|
||||
))
|
||||
])
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Copyright © 2019-2024 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
* Copyright © 2019-2025 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
**/
|
||||
|
||||
var http = require('http')
|
||||
@@ -223,6 +223,7 @@ module.exports = function(options) {
|
||||
, ready: false
|
||||
, reverseForwards: []
|
||||
, group: message.group
|
||||
, statusTimeStamp: message.statusTimeStamp
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Copyright © 2019 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
* Copyright © 2019-2025 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
**/
|
||||
|
||||
var util = require('util')
|
||||
@@ -10,6 +10,8 @@ var _ = require('lodash')
|
||||
var dbapi = require('../db/api')
|
||||
var devices = require('@devicefarmer/stf-device-db/dist/devices-latest')
|
||||
|
||||
const timeutil = require('./timeutil')
|
||||
|
||||
module.exports.generate = function(wantedModel) {
|
||||
// no base64 because some characters as '=' or '/' are not compatible through API (delete devices)
|
||||
const serial = 'fake-' + util.format('%s', uuid.v4()).replace(/-/g, '')
|
||||
@@ -20,6 +22,7 @@ module.exports.generate = function(wantedModel) {
|
||||
, channel: '*fake'
|
||||
}
|
||||
, status: 'OFFLINE'
|
||||
, statusTimeStamp: timeutil.now('nano')
|
||||
})
|
||||
.then(function() {
|
||||
var model = wantedModel || _.sample(Object.keys(devices))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright © 2019-2024 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
// Copyright © 2019-2025 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
|
||||
//
|
||||
|
||||
// Message wrapper
|
||||
@@ -339,7 +339,8 @@ message DeviceIntroductionMessage {
|
||||
required string serial = 1;
|
||||
required DeviceStatus status = 2;
|
||||
required ProviderMessage provider = 3;
|
||||
optional DeviceGroupMessage group = 4;
|
||||
required double statusTimeStamp = 4;
|
||||
optional DeviceGroupMessage group = 5;
|
||||
}
|
||||
|
||||
message DeviceRegisteredMessage {
|
||||
|
||||
Reference in New Issue
Block a user