test-runner/adapters/adapter_creation.py (44 lines of code) (raw):
# Copyright (c) Microsoft. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for
# full license information.
from . import rest
from . import direct_azure_rest
api_surfaces = [
"module_client",
"device_client",
"wrapper",
"service",
"registry",
"eventhub",
"system_control",
]
def create_adapter(adapter_address, api_surface):
if api_surface not in api_surfaces:
raise ValueError("api_surface {} invalid".format(api_surface))
if adapter_address == "direct_rest":
return create_direct_azure_adapter(api_surface)
elif adapter_address.startswith("http"):
return create_rest_adapter(adapter_address, api_surface)
else:
raise ValueError("adapter_address {} invalid".format(adapter_address))
def create_direct_azure_adapter(api_surface):
if api_surface == "service":
return direct_azure_rest.ServiceApi()
elif api_surface == "registry":
return direct_azure_rest.RegistryApi()
elif api_surface == "eventhub":
return direct_azure_rest.EventHubApi()
else:
raise ValueError("direct_azure adapter for {} invalid".format(api_surface))
def create_rest_adapter(adapter_address, api_surface):
if api_surface == "module_client":
return rest.ModuleApi(adapter_address)
elif api_surface == "device_client":
return rest.DeviceApi(adapter_address)
elif api_surface == "wrapper":
return rest.ControlApi(adapter_address)
elif api_surface == "service":
return rest.ServiceApi(adapter_address)
elif api_surface == "registry":
return rest.RegistryApi(adapter_address)
elif api_surface == "system_control":
return rest.SystemControlApi(adapter_address)
else:
raise ValueError("rest adapter for {} invalid".format(api_surface))