Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
6042a8d
remove deprecated samples
sbSteveK Aug 15, 2025
e4a79f5
remove more samples and begin updating ci
sbSteveK Aug 15, 2025
fce9ad9
update mac ci
sbSteveK Aug 15, 2025
21361ef
update linux ci
sbSteveK Aug 15, 2025
486926b
more sample ci cleanup
sbSteveK Aug 15, 2025
52ed9e2
more sample culling
sbSteveK Aug 15, 2025
e6d375d
remove more mqtt3 samples
sbSteveK Aug 15, 2025
72bf681
remove unused roles
sbSteveK Aug 15, 2025
337355a
remove mqtt3 samples from codebuild smoketest
sbSteveK Aug 15, 2025
5b4bdf8
point CD and other areas to mqtt5 pubsub. Reinstate basic_discovery
sbSteveK Aug 18, 2025
8d380b8
remove --is_ci args from runner scripts
sbSteveK Aug 18, 2025
0a302fc
remove ci from mqtt5 pubsub
sbSteveK Aug 18, 2025
5c23074
forgot utils
sbSteveK Aug 18, 2025
ff8a813
restore old basic_discovery.py
sbSteveK Aug 18, 2025
029e88d
restore basic_discovery.md
sbSteveK Aug 18, 2025
3cfbabf
simplify arg parsing for pubsub
sbSteveK Aug 18, 2025
7561ef6
update custom auth sample
sbSteveK Aug 18, 2025
d5f5aa3
remove duplicate use_websockets
sbSteveK Aug 18, 2025
c8b1ed8
missed comma
sbSteveK Aug 18, 2025
df3c19d
comma again
sbSteveK Aug 18, 2025
2bb49a1
rename args
sbSteveK Aug 18, 2025
4c54985
input_custom_authorizer_name
sbSteveK Aug 18, 2025
b696d7e
is_ci remove
sbSteveK Aug 18, 2025
baa0c37
clientID
sbSteveK Aug 18, 2025
228e40a
use websockets is a toggle
sbSteveK Aug 18, 2025
3b69654
update samples
sbSteveK Aug 18, 2025
81d83dc
remove is_ci
sbSteveK Aug 18, 2025
85bd350
remove command line utils
sbSteveK Aug 18, 2025
45b4fcc
update fleet_provisioning test
sbSteveK Aug 19, 2025
0750ba1
remove utils dependency from remaining service tests
sbSteveK Aug 19, 2025
ac73022
remove utils from basic_discovery
sbSteveK Aug 19, 2025
bb3b98a
remove command_line_utils.py
sbSteveK Aug 19, 2025
5805cd7
samples-wide factoring start
sbSteveK Aug 19, 2025
f75b65e
simplify parser
sbSteveK Aug 19, 2025
13724e8
further formatting
sbSteveK Aug 19, 2025
391912e
Merge branch 'main' into sample-revamp
sbSteveK Aug 27, 2025
575774c
update README and FAQ
sbSteveK Aug 27, 2025
edf254e
PR fixes
sbSteveK Aug 27, 2025
353908a
try removing ci_run_greengrass_discovery_cfg to check if it's running
sbSteveK Aug 27, 2025
1d0fa5b
restore ci_run_greengrass_ipc_cfg
sbSteveK Aug 27, 2025
ea9e2d9
be holistic and also remove mqtt5 samples from ci
sbSteveK Aug 28, 2025
cb04f25
remove Device Advisor from CI
sbSteveK Aug 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
restore old basic_discovery.py
  • Loading branch information
sbSteveK committed Aug 18, 2025
commit ff8a81348ea84edecc1c280f0aae03380540d86b
74 changes: 8 additions & 66 deletions samples/basic_discovery.py
Original file line number Diff line number Diff line change
@@ -1,82 +1,21 @@
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0.

# --------------------------------- ARGUMENT PARSING -----------------------------------------
import argparse, uuid
from pathlib import Path

