示例#1
0
def populate_credentials():
    iothub_service_helper = IoTHubServiceHelper(
        settings.iothub.connection_string)

    if settings.iotedge.device_id:
        settings.iotedge.ca_cert_base64 = get_edge_ca_cert_base64()

    for device in (settings.leaf_device, settings.test_device):
        if device.device_id:
            if device.connection_type.startswith("connection_string"):
                device.connection_string = iothub_service_helper.get_device_connection_string(
                    device.device_id)
                if device.connection_type.endswith("_with_edge_gateway"):
                    device.connection_string += ";GatewayHostName={}".format(
                        settings.iotedge.hostname)
                print("Added connection string for {} device {}".format(
                    device.name, device.device_id))

    for module in (settings.test_module, settings.friend_module):
        if module.device_id and module.module_id:

            if (module.connection_type.startswith("connection_string")
                    or module.connection_type == "environment"):
                module.connection_string = iothub_service_helper.get_module_connection_string(
                    module.device_id, module.module_id)
                if (module.connection_type.endswith("_with_edge_gateway")
                        or module.connection_type == "environment"):
                    module.connection_string += ";GatewayHostName={}".format(
                        settings.iotedge.hostname)

                print("Added connection string for {} module {},{}".format(
                    module.name, module.device_id, module.module_id))
    settings.save()
def set_config_yaml():
    iothub_service_helper = IoTHubServiceHelper(
        settings.iothub.connection_string)
    settings.iotedge.connection_string = iothub_service_helper.get_device_connection_string(
        settings.iotedge.device_id)

    print("updating config.yaml to insert connection string")
    config_file = ConfigFile()
    config_file.contents["provisioning"][
        "device_connection_string"] = settings.iotedge.connection_string

    if ("IOTEDGE_DEBUG_LOG" in os.environ
            and os.environ["IOTEDGE_DEBUG_LOG"].lower() == "true"):
        print(
            "IOTEDGE_DEBUG_LOG is set. setting edgeAgent RuntimeLogLevel to debug"
        )
        config_file.contents["agent"]["env"]["RuntimeLogLevel"] = "debug"
    else:
        print(
            "IOTEDGE_DEBUG_LOG is not set. clearing edgeAgent RuntimeLogLevel")
        if "RuntimeLogLevel" in config_file.contents["agent"]["env"]:
            del config_file.contents["agent"]["env"]["RuntimeLogLevel"]

    config_file.save()
    settings.save()
    print("config.yaml updated")
示例#3
0
def remove_instance(settings_object):
    if settings_object.device_id:
        iothub_service_helper.try_delete_device(settings_object.device_id)
        print("Removed {} device with id {}".format(settings_object.name,
                                                    settings_object.device_id))
    settings.clear_object(settings_object)
    settings.save()
示例#4
0
def remove_instance(settings_object):
    iothub_service_helper = IoTHubServiceHelper(
        settings.iothub.connection_string)

    if hasattr(settings_object, "device_id") and settings_object.device_id:
        iothub_service_helper.try_delete_device(settings_object.device_id)
        print("Removed {} device with id {}".format(settings_object.name,
                                                    settings_object.device_id))

    settings.clear_object(settings_object)
    settings.save()
示例#5
0
def deploy_for_iothub(testMod_image):
    utilities.pull_docker_image(testMod_image)
    utilities.remove_old_instances()

    settings.horton.image = testMod_image
    settings.horton.language = utilities.get_language_from_image_name(
        testMod_image)
    settings.horton.is_windows = utilities.is_windows()

    device_id_base = utilities.get_random_device_name()

    host = connection_string_to_sas_token(
        settings.iothub.connection_string)["host"]
    print("Creating new device on hub {}".format(host))
    iothub_service_helper = IoTHubServiceHelper(
        settings.iothub.connection_string)

    settings.test_device.device_id = device_id_base + "_test_device"
    settings.test_device.connection_type = "connection_string"
    settings.test_device.host_port = testMod_host_port
    settings.test_device.container_name = "testMod"
    settings.test_device.object_type = "iothub_device"
    utilities.set_args_from_image(settings.test_device, testMod_image)
    iothub_service_helper.create_device(settings.test_device.device_id)

    settings.test_module.device_id = settings.test_device.device_id
    settings.test_module.module_id = "testMod"
    settings.test_module.connection_type = "connection_string"
    settings.test_module.host_port = testMod_host_port
    settings.test_module.container_name = "testMod"
    settings.test_module.object_type = "iothub_module"
    utilities.set_args_from_image(settings.test_module, testMod_image)
    iothub_service_helper.create_device_module(settings.test_module.device_id,
                                               settings.test_module.module_id)

    if settings.horton.is_windows:
        settings.net_control.adapter_address = None
    else:
        settings.net_control.test_destination = host

        if settings.horton.image == utilities.PYTHON_INPROC:
            settings.net_control.adapter_address = "http://localhost:{}".format(
                settings.net_control.container_port)
        else:
            settings.net_control.adapter_address = "http://localhost:{}".format(
                settings.net_control.host_port)

    if testMod_image != utilities.PYTHON_INPROC:
        utilities.create_docker_container(settings.test_module)

    settings.save()
