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.
- s/.devcontainer/Dockerfile +75 -0
- s/.devcontainer/devcontainer.json +40 -0
- s/.devcontainer/library-scripts/docker-in-docker-debian.sh +236 -0
- s/.env.tmp +108 -0
- s/.git/FETCH_HEAD +61 -0
- s/.git/HEAD +1 -0
- s/.git/config +12 -0
- s/.git/description +1 -0
- s/.git/hooks/applypatch-msg.sample +15 -0
- s/.git/hooks/commit-msg.sample +24 -0
- s/.git/hooks/fsmonitor-watchman.sample +173 -0
- s/.git/hooks/post-update.sample +8 -0
- s/.git/hooks/pre-applypatch.sample +14 -0
- s/.git/hooks/pre-commit.sample +49 -0
- s/.git/hooks/pre-merge-commit.sample +13 -0
- s/.git/hooks/pre-push.sample +53 -0
- s/.git/hooks/pre-rebase.sample +169 -0
- s/.git/hooks/pre-receive.sample +24 -0
- s/.git/hooks/prepare-commit-msg.sample +42 -0
- s/.git/hooks/push-to-checkout.sample +78 -0
- s/.git/hooks/update.sample +128 -0
- s/.git/index +0 -0
- s/.git/info/exclude +6 -0
- s/.git/logs/HEAD +1 -0
- s/.git/logs/refs/remotes/origin/EO +1 -0
- s/.git/logs/refs/remotes/origin/avagraw/security_fix +1 -0
- s/.git/logs/refs/remotes/origin/cherry-pick-rename +1 -0
- s/.git/logs/refs/remotes/origin/chyuan/fix-validation-not-fail-test +1 -0
- s/.git/logs/refs/remotes/origin/chyuan/update-linux-agent +1 -0
- s/.git/logs/refs/remotes/origin/dependabot/pip/pyyaml-5.4 +1 -0
- s/.git/logs/refs/remotes/origin/eliises/add-device-tagging-docs +1 -0
- s/.git/logs/refs/remotes/origin/main +1 -0
- s/.git/logs/refs/remotes/origin/ray-deps +1 -0
- s/.git/logs/refs/remotes/origin/ray-dev-setup +1 -0
- s/.git/logs/refs/remotes/origin/ray-tox +1 -0
- s/.git/logs/refs/remotes/origin/release-pipeline-automation +1 -0
- s/.git/logs/refs/remotes/origin/spmcdono/fix-pipeline-test-install +1 -0
- s/.git/logs/refs/remotes/origin/spmcdono/layered-deployments +1 -0
- s/.git/logs/refs/remotes/origin/spmcdono/pypi-package-test-pipeline +1 -0
- s/.git/logs/refs/remotes/origin/spmcdono/remove-py2 +1 -0
- s/.git/logs/refs/remotes/origin/spmcdono/remove-py2-dev +1 -0
- s/.git/logs/refs/remotes/origin/spmcdono/test-native-runtime-install +1 -0
- s/.git/logs/refs/remotes/origin/spmcdono/update-pipeline +1 -0
- s/.git/logs/refs/remotes/origin/user/marine/EliiseS/devcontainer +1 -0
- s/.git/logs/refs/remotes/origin/user/marine/fixsimver +1 -0
- s/.git/logs/refs/remotes/origin/user/marine/layereddeploymentsbuildtest +1 -0
- s/.git/logs/refs/remotes/origin/user/marine/master-to-main +1 -0
- s/.git/logs/refs/remotes/origin/user/marine/pipeline +1 -0
- s/.git/logs/refs/remotes/origin/user/vikas +1 -0
- s/.git/logs/refs/remotes/origin/user/vikas0212/verify-tests +1 -0
- s/.git/logs/refs/remotes/origin/user/vikas2 +1 -0
- s/.git/logs/refs/remotes/origin/user/vikas_pypi +1 -0
- s/.git/logs/refs/remotes/origin/user/vikas_pypi-1 +1 -0
- s/.git/logs/refs/remotes/origin/user/vikas_testing +1 -0
- s/.git/logs/refs/remotes/origin/user/xinzed/dps_conn_str +1 -0
- s/.git/logs/refs/remotes/origin/user/xinzed/update-python-docker +1 -0
- s/.git/logs/refs/remotes/origin/vikas/azure +1 -0
- s/.git/logs/refs/remotes/origin/vikas/dependebot +1 -0
- s/.git/logs/refs/remotes/origin/xinzed/3_1_0rc1 +1 -0
- s/.git/logs/refs/remotes/origin/xinzed/update-runtime +1 -0
- s/.git/objects/pack/pack-a8179feb7da51d11a42c37c5b3c8593cffe17075.idx +0 -0
- s/.git/objects/pack/pack-a8179feb7da51d11a42c37c5b3c8593cffe17075.pack +0 -0
- s/.git/refs/remotes/origin/EO +1 -0
- s/.git/refs/remotes/origin/avagraw/security_fix +1 -0
- s/.git/refs/remotes/origin/cherry-pick-rename +1 -0
- s/.git/refs/remotes/origin/chyuan/fix-validation-not-fail-test +1 -0
- s/.git/refs/remotes/origin/chyuan/update-linux-agent +1 -0
- s/.git/refs/remotes/origin/dependabot/pip/pyyaml-5.4 +1 -0
- s/.git/refs/remotes/origin/eliises/add-device-tagging-docs +1 -0
- s/.git/refs/remotes/origin/main +1 -0
- s/.git/refs/remotes/origin/ray-deps +1 -0
- s/.git/refs/remotes/origin/ray-dev-setup +1 -0
- s/.git/refs/remotes/origin/ray-tox +1 -0
- s/.git/refs/remotes/origin/release-pipeline-automation +1 -0
- s/.git/refs/remotes/origin/spmcdono/fix-pipeline-test-install +1 -0
- s/.git/refs/remotes/origin/spmcdono/layered-deployments +1 -0
- s/.git/refs/remotes/origin/spmcdono/pypi-package-test-pipeline +1 -0
- s/.git/refs/remotes/origin/spmcdono/remove-py2 +1 -0
- s/.git/refs/remotes/origin/spmcdono/remove-py2-dev +1 -0
- s/.git/refs/remotes/origin/spmcdono/test-native-runtime-install +1 -0
- s/.git/refs/remotes/origin/spmcdono/update-pipeline +1 -0
- s/.git/refs/remotes/origin/user/marine/EliiseS/devcontainer +1 -0
- s/.git/refs/remotes/origin/user/marine/fixsimver +1 -0
- s/.git/refs/remotes/origin/user/marine/layereddeploymentsbuildtest +1 -0
- s/.git/refs/remotes/origin/user/marine/master-to-main +1 -0
- s/.git/refs/remotes/origin/user/marine/pipeline +1 -0
- s/.git/refs/remotes/origin/user/vikas +1 -0
- s/.git/refs/remotes/origin/user/vikas0212/verify-tests +1 -0
- s/.git/refs/remotes/origin/user/vikas2 +1 -0
- s/.git/refs/remotes/origin/user/vikas_pypi +1 -0
- s/.git/refs/remotes/origin/user/vikas_pypi-1 +1 -0
- s/.git/refs/remotes/origin/user/vikas_testing +1 -0
- s/.git/refs/remotes/origin/user/xinzed/dps_conn_str +1 -0
- s/.git/refs/remotes/origin/user/xinzed/update-python-docker +1 -0
- s/.git/refs/remotes/origin/vikas/azure +1 -0
- s/.git/refs/remotes/origin/vikas/dependebot +1 -0
- s/.git/refs/remotes/origin/xinzed/3_1_0rc1 +1 -0
- s/.git/refs/remotes/origin/xinzed/update-runtime +1 -0
- s/.git/refs/tags/v0.49.0 +1 -0
- s/.git/refs/tags/v0.50.0 +1 -0
- s/.git/refs/tags/v0.51.0 +1 -0
- s/.git/refs/tags/v0.52.0 +1 -0
- s/.git/refs/tags/v0.53.0 +1 -0
- s/.git/refs/tags/v0.54.0 +1 -0
- s/.git/refs/tags/v0.55.0 +1 -0
- s/.git/refs/tags/v0.56.0 +1 -0
- s/.git/refs/tags/v0.57.0 +1 -0
- s/.git/refs/tags/v0.58.0 +1 -0
- s/.git/refs/tags/v0.59.0 +1 -0
- s/.git/refs/tags/v0.60.0 +1 -0
- s/.git/refs/tags/v0.61.0 +1 -0
- s/.git/refs/tags/v0.62.0 +1 -0
- s/.git/refs/tags/v0.63.0 +1 -0
- s/.git/refs/tags/v0.64.0 +1 -0
- s/.git/refs/tags/v0.65.0 +1 -0
- s/.git/refs/tags/v0.66.0 +1 -0
- s/.git/refs/tags/v0.67.0 +1 -0
- s/.git/refs/tags/v0.68.0 +1 -0
- s/.git/refs/tags/v0.69.0 +1 -0
- s/.git/refs/tags/v0.70.0 +1 -0
- s/.git/refs/tags/v0.71.0 +1 -0
- s/.git/refs/tags/v0.72.0 +1 -0
- s/.git/refs/tags/v0.73.0 +1 -0
- s/.git/refs/tags/v0.74.0 +1 -0
- s/.git/refs/tags/v0.75.0 +1 -0
- s/.git/refs/tags/v0.76.0 +1 -0
- s/.git/refs/tags/v0.77.0 +1 -0
- s/.git/refs/tags/v0.78.0 +1 -0
- s/.git/refs/tags/v0.79.0 +1 -0
- s/.git/refs/tags/v0.82.0 +1 -0
- s/.git/refs/tags/v0.82.0-container +1 -0
- s/.git/refs/tags/v1.0.0 +1 -0
- s/.git/refs/tags/v1.1.0 +1 -0
- s/.git/refs/tags/v1.2.0 +1 -0
- s/.git/refs/tags/v1.3.0 +1 -0
- s/.git/refs/tags/v2.0.0 +1 -0
- s/.git/refs/tags/v2.0.1 +1 -0
- s/.git/refs/tags/v2.0.2 +1 -0
- s/.git/refs/tags/v2.1.0 +1 -0
- s/.git/refs/tags/v2.1.1 +1 -0
- s/.git/refs/tags/v2.1.2 +1 -0
- s/.git/refs/tags/v2.1.3 +1 -0
- s/.git/refs/tags/v2.1.4 +1 -0
- s/.git/refs/tags/v2.1.6 +1 -0
- s/.git/refs/tags/v2.2.0 +1 -0
- s/.git/refs/tags/v3.0.0 +1 -0
- s/.git/refs/tags/v3.0.0-rc +1 -0
- s/.git/refs/tags/v3.1.0 +1 -0
- s/.git/refs/tags/v3.1.1 +1 -0
- s/.git/refs/tags/v3.1.2 +1 -0
- s/.git/refs/tags/v3.2.0 +1 -0
- s/.git/refs/tags/v3.2.0rc0 +1 -0
- s/.git/refs/tags/v3.3.0 +1 -0
- s/.git/refs/tags/v3.3.1 +1 -0
- s/.git/refs/tags/v3.3.2 +1 -0
- s/.git/refs/tags/v3.3.3 +1 -0
- s/.git/refs/tags/v3.3.3-rc0 +1 -0
- s/.git/refs/tags/v3.3.4 +1 -0
- s/.github/ISSUE_TEMPLATE/bug_report.md +16 -0
- s/.github/ISSUE_TEMPLATE/feature_request.md +7 -0
- s/.github/workflows/wiki.yml +54 -0
- s/.gitignore +103 -0
- s/.vscode/launch.json +26 -0
- s/.vscode/settings.json +30 -0
- s/CHANGELOG.md +156 -0
- s/CODE_OF_CONDUCT.md +1 -0
- s/CONTRIBUTING.md +122 -0
- s/LICENSE +14 -0
- s/MANIFEST.in +7 -0
- s/Makefile +87 -0
- s/README.md +204 -0
- s/assets/armdeployment.png +0 -0
- s/assets/armoutputs.png +0 -0
- s/assets/deploy/ARMDeployment/ARMDeployment.deployproj +36 -0
- s/assets/deploy/ARMDeployment/Deploy-AzureResourceGroup.ps1 +118 -0
- s/assets/deploy/ARMDeployment/azuredeploy.json +145 -0
- s/assets/deploy/ARMDeployment/azuredeploy.parameters.json +6 -0
- s/assets/deploy/ARMDeployment.sln +25 -0
- s/assets/edgedevtool2mins.png +0 -0
- s/assets/edgedevtoolintro.png +0 -0
- s/assets/edgedevtoolquickstartlarge.png +0 -0
- s/assets/edgedevtoolquickstartsmall.png +0 -0
- s/assets/edgedevtoolwsl.png +0 -0
- s/azure-pipelines.yml +144 -0
- s/build/lib/iotedgedev/__init__.py +6 -0
- s/build/lib/iotedgedev/args.py +18 -0
- s/build/lib/iotedgedev/azurecli.py +542 -0
- s/build/lib/iotedgedev/buildoptionsparser.py +151 -0
- s/build/lib/iotedgedev/buildprofile.py +5 -0
- s/build/lib/iotedgedev/cli.py +830 -0
- s/build/lib/iotedgedev/connectionstring.py +58 -0
- s/build/lib/iotedgedev/constants.py +12 -0
- s/build/lib/iotedgedev/containerregistry.py +5 -0
- s/build/lib/iotedgedev/decorators.py +116 -0
- s/build/lib/iotedgedev/deploymentmanifest.py +313 -0
- s/build/lib/iotedgedev/dockercls.py +255 -0
- s/build/lib/iotedgedev/dotnet.py +31 -0
- s/build/lib/iotedgedev/edge.py +33 -0
- s/build/lib/iotedgedev/envvars.py +240 -0
- s/build/lib/iotedgedev/iothub.py +65 -0
- s/build/lib/iotedgedev/module.py +62 -0
- s/build/lib/iotedgedev/modules.py +332 -0
- s/build/lib/iotedgedev/organizedgroup.py +48 -0
- s/build/lib/iotedgedev/output.py +57 -0
- s/build/lib/iotedgedev/simulator.py +58 -0
- s/build/lib/iotedgedev/solution.py +48 -0
- s/build/lib/iotedgedev/telemetry.py +155 -0
- s/build/lib/iotedgedev/telemetryconfig.py +85 -0
- s/build/lib/iotedgedev/telemetryuploader.py +53 -0
- s/build/lib/iotedgedev/template/.env.tmp +87 -0
- s/build/lib/iotedgedev/template/.gitignore +10 -0
- s/build/lib/iotedgedev/template/deployment.template.json +79 -0
- s/build/lib/iotedgedev/template/launch_c.json +50 -0
- s/build/lib/iotedgedev/template/launch_csharp.json +43 -0
- s/build/lib/iotedgedev/template/launch_java.json +27 -0
- s/build/lib/iotedgedev/template/launch_node.json +36 -0
- s/build/lib/iotedgedev/template/launch_python.json +22 -0
- s/build/lib/iotedgedev/utility.py +179 -0
- s/build/lib/iotedgedev/version.py +4 -0
- s/build.sh +150 -0
- s/cleanup.sh +7 -0
- s/dist/iotedgedev-3.3.4-py3-none-any.whl +0 -0
- s/docker/tool/build-docker.sh +168 -0
- s/docker/tool/deps.txt +7 -0
- s/docker/tool/linux/Dockerfile +7 -0
- s/docker/tool/linux/Dockerfile.base +61 -0
- s/docker/tool/linux/install-dev.sh +8 -0
- s/docker/tool/linux/run.ps1 +5 -0
- s/docker/tool/linux/run.sh +5 -0
- s/docker/tool/push-docker.sh +35 -0
- s/docker/tool/windows/Dockerfile +4 -0
- s/docker/tool/windows/Dockerfile.base +63 -0
- s/docker/tool/windows/install-dev.bat +4 -0
- s/docker/tool/windows/run.ps1 +30 -0
- s/docs/Azure-Setup.md +102 -0
- s/docs/Command-List.md +564 -0
- s/docs/Command-Tips.md +51 -0
- s/docs/Edge-Device-Setup.md +23 -0
- s/docs/Home.md +10 -0
- s/docs/Manual-Dev-Machine-Setup.md +77 -0
- s/docs/Migration-Guides.md +131 -0
- s/docs/Overview.md +66 -0
- s/docs/Python-Virtual-Environment-Setup.md +35 -0
- s/docs/Quickstart-with-IoT-Edge-Dev-Container.md +145 -0
- s/docs/Test-Coverage.md +7 -0
- s/docs/Troubleshooting.md +21 -0
- s/docs/Usage.md +123 -0
- s/docs/_Sidebar.md +13 -0
- s/iotedgedev/__init__.py +6 -0
- s/iotedgedev/args.py +18 -0
- s/iotedgedev/azurecli.py +542 -0
- s/iotedgedev/buildoptionsparser.py +151 -0
- s/iotedgedev/buildprofile.py +5 -0
- s/iotedgedev/cli.py +830 -0
- s/iotedgedev/connectionstring.py +58 -0
- s/iotedgedev/constants.py +12 -0
- s/iotedgedev/containerregistry.py +5 -0
- s/iotedgedev/decorators.py +116 -0
- s/iotedgedev/deploymentmanifest.py +313 -0
- s/iotedgedev/dockercls.py +255 -0
- s/iotedgedev/dotnet.py +31 -0
- s/iotedgedev/edge.py +33 -0
- s/iotedgedev/envvars.py +240 -0
- s/iotedgedev/iothub.py +65 -0
- s/iotedgedev/module.py +62 -0
- s/iotedgedev/modules.py +332 -0
- s/iotedgedev/organizedgroup.py +48 -0
- s/iotedgedev/output.py +57 -0
- s/iotedgedev/simulator.py +58 -0
- s/iotedgedev/solution.py +48 -0
- s/iotedgedev/telemetry.py +155 -0
- s/iotedgedev/telemetryconfig.py +85 -0
- s/iotedgedev/telemetryuploader.py +53 -0
- s/iotedgedev/template/.env.tmp +87 -0
- s/iotedgedev/template/.gitignore +10 -0
- s/iotedgedev/template/deployment.template.json +79 -0
- s/iotedgedev/template/launch_c.json +50 -0
- s/iotedgedev/template/launch_csharp.json +43 -0
- s/iotedgedev/template/launch_java.json +27 -0
- s/iotedgedev/template/launch_node.json +36 -0
- s/iotedgedev/template/launch_python.json +22 -0
- s/iotedgedev/utility.py +179 -0
- s/iotedgedev/version.py +4 -0
- s/iotedgedev.egg-info/PKG-INFO +21 -0
- s/iotedgedev.egg-info/SOURCES.txt +100 -0
- s/iotedgedev.egg-info/dependency_links.txt +1 -0
- s/iotedgedev.egg-info/entry_points.txt +3 -0
- s/iotedgedev.egg-info/not-zip-safe +1 -0
- s/iotedgedev.egg-info/requires.txt +18 -0
- s/iotedgedev.egg-info/top_level.txt +1 -0
- s/pull_request_template.md +9 -0
- s/pytest.ini +4 -0
- s/requirements.txt +12 -0
- s/requirements_dev.txt +17 -0
- s/scripts/gen-help-markdown.bat +177 -0
- s/scripts/install-pip.sh +1 -0
- s/scripts/setup-wsl.sh +7 -0
- s/setup.cfg +18 -0
- s/setup.py +66 -0
- s/tests/__init__.py +5 -0
- s/tests/assets/deployment.manifest_invalid.json +106 -0
- s/tests/assets/deployment.manifest_invalid_createoptions.json +102 -0
- s/tests/assets/deployment.manifest_invalid_schema.json +69 -0
- s/tests/assets/deployment.template.non_str_placeholder.json +79 -0
- s/tests/assets/deployment.template_1.json +163 -0
- s/tests/assets/deployment.template_2.json +163 -0
- s/tests/assets/deployment.template_3.json +174 -0
- s/tests/assets/deployment.template_4.json +79 -0
- s/tests/assets/deployment.template_invalidresult.json +183 -0
- s/tests/assets/deployment.template_without_schema_template.json +99 -0
- s/tests/assets/launch.json +225 -0
- s/tests/assets/launch_without_nodejs.json +194 -0
- s/tests/assets/test_solution_shared_lib/.gitignore +2 -0
- s/tests/assets/test_solution_shared_lib/.vscode/launch.json +43 -0
- s/tests/assets/test_solution_shared_lib/deployment.debug.template.json +100 -0
- s/tests/assets/test_solution_shared_lib/deployment.escapedpath.template.json +90 -0
- s/tests/assets/test_solution_shared_lib/deployment.template.json +106 -0
- s/tests/assets/test_solution_shared_lib/layered_deployment.flattened_props.template.json +21 -0
- s/tests/assets/test_solution_shared_lib/layered_deployment.no_modules.template.json +12 -0
- s/tests/assets/test_solution_shared_lib/libs/sharedlib/Class1.cs +12 -0
- s/tests/assets/test_solution_shared_lib/libs/sharedlib/sharedlib.csproj +7 -0
- s/tests/assets/test_solution_shared_lib/modules/non_module_project/placeholder.txt +0 -0
- s/tests/assets/test_solution_shared_lib/modules/sample_module/.gitignore +34 -0
- s/tests/assets/test_solution_shared_lib/modules/sample_module/Dockerfile.amd64 +18 -0
- s/tests/assets/test_solution_shared_lib/modules/sample_module/Dockerfile.amd64.debug +25 -0
- s/tests/assets/test_solution_shared_lib/modules/sample_module/Dockerfile.windows-amd64 +15 -0
- s/tests/assets/test_solution_shared_lib/modules/sample_module/Program.cs +91 -0
- s/tests/assets/test_solution_shared_lib/modules/sample_module/module.json +18 -0
- s/tests/assets/test_solution_shared_lib/modules/sample_module/sample_module.csproj +26 -0
- s/tests/assets/test_solution_shared_lib/sample_module_2/.gitignore +34 -0
- s/tests/assets/test_solution_shared_lib/sample_module_2/Dockerfile.amd64 +18 -0
- s/tests/assets/test_solution_shared_lib/sample_module_2/Dockerfile.amd64.debug +25 -0
- s/tests/assets/test_solution_shared_lib/sample_module_2/Dockerfile.windows-amd64 +15 -0
- s/tests/assets/test_solution_shared_lib/sample_module_2/Program.cs +91 -0
- s/tests/assets/test_solution_shared_lib/sample_module_2/module.json +18 -0
- s/tests/assets/test_solution_shared_lib/sample_module_2/sample_module_2.csproj +26 -0
- s/tests/test_azurecli.py +33 -0
- s/tests/test_buildoptionsparser.py +155 -0
- s/tests/test_cli.py +55 -0
- s/tests/test_config.py +28 -0
- s/tests/test_connectionstring.py +87 -0
- s/tests/test_decorators.py +44 -0
- s/tests/test_deploymentmanifest.py +106 -0
- s/tests/test_envvars.py +169 -0
- s/tests/test_iotedgedev_iothub_deploy.py +199 -0
- s/tests/test_iotedgedev_simulator.py +133 -0
- s/tests/test_iotedgedev_solution.py +457 -0
- s/tests/test_iotedgedev_solution_build.py +246 -0
- s/tests/test_iotedgedev_solution_tag.py +99 -0
- s/tests/test_utility.py +132 -0
- s/tests/utility.py +132 -0
- s/tox.ini +29 -0
- s/vsts_ci/.vsts-ci.yml +93 -0
- s/vsts_ci/darwin/continuous-build-darwin.yml +54 -0
- s/vsts_ci/linux/continuous-build-linux.yml +28 -0
- s/vsts_ci/win32/continuous-build-win32.yml +26 -0
s/iotedgedev/utility.py
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import fnmatch
|
|
2
|
+
import json
|
|
3
|
+
import os
|
|
4
|
+
import subprocess
|
|
5
|
+
from base64 import b64decode, b64encode
|
|
6
|
+
from hashlib import sha256
|
|
7
|
+
from hmac import HMAC
|
|
8
|
+
from time import time
|
|
9
|
+
|
|
10
|
+
from urllib.parse import quote, urlencode
|
|
11
|
+
|
|
12
|
+
from .constants import Constants
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Utility:
|
|
16
|
+
def __init__(self, envvars, output):
|
|
17
|
+
self.envvars = envvars
|
|
18
|
+
self.output = output
|
|
19
|
+
|
|
20
|
+
def exe_proc(self, params, shell=False, cwd=None, suppress_out=False):
|
|
21
|
+
proc = subprocess.Popen(
|
|
22
|
+
params, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=shell, cwd=cwd)
|
|
23
|
+
|
|
24
|
+
stdout_data, stderr_data = proc.communicate()
|
|
25
|
+
if not suppress_out and stdout_data != "":
|
|
26
|
+
self.output.procout(self.decode(stdout_data))
|
|
27
|
+
|
|
28
|
+
if proc.returncode != 0:
|
|
29
|
+
raise Exception(self.decode(stderr_data))
|
|
30
|
+
|
|
31
|
+
def call_proc(self, params, shell=False, cwd=None):
|
|
32
|
+
try:
|
|
33
|
+
subprocess.check_call(params, shell=shell, cwd=cwd)
|
|
34
|
+
return 0
|
|
35
|
+
except KeyboardInterrupt as ki:
|
|
36
|
+
return 1
|
|
37
|
+
except Exception as e:
|
|
38
|
+
self.output.error("Error while executing command: {0}. {1}".format(' '.join(params), str(e)))
|
|
39
|
+
return 1
|
|
40
|
+
|
|
41
|
+
def check_dependency(self, params, description):
|
|
42
|
+
try:
|
|
43
|
+
self.exe_proc(params, shell=not self.envvars.is_posix(), suppress_out=True)
|
|
44
|
+
except FileNotFoundError:
|
|
45
|
+
raise FileNotFoundError("{0} is required by the Azure IoT Edge Dev Tool. For installation instructions, see https://aka.ms/iotedgedevwiki.".format(description))
|
|
46
|
+
|
|
47
|
+
def is_dir_empty(self, name):
|
|
48
|
+
if os.path.exists(name):
|
|
49
|
+
return len(os.listdir(name)) == 0
|
|
50
|
+
else:
|
|
51
|
+
return True
|
|
52
|
+
|
|
53
|
+
def ensure_dir(self, name):
|
|
54
|
+
if not os.path.exists(name):
|
|
55
|
+
os.makedirs(name)
|
|
56
|
+
|
|
57
|
+
def find_files(self, directory, pattern):
|
|
58
|
+
# find all files in directory that match the pattern.
|
|
59
|
+
for root, dirs, files in os.walk(directory):
|
|
60
|
+
for basename in files:
|
|
61
|
+
if fnmatch.fnmatch(basename, pattern):
|
|
62
|
+
filename = os.path.join(root, basename)
|
|
63
|
+
yield filename
|
|
64
|
+
|
|
65
|
+
def get_iot_hub_sas_token(self, uri, key, policy_name, expiry=3600):
|
|
66
|
+
ttl = time() + expiry
|
|
67
|
+
sign_key = "%s\n%d" % ((quote(uri)), int(ttl))
|
|
68
|
+
signature = b64encode(
|
|
69
|
+
HMAC(b64decode(key), sign_key.encode("utf-8"), sha256).digest())
|
|
70
|
+
|
|
71
|
+
rawtoken = {
|
|
72
|
+
"sr": uri,
|
|
73
|
+
"sig": signature,
|
|
74
|
+
"se": str(int(ttl))
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if policy_name is not None:
|
|
78
|
+
rawtoken["skn"] = policy_name
|
|
79
|
+
|
|
80
|
+
return "SharedAccessSignature " + urlencode(rawtoken)
|
|
81
|
+
|
|
82
|
+
@staticmethod
|
|
83
|
+
def get_file_contents(file, expandvars=False):
|
|
84
|
+
with open(file, "r") as file:
|
|
85
|
+
content = file.read()
|
|
86
|
+
if expandvars:
|
|
87
|
+
return os.path.expandvars(content)
|
|
88
|
+
else:
|
|
89
|
+
return content
|
|
90
|
+
|
|
91
|
+
def decode(self, val):
|
|
92
|
+
return val.decode("utf-8").strip()
|
|
93
|
+
|
|
94
|
+
def get_config_files(self):
|
|
95
|
+
# config files are in root of solution
|
|
96
|
+
|
|
97
|
+
return [os.path.join(os.getcwd(), f) for f in os.listdir(os.getcwd()) if f.endswith("template.json")]
|
|
98
|
+
|
|
99
|
+
def get_bypass_modules(self):
|
|
100
|
+
return [module.strip()
|
|
101
|
+
for module in self.envvars.BYPASS_MODULES.split(",") if module]
|
|
102
|
+
|
|
103
|
+
def in_asterisk_list(self, item, asterisk_list):
|
|
104
|
+
return len(asterisk_list) > 0 and (asterisk_list[0] == "*" or item in asterisk_list)
|
|
105
|
+
|
|
106
|
+
def copy_from_template_dir(self, src_file, dest_dir, dest_file=None, replacements=None):
|
|
107
|
+
if dest_file is None:
|
|
108
|
+
dest_file = src_file
|
|
109
|
+
|
|
110
|
+
template_dir = os.path.join(os.path.split(__file__)[0], "template")
|
|
111
|
+
self.copy_template(os.path.join(template_dir, src_file), os.path.join(dest_dir, dest_file), replacements, expandvars=False)
|
|
112
|
+
|
|
113
|
+
def copy_template(self, src, dest=None, replacements=None, expandvars=True):
|
|
114
|
+
"""Read file at src, replace the keys in replacements with their values, optionally expand environment variables, and save to dest"""
|
|
115
|
+
if dest is None:
|
|
116
|
+
dest = src
|
|
117
|
+
|
|
118
|
+
content = Utility.get_file_contents(src)
|
|
119
|
+
|
|
120
|
+
if replacements:
|
|
121
|
+
for key, value in replacements.items():
|
|
122
|
+
content = content.replace(key, value)
|
|
123
|
+
|
|
124
|
+
if expandvars:
|
|
125
|
+
content = os.path.expandvars(content)
|
|
126
|
+
|
|
127
|
+
with open(dest, "w") as dest_file:
|
|
128
|
+
dest_file.write(content)
|
|
129
|
+
|
|
130
|
+
def nested_set(self, dict_, key_path, value):
|
|
131
|
+
current = dict_
|
|
132
|
+
for key in key_path[:-1]:
|
|
133
|
+
if key not in current:
|
|
134
|
+
current[key] = {}
|
|
135
|
+
current = current.get(key)
|
|
136
|
+
|
|
137
|
+
current[key_path[-1]] = value
|
|
138
|
+
|
|
139
|
+
def del_key(self, dict_, key_path):
|
|
140
|
+
if not isinstance(dict_, dict):
|
|
141
|
+
return None
|
|
142
|
+
|
|
143
|
+
current = dict_
|
|
144
|
+
for key in key_path[:-1]:
|
|
145
|
+
current = current.get(key, None)
|
|
146
|
+
|
|
147
|
+
if not isinstance(current, dict):
|
|
148
|
+
return None
|
|
149
|
+
|
|
150
|
+
return current.pop(key_path[-1], None)
|
|
151
|
+
|
|
152
|
+
@staticmethod
|
|
153
|
+
def get_sha256_hash(val):
|
|
154
|
+
hash_object = sha256(val.encode('utf-8'))
|
|
155
|
+
|
|
156
|
+
return str(hash_object.hexdigest()).lower()
|
|
157
|
+
|
|
158
|
+
@staticmethod
|
|
159
|
+
def get_deployment_manifest_name(template_file, template_schema_ver, platform):
|
|
160
|
+
if "DEPLOYMENT_CONFIG_FILE" in os.environ:
|
|
161
|
+
return os.environ["DEPLOYMENT_CONFIG_FILE"]
|
|
162
|
+
|
|
163
|
+
if template_schema_ver is None:
|
|
164
|
+
if os.path.exists(template_file):
|
|
165
|
+
json_ = json.loads(Utility.get_file_contents(template_file, expandvars=True))
|
|
166
|
+
template_schema_ver = json_.get("$schema-template", "")
|
|
167
|
+
else:
|
|
168
|
+
template_schema_ver = Constants.deployment_template_schema_version
|
|
169
|
+
|
|
170
|
+
platform = "." + platform if template_schema_ver > "0.0.1" else ""
|
|
171
|
+
prefix = os.path.basename(template_file)
|
|
172
|
+
if prefix.endswith(Constants.deployment_template_suffix):
|
|
173
|
+
prefix = prefix[:-len(Constants.deployment_template_suffix)]
|
|
174
|
+
elif prefix.endswith(".json"):
|
|
175
|
+
prefix = prefix[:-len(".json")]
|
|
176
|
+
else:
|
|
177
|
+
prefix = "deployment"
|
|
178
|
+
|
|
179
|
+
return "{0}{1}.json".format(prefix, platform)
|
s/iotedgedev/version.py
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Metadata-Version: 1.2
|
|
2
|
+
Name: iotedgedev
|
|
3
|
+
Version: 3.3.4
|
|
4
|
+
Summary: The Azure IoT Edge Dev Tool greatly simplifies the IoT Edge development process by automating many routine manual tasks, such as building, deploying, pushing modules and configuring the IoT Edge Runtime.
|
|
5
|
+
Home-page: https://github.com/azure/iotedgedev
|
|
6
|
+
Author: Microsoft Corporation
|
|
7
|
+
Author-email: vsciet@microsoft.com
|
|
8
|
+
License: MIT license
|
|
9
|
+
Description: See https://github.com/azure/iotedgedev for usage instructions.
|
|
10
|
+
Keywords: azure iot edge dev tool
|
|
11
|
+
Platform: UNKNOWN
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Natural Language :: English
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.6
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Requires-Python: >=3.6, <3.10
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
CHANGELOG.md
|
|
2
|
+
LICENSE
|
|
3
|
+
MANIFEST.in
|
|
4
|
+
README.md
|
|
5
|
+
setup.cfg
|
|
6
|
+
setup.py
|
|
7
|
+
iotedgedev/__init__.py
|
|
8
|
+
iotedgedev/args.py
|
|
9
|
+
iotedgedev/azurecli.py
|
|
10
|
+
iotedgedev/buildoptionsparser.py
|
|
11
|
+
iotedgedev/buildprofile.py
|
|
12
|
+
iotedgedev/cli.py
|
|
13
|
+
iotedgedev/connectionstring.py
|
|
14
|
+
iotedgedev/constants.py
|
|
15
|
+
iotedgedev/containerregistry.py
|
|
16
|
+
iotedgedev/decorators.py
|
|
17
|
+
iotedgedev/deploymentmanifest.py
|
|
18
|
+
iotedgedev/dockercls.py
|
|
19
|
+
iotedgedev/dotnet.py
|
|
20
|
+
iotedgedev/edge.py
|
|
21
|
+
iotedgedev/envvars.py
|
|
22
|
+
iotedgedev/iothub.py
|
|
23
|
+
iotedgedev/module.py
|
|
24
|
+
iotedgedev/modules.py
|
|
25
|
+
iotedgedev/organizedgroup.py
|
|
26
|
+
iotedgedev/output.py
|
|
27
|
+
iotedgedev/simulator.py
|
|
28
|
+
iotedgedev/solution.py
|
|
29
|
+
iotedgedev/telemetry.py
|
|
30
|
+
iotedgedev/telemetryconfig.py
|
|
31
|
+
iotedgedev/telemetryuploader.py
|
|
32
|
+
iotedgedev/utility.py
|
|
33
|
+
iotedgedev/version.py
|
|
34
|
+
iotedgedev.egg-info/PKG-INFO
|
|
35
|
+
iotedgedev.egg-info/SOURCES.txt
|
|
36
|
+
iotedgedev.egg-info/dependency_links.txt
|
|
37
|
+
iotedgedev.egg-info/entry_points.txt
|
|
38
|
+
iotedgedev.egg-info/not-zip-safe
|
|
39
|
+
iotedgedev.egg-info/requires.txt
|
|
40
|
+
iotedgedev.egg-info/top_level.txt
|
|
41
|
+
iotedgedev/template/.env.tmp
|
|
42
|
+
iotedgedev/template/.gitignore
|
|
43
|
+
iotedgedev/template/deployment.template.json
|
|
44
|
+
iotedgedev/template/launch_c.json
|
|
45
|
+
iotedgedev/template/launch_csharp.json
|
|
46
|
+
iotedgedev/template/launch_java.json
|
|
47
|
+
iotedgedev/template/launch_node.json
|
|
48
|
+
iotedgedev/template/launch_python.json
|
|
49
|
+
tests/__init__.py
|
|
50
|
+
tests/test_azurecli.py
|
|
51
|
+
tests/test_buildoptionsparser.py
|
|
52
|
+
tests/test_cli.py
|
|
53
|
+
tests/test_config.py
|
|
54
|
+
tests/test_connectionstring.py
|
|
55
|
+
tests/test_decorators.py
|
|
56
|
+
tests/test_deploymentmanifest.py
|
|
57
|
+
tests/test_envvars.py
|
|
58
|
+
tests/test_iotedgedev_iothub_deploy.py
|
|
59
|
+
tests/test_iotedgedev_simulator.py
|
|
60
|
+
tests/test_iotedgedev_solution.py
|
|
61
|
+
tests/test_iotedgedev_solution_build.py
|
|
62
|
+
tests/test_iotedgedev_solution_tag.py
|
|
63
|
+
tests/test_utility.py
|
|
64
|
+
tests/utility.py
|
|
65
|
+
tests/assets/deployment.manifest_invalid.json
|
|
66
|
+
tests/assets/deployment.manifest_invalid_createoptions.json
|
|
67
|
+
tests/assets/deployment.manifest_invalid_schema.json
|
|
68
|
+
tests/assets/deployment.template.non_str_placeholder.json
|
|
69
|
+
tests/assets/deployment.template_1.json
|
|
70
|
+
tests/assets/deployment.template_2.json
|
|
71
|
+
tests/assets/deployment.template_3.json
|
|
72
|
+
tests/assets/deployment.template_4.json
|
|
73
|
+
tests/assets/deployment.template_invalidresult.json
|
|
74
|
+
tests/assets/deployment.template_without_schema_template.json
|
|
75
|
+
tests/assets/launch.json
|
|
76
|
+
tests/assets/launch_without_nodejs.json
|
|
77
|
+
tests/assets/test_solution_shared_lib/.gitignore
|
|
78
|
+
tests/assets/test_solution_shared_lib/deployment.debug.template.json
|
|
79
|
+
tests/assets/test_solution_shared_lib/deployment.escapedpath.template.json
|
|
80
|
+
tests/assets/test_solution_shared_lib/deployment.template.json
|
|
81
|
+
tests/assets/test_solution_shared_lib/layered_deployment.flattened_props.template.json
|
|
82
|
+
tests/assets/test_solution_shared_lib/layered_deployment.no_modules.template.json
|
|
83
|
+
tests/assets/test_solution_shared_lib/.vscode/launch.json
|
|
84
|
+
tests/assets/test_solution_shared_lib/libs/sharedlib/Class1.cs
|
|
85
|
+
tests/assets/test_solution_shared_lib/libs/sharedlib/sharedlib.csproj
|
|
86
|
+
tests/assets/test_solution_shared_lib/modules/non_module_project/placeholder.txt
|
|
87
|
+
tests/assets/test_solution_shared_lib/modules/sample_module/.gitignore
|
|
88
|
+
tests/assets/test_solution_shared_lib/modules/sample_module/Dockerfile.amd64
|
|
89
|
+
tests/assets/test_solution_shared_lib/modules/sample_module/Dockerfile.amd64.debug
|
|
90
|
+
tests/assets/test_solution_shared_lib/modules/sample_module/Dockerfile.windows-amd64
|
|
91
|
+
tests/assets/test_solution_shared_lib/modules/sample_module/Program.cs
|
|
92
|
+
tests/assets/test_solution_shared_lib/modules/sample_module/module.json
|
|
93
|
+
tests/assets/test_solution_shared_lib/modules/sample_module/sample_module.csproj
|
|
94
|
+
tests/assets/test_solution_shared_lib/sample_module_2/.gitignore
|
|
95
|
+
tests/assets/test_solution_shared_lib/sample_module_2/Dockerfile.amd64
|
|
96
|
+
tests/assets/test_solution_shared_lib/sample_module_2/Dockerfile.amd64.debug
|
|
97
|
+
tests/assets/test_solution_shared_lib/sample_module_2/Dockerfile.windows-amd64
|
|
98
|
+
tests/assets/test_solution_shared_lib/sample_module_2/Program.cs
|
|
99
|
+
tests/assets/test_solution_shared_lib/sample_module_2/module.json
|
|
100
|
+
tests/assets/test_solution_shared_lib/sample_module_2/sample_module_2.csproj
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
click>=6.0
|
|
2
|
+
bcrypt<=3.1.7
|
|
3
|
+
docker>=3.7.0
|
|
4
|
+
python-dotenv
|
|
5
|
+
requests<=2.25.1,>=2.20.0
|
|
6
|
+
fstrings
|
|
7
|
+
azure-cli-core>=2.25.0
|
|
8
|
+
iotedgehubdev==0.14.14
|
|
9
|
+
applicationinsights==0.11.9
|
|
10
|
+
commentjson==0.9.0
|
|
11
|
+
pyyaml>=5.4
|
|
12
|
+
more-itertools<8.1.0
|
|
13
|
+
|
|
14
|
+
[:sys_platform == "win32" and python_version < "3.6"]
|
|
15
|
+
pypiwin32==219
|
|
16
|
+
|
|
17
|
+
[:sys_platform == "win32" and python_version >= "3.6"]
|
|
18
|
+
pypiwin32==223
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
iotedgedev
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
## iotedgedev Pull Request Checklist
|
|
2
|
+
|
|
3
|
+
- [ ] Versions updated (both __init__.py files, CHANGELOG, setup.py, setup.cfg)
|
|
4
|
+
- [ ] Unit tests pass locally
|
|
5
|
+
- [ ] Quickstart steps locally validated
|
|
6
|
+
- [ ] Passes unit tests in CICD pipeline (green on Github pipeline)
|
|
7
|
+
- [ ] Pypi RC version passes Edge CICD pipeline validation for cross-tool validation
|
|
8
|
+
|
|
9
|
+
## Additional comments
|
s/pytest.ini
ADDED
s/requirements.txt
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
click==8.0.1
|
|
2
|
+
docker==5.0.3
|
|
3
|
+
python-dotenv==0.19.0
|
|
4
|
+
requests==2.25.1
|
|
5
|
+
fstrings==0.1.0
|
|
6
|
+
msrestazure==0.4.34
|
|
7
|
+
iotedgehubdev==0.14.14
|
|
8
|
+
applicationinsights==0.11.9
|
|
9
|
+
commentjson==0.9.0
|
|
10
|
+
azure-cli-core==2.25.0
|
|
11
|
+
pypiwin32==219; sys_platform == 'win32' and python_version < '3.6'
|
|
12
|
+
pypiwin32==223; sys_platform == 'win32' and python_version >= '3.6'
|
s/requirements_dev.txt
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-r requirements.txt
|
|
2
|
+
bumpversion==0.5.3
|
|
3
|
+
wheel==0.30.0
|
|
4
|
+
watchdog==0.8.3
|
|
5
|
+
docker-compose==1.29.1
|
|
6
|
+
flake8
|
|
7
|
+
pycodestyle==2.7.0
|
|
8
|
+
autopep8==1.5.7
|
|
9
|
+
tox==3.24.1
|
|
10
|
+
coverage==4.1
|
|
11
|
+
Sphinx==4.4.0
|
|
12
|
+
cookiecutter==1.7.3
|
|
13
|
+
PyYAML>=5.4
|
|
14
|
+
pylint==2.3.0
|
|
15
|
+
pytest==6.2.4
|
|
16
|
+
setuptools==57.0.0
|
|
17
|
+
twine==3.4.2
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
@ECHO OFF
|
|
2
|
+
ECHO ## Commands
|
|
3
|
+
|
|
4
|
+
ECHO **iotedgedev**
|
|
5
|
+
ECHO ```
|
|
6
|
+
iotedgedev -h
|
|
7
|
+
ECHO ```
|
|
8
|
+
|
|
9
|
+
ECHO **iotedgedev add**
|
|
10
|
+
ECHO ```
|
|
11
|
+
iotedgedev add -h
|
|
12
|
+
ECHO ```
|
|
13
|
+
|
|
14
|
+
ECHO **iotedgedev build**
|
|
15
|
+
ECHO ```
|
|
16
|
+
iotedgedev build -h
|
|
17
|
+
ECHO ```
|
|
18
|
+
|
|
19
|
+
ECHO **iotedgedev deploy**
|
|
20
|
+
ECHO ```
|
|
21
|
+
iotedgedev deploy -h
|
|
22
|
+
ECHO ```
|
|
23
|
+
|
|
24
|
+
ECHO **iotedgedev genconfig**
|
|
25
|
+
ECHO ```
|
|
26
|
+
iotedgedev genconfig -h
|
|
27
|
+
ECHO ```
|
|
28
|
+
|
|
29
|
+
ECHO **iotedgedev init**
|
|
30
|
+
ECHO ```
|
|
31
|
+
iotedgedev init -h
|
|
32
|
+
ECHO ```
|
|
33
|
+
|
|
34
|
+
ECHO **iotedgedev log**
|
|
35
|
+
ECHO ```
|
|
36
|
+
iotedgedev log -h
|
|
37
|
+
ECHO ```
|
|
38
|
+
|
|
39
|
+
ECHO **iotedgedev monitor**
|
|
40
|
+
ECHO ```
|
|
41
|
+
iotedgedev monitor -h
|
|
42
|
+
ECHO ```
|
|
43
|
+
|
|
44
|
+
ECHO **iotedgedev new**
|
|
45
|
+
ECHO ```
|
|
46
|
+
iotedgedev new -h
|
|
47
|
+
ECHO ```
|
|
48
|
+
|
|
49
|
+
ECHO **iotedgedev push**
|
|
50
|
+
ECHO ```
|
|
51
|
+
iotedgedev push -h
|
|
52
|
+
ECHO ```
|
|
53
|
+
|
|
54
|
+
ECHO **iotedgedev setup**
|
|
55
|
+
ECHO ```
|
|
56
|
+
iotedgedev setup -h
|
|
57
|
+
ECHO ```
|
|
58
|
+
|
|
59
|
+
ECHO **iotedgedev start**
|
|
60
|
+
ECHO ```
|
|
61
|
+
iotedgedev start -h
|
|
62
|
+
ECHO ```
|
|
63
|
+
|
|
64
|
+
ECHO **iotedgedev stop**
|
|
65
|
+
ECHO ```
|
|
66
|
+
iotedgedev stop -h
|
|
67
|
+
ECHO ```
|
|
68
|
+
|
|
69
|
+
ECHO **iotedgedev docker**
|
|
70
|
+
ECHO ```
|
|
71
|
+
iotedgedev docker -h
|
|
72
|
+
ECHO ```
|
|
73
|
+
|
|
74
|
+
ECHO **iotedgedev docker clean**
|
|
75
|
+
ECHO ```
|
|
76
|
+
iotedgedev docker clean -h
|
|
77
|
+
ECHO ```
|
|
78
|
+
|
|
79
|
+
ECHO **iotedgedev docker log**
|
|
80
|
+
ECHO ```
|
|
81
|
+
iotedgedev docker log -h
|
|
82
|
+
ECHO ```
|
|
83
|
+
|
|
84
|
+
ECHO **iotedgedev docker setup**
|
|
85
|
+
ECHO ```
|
|
86
|
+
iotedgedev docker setup -h
|
|
87
|
+
ECHO ```
|
|
88
|
+
|
|
89
|
+
ECHO **iotedgedev iothub**
|
|
90
|
+
ECHO ```
|
|
91
|
+
iotedgedev iothub -h
|
|
92
|
+
ECHO ```
|
|
93
|
+
|
|
94
|
+
ECHO **iotedgedev iothub monitor**
|
|
95
|
+
ECHO ```
|
|
96
|
+
iotedgedev iothub monitor -h
|
|
97
|
+
ECHO ```
|
|
98
|
+
|
|
99
|
+
ECHO **iotedgedev iothub setup**
|
|
100
|
+
ECHO ```
|
|
101
|
+
iotedgedev iothub setup -h
|
|
102
|
+
ECHO ```
|
|
103
|
+
|
|
104
|
+
ECHO **iotedgedev simulator**
|
|
105
|
+
ECHO ```
|
|
106
|
+
iotedgedev simulator -h
|
|
107
|
+
ECHO ```
|
|
108
|
+
|
|
109
|
+
ECHO **iotedgedev simulator modulecred**
|
|
110
|
+
ECHO ```
|
|
111
|
+
iotedgedev simulator modulecred -h
|
|
112
|
+
ECHO ```
|
|
113
|
+
|
|
114
|
+
ECHO **iotedgedev simulator setup**
|
|
115
|
+
ECHO ```
|
|
116
|
+
iotedgedev simulator setup -h
|
|
117
|
+
ECHO ```
|
|
118
|
+
|
|
119
|
+
ECHO **iotedgedev simulator start**
|
|
120
|
+
ECHO ```
|
|
121
|
+
iotedgedev simulator start -h
|
|
122
|
+
ECHO ```
|
|
123
|
+
|
|
124
|
+
ECHO **iotedgedev simulator stop**
|
|
125
|
+
ECHO ```
|
|
126
|
+
iotedgedev simulator stop -h
|
|
127
|
+
ECHO ```
|
|
128
|
+
|
|
129
|
+
ECHO **iotedgedev solution**
|
|
130
|
+
ECHO ```
|
|
131
|
+
iotedgedev solution -h
|
|
132
|
+
ECHO ```
|
|
133
|
+
|
|
134
|
+
ECHO **iotedgedev solution add**
|
|
135
|
+
ECHO ```
|
|
136
|
+
iotedgedev solution add -h
|
|
137
|
+
ECHO ```
|
|
138
|
+
|
|
139
|
+
ECHO **iotedgedev solution build**
|
|
140
|
+
ECHO ```
|
|
141
|
+
iotedgedev solution build -h
|
|
142
|
+
ECHO ```
|
|
143
|
+
|
|
144
|
+
ECHO **iotedgedev solution build**
|
|
145
|
+
ECHO ```
|
|
146
|
+
iotedgedev solution build -h
|
|
147
|
+
ECHO ```
|
|
148
|
+
|
|
149
|
+
ECHO **iotedgedev solution deploy**
|
|
150
|
+
ECHO ```
|
|
151
|
+
iotedgedev solution deploy -h
|
|
152
|
+
ECHO ```
|
|
153
|
+
|
|
154
|
+
ECHO **iotedgedev solution e2e**
|
|
155
|
+
ECHO ```
|
|
156
|
+
iotedgedev solution e2e -h
|
|
157
|
+
ECHO ```
|
|
158
|
+
|
|
159
|
+
ECHO **iotedgedev solution genconfig**
|
|
160
|
+
ECHO ```
|
|
161
|
+
iotedgedev solution genconfig -h
|
|
162
|
+
ECHO ```
|
|
163
|
+
|
|
164
|
+
ECHO **iotedgedev solution init**
|
|
165
|
+
ECHO ```
|
|
166
|
+
iotedgedev solution init -h
|
|
167
|
+
ECHO ```
|
|
168
|
+
|
|
169
|
+
ECHO **iotedgedev solution new**
|
|
170
|
+
ECHO ```
|
|
171
|
+
iotedgedev solution new -h
|
|
172
|
+
ECHO ```
|
|
173
|
+
|
|
174
|
+
ECHO **iotedgedev solution push**
|
|
175
|
+
ECHO ```
|
|
176
|
+
iotedgedev solution push -h
|
|
177
|
+
ECHO ```
|
s/scripts/install-pip.sh
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
curl -O https://bootstrap.pypa.io/get-pip.py && python get-pip.py
|
s/scripts/setup-wsl.sh
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
echo "PATH=\"$PATH:$HOME/bin:$HOME/.local/bin:/mnt/c/Program\ Files/Docker/Docker/resources/bin\"" >> ~/.bashrc
|
|
2
|
+
echo "alias docker=docker.exe" >> ~/.bashrc
|
|
3
|
+
echo "alias docker-machine=docker-machine.exe" >> ~/.bashrc
|
|
4
|
+
echo "alias docker-compose=docker-compose.exe" >> ~/.bashrc
|
|
5
|
+
echo "export DOCKER_HOST='${DOCKER_HOST}'" >> ~/.bashrc
|
|
6
|
+
source ~/.bashrc
|
|
7
|
+
sudo sh -c "echo Defaults env_keep += \"DOCKER_HOST\" >> /etc/sudoers.d/docker"
|
s/setup.cfg
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
[bumpversion]
|
|
2
|
+
current_version = 3.3.4
|
|
3
|
+
commit = True
|
|
4
|
+
tag = True
|
|
5
|
+
|
|
6
|
+
[bumpversion:file:setup.py]
|
|
7
|
+
search = version='{current_version}'
|
|
8
|
+
replace = version='{new_version}'
|
|
9
|
+
|
|
10
|
+
[bumpversion:file:iotedgedev/__init__.py]
|
|
11
|
+
search = __version__ = '{current_version}'
|
|
12
|
+
replace = __version__ = '{new_version}'
|
|
13
|
+
|
|
14
|
+
[flake8]
|
|
15
|
+
exclude = docs
|
|
16
|
+
|
|
17
|
+
[aliases]
|
|
18
|
+
|
s/setup.py
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
from setuptools import find_packages, setup
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
with open('CHANGELOG.md') as history_file:
|
|
6
|
+
history = history_file.read()
|
|
7
|
+
|
|
8
|
+
requirements = [
|
|
9
|
+
'click>=6.0',
|
|
10
|
+
'bcrypt<=3.1.7',
|
|
11
|
+
'docker >= 3.7.0',
|
|
12
|
+
'python-dotenv',
|
|
13
|
+
'requests >= 2.20.0, <= 2.25.1',
|
|
14
|
+
'fstrings',
|
|
15
|
+
'azure-cli-core >= 2.25.0',
|
|
16
|
+
'iotedgehubdev == 0.14.14',
|
|
17
|
+
'applicationinsights == 0.11.9',
|
|
18
|
+
'commentjson == 0.9.0',
|
|
19
|
+
'pyyaml>=5.4',
|
|
20
|
+
'pypiwin32==219; sys_platform == "win32" and python_version < "3.6"',
|
|
21
|
+
'pypiwin32==223; sys_platform == "win32" and python_version >= "3.6"',
|
|
22
|
+
'more-itertools < 8.1.0'
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
setup_requirements = [
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
test_requirements = [
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
setup(
|
|
33
|
+
name='iotedgedev',
|
|
34
|
+
version='3.3.4',
|
|
35
|
+
description='The Azure IoT Edge Dev Tool greatly simplifies the IoT Edge development process by automating many routine manual tasks, such as building, deploying, pushing modules and configuring the IoT Edge Runtime.',
|
|
36
|
+
long_description='See https://github.com/azure/iotedgedev for usage instructions.',
|
|
37
|
+
author='Microsoft Corporation',
|
|
38
|
+
author_email='vsciet@microsoft.com',
|
|
39
|
+
url='https://github.com/azure/iotedgedev',
|
|
40
|
+
packages=find_packages(include=['iotedgedev']),
|
|
41
|
+
entry_points={
|
|
42
|
+
'console_scripts': [
|
|
43
|
+
'iotedgedev=iotedgedev.cli:main'
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
include_package_data=True,
|
|
47
|
+
install_requires=requirements,
|
|
48
|
+
license='MIT license',
|
|
49
|
+
zip_safe=False,
|
|
50
|
+
keywords='azure iot edge dev tool',
|
|
51
|
+
python_requires='>=3.6, <3.10',
|
|
52
|
+
classifiers=[
|
|
53
|
+
'Development Status :: 5 - Production/Stable',
|
|
54
|
+
'Intended Audience :: Developers',
|
|
55
|
+
'License :: OSI Approved :: MIT License',
|
|
56
|
+
'Natural Language :: English',
|
|
57
|
+
'Programming Language :: Python :: 3',
|
|
58
|
+
'Programming Language :: Python :: 3.6',
|
|
59
|
+
'Programming Language :: Python :: 3.7',
|
|
60
|
+
'Programming Language :: Python :: 3.8',
|
|
61
|
+
'Programming Language :: Python :: 3.9'
|
|
62
|
+
],
|
|
63
|
+
test_suite='tests',
|
|
64
|
+
tests_require=test_requirements,
|
|
65
|
+
setup_requires=setup_requirements
|
|
66
|
+
)
|