@@ -305,6 +305,9 @@ def create(cli):
305305
306306 create_object = edit_object_as_yaml (create_input_object )
307307
308+ if not create_object : # is False if editing cancelled by empty buffer
309+ return True
310+
308311 organization = use_organization ()
309312
310313 if cli .args .resource_type == "network" :
@@ -342,6 +345,9 @@ def edit(cli):
342345 edit_resource_object , network , network_group , organization = get (cli , echo = False )
343346 cli .log .debug ("opening %s named '%s' for editing" , cli .args .resource_type , edit_resource_object ['name' ])
344347 update_request_object = edit_object_as_yaml (edit_resource_object )
348+ if not update_request_object : # is False if editing cancelled by empty buffer
349+ return True
350+
345351 network .put_resource (put = update_request_object , type = cli .args .resource_type )
346352
347353@cli .argument ('query' , arg_only = True , action = StoreDictKeyPair , nargs = '?' , help = "id=UUIDv4 or query params as k=v,k=v comma-separated pairs" )
@@ -774,23 +780,28 @@ def edit_object_as_yaml(edit: object):
774780 tf .seek (0 )
775781 edited = tf .read ()
776782 if return_code == 0 :
777- try :
778- edited_object = yaml_loads (edited )
779- except parser .ParserError as e :
780- cli .log .error ("invalid YAML or JSON: %s" , e )
781- save_error = True
782- except Exception as e :
783- cli .log .error ("unknown error in %s" , e )
784- save_error = True
783+ if len (edited ) == 0 :
784+ cli .log .info ("cancelled due to empty file" )
785+ return False
785786 else :
786- return edited_object
787+ try :
788+ edited_object = yaml_loads (edited )
789+ except parser .ParserError as e :
790+ cli .log .error ("invalid YAML or JSON: %s" , e )
791+ save_error = True
792+ except Exception as e :
793+ cli .log .error ("unknown error in %s" , e )
794+ save_error = True
795+ else :
796+ return edited_object
787797 else :
788798 cli .log .error ("editor returned an error" )
789799 save_error = True
790800 if save_error :
791801 with tempfile .NamedTemporaryFile (suffix = ".yml" ) as tf :
792802 tf .write (edited .encode ())
793803 cli .log .warn ("your buffer was saved in %s and you may edit and redirect to the same command as stdin or --file" , tf .name )
804+ exit (1 )
794805
795806
796807if __name__ == '__main__' :
0 commit comments