diff --git a/.gitignore b/.gitignore index 8fcf7ea..64ce76f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,7 @@ *.pyc .coverage .env -^config/ -build/ +/config/ coverage.xml dist/ env/ diff --git a/octodns/provider/plan.py b/octodns/provider/plan.py index 6291a87..9ac7685 100644 --- a/octodns/provider/plan.py +++ b/octodns/provider/plan.py @@ -151,8 +151,7 @@ def _value_stringifier(record, sep): class PlanMarkdown(_PlanOutput): - def run(self, plans, *args, **kwargs): - fh = stdout + def run(self, plans, fh=stdout, *args, **kwargs): if plans: current_zone = None for target, plan in plans: @@ -184,10 +183,7 @@ class PlanMarkdown(_PlanOutput): if existing: fh.write(str(existing.ttl)) fh.write(' | ') - if existing: - fh.write(_value_stringifier(existing, '; ')) - else: - fh.write('n/a') + fh.write(_value_stringifier(existing, '; ')) fh.write(' | |\n') if new: fh.write('| | | | ') @@ -205,3 +201,66 @@ class PlanMarkdown(_PlanOutput): fh.write('\n\n') else: fh.write('## No changes were planned\n') + + +class PlanHtml(_PlanOutput): + + def run(self, plans, fh=stdout, *args, **kwargs): + if plans: + current_zone = None + for target, plan in plans: + if plan.desired.name != current_zone: + current_zone = plan.desired.name + fh.write('
| Operation | +Name | +Type | +TTL | +Value | +Source | +
|---|---|---|---|---|---|
| ') + fh.write(change.__class__.__name__) + fh.write(' | \n') + fh.write(record.name) + fh.write(' | \n') + fh.write(record._type) + fh.write(' | \n') + # TTL + if existing: + fh.write('') + fh.write(str(existing.ttl)) + fh.write(' | \n')
+ fh.write(_value_stringifier(existing, ' ')) + fh.write(' | \n \n |
| \n') + + if new: + fh.write(' | ') + fh.write(str(new.ttl)) + fh.write(' | \n')
+ fh.write(_value_stringifier(new, ' ')) + fh.write(' | \n ') + fh.write(new.source.id) + fh.write(' | \n||
| Summary: ') + fh.write(str(plan)) + fh.write(' | \n|||||