def _existing_file(p: str) -> str:
if p and not Path(p).exists():
raise argparse.ArgumentTypeError(f"file not found: {p}")
return p

def _nonneg_int(s: str) -> int:
v = int(s)
if v < 0:
raise argparse.ArgumentTypeError("--count must be >= 0")
return v

def parse_sample_input():
parser = argparse.ArgumentParser(
description="MQTT5 pub/sub sample (mTLS).",
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)

# Connection / TLS
parser.add_argument("--port", type=int, default=8883, dest="input_port", help="Port (8883 mTLS, 443 ALPN)")
parser.add_argument("--cert", required=True, dest="input_cert", type=_existing_file, help="Client cert (PEM)")
parser.add_argument("--key", required=True, dest="input_key", type=_existing_file, help="Client private key (PEM)")
parser.add_argument("--ca", dest="input_ca", type=_existing_file, help="Optional CA bundle (PEM)")

# Messaging
parser.add_argument("--topic", default="test/topic", dest="input_topic", help="Topic")
parser.add_argument("--message", default="Hello from mqtt5 sample", dest="input_message", help="Message payload")
parser.add_argument("--count", type=_nonneg_int, default=5, dest="input_count",
help="Messages to publish (0 = infinite)")

# Proxy (optional)
parser.add_argument("--proxy-host", dest="input_proxy_host", help="HTTP proxy host")
parser.add_argument("--proxy-port", type=int, default=0, dest="input_proxy_port", help="HTTP proxy port")

# Misc
parser.add_argument("--client-id", dest="input_clientId",
default=f"mqtt5-sample-{uuid.uuid4().hex[:8]}", help="Client ID")
parser.add_argument("--ci", action="store_true", dest="input_is_ci", help="CI mode (less verbose)")


parser.add_argument("--signing_region", required=True, dest="input_signing_region",
help="The signing region used for the websocket signer")
parser.add_argument("--thing_name", required=True, dest="input_thing_name",
help="The name assigned to your IoT Thing")
parser.add_argument("--mode", dest="input_mode", default='both',
help="The operation mode (optional, default='both').\nModes:both, publish, subscribe")
parser.add_argument("--region", required=True, dest="input_region",
help="The region to connect through.")
parser.add_argument("--max_pub_ops", dest="input_max_pub_ops", default=10,
help="The maximum number of publish operations (optional, default='10').")
parser.add_argument("--print_discover_resp_only", dest="input_print_discovery_resp_only",
help="(optional, default='False').", action="store_true", default=False)

return parser.parse_args()

cmdData = parse_sample_input()

# --------------------------------- ARGUMENT PARSING END -----------------------------------------

import time, json
import time
import json
from awscrt import io, http
from awscrt.mqtt import QoS
from awsiot.greengrass_discovery import DiscoveryClient
from awsiot import mqtt_connection_builder

# from utils.command_line_utils import CommandLineUtils
from utils.command_line_utils import CommandLineUtils

allowed_actions = ['both', 'publish', 'subscribe']

# cmdData is the arguments/input from the command line placed into a single struct for
# use in this sample. This handles all of the command line parsing, validating, etc.
# See the Utils/CommandLineUtils for more information.
# cmdData = CommandLineUtils.parse_sample_input_basic_discovery()
cmdData = CommandLineUtils.parse_sample_input_basic_discovery()

tls_options = io.TlsContextOptions.create_client_with_mtls_from_path(cmdData.input_cert, cmdData.input_key)
if (cmdData.input_ca is not None):
Expand All @@ -98,7 +37,10 @@ def parse_sample_input():
resp_future = discovery_client.discover(cmdData.input_thing_name)
discover_response = resp_future.result()

print("Received a greengrass discovery result! Not showing result for possible data sensitivity.")
if (cmdData.input_is_ci):
print("Received a greengrass discovery result! Not showing result in CI for possible data sensitivity.")
else:
print(discover_response)

if (cmdData.input_print_discovery_resp_only):
exit(0)
Expand Down
Loading