Skip to content

Commit c792b18

Browse files
authored
Merge pull request #11 from myDevicesIoT/feature/activate-with-version
Send agent version when activating.
2 parents 83049f1 + b544b76 commit c792b18

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

myDevices/cloud/apiclient.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
from myDevices.requests_futures.sessions import FuturesSession
2-
from concurrent.futures import ThreadPoolExecutor
31
import json
4-
from myDevices.utils.logger import error, exception
5-
from myDevices.system.hardware import Hardware
6-
from myDevices.system.systeminfo import SystemInfo
2+
from concurrent.futures import ThreadPoolExecutor
3+
4+
from myDevices import __version__
75
from myDevices.cloud import cayennemqtt
86
from myDevices.devices.digital.gpio import NativeGPIO
7+
from myDevices.requests_futures.sessions import FuturesSession
8+
from myDevices.system.hardware import Hardware
9+
from myDevices.system.systeminfo import SystemInfo
10+
from myDevices.utils.config import Config, APP_SETTINGS
11+
from myDevices.utils.logger import error, exception
12+
913

1014
class CayenneApiClient:
1115
def __init__(self, host):
@@ -56,6 +60,8 @@ def getMessageBody(self, inviteCode):
5660
system_data = []
5761
cayennemqtt.DataChannel.add(system_data, cayennemqtt.SYS_HARDWARE_MAKE, value=hardware.getManufacturer(), type='string', unit='utf8')
5862
cayennemqtt.DataChannel.add(system_data, cayennemqtt.SYS_HARDWARE_MODEL, value=hardware.getModel(), type='string', unit='utf8')
63+
config = Config(APP_SETTINGS)
64+
cayennemqtt.DataChannel.add(system_data, cayennemqtt.AGENT_VERSION, value=config.get('Agent', 'Version', __version__))
5965
system_info = SystemInfo()
6066
capacity_data = system_info.getMemoryInfo((cayennemqtt.CAPACITY,))
6167
capacity_data += system_info.getDiskInfo((cayennemqtt.CAPACITY,))

myDevices/test/apiclient_test.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@ class ApiClientTest(unittest.TestCase):
88
def testMessageBody(self):
99
cayenneApiClient = CayenneApiClient('https://api.mydevices.com')
1010
message = loads(cayenneApiClient.getMessageBody('invite_code'))
11+
# info(message)
1112
self.assertIn('id', message)
1213
self.assertIn('type', message)
1314
self.assertIn('hardware_id', message)
1415
self.assertIn('properties', message)
1516
self.assertIn('sysinfo', message['properties'])
17+
channels = [item['channel'] for item in message['properties']['sysinfo']]
18+
self.assertCountEqual(['sys:hw:make', 'sys:hw:model', 'agent:version', 'sys:ram;capacity', 'sys:storage:/;capacity'], channels)
1619
self.assertIn('pinmap', message['properties'])
1720

1821

myDevices/utils/config.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from configparser import RawConfigParser, _UNSET, NoSectionError
22
from threading import RLock
33

4+
APP_SETTINGS = '/etc/myDevices/AppSettings.ini'
5+
46
class Config:
57
def __init__(self, path):
68
self.mutex = RLock()

0 commit comments

Comments
 (0)