iotedgedev 3.3.4__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. s/.devcontainer/Dockerfile +75 -0
  2. s/.devcontainer/devcontainer.json +40 -0
  3. s/.devcontainer/library-scripts/docker-in-docker-debian.sh +236 -0
  4. s/.env.tmp +108 -0
  5. s/.git/FETCH_HEAD +61 -0
  6. s/.git/HEAD +1 -0
  7. s/.git/config +12 -0
  8. s/.git/description +1 -0
  9. s/.git/hooks/applypatch-msg.sample +15 -0
  10. s/.git/hooks/commit-msg.sample +24 -0
  11. s/.git/hooks/fsmonitor-watchman.sample +173 -0
  12. s/.git/hooks/post-update.sample +8 -0
  13. s/.git/hooks/pre-applypatch.sample +14 -0
  14. s/.git/hooks/pre-commit.sample +49 -0
  15. s/.git/hooks/pre-merge-commit.sample +13 -0
  16. s/.git/hooks/pre-push.sample +53 -0
  17. s/.git/hooks/pre-rebase.sample +169 -0
  18. s/.git/hooks/pre-receive.sample +24 -0
  19. s/.git/hooks/prepare-commit-msg.sample +42 -0
  20. s/.git/hooks/push-to-checkout.sample +78 -0
  21. s/.git/hooks/update.sample +128 -0
  22. s/.git/index +0 -0
  23. s/.git/info/exclude +6 -0
  24. s/.git/logs/HEAD +1 -0
  25. s/.git/logs/refs/remotes/origin/EO +1 -0
  26. s/.git/logs/refs/remotes/origin/avagraw/security_fix +1 -0
  27. s/.git/logs/refs/remotes/origin/cherry-pick-rename +1 -0
  28. s/.git/logs/refs/remotes/origin/chyuan/fix-validation-not-fail-test +1 -0
  29. s/.git/logs/refs/remotes/origin/chyuan/update-linux-agent +1 -0
  30. s/.git/logs/refs/remotes/origin/dependabot/pip/pyyaml-5.4 +1 -0
  31. s/.git/logs/refs/remotes/origin/eliises/add-device-tagging-docs +1 -0
  32. s/.git/logs/refs/remotes/origin/main +1 -0
  33. s/.git/logs/refs/remotes/origin/ray-deps +1 -0
  34. s/.git/logs/refs/remotes/origin/ray-dev-setup +1 -0
  35. s/.git/logs/refs/remotes/origin/ray-tox +1 -0
  36. s/.git/logs/refs/remotes/origin/release-pipeline-automation +1 -0
  37. s/.git/logs/refs/remotes/origin/spmcdono/fix-pipeline-test-install +1 -0
  38. s/.git/logs/refs/remotes/origin/spmcdono/layered-deployments +1 -0
  39. s/.git/logs/refs/remotes/origin/spmcdono/pypi-package-test-pipeline +1 -0
  40. s/.git/logs/refs/remotes/origin/spmcdono/remove-py2 +1 -0
  41. s/.git/logs/refs/remotes/origin/spmcdono/remove-py2-dev +1 -0
  42. s/.git/logs/refs/remotes/origin/spmcdono/test-native-runtime-install +1 -0
  43. s/.git/logs/refs/remotes/origin/spmcdono/update-pipeline +1 -0
  44. s/.git/logs/refs/remotes/origin/user/marine/EliiseS/devcontainer +1 -0
  45. s/.git/logs/refs/remotes/origin/user/marine/fixsimver +1 -0
  46. s/.git/logs/refs/remotes/origin/user/marine/layereddeploymentsbuildtest +1 -0
  47. s/.git/logs/refs/remotes/origin/user/marine/master-to-main +1 -0
  48. s/.git/logs/refs/remotes/origin/user/marine/pipeline +1 -0
  49. s/.git/logs/refs/remotes/origin/user/vikas +1 -0
  50. s/.git/logs/refs/remotes/origin/user/vikas0212/verify-tests +1 -0
  51. s/.git/logs/refs/remotes/origin/user/vikas2 +1 -0
  52. s/.git/logs/refs/remotes/origin/user/vikas_pypi +1 -0
  53. s/.git/logs/refs/remotes/origin/user/vikas_pypi-1 +1 -0
  54. s/.git/logs/refs/remotes/origin/user/vikas_testing +1 -0
  55. s/.git/logs/refs/remotes/origin/user/xinzed/dps_conn_str +1 -0
  56. s/.git/logs/refs/remotes/origin/user/xinzed/update-python-docker +1 -0
  57. s/.git/logs/refs/remotes/origin/vikas/azure +1 -0
  58. s/.git/logs/refs/remotes/origin/vikas/dependebot +1 -0
  59. s/.git/logs/refs/remotes/origin/xinzed/3_1_0rc1 +1 -0
  60. s/.git/logs/refs/remotes/origin/xinzed/update-runtime +1 -0
  61. s/.git/objects/pack/pack-a8179feb7da51d11a42c37c5b3c8593cffe17075.idx +0 -0
  62. s/.git/objects/pack/pack-a8179feb7da51d11a42c37c5b3c8593cffe17075.pack +0 -0
  63. s/.git/refs/remotes/origin/EO +1 -0
  64. s/.git/refs/remotes/origin/avagraw/security_fix +1 -0
  65. s/.git/refs/remotes/origin/cherry-pick-rename +1 -0
  66. s/.git/refs/remotes/origin/chyuan/fix-validation-not-fail-test +1 -0
  67. s/.git/refs/remotes/origin/chyuan/update-linux-agent +1 -0
  68. s/.git/refs/remotes/origin/dependabot/pip/pyyaml-5.4 +1 -0
  69. s/.git/refs/remotes/origin/eliises/add-device-tagging-docs +1 -0
  70. s/.git/refs/remotes/origin/main +1 -0
  71. s/.git/refs/remotes/origin/ray-deps +1 -0
  72. s/.git/refs/remotes/origin/ray-dev-setup +1 -0
  73. s/.git/refs/remotes/origin/ray-tox +1 -0
  74. s/.git/refs/remotes/origin/release-pipeline-automation +1 -0
  75. s/.git/refs/remotes/origin/spmcdono/fix-pipeline-test-install +1 -0
  76. s/.git/refs/remotes/origin/spmcdono/layered-deployments +1 -0
  77. s/.git/refs/remotes/origin/spmcdono/pypi-package-test-pipeline +1 -0
  78. s/.git/refs/remotes/origin/spmcdono/remove-py2 +1 -0
  79. s/.git/refs/remotes/origin/spmcdono/remove-py2-dev +1 -0
  80. s/.git/refs/remotes/origin/spmcdono/test-native-runtime-install +1 -0
  81. s/.git/refs/remotes/origin/spmcdono/update-pipeline +1 -0
  82. s/.git/refs/remotes/origin/user/marine/EliiseS/devcontainer +1 -0
  83. s/.git/refs/remotes/origin/user/marine/fixsimver +1 -0
  84. s/.git/refs/remotes/origin/user/marine/layereddeploymentsbuildtest +1 -0
  85. s/.git/refs/remotes/origin/user/marine/master-to-main +1 -0
  86. s/.git/refs/remotes/origin/user/marine/pipeline +1 -0
  87. s/.git/refs/remotes/origin/user/vikas +1 -0
  88. s/.git/refs/remotes/origin/user/vikas0212/verify-tests +1 -0
  89. s/.git/refs/remotes/origin/user/vikas2 +1 -0
  90. s/.git/refs/remotes/origin/user/vikas_pypi +1 -0
  91. s/.git/refs/remotes/origin/user/vikas_pypi-1 +1 -0
  92. s/.git/refs/remotes/origin/user/vikas_testing +1 -0
  93. s/.git/refs/remotes/origin/user/xinzed/dps_conn_str +1 -0
  94. s/.git/refs/remotes/origin/user/xinzed/update-python-docker +1 -0
  95. s/.git/refs/remotes/origin/vikas/azure +1 -0
  96. s/.git/refs/remotes/origin/vikas/dependebot +1 -0
  97. s/.git/refs/remotes/origin/xinzed/3_1_0rc1 +1 -0
  98. s/.git/refs/remotes/origin/xinzed/update-runtime +1 -0
  99. s/.git/refs/tags/v0.49.0 +1 -0
  100. s/.git/refs/tags/v0.50.0 +1 -0
  101. s/.git/refs/tags/v0.51.0 +1 -0
  102. s/.git/refs/tags/v0.52.0 +1 -0
  103. s/.git/refs/tags/v0.53.0 +1 -0
  104. s/.git/refs/tags/v0.54.0 +1 -0
  105. s/.git/refs/tags/v0.55.0 +1 -0
  106. s/.git/refs/tags/v0.56.0 +1 -0
  107. s/.git/refs/tags/v0.57.0 +1 -0
  108. s/.git/refs/tags/v0.58.0 +1 -0
  109. s/.git/refs/tags/v0.59.0 +1 -0
  110. s/.git/refs/tags/v0.60.0 +1 -0
  111. s/.git/refs/tags/v0.61.0 +1 -0
  112. s/.git/refs/tags/v0.62.0 +1 -0
  113. s/.git/refs/tags/v0.63.0 +1 -0
  114. s/.git/refs/tags/v0.64.0 +1 -0
  115. s/.git/refs/tags/v0.65.0 +1 -0
  116. s/.git/refs/tags/v0.66.0 +1 -0
  117. s/.git/refs/tags/v0.67.0 +1 -0
  118. s/.git/refs/tags/v0.68.0 +1 -0
  119. s/.git/refs/tags/v0.69.0 +1 -0
  120. s/.git/refs/tags/v0.70.0 +1 -0
  121. s/.git/refs/tags/v0.71.0 +1 -0
  122. s/.git/refs/tags/v0.72.0 +1 -0
  123. s/.git/refs/tags/v0.73.0 +1 -0
  124. s/.git/refs/tags/v0.74.0 +1 -0
  125. s/.git/refs/tags/v0.75.0 +1 -0
  126. s/.git/refs/tags/v0.76.0 +1 -0
  127. s/.git/refs/tags/v0.77.0 +1 -0
  128. s/.git/refs/tags/v0.78.0 +1 -0
  129. s/.git/refs/tags/v0.79.0 +1 -0
  130. s/.git/refs/tags/v0.82.0 +1 -0
  131. s/.git/refs/tags/v0.82.0-container +1 -0
  132. s/.git/refs/tags/v1.0.0 +1 -0
  133. s/.git/refs/tags/v1.1.0 +1 -0
  134. s/.git/refs/tags/v1.2.0 +1 -0
  135. s/.git/refs/tags/v1.3.0 +1 -0
  136. s/.git/refs/tags/v2.0.0 +1 -0
  137. s/.git/refs/tags/v2.0.1 +1 -0
  138. s/.git/refs/tags/v2.0.2 +1 -0
  139. s/.git/refs/tags/v2.1.0 +1 -0
  140. s/.git/refs/tags/v2.1.1 +1 -0
  141. s/.git/refs/tags/v2.1.2 +1 -0
  142. s/.git/refs/tags/v2.1.3 +1 -0
  143. s/.git/refs/tags/v2.1.4 +1 -0
  144. s/.git/refs/tags/v2.1.6 +1 -0
  145. s/.git/refs/tags/v2.2.0 +1 -0
  146. s/.git/refs/tags/v3.0.0 +1 -0
  147. s/.git/refs/tags/v3.0.0-rc +1 -0
  148. s/.git/refs/tags/v3.1.0 +1 -0
  149. s/.git/refs/tags/v3.1.1 +1 -0
  150. s/.git/refs/tags/v3.1.2 +1 -0
  151. s/.git/refs/tags/v3.2.0 +1 -0
  152. s/.git/refs/tags/v3.2.0rc0 +1 -0
  153. s/.git/refs/tags/v3.3.0 +1 -0
  154. s/.git/refs/tags/v3.3.1 +1 -0
  155. s/.git/refs/tags/v3.3.2 +1 -0
  156. s/.git/refs/tags/v3.3.3 +1 -0
  157. s/.git/refs/tags/v3.3.3-rc0 +1 -0
  158. s/.git/refs/tags/v3.3.4 +1 -0
  159. s/.github/ISSUE_TEMPLATE/bug_report.md +16 -0
  160. s/.github/ISSUE_TEMPLATE/feature_request.md +7 -0
  161. s/.github/workflows/wiki.yml +54 -0
  162. s/.gitignore +103 -0
  163. s/.vscode/launch.json +26 -0
  164. s/.vscode/settings.json +30 -0
  165. s/CHANGELOG.md +156 -0
  166. s/CODE_OF_CONDUCT.md +1 -0
  167. s/CONTRIBUTING.md +122 -0
  168. s/LICENSE +14 -0
  169. s/MANIFEST.in +7 -0
  170. s/Makefile +87 -0
  171. s/README.md +204 -0
  172. s/assets/armdeployment.png +0 -0
  173. s/assets/armoutputs.png +0 -0
  174. s/assets/deploy/ARMDeployment/ARMDeployment.deployproj +36 -0
  175. s/assets/deploy/ARMDeployment/Deploy-AzureResourceGroup.ps1 +118 -0
  176. s/assets/deploy/ARMDeployment/azuredeploy.json +145 -0
  177. s/assets/deploy/ARMDeployment/azuredeploy.parameters.json +6 -0
  178. s/assets/deploy/ARMDeployment.sln +25 -0
  179. s/assets/edgedevtool2mins.png +0 -0
  180. s/assets/edgedevtoolintro.png +0 -0
  181. s/assets/edgedevtoolquickstartlarge.png +0 -0
  182. s/assets/edgedevtoolquickstartsmall.png +0 -0
  183. s/assets/edgedevtoolwsl.png +0 -0
  184. s/azure-pipelines.yml +144 -0
  185. s/build/lib/iotedgedev/__init__.py +6 -0
  186. s/build/lib/iotedgedev/args.py +18 -0
  187. s/build/lib/iotedgedev/azurecli.py +542 -0
  188. s/build/lib/iotedgedev/buildoptionsparser.py +151 -0
  189. s/build/lib/iotedgedev/buildprofile.py +5 -0
  190. s/build/lib/iotedgedev/cli.py +830 -0
  191. s/build/lib/iotedgedev/connectionstring.py +58 -0
  192. s/build/lib/iotedgedev/constants.py +12 -0
  193. s/build/lib/iotedgedev/containerregistry.py +5 -0
  194. s/build/lib/iotedgedev/decorators.py +116 -0
  195. s/build/lib/iotedgedev/deploymentmanifest.py +313 -0
  196. s/build/lib/iotedgedev/dockercls.py +255 -0
  197. s/build/lib/iotedgedev/dotnet.py +31 -0
  198. s/build/lib/iotedgedev/edge.py +33 -0
  199. s/build/lib/iotedgedev/envvars.py +240 -0
  200. s/build/lib/iotedgedev/iothub.py +65 -0
  201. s/build/lib/iotedgedev/module.py +62 -0
  202. s/build/lib/iotedgedev/modules.py +332 -0
  203. s/build/lib/iotedgedev/organizedgroup.py +48 -0
  204. s/build/lib/iotedgedev/output.py +57 -0
  205. s/build/lib/iotedgedev/simulator.py +58 -0
  206. s/build/lib/iotedgedev/solution.py +48 -0
  207. s/build/lib/iotedgedev/telemetry.py +155 -0
  208. s/build/lib/iotedgedev/telemetryconfig.py +85 -0
  209. s/build/lib/iotedgedev/telemetryuploader.py +53 -0
  210. s/build/lib/iotedgedev/template/.env.tmp +87 -0
  211. s/build/lib/iotedgedev/template/.gitignore +10 -0
  212. s/build/lib/iotedgedev/template/deployment.template.json +79 -0
  213. s/build/lib/iotedgedev/template/launch_c.json +50 -0
  214. s/build/lib/iotedgedev/template/launch_csharp.json +43 -0
  215. s/build/lib/iotedgedev/template/launch_java.json +27 -0
  216. s/build/lib/iotedgedev/template/launch_node.json +36 -0
  217. s/build/lib/iotedgedev/template/launch_python.json +22 -0
  218. s/build/lib/iotedgedev/utility.py +179 -0
  219. s/build/lib/iotedgedev/version.py +4 -0
  220. s/build.sh +150 -0
  221. s/cleanup.sh +7 -0
  222. s/dist/iotedgedev-3.3.4-py3-none-any.whl +0 -0
  223. s/docker/tool/build-docker.sh +168 -0
  224. s/docker/tool/deps.txt +7 -0
  225. s/docker/tool/linux/Dockerfile +7 -0
  226. s/docker/tool/linux/Dockerfile.base +61 -0
  227. s/docker/tool/linux/install-dev.sh +8 -0
  228. s/docker/tool/linux/run.ps1 +5 -0
  229. s/docker/tool/linux/run.sh +5 -0
  230. s/docker/tool/push-docker.sh +35 -0
  231. s/docker/tool/windows/Dockerfile +4 -0
  232. s/docker/tool/windows/Dockerfile.base +63 -0
  233. s/docker/tool/windows/install-dev.bat +4 -0
  234. s/docker/tool/windows/run.ps1 +30 -0
  235. s/docs/Azure-Setup.md +102 -0
  236. s/docs/Command-List.md +564 -0
  237. s/docs/Command-Tips.md +51 -0
  238. s/docs/Edge-Device-Setup.md +23 -0
  239. s/docs/Home.md +10 -0
  240. s/docs/Manual-Dev-Machine-Setup.md +77 -0
  241. s/docs/Migration-Guides.md +131 -0
  242. s/docs/Overview.md +66 -0
  243. s/docs/Python-Virtual-Environment-Setup.md +35 -0
  244. s/docs/Quickstart-with-IoT-Edge-Dev-Container.md +145 -0
  245. s/docs/Test-Coverage.md +7 -0
  246. s/docs/Troubleshooting.md +21 -0
  247. s/docs/Usage.md +123 -0
  248. s/docs/_Sidebar.md +13 -0
  249. s/iotedgedev/__init__.py +6 -0
  250. s/iotedgedev/args.py +18 -0
  251. s/iotedgedev/azurecli.py +542 -0
  252. s/iotedgedev/buildoptionsparser.py +151 -0
  253. s/iotedgedev/buildprofile.py +5 -0
  254. s/iotedgedev/cli.py +830 -0
  255. s/iotedgedev/connectionstring.py +58 -0
  256. s/iotedgedev/constants.py +12 -0
  257. s/iotedgedev/containerregistry.py +5 -0
  258. s/iotedgedev/decorators.py +116 -0
  259. s/iotedgedev/deploymentmanifest.py +313 -0
  260. s/iotedgedev/dockercls.py +255 -0
  261. s/iotedgedev/dotnet.py +31 -0
  262. s/iotedgedev/edge.py +33 -0
  263. s/iotedgedev/envvars.py +240 -0
  264. s/iotedgedev/iothub.py +65 -0
  265. s/iotedgedev/module.py +62 -0
  266. s/iotedgedev/modules.py +332 -0
  267. s/iotedgedev/organizedgroup.py +48 -0
  268. s/iotedgedev/output.py +57 -0
  269. s/iotedgedev/simulator.py +58 -0
  270. s/iotedgedev/solution.py +48 -0
  271. s/iotedgedev/telemetry.py +155 -0
  272. s/iotedgedev/telemetryconfig.py +85 -0
  273. s/iotedgedev/telemetryuploader.py +53 -0
  274. s/iotedgedev/template/.env.tmp +87 -0
  275. s/iotedgedev/template/.gitignore +10 -0
  276. s/iotedgedev/template/deployment.template.json +79 -0
  277. s/iotedgedev/template/launch_c.json +50 -0
  278. s/iotedgedev/template/launch_csharp.json +43 -0
  279. s/iotedgedev/template/launch_java.json +27 -0
  280. s/iotedgedev/template/launch_node.json +36 -0
  281. s/iotedgedev/template/launch_python.json +22 -0
  282. s/iotedgedev/utility.py +179 -0
  283. s/iotedgedev/version.py +4 -0
  284. s/iotedgedev.egg-info/PKG-INFO +21 -0
  285. s/iotedgedev.egg-info/SOURCES.txt +100 -0
  286. s/iotedgedev.egg-info/dependency_links.txt +1 -0
  287. s/iotedgedev.egg-info/entry_points.txt +3 -0
  288. s/iotedgedev.egg-info/not-zip-safe +1 -0
  289. s/iotedgedev.egg-info/requires.txt +18 -0
  290. s/iotedgedev.egg-info/top_level.txt +1 -0
  291. s/pull_request_template.md +9 -0
  292. s/pytest.ini +4 -0
  293. s/requirements.txt +12 -0
  294. s/requirements_dev.txt +17 -0
  295. s/scripts/gen-help-markdown.bat +177 -0
  296. s/scripts/install-pip.sh +1 -0
  297. s/scripts/setup-wsl.sh +7 -0
  298. s/setup.cfg +18 -0
  299. s/setup.py +66 -0
  300. s/tests/__init__.py +5 -0
  301. s/tests/assets/deployment.manifest_invalid.json +106 -0
  302. s/tests/assets/deployment.manifest_invalid_createoptions.json +102 -0
  303. s/tests/assets/deployment.manifest_invalid_schema.json +69 -0
  304. s/tests/assets/deployment.template.non_str_placeholder.json +79 -0
  305. s/tests/assets/deployment.template_1.json +163 -0
  306. s/tests/assets/deployment.template_2.json +163 -0
  307. s/tests/assets/deployment.template_3.json +174 -0
  308. s/tests/assets/deployment.template_4.json +79 -0
  309. s/tests/assets/deployment.template_invalidresult.json +183 -0
  310. s/tests/assets/deployment.template_without_schema_template.json +99 -0
  311. s/tests/assets/launch.json +225 -0
  312. s/tests/assets/launch_without_nodejs.json +194 -0
  313. s/tests/assets/test_solution_shared_lib/.gitignore +2 -0
  314. s/tests/assets/test_solution_shared_lib/.vscode/launch.json +43 -0
  315. s/tests/assets/test_solution_shared_lib/deployment.debug.template.json +100 -0
  316. s/tests/assets/test_solution_shared_lib/deployment.escapedpath.template.json +90 -0
  317. s/tests/assets/test_solution_shared_lib/deployment.template.json +106 -0
  318. s/tests/assets/test_solution_shared_lib/layered_deployment.flattened_props.template.json +21 -0
  319. s/tests/assets/test_solution_shared_lib/layered_deployment.no_modules.template.json +12 -0
  320. s/tests/assets/test_solution_shared_lib/libs/sharedlib/Class1.cs +12 -0
  321. s/tests/assets/test_solution_shared_lib/libs/sharedlib/sharedlib.csproj +7 -0
  322. s/tests/assets/test_solution_shared_lib/modules/non_module_project/placeholder.txt +0 -0
  323. s/tests/assets/test_solution_shared_lib/modules/sample_module/.gitignore +34 -0
  324. s/tests/assets/test_solution_shared_lib/modules/sample_module/Dockerfile.amd64 +18 -0
  325. s/tests/assets/test_solution_shared_lib/modules/sample_module/Dockerfile.amd64.debug +25 -0
  326. s/tests/assets/test_solution_shared_lib/modules/sample_module/Dockerfile.windows-amd64 +15 -0
  327. s/tests/assets/test_solution_shared_lib/modules/sample_module/Program.cs +91 -0
  328. s/tests/assets/test_solution_shared_lib/modules/sample_module/module.json +18 -0
  329. s/tests/assets/test_solution_shared_lib/modules/sample_module/sample_module.csproj +26 -0
  330. s/tests/assets/test_solution_shared_lib/sample_module_2/.gitignore +34 -0
  331. s/tests/assets/test_solution_shared_lib/sample_module_2/Dockerfile.amd64 +18 -0
  332. s/tests/assets/test_solution_shared_lib/sample_module_2/Dockerfile.amd64.debug +25 -0
  333. s/tests/assets/test_solution_shared_lib/sample_module_2/Dockerfile.windows-amd64 +15 -0
  334. s/tests/assets/test_solution_shared_lib/sample_module_2/Program.cs +91 -0
  335. s/tests/assets/test_solution_shared_lib/sample_module_2/module.json +18 -0
  336. s/tests/assets/test_solution_shared_lib/sample_module_2/sample_module_2.csproj +26 -0
  337. s/tests/test_azurecli.py +33 -0
  338. s/tests/test_buildoptionsparser.py +155 -0
  339. s/tests/test_cli.py +55 -0
  340. s/tests/test_config.py +28 -0
  341. s/tests/test_connectionstring.py +87 -0
  342. s/tests/test_decorators.py +44 -0
  343. s/tests/test_deploymentmanifest.py +106 -0
  344. s/tests/test_envvars.py +169 -0
  345. s/tests/test_iotedgedev_iothub_deploy.py +199 -0
  346. s/tests/test_iotedgedev_simulator.py +133 -0
  347. s/tests/test_iotedgedev_solution.py +457 -0
  348. s/tests/test_iotedgedev_solution_build.py +246 -0
  349. s/tests/test_iotedgedev_solution_tag.py +99 -0
  350. s/tests/test_utility.py +132 -0
  351. s/tests/utility.py +132 -0
  352. s/tox.ini +29 -0
  353. s/vsts_ci/.vsts-ci.yml +93 -0
  354. s/vsts_ci/darwin/continuous-build-darwin.yml +54 -0
  355. s/vsts_ci/linux/continuous-build-linux.yml +28 -0
  356. s/vsts_ci/win32/continuous-build-win32.yml +26 -0