def set_edge_configuration():
    edge_config = EdgeConfiguration()
    iothub_service_helper = IoTHubServiceHelper(
        settings.iothub.connection_string)

    for obj in (settings.test_module, settings.friend_module):
        edge_config.add_module_container(obj.module_id, obj.image,
                                         obj.container_port, obj.host_port)

    edge_config.add_routes_for_module("testMod")

    # apply the configuraiton
    iothub_service_helper.apply_configuration(settings.iotedge.device_id,
                                              edge_config.get_module_config())

    settings.save()
示例#7
0
def deploy_for_iothub(testMod_image):
    deploy_for_iotedge(testMod_image)

    settings.test_device.device_id = settings.leaf_device.device_id
    settings.test_device.language = settings.test_module.language
    settings.test_device.adapter_address = settings.test_module.adapter_address
    settings.test_device.connection_type = "connection_string"
    settings.test_device.host_port = settings.test_module.host_port
    settings.test_device.container_port = settings.test_module.container_port

    settings.test_module.connection_type = "connection_string"

    settings.clear_object(settings.leaf_device)
    settings.clear_object(settings.friend_module)

    settings.save()
示例#8
0
def set_edge_configuration(testMod_image):
    edge_config = EdgeConfiguration()

    # Add friend_module

    friendMod_image = (os.environ["IOTHUB_E2E_REPO_ADDRESS"] +
                       "/default-friend-module:latest")
    edge_config.add_module_container("friendMod", friendMod_image,
                                     friendMod_container_port,
                                     friendMod_host_port)
    settings.friend_module.device_id = settings.iotedge.device_id
    settings.friend_module.module_id = "friendMod"
    settings.friend_module.language = friendMod_language
    settings.friend_module.adapter_address = "http://{}:{}".format(
        "localhost", friendMod_host_port)
    settings.friend_module.connection_type = "environment"
    settings.friend_module.host_port = friendMod_host_port
    settings.friend_module.container_port = get_container_port_from_language(
        friendMod_language)

    # Add test_module

    testMod_language = get_language_from_image_name(testMod_image)
    testMod_container_port = get_container_port_from_language(testMod_language)

    edge_config.add_module_container("testMod", testMod_image,
                                     testMod_container_port, testMod_host_port)
    edge_config.add_routes_for_module("testMod")

    settings.test_module.device_id = settings.iotedge.device_id
    settings.test_module.module_id = "testMod"
    settings.test_module.language = testMod_language
    settings.test_module.adapter_address = "http://{}:{}".format(
        "localhost", testMod_host_port)
    settings.test_module.connection_type = "environment"
    settings.test_module.host_port = testMod_host_port
    settings.test_module.container_port = testMod_container_port

    # apply the configuraiton
    iothub_service_helper.apply_configuration(settings.iotedge.device_id,
                                              edge_config.get_module_config())

    settings.save()
