diff --git a/astraSDK/buckets.py b/astraSDK/buckets.py index e19a55e..c31b775 100644 --- a/astraSDK/buckets.py +++ b/astraSDK/buckets.py @@ -56,6 +56,8 @@ def main(self, nameFilter=None, provider=None): if ret.ok: buckets = super().jsonifyResults(ret) + if buckets is None: + return False bucketsCooked = copy.deepcopy(buckets) for counter, bucket in enumerate(buckets.get("items")): if nameFilter and nameFilter.lower() not in bucket.get("name").lower(): diff --git a/astraSDK/k8s.py b/astraSDK/k8s.py index a646744..91f3930 100644 --- a/astraSDK/k8s.py +++ b/astraSDK/k8s.py @@ -1018,6 +1018,7 @@ def main( registry=None, label=None, # should be of 'acs.example.com/policy=allowed' format disableAutoSupport=False, + asupURL=None, name="astra-connector", namespace="astra-connector", ): @@ -1045,6 +1046,9 @@ def main( body["spec"]["labels"] = {label.split("=")[0]: label.split("=")[1]} if disableAutoSupport: body["spec"]["autoSupport"] = {"enrolled": False} + elif asupURL: + body["spec"]["autoSupport"] = {"url": asupURL} + return createResource( quiet=self.quiet, dry_run=self.dry_run, diff --git a/tkSrc/choices.py b/tkSrc/choices.py index 8d84c42..e4ec3ea 100644 --- a/tkSrc/choices.py +++ b/tkSrc/choices.py @@ -560,6 +560,9 @@ def kube_config(argv, acl, verbPosition, v3Position, global_args): verbPosition. """ desired_context = "" + # Catch "actoolkit --v3" command (without any other arguments) + if v3Position + 1 == len(argv): + return None, verbPosition v3_arg = argv[v3Position + 1] # This is only needed to properly generate help text ("actoolkit --v3 --help") if verbPosition is None: diff --git a/tkSrc/manage.py b/tkSrc/manage.py index 62a2b8f..d493b96 100644 --- a/tkSrc/manage.py +++ b/tkSrc/manage.py @@ -155,6 +155,7 @@ def manageV3Cluster( ard, label=None, disableAutoSupport=False, + asupURL=None, config=None, ): helpers.isRFC1123(clusterName) @@ -210,6 +211,7 @@ def manageV3Cluster( registry=registry, label=label, disableAutoSupport=disableAutoSupport, + asupURL=asupURL, ) if not connector: raise SystemExit("astraSDK.k8s.createAstraConnector() failed") @@ -440,6 +442,7 @@ def main(args, ard, config=None): ard, label=args.label, disableAutoSupport=args.disableAutoSupport, + asupURL=args.asupURL, config=config, ) else: diff --git a/tkSrc/parser.py b/tkSrc/parser.py index 3f65c72..6db058a 100644 --- a/tkSrc/parser.py +++ b/tkSrc/parser.py @@ -1865,12 +1865,21 @@ def manage_cluster_args(self): help="optionally specify a label to be added to the AstraConnector CR, for " "example: 'acs.example.com/policy=allowed'", ) - self.subparserManageCluster.add_argument( + asupGroup = self.subparserManageCluster.add_argument_group( + "asupGroup", "NetApp Auto-Support options" + ) + asupMEGroup = asupGroup.add_mutually_exclusive_group() + asupMEGroup.add_argument( "--disableAutoSupport", default=False, action="store_true", help="specify to opt-out of automatic upload of auto support bundles", ) + asupMEGroup.add_argument( + "--asupURL", + default=None, + help="provide a non-default URL to upload auto support bundles", + ) versionGroup = self.subparserManageCluster.add_argument_group( "operatorGroup", "Astra Connector Operator Version to install" )