question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

A list of issues present in lexicon

See original GitHub issue

I’ll create a list of issues that I’ve come across.

  • Issue with update_record mentioned in #200
  • No TTL implementation in some providers
  • No method to specify accepted value of TTL by different providers
  • No policy to handle illegal TTL value in providers
  • Unpredictable provider behavior in create_record, list_record, update_record and delete_record
  • No easier way to specify advanced options in case of MX, SRV, etc records
  • No test to ensure autopagination is enabled when retrieving domain/record lists. (test with large number of domains & records, approx 100?)
  • Tests needed for delegated domains and delegated accounts (provide specific suites?)
  • we do not specify which Record Types are supported
  • Should lexicon wrap/provide comprehensive list of custom error types for error handling downstream?
  • SPEC should specify that records should be autopaginated when possible.

TTL Issue

Providers should be able to tell the user about the range/list of TTL values accepted by it. A policy should be defined on how to handle invalid TTL values supplied by the user.

Unpredictable behavior

Different provider implementations behave differently in certain situations at the moment. The behavior for the methods create_record, list_record, update_record and delete_record should be specified for most/all possible situations. This includes record sets and the like.

Easier reading of advanced options

This included TTL and extra options that MX,SRV, etc records require. Instead of self.options.get, we could try passing these in an argument if possible.


I’ll update this as I come across other issues.


Edited by @analogj to add additional issues.

Issue Analytics

  • State:open
  • Created 5 years ago
  • Comments:20 (19 by maintainers)

github_iconTop GitHub Comments

1reaction
trinopotycommented, May 14, 2020

As far as I can see, most providers will just delete all the existing records when you call delete_record() with no arguments. It looks extremely dangerous.

Looks like my linode providers are guilty of this too.

1reaction
jvanascocommented, Mar 26, 2018

A lot of the exceptions raised are stock Python exceptions. It would make sense to take the approach SqlAlchemy does - a set of custom lexicon exceptions are created, and then underlying provider exceptions are mapped to them or raised as needed.

Using the TTL issue above, we might see:

class LexiconError(Exception):
      pass

class InvalidTTL(LexiconError):
      pass

If the provider raises a TTL error (or the logic demands one is raised), then InvalidTTL is invoked (stashing the original exception if needed).

People would then be able to switch DNS providers and not have to adapt their code.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Linguistic Problems and Complexities
Semantic problems are subdivided into lexical, syntactic and discourse types. Although both lexical and semantic lexical problems involve single words or ...
Read more >
Psycholinguistics/The Mental Lexicon - Wikiversity
One of the central issues in developing a model of the mental lexicon is whether the form of a word in the lexicon...
Read more >
7.4 The mental lexicon – Essentials of Linguistics, 2nd edition
To summarize, the lexicon is the storage of irregularities in a language. Each lexical entry in the lexicon comes with a listeme's phonological,...
Read more >
Words Functioning in Lexicon - ScienceDirect.com
The critical issues related to functions of words in verbal and mental processes are linked to the problems of the lexicon structure and...
Read more >
What is a Lexicon? | Lexicon Examples - Study.com
A lexicon is a list of words that are used in a certain language, profession, or hobby, while a dictionary is a list...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found