Comment 1 for bug 1825049

Revision history for this message
Adrien Ferrand (adferrand) wrote :

I am a maintainer of the Lexicon project, and want to propose a SRU for Lexicon 2.2.1 on Bionic and Lexicon 2.7.0 on Cosmic to fix that issue.

[Impact]

 * Due to an undisclosed bug in Lexicon on the DNSimple provider, the creation of new DNS records
   on DNSimple is not possible anymore since one month.
 * This bug was present in Lexicon since 2.2.0, so it impacts Bionic and Cosmic.
 * Its effect is to generate an invalid URL for DNSimple API when trying to create a new DNS record.
 * For unkown reasons, the invalid URL was still accepted by DNSimple API, until something change
   one month ago, and these URLs started to be rejected.

[Test Case]

 * To reproduce the bug one needs a valid DNSimple account, generates an authentication token,
   and calls this typical DNS record creation command:
   `lexicon dnsimple create example.com TXT --name test --value content --auth-token [TOKEN]` to
   see Lexicon raising an exception about a malformed request.
 * Without a valid DNSimple account, one can still see the wrong behavior by checking the VCRpy
   cassettes at tests/fixtures/cassettes/dnsimple/IntegrationTests: typical malformed requests
   like `https://api.sandbox.dnsimple.com/v2762/` instead of
   `https://api.sandbox.dnsimple.com/v2/762/` can be seen.
 * Fix proposed here both makes the live execution of Lexicon be successful, and make VCRpy have
   only valid URLs referenced.

[Regression Potential]

 * Besides the modifications done on the VCRpy cassettes, that are for test purposes, the fix
   modifies only one line in Lexicon code, to fix the URL in case of record creation. Upstream
   is already fixed, and correct behavior after it is confirmed at
   https://github.com/AnalogJ/lexicon/issues/387.
 * Fix is already applied to Disco.
 * So I have no possible regression in mind.

[Other Info]

 * Two separate debdiff are provided: one for Bionic, one for Cosmic. They have been generated from
   the latest respective docker OS versions.