Browse Source

Merge pull request #928 from octodns/misc-bits

Misc bits: errant string joins from formatting formatted code and best practices in bootstrap
pull/36/head
Ross McFarland 3 years ago
committed by GitHub
parent
commit
c11476d79a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 65 additions and 59 deletions
  1. +2
    -0
      .git-blame-ignore-revs
  2. +2
    -2
      octodns/cmds/dump.py
  3. +1
    -1
      octodns/cmds/sync.py
  4. +10
    -10
      octodns/manager.py
  5. +2
    -5
      octodns/provider/base.py
  6. +1
    -1
      octodns/provider/plan.py
  7. +3
    -3
      octodns/record/__init__.py
  8. +1
    -1
      octodns/record/geo_data.py
  9. +4
    -4
      octodns/source/base.py
  10. +1
    -1
      octodns/source/envvar.py
  11. +1
    -1
      octodns/source/tinydns.py
  12. +5
    -5
      octodns/zone.py
  13. +11
    -2
      script/bootstrap
  14. +1
    -1
      tests/test_octodns_manager.py
  15. +2
    -2
      tests/test_octodns_provider_yaml.py
  16. +18
    -20
      tests/test_octodns_record.py

+ 2
- 0
.git-blame-ignore-revs View File

@ -1,2 +1,4 @@
# Commit that added in black formatting support
e116d26eeca0891c31b689e43db5bb60b62f73f6
# Commit that fixed a bunch of uneeded '...' '...' string joins from ^
fa4225b625654c51c7b0be6efcfd6a1109768a72

+ 2
- 2
octodns/cmds/dump.py View File

@ -38,13 +38,13 @@ def main():
'--lenient',
action='store_true',
default=False,
help='Ignore record validations and do a best effort ' 'dump',
help='Ignore record validations and do a best effort dump',
)
parser.add_argument(
'--split',
action='store_true',
default=False,
help='Split the dumped zone into a YAML file per ' 'record',
help='Split the dumped zone into a YAML file per record',
)
parser.add_argument('zone', help='Zone to dump')
parser.add_argument('source', nargs='+', help='Source(s) to pull data from')


+ 1
- 1
octodns/cmds/sync.py View File

