mirror of
https://github.com/balena-io/balena-cli.git
synced 2025-02-21 01:42:26 +00:00
Support moving devices to applications of a compatible architecture
Connects-to: #1433 Change-type: minor Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
This commit is contained in:
parent
db5c473952
commit
a64b36fdb9
@ -366,11 +366,22 @@ exports.move =
|
||||
patterns = require('../utils/patterns')
|
||||
|
||||
balena.models.device.get(params.uuid, expandForAppName).then (device) ->
|
||||
return options.application or patterns.selectApplication (application) ->
|
||||
return _.every [
|
||||
application.device_type is device.device_type
|
||||
device.belongs_to__application[0].app_name isnt application.app_name
|
||||
]
|
||||
return options.application if options.application
|
||||
|
||||
return Promise.all([
|
||||
balena.models.device.getManifestBySlug(device.device_type)
|
||||
balena.models.config.getDeviceTypes()
|
||||
]).then ([deviceDeviceType, deviceTypes]) ->
|
||||
compatibleDeviceTypes = deviceTypes.filter (dt) ->
|
||||
balena.models.os.isArchitectureCompatibleWith(deviceDeviceType.arch, dt.arch) &&
|
||||
!!dt.isDependent == !!deviceDeviceType.isDependent &&
|
||||
dt.state != 'DISCONTINUED'
|
||||
|
||||
return patterns.selectApplication (application) ->
|
||||
return _.every [
|
||||
_.some(compatibleDeviceTypes, (dt) -> dt.slug == application.device_type)
|
||||
device.belongs_to__application[0].app_name isnt application.app_name
|
||||
]
|
||||
.tap (application) ->
|
||||
return balena.models.device.move(params.uuid, application)
|
||||
.then (application) ->
|
||||
|
Loading…
x
Reference in New Issue
Block a user