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",