Граф коммитов

88 Коммитов

Автор SHA1 Сообщение Дата
Andrew Smith 40824ed28e
Edge Agent: Remove docker mode (#6452)
Removing docker mode from EdgeAgent. Synced with @marianan to confirm docker mode not used in our tooling. It certainly isn't used by the product.

I have removed docker command factory and related test. Reasoning:

> we have this docker command factory here:

https://github.com/Azure/iotedge/blob/main/edge-agent/src/Microsoft.Azure.Devices.Edge.Agent.Docker/DockerCommandFactory.cs



> This is not used for anything except for this E2E test:

https://github.com/Azure/iotedge/blob/main/edge-agent/test/Microsoft.Azure.Devices.Edge.Agent.Docker.E2E.Test/AgentTests.cs



> The E2E test doesn't make much sense to keep around for me, since the benefit of it on top of existing integration tests is to test whether the plan being executed manifests in docker containers state being altered. However it is not using the command factory we actually use, but a different one. In my opinion this makes it pointless.



> I'd like to remove both these files so I can fully remove DockerCommandFactory from EdgeAgent. This will also make it easier for the work we are doing now because we won't have to worry about altering DockerCommandFacotry.

## Azure IoT Edge PR checklist:
2022-07-13 20:26:03 +00:00
Damon Barry 85084e4f04
Remove experimental mqtt broker code (#6410)
This change removes `edge-hub/watchdog`  and most of `mqtt/` from the codebase and removes the experimental feature flag in Edge Hub. It also removes the test module `generic-mqtt-tester`, which is no longer needed. Finally, it removes several unused build/test pipelines, most of which were related to the broker.

To test, I ran the following pipelines:
- Build Images
- Edgelet Packages (pretty sure this one was unnecessary)
- Single-node End-to-end
- Single-node Connectivity
- Nested End-to-end

## Azure IoT Edge PR checklist:
2022-06-16 04:58:38 +00:00
Gaurav Kulkarni 9d955cdb22
Remove manifest trust from public access (#6363)
This PR removes:

- the manifest trust sample
- manifest trust related docs
- code coverage settings and project reference related to manifest trust


- [X] I have read the [contribution guidelines](https://github.com/azure/iotedge#contributing).
2022-05-23 22:47:42 +00:00
Andrew Smith 37234e02b5
Migrate to Dotnet 6 (#6214)
This PR migrates main branch from dotnet 3.1 to dotnet 6.0. This is working off of Damon's prior PR here:
https://github.com/Azure/iotedge/pull/6185

Code changes on top of the linked PR are minor. Only notable things:
1. Removed symlinks from arm64 dockerfiles that are no longer needed
2. TempfilterFunctions module is still on dotnet 3, as base image doesn't support dotnet 6 for arm32
3. EdgeHub watchdog has to shell out to sleep rather than call `thread::sleep()` to bypass a bug in rust. Logged a bug with rust repo.
4. Various retries added in E2E test code to get around problems caused by dotnet 6. Logged bugs with SDK team where appropriate.
5. Upgrade rust artifact build OS for amd64/arm* platforms to ubuntu 20 (from ubuntu 18).

Passing pipelines:
1. [Build Images](https://dev.azure.com/msazure/One/_build/results?buildId=54001600&view=results)
2. [CI](https://dev.azure.com/msazure/One/_build/results?buildId=53619492&view=results)
6. [E2E](https://dev.azure.com/msazure/One/_build/results?buildId=54004817&view=results)
7. [Nested E2E](https://dev.azure.com/msazure/One/_build/results?buildId=53668874&view=results)
8. [Connectivity](https://dev.azure.com/msazure/One/_build/results?buildId=53834451&view=results)
9. [Build Images Release](https://dev.azure.com/msazure/One/_build/results?buildId=53619579&view=results)



## Azure IoT Edge PR checklist:
2022-04-13 18:38:24 +00:00
Noel Campbell 3cc47b5d21
Move edge-modules/MetricsCollector to test/modules/TestMetricsCollector (#6240)
Move test metrics collector into test directory for clarity and consistency w/ 1.1 branch.

These changes were tested by running a build images pipeline followed by E2E and Connectivity Test pipelines.

## Azure IoT Edge PR checklist:
2022-03-30 02:14:28 +00:00
David Robson d81a032bcb
Remove k8s projects from master (#6060)
The K8s client is currently requiring a library (BouncyCastle) we are
attempting to remove from the project. Since the existing Edge on K8s
feature is tied to 1.1, I am removing it from main and 1.2 branches.


## Azure IoT Edge PR checklist:
2022-02-01 21:31:35 +00:00
hugues bouvier 22819dd7fb
iotedge check improvements for nested edge (#4608)
In nested environment, the diagnostic image extracts the trust bundle before establishing the communication with upstream.
Improved error message with a suggestion for our user.

Before it was just trusting the upstream CA.

Removed unused publishing of connectivity test.
Test:
Put a dummy CA inside the trustbundle. Confirmed it fails 
Put good CA, confirmed it passes
Checked in regular, non nested scenario for regression.
2021-03-17 22:08:49 +00:00
gaya e8d2bc2705
[Manifest Signing] Verify Twin Signatures for EA and EH (#3762)
Manifest Signing Feature flow in Edge: 
1. The deployment manifest is signed using Manifest signer client (exists in the sample folder of the solution). It adds integrity section for each module in this format below. Signature is computed based on the algorithm used and the hash of the content of the each module's desired properties. 
```json
"$edgeAgent": {
      "properties.desired": {
        "modules": {},
        "runtime": {},
        "schemaVersion": "1.0",
        "systemModules": {},
        "integrity": {
          "header": {
            "signercert": ["signercert1stpart", "signercert2ndpart"],
            "intermediatecacert": ["intermediatecacert1stpart", "intermediatecacert2ndpart"]
          },
          "signature": {
            "bytes": "signaturebytes",
            "algorithm": "ES256"
          }
        }
      }
    },
    "$edgeHub": {
      "properties.desired": {
        "routes": {},
        "schemaVersion": "1.0",
        "storeAndForwardConfiguration": {},
        "integrity": {
         "header": {
            "signercert": ["signercert1stpart", "signercert2ndpart"],
            "intermediatecacert": ["intermediatecacert1stpart", "intermediatecacert2ndpart"]
          },
          "signature": {
            "bytes": "signaturebytes",
            "algorithm": "ES256"
          }
        }
      }
    },
```
2. A signer cert is used to signed the deployment manifest is also added to the integrity section
3. When a signed deployment is deployed, the twins received by the modules are checked for valid signature before consuming the twin.  

What is this PR?
- Twin Signature validation checks on receiving full twin and patches for EA and EH 
- Schema change for EA deployment config
- Schema change for Edge hub config
- Added Test cases 
- Updated Manifest Signer client by removing manifest version 
- Manifest Signer client added as a sample( removed from tools) and now shares the JSON canonicalization from Edge Util
- Modified code coverage settings to exclude the open source code of JSON canonicalization 

What is not in this PR?
- iotedged workload API for manifest trust bundle and modules using the API for chaining verification
2021-02-24 19:08:42 +00:00
Lee Fitchett da7e75353a
EdgeAgent Direct Method Tests (#3569)
* GetModuleLogs returns an error message on too large payload instead of using tail 500

* remove flag

* ping test

* name

* timeout

* modulename

* fix expected

* get ea logs

* Make number logger

* uncomment setup

* test getmodule logs

* uploadtest

* fix file header

* check restart dm

* update dockerfile

* fix parsing response

* parse logs response

* log returns array

* correct expected

* add \n

* add delay

* more delay

* fix get logs expected

* test longer timeout

* increase timeout to test pi

* add other tests back

* Undo spacing changes

* codecov settings

* undo accidental merge changes

* fix status check for upload tests

* update image to close when requested

* reduce upload amount

* fix number logger delay code
2020-10-01 00:23:00 -07:00
Andrew Smith ef9524eddb
Refactor edge hub folder structure to move source code under "core/" (#3139) 2020-06-24 10:40:00 -07:00
Varun Puranik 90d5d0db3f Merge branch 'master' into iiot 2020-05-28 12:01:50 -07:00
Andrew Smith f87a18a487
Update codebase to dotnet 3.1. (#2996)
Same PR as here:
https://github.com/Azure/iotedge/pull/2896

The above PR wouldn't merge due to too many commits. Reopening a new one.
2020-05-22 17:02:05 +00:00
vipeller adabc5ae37
[MQTT] Added authentication HTTP endpoint for external processes (#2881)
MQTT Broker is running as an external process to EdgeHub, but relies on it to authenticate connecting clients. An HTTP endpoint is added to EdgeHub, which can receive different type of credentials (SAS token, certificates) and responses with yes/no, reflecting the authentication result.
The endpoint is designed for internal (in-container) use.

The main file is AuthAgentListener.cs, which handles the HTTP calls and dispatches the queries to the already implemented authentication machinery.
2020-05-20 16:38:46 +00:00
yophilav e206650f63
EdgeHub Restart Tester (Sender)
Overall changes:
- Introduce EdgeHubRestartTester module
- Introduce edgehub_restart_deployment.template.json
- Introduce EdgeHubRestartTester to Image Build pipeline
- Introduce EdgeHubRestartTester to Container Registry publish
- Make deployment file for connectivity test configurable from VSTS pipeline
- Muffled soon-to-be a new report type for EdgeHubRestartTester

The EdgeHub Restart Test does the following: 
1. The EdgeHubRestartTester sends an edgeHub-restart command to edgeAgent to restart the edgeHub module.
2. The EdgeHubRestartTester spins up parallel tasks (configurable) to 
  2.1 Send messages until a message is sent successfully
  2.2 Send directMethods until a directMethod is sent successfully
3. Record a time period between restart until either message or direct method succeed
4. Generate a test result for each of the sent methods { message, or directMethod }
5. For each corresponding result, trigger an appropriate TestResultCoordinator endpoint.
2020-02-05 13:29:50 -08:00
Damon Barry d7cb5c4323
Add .NET code coverage to the checkin build (#2393)
The change enables code coverage analysis for our .NET Core code in the checkin build, and (similar to our iotedged checkin build) fails the build if % line coverage is below a certain threshold. Current coverage is measuring at 61% so I set the threshold to 60%.

Note this change relies on the built-in code coverage functionality that has recently been added in .NET Core. Downsides are: it's currently only available on Windows, and it produces a .coverage file which has to be opened in Visual Studio. Upsides are: this is the "officially supported" option for Azure DevOps, so while support is minimal now, future improvements to analytics in DevOps would likely come for free. Also, because this option works out-of-the-box in the dotnet tooling, I was able to remove a **bunch** of gunk from our project files.

The other option would be to use the 3rd-party [Coverlet](https://github.com/tonerdo/coverlet) tool, which would allow us to run on Linux (might shave a couple minutes off job time) and outputs in Cobertura format just like our Rust code coverage. More details [here](https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-core?view=azure-devops#collect-code-coverage-metrics-with-coverlet). So we'd have a more consistent experience between languages. But we'd have to add back a bunch of project references in our test projects for arguably minimal benefit since this change seems to give us everything we need, at least for now.

This change also adds the "Unit" category to 132 unit tests which were not categorized.
2020-02-04 21:25:39 +00:00
dylanbronson 64c359442a
C2D Connectivity test modules (#2403)
Adding CloudToDeviceMessageTester project
2020-01-29 15:42:17 -08:00
Lee Fitchett 38f51011fa
Make metrics test framework (#2297) 2020-01-28 11:02:53 -08:00
gaya d824fb3991
[k8s] Map possible Pod/Container status to ModuleStatus (#2265)
* Mapping the pod status to the module status for Pending/Failed/Unknown

* Created Kubernetes Environment & its Provider to handle the module status reports to the IOT hub

* Updated the unit tests for handling the change in pod status to module status

* Removed blank line

* Pod status checks for container status before converting it to module status

* Unit test to reflect the new model of determining module status

* Update edge-agent/src/Microsoft.Azure.Devices.Edge.Agent.Kubernetes/KubernetesEnvironment.cs

Co-Authored-By: Denis Molokanov <dmolokanov@users.noreply.github.com>

* Updated unit tests

* fixing the braces

* fixed braces 2

* Fix build errors

* Debug mode changes to test code flow

* Updated status in debug mode

* changed moduleruntime status instead of dockerruntimestatus which gets reported to IOT

* Removed debug logs

* Resolve conflicts

* fix typo

* Fix typo in unit test

* More typo fix

* Simplified unit test

* Updated DockerModule priority parameter changes for k8s environment

* Fix typo in unit test names

* Updated the test cases with single responsbility approach

* start time format changes

* Refractoring

Co-authored-by: Denis Molokanov <dmolokanov@users.noreply.github.com>
2020-01-21 20:21:16 -08:00
Shantanu Singh 6fce17bddf
Support module priority in IoT Edge (#2186)
With this change, a new property ‘Priority’ will be added to the deployment configuration of each module. This value will be used by Edge Agent to determine the order in which all other modules are to be created.

The value of ‘Priority’ will be positive and zero-based with 0 being the highest priority value. A higher numeric ‘Priority’ value would indicate a lower priority assigned to that module. The maximum value of this property will be UInt32.MaxValue (4294967295).

Modules that possess the same priority will be created at the same time and will have no deterministic startup order imposed amongst themselves. Modules with higher priority values will be created and started first and once Edge Agent has made an attempt to create and start them (only the modules with a desired state of ‘Running’ will be started), it will proceed with the creation (and optionally startup) of other lower priority modules in order.

Edge Agent will not support the ‘Priority’ property and will by default have the highest priority of zero (0).

Modules that do not have a ‘Priority’ value specified will be started in a non-deterministic order (as is the case today) and will be assigned a priority of UInt32.MaxValue which indicates the lowest possible priority. Edge Agent will trigger the creation of these modules after all modules with a higher priority have been created.

Module boot ordering will initially not be supported for the Kubernetes execution mode of IoT Edge.
2020-01-16 10:27:04 +05:30
Philip Lin 50b182165b
module to test deployment update in connectivity test. (#2201)
Module to test deployment update in connectivity test.
2020-01-02 15:38:10 -08:00
Philip Lin 9f27a25406
Clean up Test Operation Result types and generated codes (#2209)
* Clean up TestOperationResult; and AnalyzerClient and TRC Client.
* Rename ClientTestResultOperation to TestResultOperationDto
* Update descriptions in swagger files.
2019-12-31 13:28:27 -08:00
Philip Lin 9772c40da2
Move test-related modules (#2199)
Move test-related modules to test/modules; and remove ModuleUtil dependencies from TempSensor and MetricsCollector.
2019-12-30 10:11:21 -08:00
yophilav dc51787e89
Update Long Haul and Image Build Pipeline to use the new Direct Method Sender Module
- Remove the old Direct Method Cloud Sender module
- Modify Long Haul pipeline to handle a new deployment for the new Direct Method Sender module
- Set the default value of the Direct Method Sender to be compatible with the old E2E pipeline
- Fix a broken reporting endpoint for Long Haul pipeline
2019-12-19 10:05:43 -08:00
Andrew Smith 6aadb5fb87
Add metrics collector to build pipeline (#2014)
* add metrics collector module to build pipeline
* add new metrics publishers for log analytics and eventhub
* fix edgehub crash when using experimental features by switching instance number file to guid
2019-12-19 09:50:04 -08:00
Philip Lin 1038b7bd9d
Report generator for messaging scenario in Connectivity test (#2103)
Add ITestResultReportGenerator with CountingReportGenerator implementation; plus add tests for it.
2019-12-12 11:35:17 -08:00
Anca Antochi c51606d21d
NetworkController module (#2040)
* NetworkController linux implementation
2019-12-11 17:13:15 -08:00
dylanbronson de59fe412c
Adding TestResultCoordinator file structure (#2073)
* Adding TestResultCoordinator file structure

* Adding sln file change

* Adding ModuleLib and Stylecop

* Add shutdown logic and remove unused reference
2019-12-06 11:03:55 -08:00
Andrew Smith 81a927c815
Twin / Direct Method testing (#1944)
Long Haul / Stress: 
- Direct Method now report status to analyzer
- Twin tests
2019-12-03 16:29:17 -08:00
Lee Fitchett fdf4052fd6
Metrics Scrape, Store and Upload (#1943)
This is the first part of the metrics pipeline. It allows agent to collect metrics and send them to iot hub.
2019-11-26 13:46:12 -08:00
dylanbronson b01f7f1c4e
Adding Relayer initial logic for connectivity tests (#2031)
* Adding Relayer initial logic for connectivity tests
2019-11-22 14:47:12 -08:00
Denis Molokanov b4a09d8916
[k8s] Add integration tests for edge operator (#1875)
- Add integration tests for k8s environment operator against kind cluster
- Install kind in ci pipeline
- Run integration tests against k8s cluster in ci pipeline on Linux
- Disable k8s integrations tests in ci pipeline on windows
2019-10-28 16:27:48 -07:00
Denis Molokanov 202f20c2a1 [k8s] Edge k8s integration (#1557)
* Add secret type for ImagePullSecret in k8s

* Get rid of fullname in the resourse definitions

* Add Kubernetes Mode to edgeagent env vars.

* Integrate Kubernetes into Edge Agent (#1556)

* Allow Kubernetes mode to be activated

* Manage service accounts from edge agent

* Add back module start

* Make iotedged have cluster role to allow token review.

* Add trust bundle for each module (#1607)

* [k8s] Add missed env variables for EA (#1623)

* Added missing env vars to edgeagent deployment
* Remove service account env for edgeagent

* Fix formating errors after stub change

* Namespace those custom objects.

* Set management and workload api urls as default for k8s
Update edgeagent role

* Planner needs namespace, not gatewayhostname

* Add edgedeployments rbac for iotedged

* add edgedeployment rbac to iotedged, too.

* Add strict serialization rules (#1644)

* Use KUBECONFIG to get kubernetes config first

* [k8s] Refactor edge deployment serde (#1686)

* Do not deleted service accounts if deloyment is updated, fix hubname in
iotedged.

* Update edgelet/edgelet-kube/src/convert/mod.rs

Co-Authored-By: Denis Molokanov <dmolokanov@users.noreply.github.com>

* Update edgelet/edgelet-kube/src/convert/mod.rs

Co-Authored-By: Denis Molokanov <dmolokanov@users.noreply.github.com>

* Missed a few places to use dns_domain.

* Config map names given to EdgeAgent (#1703)

* Service account names match original module id in annotations

* [k8s] Refactor CrdWatcher (#1708)

- Renamed CrdWatchOperator to EdgeDeploymentOperator
- Renamed CrdWatcher to EdgeDeploymentController
- EdgeDeploymentOperator only
   1. watch CRD and delegates modules deployment on k8s to EdgeDeploymentController
   2. stores current modules
- EdgeDeploymentController make all checks against k8s api and deploy modules with services and service accounts

* add check for config map names

* [k8s] Refactor runtime info provider (#1714)

* Add resource name preconditions

* Rename CRD -> EdgeDeployment

* Start operators in Program.cs

* Get k8s systeminfo from edgelet (#1717)

* [k8s] Refactor RBAC for iotedged (#1726)

- Refactor iotedged ClusterRole to several small scoped roles
- Added doc describing RBAC we are using

* [k8s] Refactor docker to k8s primitives conversion (#1733)

* [k8s] Combined docker config comparison. (#1734)

* [k8s] Lifecycle manager for kubernetes needs to return all active modules. (#1748)

* Make the internal workings a virtual function,
so I can override in k8s mode.

* Move "proxy" constants to k8s constants.

* [k8s] Spec: Kubernetes experimental extensions for createOptions (#1753)

* Add spec to k8s create options extensions (volumes, nodeSelector, resources)
2019-09-29 12:12:39 -07:00
Philip Lin 963612a649
update StyleCop version and fix style errors. (#1436)
Update StyleCop version and fix style errors.
2019-07-11 16:53:44 -07:00
Damon Barry 9704bb79d9
Specify credentials for multiple container registries in the tests (#1411)
* Specify credentials for multiple container registries in the tests
* Add test project back into SLN
2019-07-03 16:27:01 -07:00
David Robson f76f906184
[k8s]Create an IRuntimeInfo for Kubernetes. (#1343)
* KubeUtils and test

* System Info test complete

* Successful happy path (add 3 modules)

* Added a modified and a deleted pod test.

* Some fixes and formatting improvements.

* KubeUtils produces errors if names are too long.

* add null and empty checks

* Remove KubeUtils.K8sNamespace, pass in namespace instead.

* KubeUtils doesn't need a constructor now.

* Convert array check to use hashset.

* Remove length parameter from SanitizeDNSValue as it's no longer needed.
2019-06-28 15:10:05 -07:00
Damon Barry 8d03206e2c
Add module-to-module direct method end-to-end tests (#1260)
The change adds the module-to-module direct method test to our growing suite of end-to-end tests that will replace IotEdgeQuickstart. The test is parameterized on the module-to-edge protocol, so there are four tests in all (AMQP, MQTT, AMQP-WS & MQTT-WS).

Now that there's more than one test in the suite, I've updated the infrastructure so that we run setup (i.e., create a new device identity and install IoT Edge daemon on the test device) and teardown once for the _suite_, instead of per test. To do that I replaced the console app with a regular test framework. Our existing unit/integration tests use Xunit, but I chose NUnit for the end-to-end tests because it can output log messages to the console _during_ the test run, instead of just at the end. Since the tests run for several minutes each and we're impatient, it's nice to be able to look at the console (or build dashboard) and see that things are moving along.

I've refactored a few things in the common library as needed for this change, but there will certainly be more as we add more tests. I still think each test should be shorter and easier to read, but we need to add a wider range of tests (like e.g. the transparent gateway test) before I know how best to refactor them.
2019-06-19 17:39:46 -07:00
David Robson 2def7b4fe1
Add k8s Project (#1203)
* Adding k8s project, making changes to get it to build.

* Remove the objects that wil require unit testing.
2019-05-10 17:16:42 -07:00
Damon Barry d4094df3be
Create temp sensor end-to-end test using new shared lib (#1118) 2019-04-26 13:36:00 -07:00
Philip Lin bb4d884ec6
Add DirectMethodCloudSender for long haul test (#861)
* create a new ModuleLib project and fix some warnings in Leaf device

* Add Load Gen and Message Analyzer in images build

* Update NuGet for loadgen

* add a space in function sample name

* remove module user from direct method receiver docker file

* Create a new module DirectMethodCloudSender to test Direct Method from Cloud to Module and it will be added to long hual test
2019-02-22 09:04:56 -08:00
Philip Lin 587a9adc94
Refactor Modules (#845)
* Refactor to reuse commond logic.

* create a new ModuleUtil project and fix some warnings in Leaf device

* make sure all module use ShutdownHandler.

* Add Load Gen and Message Analyzer in Windows images build

* Update NuGet for loadgen

* add a space in function sample name

* remove module user from direct method receiver docker file
2019-02-20 06:08:56 -08:00
Philip Lin 44a60632b4
Build dotnet using CheckInBuild configuration for checkin build (#473)
Add CheckInBuild configuration in the solution for check in build.
2018-11-29 20:02:01 -08:00
Angelo Ribeiro e54b001df2
Adding 2 Modules for E2E Tests - Module to Module DM. (#316)
* Adding 2 Modules for E2E Tests - Module to Module DM.

* Addressing code review comments.
2018-09-20 21:40:14 -07:00
Anca Antochi 8a0f18ab2c
Remove functions binding version from csproj and add function sdk to sample (#259)
* Remove version from csproj

* Add functions sdk in functions sample

* Update nuget.config
2018-09-11 16:44:21 -07:00
Varun Puranik f48c780eac Make UpstreamProtocol case insensitive (#264)
* Make UpstreamProtocol case insensitive

* Add Tests
2018-09-11 12:47:42 -07:00
Anca Antochi 1bc69d1e8b
Update functions binding to 2.0 model (#201) 2018-09-05 16:37:58 -07:00
Angelo Ribeiro 23eb1a5221
Adding LeafDevice tool for transparent Gateway E2E Test. (#208)
* Adding the Leaf Device Client for E2E Tests.

* Add message Validation based on GUID, so we make sure the message we are getting is unique.

* Using Device Connection String, instead of iotHub Connection String.

* Fix small typo on LeafDevice Program.cs
2018-08-27 16:27:45 -07:00
Philip Lin e854f9d10b
Clean up C# solution (#116)
* Clean up solution.
1. remove script folder from solution since scripts should not be referenced by solution. 
2. remove certificate folder that doesn't exist from Microsoft.Azure.Devices.Edge.Util project.
2018-08-06 13:01:19 -07:00
Anca Antochi f5a730c821
Analyzer module (#86) 2018-07-31 10:34:11 -07:00
Raj Vengalil a4c8403930 Merged PR 957020: Add load generator module
This code implements a module that can be used to generate telemetry and twin update loads on Edge Hub. It supports the following configuration options that can be set via environment variables (all of them are optional):
- `messageFrequency` - Defines the frequency at which messages should be generated specified as a string that can be parsed into a `TimeSpan`.
- `messageSizeInBytes` - Defines how big the data (which are randomly generated) in each telemetry message should be in bytes.
- `jitterFactor` - Specifies the jitter in frequency, i.e., how much randomness to add with respect to the frequency of telemetry and twin updates. This must be a value between `0.0` and `1.0`.
- `transportType` - Defines what transport to use. Can specify any of the values that the `TransportType` enumeration can be deserialized into.
- `outputName` - The output to which events should be published.
- `twinUpdateFrequency` - Defines the frequency at which twin updates should be sent.

A typical message generated by this module would look like this:
```json
{
  "sequenceNumber": 42,
  "data": [random byte array of length messageSizeInBytes],
  "hash": [SHA256 hash of 'data']
}
```

A typical twin reported property update would look like this:
```json
{
  messagesSent: [count of messages sent so far]
}
```
2018-07-17 00:21:42 +00:00
Raj Vengalil 3415b8bf8e Merged PR 835849: Volume mount workload socket for modules
Volume mount workload socket for modules in Edge Agent
2018-05-16 02:25:19 +00:00