0.0.4: Support nodes missing most facts

This commit is contained in:
Daniel Parks 2017-10-23 18:06:48 -07:00
parent eeee934894
commit 3aead36578
No known key found for this signature in database
GPG key ID: 7335138B2B9829EB
4 changed files with 21 additions and 10 deletions

View file

@ -112,13 +112,13 @@ class Services(Set):
class Owners(Services): class Owners(Services):
def item_html(self, service): def item_html(self, service):
if service["owner_uid"] == ":undef": if service.get("owner_uid", ":undef") == ":undef":
return "" return ""
else: else:
return Markup('<li>%s</li>') % service["owner_uid"] return Markup('<li>%s</li>') % service["owner_uid"]
def item_csv(self, service): def item_csv(self, service):
if service["owner_uid"] == ":undef": if service.get("owner_uid", ":undef") == ":undef":
return "" return ""
else: else:
return service["owner_uid"] return service["owner_uid"]
@ -126,13 +126,13 @@ class Owners(Services):
class Teams(Services): class Teams(Services):
def item_html(self, service): def item_html(self, service):
if service["team"] == ":undef": if service.get("team", ":undef") == ":undef":
return "" return ""
else: else:
return Markup('<li>%s</li>') % service["team"] return Markup('<li>%s</li>') % service["team"]
def item_csv(self, service): def item_csv(self, service):
if service["team"] == ":undef": if service.get("team", ":undef") == ":undef":
return "" return ""
else: else:
return service["team"] return service["team"]
@ -146,8 +146,17 @@ class Fqdn(Base):
self.value_html(record)) self.value_html(record))
def value_html(self, record): def value_html(self, record):
return Markup( if "hostname" not in record["facts"]:
'<a href="%s.html"><b>%s<span>.</span></b><i>%s</i></a>') % ( return Markup('<a href="%s.html">%s</a>') % (
record["certname"],
record["certname"])
elif "domain" not in record["facts"]:
return Markup('<a href="%s.html"><b>%s</b></a>') % (
record["certname"],
record["facts"]["hostname"])
else:
return Markup(
'<a href="%s.html"><b>%s<span>.</span></b><i>%s</i></a>') % (
record["certname"], record["certname"],
record["facts"]["hostname"], record["facts"]["hostname"],
record["facts"]["domain"]) record["facts"]["domain"])
@ -155,8 +164,8 @@ class Fqdn(Base):
class Os(Base): class Os(Base):
def value(self, record): def value(self, record):
os_fact = super(Os, self).value(record) os_fact = record["facts"].get("os", dict())
os = [os_fact["name"]] os = [os_fact.get("name", "")]
try: try:
os.append(os_fact["release"]["full"]) os.append(os_fact["release"]["full"])

View file

@ -72,7 +72,7 @@ class Inventory(object):
def sorted_nodes(self, section, key): def sorted_nodes(self, section, key):
return sorted( return sorted(
self.nodes.values(), self.nodes.values(),
key=lambda node: node[section][key]) key=lambda node: node.get(section, dict()).get(key, ""))
def sorted_roles(self): def sorted_roles(self):
return sorted(self.roles.items()) return sorted(self.roles.items())

View file

@ -42,7 +42,9 @@
<th>Notes</th> <th>Notes</th>
<td> <td>
<div class="notes"> <div class="notes">
{% if service["notes"] %}
{{ service["notes"] | unundef | markdown }} {{ service["notes"] | unundef | markdown }}
{% endif %}
</div> </div>
</td> </td>
</tr> </tr>

View file

@ -2,7 +2,7 @@ import setuptools
setuptools.setup( setuptools.setup(
name = "infinitory", name = "infinitory",
version = "0.0.3", version = "0.0.4",
description = "SRE host, role, and service inventory", description = "SRE host, role, and service inventory",
author = "Daniel Parks", author = "Daniel Parks",