<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">There is also utility `yamllint` (sudo apt-get install yamllint) that shows all sorts of YAML errors that I find very handy when crafting manifests (and catching syntax errors)!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Great it already worked out!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">/Kaspars<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> SUGGUNA, NAGA <br>
<b>Sent:</b> Thursday, August 23, 2018 9:16 AM<br>
<b>To:</b> MCEUEN, MATT <MM9745@att.com>; 'airship-discuss@lists.airshipit.org' <airship-discuss@lists.airshipit.org>; SKELS, KASPARS <ks3019@att.com><br>
<b>Subject:</b> RE: if document.get('schema', '') == SCHEMA_SCHEMA: AttributeError: 'NoneType' object has no attribute 'get'<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">This issue resolved.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">One of the document had comments before the beginning of the yaml document (---). After fixing that able to generate genesis bundle.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> MCEUEN, MATT <br>
<b>Sent:</b> Wednesday, August 22, 2018 7:30 PM<br>
<b>To:</b> SUGGUNA, NAGA <<a href="mailto:ns156u@att.com">ns156u@att.com</a>>; 'airship-discuss@lists.airshipit.org' <<a href="mailto:airship-discuss@lists.airshipit.org">airship-discuss@lists.airshipit.org</a>>; SKELS, KASPARS <<a href="mailto:ks3019@att.com">ks3019@att.com</a>><br>
<b>Subject:</b> RE: if document.get('schema', '') == SCHEMA_SCHEMA: AttributeError: 'NoneType' object has no attribute 'get'<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi Naga, a new set of reference manifests have been added to the airship-treasuremap project.  Can you please have a look at those, and compare your manifests to what’s up there?  I’m not familiar with that error in this context, but it
 looks to be related to loading schema documents from your manifest sets.  I suspect comparing to a known-good set of manifests (including schema docs and references to those schemas) may help.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><a href="https://github.com/openstack/airship-treasuremap">https://github.com/openstack/airship-treasuremap</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<br>
Matt<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> SUGGUNA, NAGA <br>
<b>Sent:</b> Wednesday, August 22, 2018 2:15 PM<br>
<b>To:</b> 'airship-discuss@lists.airshipit.org' <<a href="mailto:airship-discuss@lists.airshipit.org">airship-discuss@lists.airshipit.org</a>><br>
<b>Subject:</b> [Airship-discuss] if document.get('schema', '') == SCHEMA_SCHEMA: AttributeError: 'NoneType' object has no attribute 'get'<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">***<b><span style="color:red">Security Advisory:</span></b> This Message Originated Outside of AT&T ***<br>
Reference <a href="http://cso.att.com/EmailSecurity/IDSP.html">http://cso.att.com/EmailSecurity/IDSP.html</a> for more information.<o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:Consolas">While generating promgen I see following error, I verified the site.yaml for empty documents and I found and some, after fixing them also I see the same error.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">+ gen_bundle<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">++ pwd<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">+ docker run --env http_proxy=http://one.proxy.att.com:8888/ --env https_proxy=http://one.proxy.att.com:8888/ --user 0 --rm -t -w /target -v /root/yaml_builds:/target quay.io/airshipit/promenade:009f3de7ecf6afcdd2783ac7a12470394d7dfab3
 promenade build-all --validators -o /target/tars/dellgen10/configs/promenade-bundle '/target/tars/dellgen10/configs/promenade/*.yaml'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">+ PORT=9000<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">+ UWSGI_TIMEOUT=300<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">+ PROMENADE_THREADS=1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">+ PROMENADE_WORKERS=4<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">+ '[' promenade = server ']'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">+ exec promenade build-all --validators -o /target/tars/dellgen10/configs/promenade-bundle /target/tars/dellgen10/configs/promenade/global.yaml /target/tars/dellgen10/configs/promenade/site.yaml<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">2018-08-22 19:03:15,525 INFO     - - - promenade.config:from_streams [ 55] Loading documents from /target/tars/dellgen10/configs/promenade/global.yaml<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">2018-08-22 19:03:22,244 INFO     - - - promenade.config:from_streams [ 59] Successfully loaded 173 documents from /target/tars/dellgen10/configs/promenade/global.yaml<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">2018-08-22 19:03:22,245 INFO     - - - promenade.config:from_streams [ 55] Loading documents from /target/tars/dellgen10/configs/promenade/site.yaml<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">2018-08-22 19:03:24,975 INFO     - - - promenade.config:from_streams [ 59] Successfully loaded 120 documents from /target/tars/dellgen10/configs/promenade/site.yaml<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">2018-08-22 19:03:24,975 INFO     - - - promenade.config:__init__ [ 24] Parsing document schemas.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">Traceback (most recent call last):<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/usr/local/bin/promenade", line 11, in <module><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    load_entry_point('promenade', 'console_scripts', 'promenade')()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 722, in __call__<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    return self.main(*args, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 697, in main<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    rv = self.invoke(ctx)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    return _process_result(sub_ctx.command.invoke(sub_ctx))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 895, in invoke<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    return ctx.invoke(self.callback, **ctx.params)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 535, in invoke<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    return callback(*args, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/opt/promenade/promenade/cli.py", line 42, in build_all<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    streams=config_files)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/opt/promenade/promenade/config.py", line 62, in from_streams<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    return cls(documents=documents, **kwargs)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/opt/promenade/promenade/config.py", line 25, in __init__<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    schema_set = validation.load_schemas_from_docs(documents)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">  File "/opt/promenade/promenade/validation.py", line 95, in load_schemas_from_docs<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">    if document.get('schema', '') == SCHEMA_SCHEMA:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">AttributeError: 'NoneType' object has no attribute 'get'<o:p></o:p></span></p>
</div>
</body>
</html>