Tracked in Github Issues as https://github.com/canonical/cloud-
init/issues/3754

** Bug watch added: github.com/canonical/cloud-init/issues #3754
   https://github.com/canonical/cloud-init/issues/3754

** Changed in: cloud-init
       Status: Triaged => Expired

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1885598

Title:
  schema: tracecback when using schema  --annotate on single line dicts

Status in cloud-init:
  Expired

Bug description:
  Annotate doesn't handle r-value dicts that begin on the same line as
  the l-value key.

  Given the following example invalid cloudconfig (providing an int for
  a string value in chef), we get a traceback when trying to annotate
  the invalid user-data.

  cat > invalid-chef-traceback.yaml <<EOF
  #cloud-config
  chef: {install_type: 1}
  EOF

  
  Annotate works on dicts that are not declared on the same line as the "chef" 
key

  cat > invalid-chef.yaml <<EOF
  #cloud-config
  chef:
    install_type: 1
  EOF


  csmith@uptown:~/src/cloud-init$ python3 -m cloudinit.cmd.main devel schema -c 
invalid-chef.yaml --annotate
  #cloud-config
  chef: 
     install_type: 1            # E1

  # Errors: -------------
  # E1: 1 is not of type 'string'

  
  csmith@uptown:~/src/cloud-init$ python3 -m cloudinit.cmd.main devel schema -c 
invalid-chef-traceback.yaml --annotate
  Traceback (most recent call last):
    File "/home/csmith/src/cloud-init/cloudinit/config/schema.py", line 215, in 
validate_cloudconfig_file
      validate_cloudconfig_schema(
    File "/home/csmith/src/cloud-init/cloudinit/config/schema.py", line 120, in 
validate_cloudconfig_schema
      raise SchemaValidationError(errors)
  cloudinit.config.schema.SchemaValidationError: Cloud config schema errors: 
chef.install_type: 1 is not of type 'string'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
      return _run_code(code, main_globals, None,
    File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
      exec(code, run_globals)
    File "/home/csmith/src/cloud-init/cloudinit/cmd/main.py", line 901, in 
<module>
      return_value = main(sys.argv)
    File "/home/csmith/src/cloud-init/cloudinit/cmd/main.py", line 891, in main
      retval = util.log_time(
    File "/home/csmith/src/cloud-init/cloudinit/util.py", line 2285, in log_time
      ret = func(*args, **kwargs)
    File "/home/csmith/src/cloud-init/cloudinit/config/schema.py", line 444, in 
handle_schema_args
      validate_cloudconfig_file(
    File "/home/csmith/src/cloud-init/cloudinit/config/schema.py", line 219, in 
validate_cloudconfig_file
      print(annotated_cloudconfig_file(
    File "/home/csmith/src/cloud-init/cloudinit/config/schema.py", line 151, in 
annotated_cloudconfig_file
      errors_by_line[schemapaths[path]].append(msg)
  KeyError: 'chef.install_type'

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1885598/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to