1- import requests
21import json
3- import docker
42import os
3+
4+ import docker
5+ import requests
6+
7+ from .composeproject import ComposeProject
58from .constants import EdgeConstants as EC
6- from .utils import Utils
7- from .errors import ResponseError
8- from .edgedockerclient import EdgeDockerClient
99from .edgecert import EdgeCert
10- from .composeproject import ComposeProject
10+ from .edgedockerclient import EdgeDockerClient
11+ from .errors import ResponseError
1112from .hostplatform import HostPlatform
13+ from .utils import Utils
1214
1315
1416class EdgeManager (object ):
15- HOST_PREFIX = 'HostName='
16- DEVICE_PREFIX = 'DeviceId='
17- KEY_PREFIX = 'SharedAccessKey='
1817 LABEL = 'iotedgehubdev'
1918 EDGEHUB_IMG = 'mcr.microsoft.com/azureiotedge-hub:1.0'
2019 TESTUTILITY_IMG = 'mcr.microsoft.com/azureiotedge-testing-utility:1.0.0-rc1'
@@ -36,26 +35,16 @@ class EdgeManager(object):
3635 HELPER_IMG = 'hello-world:latest'
3736 COMPOSE_FILE = os .path .join (HostPlatform .get_config_path (), 'docker-compose.yml' )
3837
39- def __init__ (self , connectionStr , gatewayhost , certPath ):
40- values = connectionStr . split ( ';' )
41- self .hostname = ''
42- self .deviceId = ''
43- self .key = ''
38+ def __init__ (self , connection_str , gatewayhost , cert_path ):
39+ connection_str_dict = Utils . parse_device_connection_str ( connection_str )
40+ self .hostname = connection_str_dict [ EC . HOSTNAME_KEY ]
41+ self .device_id = connection_str_dict [ EC . DEVICE_ID_KEY ]
42+ self .access_key = connection_str_dict [ EC . ACCESS_KEY_KEY ]
4443 self .compose_file = None
45-
46- for val in values :
47- stripped = val .strip ()
48- if stripped .startswith (EdgeManager .HOST_PREFIX ):
49- self .hostname = stripped [len (EdgeManager .HOST_PREFIX ):]
50- elif stripped .startswith (EdgeManager .DEVICE_PREFIX ):
51- self .deviceId = stripped [len (EdgeManager .DEVICE_PREFIX ):]
52- elif stripped .startswith (EdgeManager .KEY_PREFIX ):
53- self .key = stripped [len (EdgeManager .KEY_PREFIX ):]
54-
5544 self .gatewayhost = gatewayhost
56- self .deviceUri = '{0}/devices/{1}' .format (self .hostname , self .deviceId )
57- self .certPath = certPath
58- self .edgeCert = EdgeCert (self .certPath , self .gatewayhost )
45+ self .device_uri = '{0}/devices/{1}' .format (self .hostname , self .device_id )
46+ self .cert_path = cert_path
47+ self .edge_cert = EdgeCert (self .cert_path , self .gatewayhost )
5948
6049 @staticmethod
6150 def stop (edgedockerclient = None ):
@@ -104,7 +93,7 @@ def start_singlemodule(self, inputs, port):
10493 edgedockerclient .copy_file_to_volume (
10594 EdgeManager .INPUT , self ._device_cert (),
10695 EdgeManager .MODULE_MOUNT ,
107- self .edgeCert .get_cert_file_path (EC .EDGE_DEVICE_CA ))
96+ self .edge_cert .get_cert_file_path (EC .EDGE_DEVICE_CA ))
10897 edgedockerclient .start (inputContainer .get ('Id' ))
10998
11099 def config_solution (self , deployment_config , target ):
@@ -192,13 +181,13 @@ def _prepare_cert(self, edgedockerclient):
192181
193182 edgedockerclient .copy_file_to_volume (
194183 EdgeManager .CERT_HELPER , EdgeManager ._chain_cert (),
195- EdgeManager .HUB_MOUNT , self .edgeCert .get_cert_file_path (EC .EDGE_CHAIN_CA ))
184+ EdgeManager .HUB_MOUNT , self .edge_cert .get_cert_file_path (EC .EDGE_CHAIN_CA ))
196185 edgedockerclient .copy_file_to_volume (
197186 EdgeManager .CERT_HELPER , EdgeManager ._hubserver_pfx (),
198- EdgeManager .HUB_MOUNT , self .edgeCert .get_pfx_file_path (EC .EDGE_HUB_SERVER ))
187+ EdgeManager .HUB_MOUNT , self .edge_cert .get_pfx_file_path (EC .EDGE_HUB_SERVER ))
199188 edgedockerclient .copy_file_to_volume (
200189 EdgeManager .CERT_HELPER , self ._device_cert (),
201- EdgeManager .MODULE_MOUNT , self .edgeCert .get_cert_file_path (EC .EDGE_DEVICE_CA ))
190+ EdgeManager .MODULE_MOUNT , self .edge_cert .get_cert_file_path (EC .EDGE_DEVICE_CA ))
202191
203192 def start (self , modulesDict , routes ):
204193 return
@@ -217,7 +206,7 @@ def getOrAddModule(self, name, islocal):
217206
218207 def outputModuleCred (self , name , islocal , output_file ):
219208 connstrENV = 'EdgeHubConnectionString={0}' .format (self .getOrAddModule (name , islocal ))
220- deviceCAEnv = 'EdgeModuleCACertificateFile={0}' .format (self .edgeCert .get_cert_file_path (EC .EDGE_DEVICE_CA ))
209+ deviceCAEnv = 'EdgeModuleCACertificateFile={0}' .format (self .edge_cert .get_cert_file_path (EC .EDGE_DEVICE_CA ))
221210 cred = [connstrENV , deviceCAEnv ]
222211
223212 if output_file is not None :
@@ -231,8 +220,8 @@ def outputModuleCred(self, name, islocal, output_file):
231220
232221 def getModule (self , name , islocal ):
233222 moduleUri = "https://{0}/devices/{1}/modules/{2}?api-version=2017-11-08-preview" .format (
234- self .hostname , self .deviceId , name )
235- sas = Utils .get_iot_hub_sas_token (self .deviceUri , self .key , None )
223+ self .hostname , self .device_id , name )
224+ sas = Utils .get_iot_hub_sas_token (self .device_uri , self .access_key , None )
236225 res = requests .get (
237226 moduleUri ,
238227 headers = {
@@ -246,8 +235,8 @@ def getModule(self, name, islocal):
246235
247236 def addModule (self , name , islocal ):
248237 moduleUri = "https://{0}/devices/{1}/modules/{2}?api-version=2017-11-08-preview" .format (
249- self .hostname , self .deviceId , name )
250- sas = Utils .get_iot_hub_sas_token (self .deviceUri , self .key , None )
238+ self .hostname , self .device_id , name )
239+ sas = Utils .get_iot_hub_sas_token (self .device_uri , self .access_key , None )
251240 res = requests .put (
252241 moduleUri ,
253242 headers = {
@@ -256,7 +245,7 @@ def addModule(self, name, islocal):
256245 },
257246 data = json .dumps ({
258247 'moduleId' : name ,
259- 'deviceId' : self .deviceId
248+ 'deviceId' : self .device_id
260249 })
261250 )
262251 if res .ok is not True :
@@ -325,10 +314,10 @@ def _start_edge_hub(self, edgedockerclient, edgeHubConnStr, routes):
325314
326315 edgedockerclient .copy_file_to_volume (
327316 EdgeManager .EDGEHUB , EdgeManager ._chain_cert (),
328- EdgeManager .HUB_MOUNT , self .edgeCert .get_cert_file_path (EC .EDGE_CHAIN_CA ))
317+ EdgeManager .HUB_MOUNT , self .edge_cert .get_cert_file_path (EC .EDGE_CHAIN_CA ))
329318 edgedockerclient .copy_file_to_volume (
330319 EdgeManager .EDGEHUB , EdgeManager ._hubserver_pfx (),
331- EdgeManager .HUB_MOUNT , self .edgeCert .get_pfx_file_path (EC .EDGE_HUB_SERVER ))
320+ EdgeManager .HUB_MOUNT , self .edge_cert .get_pfx_file_path (EC .EDGE_HUB_SERVER ))
332321 edgedockerclient .start (hubContainer .get ('Id' ))
333322
334323 @staticmethod
0 commit comments