@ -26,7 +26,7 @@ def main():
'--doit',
action='store_true',
default=False,
help='Whether to take action or just show what would ' 'change',
help='Whether to take action or just show what would change',
)
parser.add_argument(
'--force',


+ 10
- 10
octodns/manager.py View File

@ -141,7 +141,7 @@ class Manager(object):
except KeyError:
self.log.exception('Invalid provider class')
raise ManagerException(
f'Provider {provider_name} is missing ' 'class'
f'Provider {provider_name} is missing class'
)
_class, module, version = self._get_named_class('provider', _class)
kwargs = self._build_kwargs(provider_config)
@ -168,7 +168,7 @@ class Manager(object):
except KeyError:
self.log.exception('Invalid processor class')
raise ManagerException(
f'Processor {processor_name} is ' 'missing class'
f'Processor {processor_name} is missing class'
)
_class, module, version = self._get_named_class('processor', _class)
kwargs = self._build_kwargs(processor_config)
@ -204,7 +204,7 @@ class Manager(object):
except KeyError:
self.log.exception('Invalid plan_output class')
raise ManagerException(
f'plan_output {plan_output_name} is ' 'missing class'
f'plan_output {plan_output_name} is missing class'
)
_class, module, version = self._get_named_class(
'plan_output', _class
@ -264,7 +264,7 @@ class Manager(object):
module, version = self._import_module(module_name)
except (ImportError, ValueError):
self.log.exception(
'_get_{}_class: Unable to import ' 'module %s', _class
'_get_{}_class: Unable to import module %s', _class
)
raise ManagerException(f'Unknown {_type} class: {_class}')
@ -272,7 +272,7 @@ class Manager(object):
return getattr(module, class_name), module_name, version
except AttributeError:
self.log.exception(
'_get_{}_class: Unable to get class %s ' 'from module %s',
'_get_{}_class: Unable to get class %s from module %s',
class_name,
module,
)
@ -360,7 +360,7 @@ class Manager(object):
if "unexpected keyword argument 'lenient'" not in str(e):
raise
self.log.warning(
'provider %s does not accept lenient ' 'param',
'provider %s does not accept lenient param',
source.__class__.__name__,
)
source.populate(zone)
@ -389,7 +389,7 @@ class Manager(object):
if "keyword argument 'processors'" not in str(e):
raise
self.log.warning(
'provider.plan %s does not accept processors ' 'param',
'provider.plan %s does not accept processors param',
target.__class__.__name__,
)
plan = target.plan(zone)
@ -522,7 +522,7 @@ class Manager(object):
trg = self.providers[target]
if not isinstance(trg, BaseProvider):
raise ManagerException(
f'{trg} - "{target}" does not ' 'support targeting'
f'{trg} - "{target}" does not support targeting'
)
trgs.append(trg)
targets = trgs
@ -696,7 +696,7 @@ class Manager(object):
raise ManagerException(msg)
target = target.copy()
self.log.info(
'dump: setting directory of output_provider ' 'copy to %s',
'dump: setting directory of output_provider copy to %s',
output_dir,
)
target.directory = output_dir
@ -781,7 +781,7 @@ class Manager(object):
def get_zone(self, zone_name):
if not zone_name[-1] == '.':
raise ManagerException(
f'Invalid zone name {zone_name}, missing ' 'ending dot'
f'Invalid zone name {zone_name}, missing ending dot'
)
for name, config in self.config['zones'].items():


+ 2
- 5
octodns/provider/base.py View File

@ -187,8 +187,7 @@ class BaseProvider(BaseSource):
# If your code gets this warning see Source.populate for more
# information
self.log.warning(
'Provider %s used in target mode did not return ' 'exists',
self.id,
'Provider %s used in target mode did not return exists', self.id
)
# Make a (shallow) copy of the desired state so that everything from
@ -254,6 +253,4 @@ class BaseProvider(BaseSource):
return len(plan.changes)
def _apply(self, plan):
raise NotImplementedError(
'Abstract base class, _apply method ' 'missing'
)
raise NotImplementedError('Abstract base class, _apply method missing')

+ 1
- 1
octodns/provider/plan.py View File

@ -73,7 +73,7 @@ class Plan(object):
existing_n = 0
self.log.debug(
'__init__: Creates=%d, Updates=%d, Deletes=%d ' 'Existing=%d',
'__init__: Creates=%d, Updates=%d, Deletes=%d Existing=%d',
self.change_counts['Create'],
self.change_counts['Update'],
self.change_counts['Delete'],


+ 3
- 3
octodns/record/__init__.py View File

@ -624,7 +624,7 @@ class _DynamicMixin(object):
if len(values) == 1 and values[0].get('weight', 1) != 1:
reasons.append(
f'pool "{_id}" has single value with ' 'weight!=1'
f'pool "{_id}" has single value with weight!=1'
)
fallback = pool.get('fallback', None)
@ -1307,7 +1307,7 @@ class _NsValue(object):
for value in data:
if not FQDN(str(value), allow_underscores=True).is_valid:
reasons.append(
f'Invalid NS value "{value}" is not ' 'a valid FQDN.'
f'Invalid NS value "{value}" is not a valid FQDN.'
)
elif not value.endswith('.'):
reasons.append(f'NS value "{value}" missing trailing .')
@ -1519,7 +1519,7 @@ class SrvValue(EqualityTupleMixin):
and not FQDN(str(target), allow_underscores=True).is_valid
):
reasons.append(
f'Invalid SRV target "{target}" is not ' 'a valid FQDN.'
f'Invalid SRV target "{target}" is not a valid FQDN.'
)
except KeyError:
reasons.append('missing target')


+ 1
- 1
octodns/record/geo_data.py View File

@ -288,7 +288,7 @@ geo_data = {
'SD': {'name': 'South Dakota'},
'TN': {'name': 'Tennessee'},
'TX': {'name': 'Texas'},
'UM': {'name': 'United States Minor Outlying ' 'Islands'},
'UM': {'name': 'United States Minor Outlying Islands'},
'UT': {'name': 'Utah'},
'VA': {'name': 'Virginia'},
'VI': {'name': 'Virgin Islands'},


+ 4
- 4
octodns/source/base.py View File

@ -20,15 +20,15 @@ class BaseSource(object):
self.id = id
if not getattr(self, 'log', False):
raise NotImplementedError(
'Abstract base class, log property ' 'missing'
'Abstract base class, log property missing'
)
if not hasattr(self, 'SUPPORTS_GEO'):
raise NotImplementedError(
'Abstract base class, SUPPORTS_GEO ' 'property missing'
'Abstract base class, SUPPORTS_GEO property missing'
)
if not hasattr(self, 'SUPPORTS'):
raise NotImplementedError(
'Abstract base class, SUPPORTS ' 'property missing'
'Abstract base class, SUPPORTS property missing'
)
@property
@ -51,7 +51,7 @@ class BaseSource(object):
True if the zone exists or False if it does not.
'''
raise NotImplementedError(
'Abstract base class, populate method ' 'missing'
'Abstract base class, populate method missing'
)
def supports(self, record):


+ 1
- 1
octodns/source/envvar.py View File

@ -67,7 +67,7 @@ class EnvVarSource(BaseSource):
klass = self.__class__.__name__
self.log = logging.getLogger(f'{klass}[{id}]')
self.log.debug(
'__init__: id=%s, variable=%s, name=%s, ' 'ttl=%d',
'__init__: id=%s, variable=%s, name=%s, ttl=%d',
id,
variable,
name,


+ 1
- 1
octodns/source/tinydns.py View File

@ -174,7 +174,7 @@ class TinyDnsBaseSource(BaseSource):
zone.add_record(record, lenient=lenient)
except SubzoneRecordException:
self.log.debug(
'_populate_normal: skipping subzone ' 'record=%s',
'_populate_normal: skipping subzone record=%s',
record,
)


+ 5
- 5
octodns/zone.py View File

@ -146,7 +146,7 @@ class Zone(object):
continue
elif len(record.included) > 0 and target.id not in record.included:
self.log.debug(
'changes: skipping record=%s %s - %s not' ' included ',
'changes: skipping record=%s %s - %s not included ',
record.fqdn,
record._type,
target.id,
@ -154,7 +154,7 @@ class Zone(object):
continue
elif target.id in record.excluded:
self.log.debug(
'changes: skipping record=%s %s - %s ' 'excluded ',
'changes: skipping record=%s %s - %s excluded ',
record.fqdn,
record._type,
target.id,
@ -169,7 +169,7 @@ class Zone(object):
and target.id not in desired_record.included
):
self.log.debug(
'changes: skipping record=%s %s - %s' 'not included ',
'changes: skipping record=%s %s - %s not included',
record.fqdn,
record._type,
target.id,
@ -216,7 +216,7 @@ class Zone(object):
continue
elif len(record.included) > 0 and target.id not in record.included:
self.log.debug(
'changes: skipping record=%s %s - %s not' ' included ',
'changes: skipping record=%s %s - %s not included ',
record.fqdn,
record._type,
target.id,
@ -224,7 +224,7 @@ class Zone(object):
continue
elif target.id in record.excluded:
self.log.debug(
'changes: skipping record=%s %s - %s ' 'excluded ',
'changes: skipping record=%s %s - %s excluded ',
record.fqdn,
record._type,
target.id,


+ 11
- 2
script/bootstrap View File

@ -29,8 +29,17 @@ if [ "$ENV" != "production" ]; then
python -m pip install -r requirements-dev.txt
fi
if [ ! -L ".git/hooks/pre-commit" ]; then
ln -s "$ROOT/.git_hooks_pre-commit" ".git/hooks/pre-commit"
if [ -d ".git" ]; then
if [ -f ".git-blame-ignore-revs" ]; then
echo ""
echo "Setting blame.ignoreRevsFile to .git-blame-ingore-revs"
git config --local blame.ignoreRevsFile .git-blame-ignore-revs
fi
if [ ! -L ".git/hooks/pre-commit" ]; then
echo ""
echo "Installing pre-commit hook"
ln -s "$ROOT/.git_hooks_pre-commit" ".git/hooks/pre-commit"
fi
fi
echo ""


+ 1
- 1
tests/test_octodns_manager.py View File

@ -441,7 +441,7 @@ class TestManager(TestCase):
sources=['in'],
)
self.assertEqual(
'output_provider=simple, does not support ' 'copy method',
'output_provider=simple, does not support copy method',
str(ctx.exception),
)


+ 2
- 2
tests/test_octodns_provider_yaml.py View File

@ -213,7 +213,7 @@ class TestYamlProvider(TestCase):
with self.assertRaises(SubzoneRecordException) as ctx:
source.populate(zone)
self.assertEqual(
'Record www.sub.unit.tests. is under a managed ' 'subzone',
'Record www.sub.unit.tests. is under a managed subzone',
str(ctx.exception),
)
@ -470,7 +470,7 @@ class TestSplitYamlProvider(TestCase):
with self.assertRaises(SubzoneRecordException) as ctx:
source.populate(zone)
self.assertEqual(
'Record www.sub.unit.tests. is under a managed ' 'subzone',
'Record www.sub.unit.tests. is under a managed subzone',
str(ctx.exception),
)


+ 18
- 20
tests/test_octodns_record.py View File

@ -61,7 +61,7 @@ class TestRecord(TestCase):
with self.assertRaises(RecordException) as ctx:
Record.register_type(None, 'A')
self.assertEqual(
'Type "A" already registered by ' 'octodns.record.ARecord',
'Type "A" already registered by octodns.record.ARecord',
str(ctx.exception),
)
@ -1859,7 +1859,7 @@ class TestRecordValidation(TestCase):
self.assertTrue(reason.startswith('invalid fqdn, "xxxx'))
self.assertTrue(
reason.endswith(
'.unit.tests." is too long at 254' ' chars, max is 253'
'.unit.tests." is too long at 254 chars, max is 253'
)
)
@ -1873,7 +1873,7 @@ class TestRecordValidation(TestCase):
reason = ctx.exception.reasons[0]
self.assertTrue(reason.startswith('invalid label, "xxxx'))
self.assertTrue(
reason.endswith('xxx" is too long at 64' ' chars, max is 63')
reason.endswith('xxx" is too long at 64 chars, max is 63')
)
with self.assertRaises(ValidationError) as ctx:
@ -1884,7 +1884,7 @@ class TestRecordValidation(TestCase):
reason = ctx.exception.reasons[0]
self.assertTrue(reason.startswith('invalid label, "xxxx'))
self.assertTrue(
reason.endswith('xxx" is too long at 64' ' chars, max is 63')
reason.endswith('xxx" is too long at 64 chars, max is 63')
)
# should not raise with dots
@ -2472,7 +2472,7 @@ class TestRecordValidation(TestCase):
{'type': 'CNAME', 'ttl': 600, 'value': 'https://google.com'},
)
self.assertEqual(
['CNAME value "https://google.com" is not a valid ' 'FQDN'],
['CNAME value "https://google.com" is not a valid FQDN'],
ctx.exception.reasons,
)
@ -2488,7 +2488,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
['CNAME value "https://google.com/a/b/c" is not a ' 'valid FQDN'],
['CNAME value "https://google.com/a/b/c" is not a valid FQDN'],
ctx.exception.reasons,
)
@ -2500,7 +2500,7 @@ class TestRecordValidation(TestCase):
{'type': 'CNAME', 'ttl': 600, 'value': 'google.com/some/path'},
)
self.assertEqual(
['CNAME value "google.com/some/path" is not a valid ' 'FQDN'],
['CNAME value "google.com/some/path" is not a valid FQDN'],
ctx.exception.reasons,
)
@ -2971,7 +2971,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
['Invalid MX exchange "100 foo.bar.com." is not a ' 'valid FQDN.'],
['Invalid MX exchange "100 foo.bar.com." is not a valid FQDN.'],
ctx.exception.reasons,
)
@ -3082,7 +3082,7 @@ class TestRecordValidation(TestCase):
{'type': 'NS', 'ttl': 600, 'value': '100 foo.bar.com.'},
)
self.assertEqual(
['Invalid NS value "100 foo.bar.com." is not a ' 'valid FQDN.'],
['Invalid NS value "100 foo.bar.com." is not a valid FQDN.'],
ctx.exception.reasons,
)
@ -3283,7 +3283,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
['unescaped ; in "this has some; ' 'semi-colons\\; in it"'],
['unescaped ; in "this has some; semi-colons\\; in it"'],
ctx.exception.reasons,
)
@ -3487,7 +3487,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
['Invalid SRV target "100 foo.bar.com." is not a ' 'valid FQDN.'],
['Invalid SRV target "100 foo.bar.com." is not a valid FQDN.'],
ctx.exception.reasons,
)
@ -3589,7 +3589,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
'invalid certificate_usage ' '"{value["certificate_usage"]}"',
'invalid certificate_usage "{value["certificate_usage"]}"',
ctx.exception.reasons,
)
@ -3610,7 +3610,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
'invalid certificate_usage ' '"{value["certificate_usage"]}"',
'invalid certificate_usage "{value["certificate_usage"]}"',
ctx.exception.reasons,
)
@ -3648,8 +3648,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
'invalid selector ' '"{value["selector"]}"',
ctx.exception.reasons,
'invalid selector "{value["selector"]}"', ctx.exception.reasons
)
# Invalid selector
@ -3669,8 +3668,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
'invalid selector ' '"{value["selector"]}"',
ctx.exception.reasons,
'invalid selector "{value["selector"]}"', ctx.exception.reasons
)
# missing matching_type
@ -3707,7 +3705,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
'invalid matching_type ' '"{value["matching_type"]}"',
'invalid matching_type "{value["matching_type"]}"',
ctx.exception.reasons,
)
@ -3728,7 +3726,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
'invalid matching_type ' '"{value["matching_type"]}"',
'invalid matching_type "{value["matching_type"]}"',
ctx.exception.reasons,
)
@ -3765,7 +3763,7 @@ class TestRecordValidation(TestCase):
},
)
self.assertEqual(
['unescaped ; in "this has some; semi-colons\\; ' 'in it"'],
['unescaped ; in "this has some; semi-colons\\; in it"'],
ctx.exception.reasons,
)


Loading…
Cancel
Save