-
Notifications
You must be signed in to change notification settings - Fork 3k
Implement device management subcommand #7844
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
3f03171
to
a6163cb
Compare
app_name, output_ext | ||
)) | ||
options.payload = open(payload_name, "rb") | ||
return func(options) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very interesting pattern for wrapping a function call.
@theotherjimmy Can you think of anyone else who should probably review this PR? |
@bridadan Maybe would be a good candidate |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! I think a few comments sprinkled throughout some of the more obscure bits would help for future maintenance/readability, but otherwise good!
from tools.options import extract_mcus | ||
|
||
|
||
class MbedExtendedArgs(MainArgumentParser): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So this class is basically "eating up" the unused arguments that mbed-cli
will always provide? Do you think you could add a few code comments describing what this class is doing for other maintainers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This class is not doing that. It's removing the required-ness of the "payload" parameter and adding another way to specify the payload as a build artefact.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I guess my initial feedback about the code comments still stands then. But that's just for folks who poke at this code, not for the use of the feature (aka not a blocker).
with open("mbed_cloud_dev_credentials.c", "w") as fout: | ||
fout.write(dev_cert_info.header_file) | ||
return func(options) | ||
return inner |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is awesome! Nice 👍
/morph build |
Build : SUCCESSBuild number : 2887 Triggering tests/morph test |
Exporter Build : SUCCESSBuild number : 2512 |
/morph test |
1 similar comment
/morph test |
@@ -15,3 +15,5 @@ pyelftools>=0.24 | |||
jsonschema>=2.6 | |||
future>=0.16.0 | |||
six>=1.11.0 | |||
git+https://github.com/armmbed/[email protected] | |||
mbed-cloud-sdk==2.0.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is causing test to fail to initialize. Please review the test results (find them via the log, they did not report back as it fails really early)
Collecting mbed-cloud-sdk==2.0.0 (from -r requirements.txt (line 19))
python2.7/site-packages/pip/_vendor/urllib3/util/ssl_.py:369: SNIMissingWarning: An HTTPS request has been made, but the SNI (Server Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
SNIMissingWarning
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://pypi.org/project/mbed-cloud-sdk/
It exists, why is CI failing to install it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@0xc0170 Fwiw, I was unable to reproduce the failure. pip install -r requirements
when using this PR head worked fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah! Got the log:
pip install -r requirements.txt
Collecting git+https://github.com/armmbed/[email protected] (from -r requirements.txt (line 18))
Cloning https://github.com/armmbed/manifest-tool.git (to revision v1.4.5) to /tmp/pip-req-build-x1310E
Requirement already satisfied: colorama>=0.3.3 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 1)) (0.3.9)
Requirement already satisfied: PySerial>=2.7 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 2)) (3.4)
Requirement already satisfied: PrettyTable>=0.7.2 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 3)) (0.7.2)
Requirement already satisfied: Jinja2>=2.7.3 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 4)) (2.10)
Requirement already satisfied: IntelHex>=1.3 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 5)) (2.1)
Requirement already satisfied: junit-xml in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 6)) (1.8)
Requirement already satisfied: pyYAML in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 7)) (3.12)
Requirement already satisfied: requests in /usr/lib/python2.7/dist-packages (from -r requirements.txt (line 8)) (2.2.1)
Requirement already satisfied: mbed-ls>=0.2.13 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 9)) (1.3.5)
Requirement already satisfied: mbed-host-tests>=1.1.2 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 10)) (1.3.0)
Requirement already satisfied: mbed-greentea>=0.2.24 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 11)) (1.3.2)
Requirement already satisfied: beautifulsoup4>=4 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 12)) (4.6.0)
Requirement already satisfied: fuzzywuzzy>=0.11 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 13)) (0.16.0)
Requirement already satisfied: pyelftools>=0.24 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 14)) (0.24)
Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 15)) (2.6.0)
Requirement already satisfied: future>=0.16.0 in /usr/local/lib/python2.7/dist-packages (from -r requirements.txt (line 16)) (0.16.0)
Requirement already satisfied: six>=1.11.0 in ./.env/lib/python2.7/site-packages (from -r requirements.txt (line 17)) (1.11.0)
Collecting mbed-cloud-sdk==2.0.0 (from -r requirements.txt (line 19))
/redacted/.env/local/lib/python2.7/site-packages/pip/_vendor/urllib3/util/ssl_.py:369: SNIMissingWarning: An HTTPS request has been made, but the SNI (Server Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
SNIMissingWarning
/redacted/.env/local/lib/python2.7/site-packages/pip/_vendor/urllib3/util/ssl_.py:160: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecurePlatformWarning
Could not find a version that satisfies the requirement mbed-cloud-sdk==2.0.0 (from -r requirements.txt (line 19)) (from versions: )
No matching distribution found for mbed-cloud-sdk==2.0.0 (from -r requirements.txt (line 19))
b2bfddc
to
a6163cb
Compare
Retriggering to get CI information. /morph test |
This pulls in additional packages requiured for SSL verification for Py2 Ref: https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl-py2
/morph test |
/morph test |
Test : FAILUREBuild number : 2704 |
/morph build |
Because of course we would have license issues... /morph build |
Build : FAILUREBuild number : 2959 |
Build : SUCCESSBuild number : 2961 Triggering tests/morph test |
/morph test |
Exporter Build : SUCCESSBuild number : 2575 |
Test : FAILUREBuild number : 2708 |
CI error /morph test |
Seems like Ci is not triggering the build, one more try and then I'll run it manually /morph test |
/morph test |
Test : SUCCESSBuild number : 2717 |
Description
This series implements the device-managment/dev-mgmt/dm mbed cli
subcommand. This subcommand is much like all of manifest tool, except it
also removes a few difficulties with using the manifest tool with an
Mbed OS project. In particular:
mbed dm init
will pull create/find and download a developercertificate for you
mbed dm update
will automatially populate thepayload
feild withthe most recently built "application" side of a managed BL mode project
Note:
mbed dm
subcommand implemented by ARMmbed/mbed-cli#735Pull request type