def deploy_for_iotedge(test_image):

    _deploy_common(test_image)

    settings.iotedge.iotedge_host_name = utilities.get_computer_name()

    iothub_host_name = connection_string_to_sas_token(
        settings.iothub.connection_string)["host"]
    settings.iothub.iothub_host_name = iothub_host_name
    print("Creating new device on hub {}".format(iothub_host_name))
    iothub_service_helper = IoTHubServiceHelper(
        settings.iothub.connection_string)

    settings.iotedge.device_id = settings.horton.id_base + "_iotedge"
    iothub_service_helper.create_device(settings.iotedge.device_id, True)

    edge_deployment.add_edge_modules(test_image)
    edge_deployment.set_edge_configuration()

    # default leaf device to use test_module connection.  Fix this in conftest.py if we need to use friend_module
    settings.leaf_device.device_id = settings.horton.id_base + "_leaf_device"
    iothub_service_helper.create_device(settings.leaf_device.device_id, False)

    settings.leaf_device.connection_type = "connection_string_with_edge_gateway"
    settings.leaf_device.adapter_address = settings.test_module.adapter_address
    settings.leaf_device.language = settings.test_module.language
    settings.leaf_device.host_port = settings.test_module.host_port
    settings.leaf_device.container_port = settings.test_module.container_port
    settings.leaf_device.container_name = settings.test_module.container_name
    settings.leaf_device.iothub_host_name = iothub_host_name
    settings.leaf_device.object_type = "leaf_device"

    _deploy_system_control(settings.iotedge.iotedge_host_name)

    edge_deployment.set_config_yaml()
    edge_deployment.restart_iotedge()

    print("New IotEdge device created with device_id={}".format(
        settings.iotedge.device_id))

    add_longhaul_settings()

    settings.save()
def deploy_for_iothub(test_image):
    _deploy_common(test_image)

    iothub_host_name = connection_string_to_sas_token(
        settings.iothub.connection_string)["host"]
    print("Creating new device on hub {}".format(iothub_host_name))
    settings.iothub.iothub_host_name = iothub_host_name

    iothub_service_helper = IoTHubServiceHelper(
        settings.iothub.connection_string)

    settings.test_device.device_id = settings.horton.id_base + "_test_device"
    settings.test_device.connection_type = "connection_string"
    settings.test_device.host_port = testMod_host_port
    settings.test_device.container_name = "testMod"
    settings.test_device.object_type = "iothub_device"
    settings.test_device.iothub_host_name = iothub_host_name
    utilities.set_args_from_image(settings.test_device, test_image)
    iothub_service_helper.create_device(settings.test_device.device_id)

    settings.test_module.device_id = settings.test_device.device_id
    settings.test_module.module_id = "testMod"
    settings.test_module.connection_type = "connection_string"
    settings.test_module.host_port = testMod_host_port
    settings.test_module.container_name = "testMod"
    settings.test_module.object_type = "iothub_module"
    settings.test_module.iothub_host_name = iothub_host_name
    utilities.set_args_from_image(settings.test_module, test_image)
    iothub_service_helper.create_device_module(settings.test_module.device_id,
                                               settings.test_module.module_id)

    _deploy_system_control(iothub_host_name)

    if test_image != utilities.PYTHON_INPROC_IMAGE:
        utilities.create_docker_container(settings.test_module)

    add_longhaul_settings()

    settings.save()
示例#11
0
def deploy_for_iothub(testMod_image):
    utilities.remove_old_instances()

    settings.horton.image = testMod_image
    settings.horton.language = utilities.get_language_from_image_name(
        testMod_image)

    device_id_base = utilities.get_random_device_name()

    host = connection_string_to_sas_token(
        settings.iothub.connection_string)["host"]
    print("Creating new device on hub {}".format(host))
    iothub_service_helper = IoTHubServiceHelper(
        settings.iothub.connection_string)

    settings.test_device.device_id = device_id_base + "_test_device"
    settings.test_device.connection_type = "connection_string"
    settings.test_device.host_port = testMod_host_port
    settings.test_device.container_name = "testMod"
    utilities.set_args_from_image(settings.test_device, testMod_image)
    iothub_service_helper.create_device(settings.test_device.device_id)

    settings.test_module.device_id = settings.test_device.device_id
    settings.test_module.module_id = "testMod"
    settings.test_module.connection_type = "connection_string"
    settings.test_module.host_port = testMod_host_port
    settings.test_module.container_name = "testMod"
    utilities.set_args_from_image(settings.test_module, testMod_image)
    iothub_service_helper.create_device_module(settings.test_module.device_id,
                                               settings.test_module.module_id)

    settings.net_control.test_destination = host

    utilities.create_docker_container(settings.test_module)

    settings.save()