diff --git a/infinitory/cellformatter.py b/infinitory/cellformatter.py
index af8e7b5..765381b 100644
--- a/infinitory/cellformatter.py
+++ b/infinitory/cellformatter.py
@@ -112,13 +112,13 @@ class Services(Set):
class Owners(Services):
def item_html(self, service):
- if service["owner_uid"] == ":undef":
+ if service.get("owner_uid", ":undef") == ":undef":
return ""
else:
return Markup('
%s') % service["owner_uid"]
def item_csv(self, service):
- if service["owner_uid"] == ":undef":
+ if service.get("owner_uid", ":undef") == ":undef":
return ""
else:
return service["owner_uid"]
@@ -126,13 +126,13 @@ class Owners(Services):
class Teams(Services):
def item_html(self, service):
- if service["team"] == ":undef":
+ if service.get("team", ":undef") == ":undef":
return ""
else:
return Markup('%s') % service["team"]
def item_csv(self, service):
- if service["team"] == ":undef":
+ if service.get("team", ":undef") == ":undef":
return ""
else:
return service["team"]
@@ -146,8 +146,17 @@ class Fqdn(Base):
self.value_html(record))
def value_html(self, record):
- return Markup(
- '%s.%s') % (
+ if "hostname" not in record["facts"]:
+ return Markup('%s') % (
+ record["certname"],
+ record["certname"])
+ elif "domain" not in record["facts"]:
+ return Markup('%s') % (
+ record["certname"],
+ record["facts"]["hostname"])
+ else:
+ return Markup(
+ '%s.%s') % (
record["certname"],
record["facts"]["hostname"],
record["facts"]["domain"])
@@ -155,8 +164,8 @@ class Fqdn(Base):
class Os(Base):
def value(self, record):
- os_fact = super(Os, self).value(record)
- os = [os_fact["name"]]
+ os_fact = record["facts"].get("os", dict())
+ os = [os_fact.get("name", "")]
try:
os.append(os_fact["release"]["full"])
diff --git a/infinitory/inventory.py b/infinitory/inventory.py
index 51dad6c..0f0b6d6 100644
--- a/infinitory/inventory.py
+++ b/infinitory/inventory.py
@@ -72,7 +72,7 @@ class Inventory(object):
def sorted_nodes(self, section, key):
return sorted(
self.nodes.values(),
- key=lambda node: node[section][key])
+ key=lambda node: node.get(section, dict()).get(key, ""))
def sorted_roles(self):
return sorted(self.roles.items())
diff --git a/infinitory/templates/service.html b/infinitory/templates/service.html
index 6bacbf4..c70ad30 100644
--- a/infinitory/templates/service.html
+++ b/infinitory/templates/service.html
@@ -42,7 +42,9 @@
Notes |
+ {% if service["notes"] %}
{{ service["notes"] | unundef | markdown }}
+ {% endif %}
|
diff --git a/setup.py b/setup.py
index 47e3892..41d363b 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ import setuptools
setuptools.setup(
name = "infinitory",
- version = "0.0.3",
+ version = "0.0.4",
description = "SRE host, role, and service inventory",
author = "Daniel Parks",