clusterinthecloud / support

If you need help with Cluster in the Cloud, this is the right place
2 stars 0 forks source link

finish > update_config error #5

Closed jtsaismith closed 4 years ago

jtsaismith commented 5 years ago

Hello,

I followed the tutorials at https://cluster-in-the-cloud.readthedocs.io/en/latest/index.html. After the cluster management node was provisioned, when I ran the finish script, I received an error message because there was no limits.yaml file in the /home/opc directory. So, I created one following the example on https://cluster-in-the-cloud.readthedocs.io/en/latest/finalise.html#setting-service-limits.

I then re-ran the finish script, but received the following error:

[opc@mgmt ~]$ ./finish Traceback (most recent call last): File "/usr/local/bin/update_config", line 66, in node_config = "\n".join(get_node_configs(get_limits(), get_shapes(), get_mgmt_info())) File "/usr/local/bin/update_config", line 42, in get_node_configs for ad, ad_count in ad_counts.items(): AttributeError: 'NoneType' object has no attribute 'items'

I googled the AttributeError, and it appears this may be caused by an assignment or function call up above failing or returning an unexpected result. I am a newbie at Python, so am not sure how to resolve this.

Thanks in advance for your assistance, Jenny Tsai-Smith (jenny.tsai@oracle.com)

christopheredsall commented 5 years ago

Hi Jenny,

This error message can happen if the format of the YAML file is not what it was expecting. For each shape it expects a "map", also known as a "dictionary" of ADs and a count of nodes of that type per AD. To form a dictionary in YAML you use spaces to indent the block.

e.g.

VM.Standard2.1:
  1: 1
  2: 1
  3: 1

Will work, while this one

VM.Standard2.1:
1: 1
2: 1
3: 1

won't and will produce the error you got (which I admit could be a little more informative).

jtsaismith commented 5 years ago

That did the trick, Christopher! I indented the lines in the limits.yaml file, and everything works just fine now. Thank you!