s/docs/Command-List.md ADDED
@@ -0,0 +1,564 @@
1
+ # Commands
2
+
3
+ ## iotedgedev
4
+
5
+ ```text
6
+ Usage: iotedgedev [OPTIONS] COMMAND [ARGS]...
7
+
8
+ Options:
9
+ --version Show the version and exit.
10
+ -h, --help Show this message and exit.
11
+
12
+ Commands:
13
+ add Add a new module to the solution
14
+ build Build the solution
15
+ deploy Deploy solution to IoT Edge device
16
+ genconfig Expand environment variables and placeholders in deployment manifest template file and copy to config folder
17
+ init Create a new IoT Edge solution and provision Azure resources
18
+ log Open a new terminal window for EdgeAgent, EdgeHub and each Edge module and save to LOGS_PATH
19
+ monitor Monitor messages from IoT Edge device to IoT Hub
20
+ new Create a new IoT Edge solution
21
+ push Push module images to container registry
22
+ setup Setup IoT Edge simulator. This must be done before starting
23
+ start Start IoT Edge simulator
24
+ stop Stop IoT Edge simulator
25
+ docker Manage Docker
26
+ iothub Manage IoT Hub and IoT Edge devices
27
+ simulator Manage IoT Edge simulator
28
+ solution Manage IoT Edge solutions
29
+ ```
30
+
31
+ ## iotedgedev add
32
+
33
+ ```text
34
+ Usage: iotedgedev add [OPTIONS] NAME
35
+
36
+ Add a new module to the solution, where NAME is the module name
37
+
38
+ Options:
39
+ -t, --template [c|csharp|java|nodejs|python|csharpfunction]
40
+ Specify the template used to create the default module [default: csharp]
41
+ -g, --group-id TEXT (Java modules only) Specify the groupId [default: com.edgemodule]
42
+ -h, --help Show this message and exit.
43
+ ```
44
+
45
+ ## iotedgedev build
46
+
47
+ ```text
48
+ Usage: iotedgedev build [OPTIONS]
49
+
50
+ Build the solution
51
+
52
+ Options:
53
+ -p, --push Push module images to container registry [default: False]
54
+ -d, --deploy Deploy modules to Edge device using deployment.json in the config folder [default: False]
55
+ -f, --file TEXT Specify the deployment manifest template file [default: deployment.template.json]
56
+ -P, --platform TEXT Specify the platform [default: amd64]
57
+ -h, --help Show this message and exit.
58
+ ```
59
+
60
+ ## iotedgedev deploy
61
+
62
+ ```text
63
+ Usage: iotedgedev deploy [OPTIONS]
64
+
65
+ Deploy solution to IoT Edge device
66
+
67
+ Options:
68
+ -f, --file TEXT Specify the deployment manifest file [default: config\deployment.amd64.json]
69
+ -h, --help Show this message and exit.
70
+ ```
71
+
72
+ ## iotedgedev genconfig
73
+
74
+ ```text
75
+ Usage: iotedgedev genconfig [OPTIONS]
76
+
77
+ Expand environment variables and placeholders in deployment manifest
78
+ template file and copy to config folder
79
+
80
+ Options:
81
+ -f, --file TEXT Specify the deployment manifest template file [default: deployment.template.json]
82
+ -P, --platform TEXT Specify the platform [default: amd64]
83
+ -h, --help Show this message and exit.
84
+ ```
85
+
86
+ ## iotedgedev init
87
+
88
+ ```text
89
+ Usage: iotedgedev init [OPTIONS]
90
+
91
+ Create a new IoT Edge solution and provision Azure resources
92
+
93
+ Options:
94
+ -er, --edge-runtime-version TEXT
95
+ Specify the IoT Edge Runtime Version. Currently available 1.0 and 1.1 [default: 1.1]
96
+ -m, --module TEXT Specify the name of the default module [default: filtermodule]
97
+ -t, --template [c|csharp|java|nodejs|python|csharpfunction]
98
+ Specify the template used to create the default module [default: csharp]
99
+ -g, --group-id TEXT (Java modules only) Specify the groupId [default: com.edgemodule]
100
+ -h, --help Show this message and exit.
101
+ ```
102
+
103
+ ## iotedgedev log
104
+
105
+ ```text
106
+ Usage: iotedgedev log [OPTIONS]
107
+
108
+ Open a new terminal window for EdgeAgent, EdgeHub and each Edge module and
109
+ save to LOGS_PATH. You can configure the terminal command with LOGS_CMD.
110
+
111
+ Options:
112
+ -l, --show Open a new terminal window for EdgeAgent, EdgeHub and each Edge module. You can configure the terminal command with LOGS_CMD. [default: False]
113
+ -s, --save Save EdgeAgent, EdgeHub and each Edge module logs to LOGS_PATH. [default: False]
114
+ -h, --help Show this message and exit.
115
+ ```
116
+
117
+ ## iotedgedev monitor
118
+
119
+ ```text
120
+ Usage: iotedgedev monitor [OPTIONS]
121
+
122
+ Monitor messages from IoT Edge device to IoT Hub
123
+
124
+ Options:
125
+ -t, --timeout TEXT Specify number of seconds to monitor for messages
126
+ -h, --help Show this message and exit.
127
+ ```
128
+
129
+ ## iotedgedev new
130
+
131
+ ```text
132
+ Usage: iotedgedev new [OPTIONS] NAME
133
+
134
+ Create a new IoT Edge solution, where NAME is the solution folder name.
135
+ Use "." as NAME to create in the current folder.
136
+
137
+ Options:
138
+ -m, --module TEXT Specify the name of the default module [default: filtermodule]
139
+ -t, --template [c|csharp|java|nodejs|python|csharpfunction]
140
+ Specify the template used to create the default module [default: csharp]
141
+ -g, --group-id TEXT (Java modules only) Specify the groupId [default: com.edgemodule]
142
+ -h, --help Show this message and exit.
143
+ ```
144
+
145
+ ## iotedgedev push
146
+
147
+ ```text
148
+ Usage: iotedgedev push [OPTIONS]
149
+
150
+ Push module images to container registry
151
+
152
+ Options:
153
+ -d, --deploy Deploy modules to Edge device using deployment.json in the config folder [default: False]
154
+ --no-build Inform the push command to not build module images before pushing to container registry [default: False]
155
+ -f, --file TEXT Specify the deployment manifest template file [default: deployment.template.json]
156
+ -P, --platform TEXT Specify the platform [default: amd64]
157
+ -h, --help Show this message and exit.
158
+ ```
159
+
160
+ ## iotedgedev setup
161
+
162
+ ```text
163
+ Usage: iotedgedev setup [OPTIONS]
164
+
165
+ Setup IoT Edge simulator. This must be done before starting
166
+
167
+ Options:
168
+ -g, --gateway-host TEXT GatewayHostName value for the module to connect. [default: <your hostname>]
169
+ -h, --help Show this message and exit.
170
+ ```
171
+
172
+ ## iotedgedev start
173
+
174
+ ```text
175
+ Usage: iotedgedev start [OPTIONS]
176
+
177
+ Start IoT Edge simulator. To start in solution mode, use `iotedgdev
178
+ simulator start -s [-v] [-b]`. To start in single module mode, use
179
+ `iotedgedev simulator start -i input1,input2 [-p 53000]`
180
+
181
+ Options:
182
+ -u, --setup Setup IoT Edge simulator before starting. [default: False]
183
+ -s, --solution Start IoT Edge simulator in solution mode using the deployment.json in config folder. [default: False]
184
+ -v, --verbose Show the solution container logs. [default: False]
185
+ -b, --build Build the solution before starting IoT Edge simulator in solution mode. [default: False]
186
+ -f, --file TEXT Specify the deployment manifest file. When `--build` flag is set, specify a deployment manifest template and it will be built. [default: config\deployment.amd64.json]
187
+ -P, --platform TEXT Specify the platform [default: amd64]
188
+ -i, --inputs TEXT Start IoT Edge simulator in single module mode using the specified comma-separated inputs of the target module, e.g., `input1,input2`.
189
+ -p, --port INTEGER Port of the service for sending message. [default: 53000]
190
+ -h, --help Show this message and exit.
191
+ ```
192
+
193
+ ## iotedgedev stop
194
+
195
+ ```text
196
+ Usage: iotedgedev stop [OPTIONS]
197
+
198
+ Stop IoT Edge simulator
199
+
200
+ Options:
201
+ -h, --help Show this message and exit.
202
+ ```
203
+
204
+ ## iotedgedev docker
205
+
206
+ ```text
207
+ Usage: iotedgedev docker [OPTIONS] COMMAND [ARGS]...
208
+
209
+ Manage Docker
210
+
211
+ Options:
212
+ -h, --help Show this message and exit.
213
+
214
+ Commands:
215
+ clean Remove all the containers and images
216
+ log Open a new terminal window for EdgeAgent, EdgeHub and each Edge module and save to LOGS_PATH
217
+ setup Pull Edge runtime images from MCR and push to your specified container registry
218
+ ```
219
+
220
+ ## iotedgedev docker clean
221
+
222
+ ```text
223
+ Usage: iotedgedev docker clean [OPTIONS]
224
+
225
+ Remove all the containers and images
226
+
227
+ Options:
228
+ -m, --module Remove only the Edge module containers and images, not
229
+ EdgeAgent or EdgeHub [default: False]
230
+ -c, --container Remove all the containers [default: False]
231
+ -i, --image Remove all the images [default: False]
232
+ -h, --help Show this message and exit.
233
+ ```
234
+
235
+ ## iotedgedev docker log
236
+
237
+ ```text
238
+ Usage: iotedgedev docker log [OPTIONS]
239
+
240
+ Open a new terminal window for EdgeAgent, EdgeHub and each Edge module and
241
+ save to LOGS_PATH. You can configure the terminal command with LOGS_CMD.
242
+
243
+ Options:
244
+ -l, --show Open a new terminal window for EdgeAgent, EdgeHub and each Edge module. You can configure the terminal command with LOGS_CMD. [default: False]
245
+ -s, --save Save EdgeAgent, EdgeHub and each Edge module logs to LOGS_PATH. [default: False]
246
+ -h, --help Show this message and exit.
247
+ ```
248
+
249
+ ## iotedgedev docker setup
250
+
251
+ ```text
252
+ Usage: iotedgedev docker setup [OPTIONS]
253
+
254
+ Pull Edge runtime images from Microsoft Container Registry and push to
255
+ your specified container registry. Also, update config files to use
256
+ CONTAINER_REGISTRY_* instead of the Microsoft Container Registry. See
257
+ CONTAINER_REGISTRY environment variables.
258
+
259
+ Options:
260
+ -h, --help Show this message and exit.
261
+ ```
262
+
263
+ ## iotedgedev iothub
264
+
265
+ ```text
266
+ Usage: iotedgedev iothub [OPTIONS] COMMAND [ARGS]...
267
+
268
+ Manage IoT Hub and IoT Edge devices
269
+
270
+ Options:
271
+ -h, --help Show this message and exit.
272
+
273
+ Commands:
274
+ deploy Create a deployment in IoT Hub
275
+ monitor Monitor messages from IoT Edge device to IoT Hub
276
+ setup Retrieve or create required Azure resources
277
+ ```
278
+
279
+ ## iotedgedev iothub deploy
280
+
281
+ ```text
282
+ Usage: iotedgedev iothub deploy [OPTIONS]
283
+
284
+ Create a deployment in IoT Hub. For more information on how automatic deployments work see:
285
+ https://docs.microsoft.com/en-us/azure/iot-edge/module-deployment-monitoring
286
+
287
+ Options:
288
+ -f, --file TEXT Specify the deployment manifest file [default: config/deployment.amd64.json]
289
+ -n, --name TEXT Specify the name of the deployment that will be created in the IoT hub. [required]
290
+ -p, --priority TEXT Specify the deployment priority as positive integer. In the event that two or more
291
+ deployments are targeted at the same device, the deployment with the highest
292
+ numerical value for Priority will apply. [required]
293
+ -t, --target-condition, --tc TEXT
294
+ Specify a target condition to determine which devices will be targeted with this
295
+ deployment. The condition is based on device twin tags or device twin reported
296
+ properties and should match the expression format. For example,
297
+ tags.environment='test' and properties.reported.devicemodel='4000x'. This property
298
+ can be set via this parameter or in the .env under
299
+ 'IOTHUB_DEPLOYMENT_TARGET_CONDITION' [default: ;required]
300
+ -dt, --device-tag TEXT Specify the tag to be added to the device twin.
301
+ For example, "{"environment":"dev"}". This property
302
+ can be set via this parameter or in the .env under
303
+ 'DEVICE_TAGS'.
304
+ -h, --help Show this message and exit.
305
+ ```
306
+
307
+ ## iotedgedev iothub monitor
308
+
309
+ ```text
310
+ Usage: iotedgedev iothub monitor [OPTIONS]
311
+
312
+ Monitor messages from IoT Edge device to IoT Hub
313
+
314
+ Options:
315
+ -t, --timeout TEXT Specify number of seconds to monitor for messages
316
+ -h, --help Show this message and exit.
317
+ ```
318
+
319
+ ## iotedgedev iothub setup
320
+
321
+ ```text
322
+ Usage: iotedgedev iothub setup [OPTIONS]
323
+
324
+ Retrieve or create required Azure resources
325
+
326
+ Options:
327
+ --credentials <TEXT TEXT>... Enter Azure Credentials (username password).
328
+ --service-principal <TEXT TEXT TEXT>...
329
+ Enter Azure Service Principal Credentials (username password tenant).
330
+ --subscription TEXT The Azure Subscription Name or Id. [required]
331
+ --resource-group-location [australiaeast|australiasoutheast|brazilsouth|canadacentral|canadaeast|centralindia|centralus|eastasia|eastus|eastus2|japanwest|japaneast|northeurope|northcentralus|southindia|uksouth|ukwest|westus|westeurope|southcentralus|westcentralus|westus2]
332
+ The Resource Group Location. [required]
333
+ --resource-group-name TEXT The Resource Group Name (Creates a new Resource Group if not found). [required]
334
+ --iothub-sku [F1|S1|S2|S3] The IoT Hub SKU. [required]
335
+ --iothub-name TEXT The IoT Hub Name (Creates a new IoT Hub if not found). [required]
336
+ --edge-device-id TEXT The IoT Edge Device Id (Creates a new Edge Device if not found). [required]
337
+ -u, --update-dotenv If True, the current .env will be updated with the IoT Hub and Device connection strings. [default: False; required]
338
+ -h, --help Show this message and exit.
339
+ ```
340
+
341
+ ## iotedgedev simulator
342
+
343
+ ```text
344
+ Usage: iotedgedev simulator [OPTIONS] COMMAND [ARGS]...
345
+
346
+ Manage IoT Edge simulator
347
+
348
+ Options:
349
+ -h, --help Show this message and exit.
350
+
351
+ Commands:
352
+ modulecred Get the credentials of target module such as connection string and certificate file path.
353
+ setup Setup IoT Edge simulator. This must be done before starting
354
+ start Start IoT Edge simulator
355
+ stop Stop IoT Edge simulator
356
+ ```
357
+
358
+ ## iotedgedev simulator modulecred
359
+
360
+ ```text
361
+ Usage: iotedgedev simulator modulecred [OPTIONS]
362
+
363
+ Get the credentials of target module such as connection string and
364
+ certificate file path.
365
+
366
+ Options:
367
+ -l, --local Set `localhost` to `GatewayHostName` for module to run on host natively. [default: False]
368
+ -o, --output-file TEXT Specify the output file to save the credentials. If the file exists, its content will be overwritten.
369
+ -h, --help Show this message and exit.
370
+ ```
371
+
372
+ ## iotedgedev simulator setup
373
+
374
+ ```text
375
+ Usage: iotedgedev simulator setup [OPTIONS]
376
+
377
+ Setup IoT Edge simulator. This must be done before starting
378
+
379
+ Options:
380
+ -g, --gateway-host TEXT GatewayHostName value for the module to connect.
381
+ [default: <your hostname>]
382
+ -h, --help Show this message and exit.
383
+ ```
384
+
385
+ ## iotedgedev simulator start
386
+
387
+ ```text
388
+ Usage: iotedgedev simulator start [OPTIONS]
389
+
390
+ Start IoT Edge simulator. To start in solution mode, use `iotedgdev
391
+ simulator start -s [-v] [-b]`. To start in single module mode, use
392
+ `iotedgedev simulator start -i input1,input2 [-p 53000]`
393
+
394
+ Options:
395
+ -u, --setup Setup IoT Edge simulator before starting. [default: False]
396
+ -s, --solution Start IoT Edge simulator in solution mode using the deployment.json in config folder. [default: False]
397
+ -v, --verbose Show the solution container logs. [default: False]
398
+ -b, --build Build the solution before starting IoT Edge simulator in solution mode. [default: False]
399
+ -f, --file TEXT Specify the deployment manifest file. When `--build` flag is set, specify a deployment manifest template and it will be built. [default: config\deployment.amd64.json]
400
+ -P, --platform TEXT Specify the platform [default: amd64]
401
+ -i, --inputs TEXT Start IoT Edge simulator in single module mode using the specified comma-separated inputs of the target module, e.g., `input1,input2`.
402
+ -p, --port INTEGER Port of the service for sending message. [default: 53000]
403
+ -h, --help Show this message and exit.
404
+ ```
405
+
406
+ ## iotedgedev simulator stop
407
+
408
+ ```text
409
+ Usage: iotedgedev simulator stop [OPTIONS]
410
+
411
+ Stop IoT Edge simulator
412
+
413
+ Options:
414
+ -h, --help Show this message and exit.
415
+ ```
416
+
417
+ ## iotedgedev solution
418
+
419
+ ```text
420
+ Usage: iotedgedev solution [OPTIONS] COMMAND [ARGS]...
421
+
422
+ Manage IoT Edge solutions
423
+
424
+ Options:
425
+ -h, --help Show this message and exit.
426
+
427
+ Commands:
428
+ add Add a new module to the solution
429
+ build Build the solution
430
+ deploy Deploy solution to IoT Edge device
431
+ e2e Push, deploy, start, monitor
432
+ genconfig Expand environment variables and placeholders in deployment manifest template file and copy to config folder
433
+ init Create a new IoT Edge solution and provision Azure resources
434
+ new Create a new IoT Edge solution
435
+ push Push module images to container registry
436
+ ```
437
+
438
+ ## iotedgedev solution add
439
+
440
+ ```text
441
+ Usage: iotedgedev solution add [OPTIONS] NAME
442
+
443
+ Add a new module to the solution, where NAME is the module name
444
+
445
+ Options:
446
+ -t, --template [c|csharp|java|nodejs|python|csharpfunction]
447
+ Specify the template used to create the default module [default: csharp]
448
+ -g, --group-id TEXT (Java modules only) Specify the groupId [default: com.edgemodule]
449
+ -h, --help Show this message and exit.
450
+ ```
451
+
452
+ ## iotedgedev solution build
453
+
454
+ ```text
455
+ Usage: iotedgedev solution build [OPTIONS]
456
+
457
+ Build the solution
458
+
459
+ Options:
460
+ -p, --push Push module images to container registry [default: False]
461
+ -d, --deploy Deploy modules to Edge device using deployment.json in the config folder [default: False]
462
+ -f, --file TEXT Specify the deployment manifest template file [default: deployment.template.json]
463
+ -P, --platform TEXT Specify the platform [default: amd64]
464
+ -h, --help Show this message and exit.
465
+ ```
466
+
467
+ ## iotedgedev solution deploy
468
+
469
+ ```text
470
+ Usage: iotedgedev solution deploy [OPTIONS]
471
+
472
+ Deploy solution to IoT Edge device
473
+
474
+ Options:
475
+ -f, --file TEXT Specify the deployment manifest file [default: config\deployment.amd64.json]
476
+ -h, --help Show this message and exit.
477
+ ```
478
+
479
+ ## iotedgedev solution e2e
480
+
481
+ ```text
482
+ Usage: iotedgedev solution e2e [OPTIONS]
483
+
484
+ Push, deploy, start, monitor
485
+
486
+ Options:
487
+ -h, --help Show this message and exit.
488
+ ```
489
+
490
+ ## iotedgedev solution genconfig
491
+
492
+ ```text
493
+ Usage: iotedgedev solution genconfig [OPTIONS]
494
+
495
+ Expand environment variables and placeholders in deployment manifest
496
+ template file and copy to config folder
497
+
498
+ Options:
499
+ -f, --file TEXT Specify the deployment manifest template file [default: deployment.template.json]
500
+ -P, --platform TEXT Specify the platform [default: amd64]
501
+ -h, --help Show this message and exit.
502
+ ```
503
+
504
+ ## iotedgedev solution init
505
+
506
+ ```text
507
+ Usage: iotedgedev solution init [OPTIONS]
508
+
509
+ Create a new IoT Edge solution and provision Azure resources
510
+
511
+ Options:
512
+ -m, --module TEXT Specify the name of the default module [default: filtermodule]
513
+ -t, --template [c|csharp|java|nodejs|python|csharpfunction]
514
+ Specify the template used to create the default module [default: csharp]
515
+ -g, --group-id TEXT (Java modules only) Specify the groupId [default: com.edgemodule]
516
+ -h, --help Show this message and exit.
517
+ ```
518
+
519
+ ## iotedgedev solution new
520
+
521
+ ```text
522
+ Usage: iotedgedev solution new [OPTIONS] NAME
523
+
524
+ Create a new IoT Edge solution, where NAME is the solution folder name.
525
+ Use "." as NAME to create in the current folder.
526
+
527
+ Options:
528
+ -m, --module TEXT Specify the name of the default module [default: filtermodule]
529
+ -t, --template [c|csharp|java|nodejs|python|csharpfunction]
530
+ Specify the template used to create the default module [default: csharp]
531
+ -g, --group-id TEXT (Java modules only) Specify the groupId [default: com.edgemodule]
532
+ -h, --help Show this message and exit.
533
+ ```
534
+
535
+ ## iotedgedev solution push
536
+
537
+ ```text
538
+ Usage: iotedgedev solution push [OPTIONS]
539
+
540
+ Push module images to container registry
541
+
542
+ Options:
543
+ -d, --deploy Deploy modules to Edge device using deployment.json in the config folder [default: False]
544
+ --no-build Inform the push command to not build module images before pushing to container registry [default: False]
545
+ -f, --file TEXT Specify the deployment manifest template file [default: deployment.template.json]
546
+ -P, --platform TEXT Specify the platform [default: amd64]
547
+ -h, --help Show this message and exit.
548
+ ```
549
+
550
+
551
+ ## iotedgedev solution tag
552
+
553
+ ```text
554
+ Usage: iotedgedev solution tag [OPTIONS]
555
+
556
+ Adds tags to device twin for automatic deployments
557
+
558
+ Options:
559
+ -t, --tags TEXT Specify the tag to be added to the device twin.
560
+ For example, "{"environment":"dev"}". This property
561
+ can be set via this parameter or in the .env under
562
+ 'DEVICE_TAGS'. [default: ;required]
563
+ -h, --help Show this message and exit.
564
+ ```
s/docs/Command-Tips.md ADDED
@@ -0,0 +1,51 @@
1
+ ### Setup Container Registry
2
+
3
+ You can also use IoT Edge Dev Tool to host the IoT Edge runtime from your own Azure Container Registry or a local container registry. Set the `.env` values for your container registry and run the following command. It will pull all the IoT Edge containers from Microsoft Container Registry, tag them and push them to the container registry you have specified in `.env`.
4
+
5
+ > Use 'sudo' for Linux/Raspberry Pi
6
+
7
+ ```
8
+ iotedgedev docker setup-registry
9
+ ```
10
+
11
+
12
+ ### View Docker Logs
13
+
14
+ #### Show Logs
15
+ IoT Edge Dev Tool also includes a "Show Logs" command that will open a new command prompt for each module it finds in your IoT Edge config. Just run the following command:
16
+
17
+ > Note: I haven't figured out how to launch new SSH windows in a reliable way. It's in the backlog. For now, you must be on the desktop of the machine to run this command.
18
+
19
+ ```
20
+ iotedgedev docker log --show
21
+ ```
22
+
23
+ You can configure the logs command in the `.env` file with the `LOGS_CMD` setting. The `.env` file provides two options, one for [ConEmu](https://conemu.github.io/) and one for Cmd.exe.
24
+
25
+ #### Save Logs
26
+
27
+ You can also output the logs to the LOGS_PATH directory. The following command will output all the logs and add them to an `edge-logs.zip` file that you can send to the Azure IoT support team if they request it.
28
+
29
+ ```
30
+ iotedgedev docker log --save
31
+ ```
32
+
33
+ #### Both Show and Save Logs
34
+
35
+ Run the following to show and save logs with a single command
36
+
37
+ ```
38
+ iotedgedev docker log --show --save
39
+ ```
40
+
41
+
42
+ ### Local Docker Registry Setup
43
+
44
+ Instead of using a cloud based container registry, you can use a local Docker registry. Here's how to get it setup.
45
+
46
+ 1. Set `CONTAINER_REGISTRY_SERVER` in `.env` file to `localhost:5000`. You can enter a different port if you'd like to.
47
+ 1. Add `localhost:5000` and `127.0.0.1:5000` to Docker -> Settings -> Daemon -> Insecure Registries
48
+
49
+ > In the latest IoT Edge Dev Tool, Step 2 above hasn't been required. But, if you run into issues, you may want to try adding those Insecure Registries.
50
+
51
+ IoT Edge Dev Tool will look for `localhost` in your setting and take care of the rest for you.
@@ -0,0 +1,23 @@
1
+ IoT Edge Dev Tool is intended to help with IoT Edge development and doesn't necessarily need to be taken on as a dependency in production or integration environments, where you'll likely want to use the IoT Edge runtime directly. Please check below documents for the instructions on setting up IoT Edge runtime:
2
+ - [Linux X64](https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-linux)
3
+ - [Linux ARM32](https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-linux-arm)
4
+ - [Windows with Windows container](https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-windows-with-windows)
5
+ - [Windows with Linux container](https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-windows-with-linux)
6
+ - [IoT Core](https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-core)
7
+
8
+ Having said that, there's nothing stopping you from deploying IoT Edge Dev Tool to your IoT Edge device. It may be helpful if you want to run the `iotedgedev docker clean` command to clean up Docker containers and images. Or if you want to run `iotedgedev docker log --show` to see all the log files on the device or `iotedgedev docker log --save` to output to the LOGS_PATH directory.
9
+
10
+ > Please note that you will need .NET Core SDK 2.1 to add C# modules and C# Function modules on a Raspberry Pi. Check [Manual Dev Machine Setup](manual-dev-machine-setup#c-module-and-c-azure-functions-module) to learn how to install.
11
+
12
+ ### Raspberry Pi
13
+
14
+ ##### Config Changes
15
+ If you are running on Raspberry Pi you need to use the arm32v7 Dockerfile. Open `deployment.template.json`, find the JSON dictionary for `filtermodule`, and replace `"image": "${MODULES.filtermodule.amd64}",` with `"image": "${MODULES.filtermodule.arm32v7}",`
16
+
17
+ ##### Environment Variable Change
18
+
19
+ Open your `.env` file and add `arm32v7` to your `ACTIVE_DOCKER_PLATFORMS` setting. This will tell the IoT Edge Dev Tool to also build the arm32v7 images.
20
+
21
+ ```
22
+ ACTIVE_DOCKER_PLATFORMS="amd64,arm32v7"
23
+ ```
s/docs/Home.md ADDED
@@ -0,0 +1,10 @@
1
+ Welcome to the IoT Edge Dev Tool wiki!
2
+
3
+ The **IoT Edge Dev Tool** greatly simplifies [Azure IoT Edge](https:/azure.microsoft.com/en-us/services/iot-edge/) development down to simple commands driven by environment variables.
4
+
5
+ - It gets you started with IoT Edge development with the [IoT Edge Dev Container](quickstart-with-iot-edge-dev-container) and IoT Edge solution scaffolding that contains a default module and all the required configuration files.
6
+ - It speeds up your inner-loop dev (dev, debug, test) by reducing multi-step build & deploy processes into one-line CLI commands as well as drives your outer-loop CI/CD pipeline. _You can use all the same commands in both stages of your development life-cycle._
7
+
8
+ ## Issues
9
+
10
+ Please use the [GitHub issues page](https://github.com/azure/iotedgedev/issues) to report any issues.