Skip to content

Commit

Permalink
fixed dnsmadeeasy, (id, ttl is required in the payload). Readded prev…
Browse files Browse the repository at this point in the history
…iously skipped tests, added new vcr recordings.
  • Loading branch information
AnalogJ committed Mar 27, 2016
1 parent 8e9443d commit 966066a
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 395 deletions.
7 changes: 5 additions & 2 deletions lexicon/providers/dnsmadeeasy.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,10 @@ def list_records(self, type=None, name=None, content=None):
# Create or update a record.
def update_record(self, identifier, type=None, name=None, content=None):

data = {}
data = {
'id': identifier,
'ttl': 86400
}

if name:
data['name'] = self._clean_name(name)
Expand All @@ -84,7 +87,7 @@ def update_record(self, identifier, type=None, name=None, content=None):
if type:
data['type'] = type

payload = self._put('/dns/managed/{0}/records/{1}/'.format(self.domain_id, identifier), data)
payload = self._put('/dns/managed/{0}/records/{1}'.format(self.domain_id, identifier), data)

print 'update_record: {0}'.format(True)
return True
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@ interactions:
Content-Length: ['2']
Content-Type: [application/json]
User-Agent: [python-requests/2.9.1]
x-dnsme-requestDate: ['Fri, 25 Mar 2016 17:32:28 GMT']
x-dnsme-requestDate: ['Sun, 27 Mar 2016 02:27:25 GMT']
method: GET
uri: http://api.sandbox.dnsmadeeasy.com/V2.0/dns/managed/name?domainname=capsulecd.com
response:
body: {string: !!python/unicode '{"name":"capsulecd.com","id":874984,"created":1458864000000,"nameServers":[{"fqdn":"ns0.dnsmadeeasy.com","ipv4":"208.94.148.2","ipv6":"2600:1800:0::1"},{"fqdn":"ns1.dnsmadeeasy.com","ipv4":"208.80.124.2","ipv6":"2600:1801:1::1"},{"fqdn":"ns2.dnsmadeeasy.com","ipv4":"208.80.126.2","ipv6":"2600:1802:2::1"},{"fqdn":"ns3.dnsmadeeasy.com","ipv4":"208.80.125.2","ipv6":"2600:1801:3::1"},{"fqdn":"ns4.dnsmadeeasy.com","ipv4":"208.80.127.2","ipv6":"2600:1802:4::1"}],"pendingActionId":0,"updated":1458927142798,"processMulti":false,"activeThirdParties":[],"delegateNameServers":["dawn.ns.cloudflare.com.","owen.ns.cloudflare.com."],"folderId":1668,"gtdEnabled":false}'}
body: {string: !!python/unicode '{"name":"capsulecd.com","id":874984,"created":1458864000000,"nameServers":[{"fqdn":"ns0.dnsmadeeasy.com","ipv4":"208.94.148.2","ipv6":"2600:1800:0::1"},{"fqdn":"ns1.dnsmadeeasy.com","ipv4":"208.80.124.2","ipv6":"2600:1801:1::1"},{"fqdn":"ns2.dnsmadeeasy.com","ipv4":"208.80.126.2","ipv6":"2600:1802:2::1"},{"fqdn":"ns3.dnsmadeeasy.com","ipv4":"208.80.125.2","ipv6":"2600:1801:3::1"},{"fqdn":"ns4.dnsmadeeasy.com","ipv4":"208.80.127.2","ipv6":"2600:1802:4::1"}],"pendingActionId":0,"updated":1459045638187,"processMulti":false,"activeThirdParties":[],"delegateNameServers":["dawn.ns.cloudflare.com.","owen.ns.cloudflare.com."],"folderId":1668,"gtdEnabled":false}'}
headers:
content-type: [application/json]
date: ['Fri, 25 Mar 2016 17:32:29 GMT']
date: ['Sun, 27 Mar 2016 02:27:26 GMT']
server: [Apache-Coyote/1.1]
set-cookie: [JSESSIONID=D1807051BE7BF2F6C4C2A8A166CDC2A5; Path=/V2.0/; HttpOnly]
x-dnsme-requestid: [ed6f3743-0abf-442f-af29-3fb9b7ccfd49]
set-cookie: [JSESSIONID=E6AD39B20340A0BF2E6F2F1DD3AE4E30; Path=/V2.0/; HttpOnly]
x-dnsme-requestid: [ddcb4d26-bda9-4042-ad93-13fd9ad177bb]
x-dnsme-requestlimit: ['150']
x-dnsme-requestsremaining: ['138']
x-dnsme-requestsremaining: ['135']
status: {code: 200, message: OK}
- request:
body: '{"type": "TXT", "name": "orig.test", "value": "challengetoken", "ttl":
Expand All @@ -32,20 +32,20 @@ interactions:
Content-Length: ['77']
Content-Type: [application/json]
User-Agent: [python-requests/2.9.1]
x-dnsme-requestDate: ['Fri, 25 Mar 2016 17:32:28 GMT']
x-dnsme-requestDate: ['Sun, 27 Mar 2016 02:27:26 GMT']
method: POST
uri: http://api.sandbox.dnsmadeeasy.com/V2.0/dns/managed/874984/records/
response:
body: {string: !!python/unicode '{"name":"orig.test","value":"\"challengetoken\"","id":10098493,"type":"TXT","source":1,"dynamicDns":false,"failed":false,"gtdLocation":"DEFAULT","hardLink":false,"ttl":86400,"failover":false,"monitor":false,"sourceId":874984}'}
body: {string: !!python/unicode '{"name":"orig.test","value":"\"challengetoken\"","id":10098505,"type":"TXT","source":1,"dynamicDns":false,"failed":false,"gtdLocation":"DEFAULT","hardLink":false,"ttl":86400,"failover":false,"monitor":false,"sourceId":874984}'}
headers:
content-type: [application/json]
date: ['Fri, 25 Mar 2016 17:32:29 GMT']
location: ['http://api.sandbox.dnsmadeeasy.com/V2.0/dns/managed/874984/records/10098493']
date: ['Sun, 27 Mar 2016 02:27:26 GMT']
location: ['http://api.sandbox.dnsmadeeasy.com/V2.0/dns/managed/874984/records/10098505']
server: [Apache-Coyote/1.1]
set-cookie: [JSESSIONID=91055E48936CF2F7CB55A8B58949619D; Path=/V2.0/; HttpOnly]
x-dnsme-requestid: [8bbddffd-f56f-475c-89e4-4b4a38f2a828]
set-cookie: [JSESSIONID=806156B96828627AFF295F9D234AFC71; Path=/V2.0/; HttpOnly]
x-dnsme-requestid: [23c14237-4c65-4c8c-a3b5-d929d5ec7d9c]
x-dnsme-requestlimit: ['150']
x-dnsme-requestsremaining: ['137']
x-dnsme-requestsremaining: ['134']
status: {code: 201, message: Created}
- request:
body: '{}'
Expand All @@ -56,138 +56,43 @@ interactions:
Content-Length: ['2']
Content-Type: [application/json]
User-Agent: [python-requests/2.9.1]
x-dnsme-requestDate: ['Fri, 25 Mar 2016 17:32:29 GMT']
x-dnsme-requestDate: ['Sun, 27 Mar 2016 02:27:26 GMT']
method: GET
uri: http://api.sandbox.dnsmadeeasy.com/V2.0/dns/managed/874984/records?recordName=orig.test&type=TXT
response:
body: {string: !!python/unicode '{"data":[{"name":"orig.test","value":"\"challengetoken\"","id":10098493,"type":"TXT","source":1,"dynamicDns":false,"failed":false,"gtdLocation":"DEFAULT","hardLink":false,"ttl":86400,"failover":false,"monitor":false,"sourceId":874984}],"page":0,"totalRecords":1,"totalPages":1}'}
body: {string: !!python/unicode '{"data":[{"name":"orig.test","value":"\"challengetoken\"","id":10098505,"type":"TXT","source":1,"dynamicDns":false,"failed":false,"gtdLocation":"DEFAULT","hardLink":false,"ttl":86400,"failover":false,"monitor":false,"sourceId":874984}],"page":0,"totalRecords":1,"totalPages":1}'}
headers:
content-type: [application/json]
date: ['Fri, 25 Mar 2016 17:32:29 GMT']
date: ['Sun, 27 Mar 2016 02:27:26 GMT']
server: [Apache-Coyote/1.1]
set-cookie: [JSESSIONID=52198351D797B02A7BC4BBD9A5255248; Path=/V2.0/; HttpOnly]
x-dnsme-requestid: [b0c5bd25-8471-41e8-b3bc-8edca361f73e]
set-cookie: [JSESSIONID=2E22CEE44050796855DA1DB8EBD1FC38; Path=/V2.0/; HttpOnly]
x-dnsme-requestid: [f81e0825-b21c-4373-964f-0c4761b082a3]
x-dnsme-requestlimit: ['150']
x-dnsme-requestsremaining: ['136']
x-dnsme-requestsremaining: ['133']
status: {code: 200, message: OK}
- request:
body: '{"type": "TXT", "name": "updated.test", "value": "challengetoken", "ttl":
86400}'
body: '{"value": "challengetoken", "type": "TXT", "id": 10098505, "name": "updated.test",
"ttl": 86400}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['80']
Content-Length: ['96']
Content-Type: [application/json]
User-Agent: [python-requests/2.9.1]
x-dnsme-requestDate: ['Fri, 25 Mar 2016 17:32:29 GMT']
x-dnsme-requestDate: ['Sun, 27 Mar 2016 02:27:26 GMT']
method: PUT
uri: http://api.sandbox.dnsmadeeasy.com/V2.0/dns/managed/874984/records/10098493/
uri: http://api.sandbox.dnsmadeeasy.com/V2.0/dns/managed/874984/records/10098505
response:
body: {string: !!python/unicode "\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!DOCTYPE html>\r\
\n<html>\r\n<head>\r\n\t<title>Management Console</title>\r\n\t\r\n\r\n\r\n\
\ <meta charset=\"utf-8\" />\r\n\r\n\r\n\t<link rel=\"stylesheet\" href='/V2.0/css/ui.jqgrid.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" />\r\n\t<link rel=\"stylesheet\" href='/V2.0/css/jquery.multiselect.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" />\r\n\t<link rel=\"stylesheet\" href='/V2.0/css/jquery.multiselect.filter.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" />\r\n\t<link rel=\"stylesheet\" href='/V2.0/css/jquery.jqplot.min.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" />\r\n\t<link rel=\"stylesheet\" href='/V2.0/css/jquery.dataTables.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" />\r\n\t\r\n\t<link rel=\"stylesheet\" href='/V2.0/css/console.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" />\r\n\r\n\t<link rel=\"stylesheet\" href='/V2.0/css/dnsme.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" title=\"dnsme\" />\r\n\t<link rel=\"stylesheet\" href='/V2.0/css/custom-theme/jquery-ui-1.8.14.custom.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" title=\"dnsme\" />\r\n\t<link rel=\"stylesheet\" href='/V2.0/css/jquery.fancybox-1.3.4.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" media=\"screen\" />\r\n <link rel=\"stylesheet\" href='/V2.0/css/realtime-stats/realtime-stats-chart.css;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ type=\"text/css\" media=\"screen\" />\r\n\r\n\t<script type=\"text/javascript\"\
\ src='/V2.0/js/jquery-1.6.2.min.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery-ui-1.8.16.custom.min.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.cookie.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/i18n/grid.locale-en.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.jqGrid.min.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.validate.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.populate.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.dropdownPlain.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.metadata.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.multiselect.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.multiselect.filter.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.diff.min.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.tinysort.min.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.fancybox-1.3.4.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.dataTables.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\t\r\n\t\r\n\t<script type=\"text/javascript\" src='/V2.0/js/date.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n <script>Date.now = function() { return +new Date; };</script>\r\
\n\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.pagination.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\r\n\t<script type=\"text/javascript\" src='/V2.0/js/jquery.blockUI.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\r\n\t<script type=\"text/javascript\" src='/V2.0/js/highcharts.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\r\n <script type=\"text/javascript\" src='/V2.0/js/console.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n\r\n <script>\r\n var require = {\r\n \
\ config: {\r\n 'DataStore' : {\r\n baseUrl:\
\ '/V2.0/realtimestats;jsessionid=E79F41C82F35FA352B372465760EB497'\r\n \
\ }\r\n }\r\n }\r\n </script>\r\n \r\n\
<script type=\"text/javascript\" src='/V2.0/js/realtimestats/libs/requirejs/require.js;jsessionid=E79F41C82F35FA352B372465760EB497'\
\ ></script>\r\n<script>\r\n require.config({\r\n baseUrl: '/V2.0/js/realtimestats;jsessionid=E79F41C82F35FA352B372465760EB497'\r\
\n });\r\n</script>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t<script>\r\
\n\t\t$(function() {\r\n\t\t\t$('.tabs').tabs();\r\n\t\t\t$('input:submit').button();\r\
\n\t\t\t$('.ui-icon').hover(\r\n\t\t\t\t\tfunction() { $(this).addClass('ui-state-hover');\
\ },\r\n\t\t\t\t\tfunction() { $(this).removeClass('ui-state-hover'); }\r\n\
\t\t\t\t);\r\n\r\n\t\t\t$('html').ajaxError(function(event, jqXHR, ajaxSettings,\
\ error) {\r\n\t\t\t\tif (jqXHR.status == 500) {\r\n\t\t\t\t\twindow.location.reload();\r\
\n\t\t\t\t}\r\n\t\t\t\tif (jqXHR.status == 403) {\r\n\t\t\t\t\twindow.location.href\
\ = LOGIN_URL;\r\n\t\t\t\t}\r\n\t\t\t\tif (jqXHR.status == 415) {\r\n\t\t\t\
\t\twindow.location.reload();\r\n\t\t\t\t}\r\n\t\t\t\tif (jqXHR.status ==\
\ 405) {\r\n\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t}\r\n\r\n\t\t\t\
});\t\t\t\r\n\t\t\t\r\n\t\t});\r\n\t</script>\r\n\t\r\n</head>\r\n<body style=\"\
background: #FFF\">\r\n\r\n\r\n\r\n\r\n\r\n<div id=\"submitTicket\" title=\"\
Submit a support ticket\" style=\"margins: 0 auto;\">\r\n\t<p>\r\n\t\tEnter\
\ a title and description of your issue and a support ticket will be created\
\ for you.\r\n\t</p>\r\n\t<div id=\"submitTicketErrors\"></div>\r\n\r\n\t\
<form id=\"submitTicketForm\" autocomplete=\"off\" >\r\n\t\t<fieldset class=\"\
aligned\">\r\n\t\t\t<label for=\"ticketSubject\"><span class=\"required\"\
\ style=\"margin: 0 .25em; vertical-align: top\" title=\"Required field\"\
>*</span>Subject</label>\r\n\t\t\t<input type=\"text\" name=\"subject\" id=\"\
ticketSubject\" class=\"{validate:{required:true, messages:{required:'Subject\
\ is required'}}}\" /><br />\r\n\t\t\t<label for=\"ticketContent\"><span class=\"\
required\" style=\"margin: 0 .25em; vertical-align: top\" title=\"Required\
\ field\">*</span>Issue Description</label>\r\n\t\t\t<textarea rows=\"10\"\
\ cols=\"68\" style=\"width: auto\" name=\"contents\" id=\"ticketContent\"\
\ class=\"{validate:{required:true, messages:{required:'Issue Description\
\ is required'}}}\"></textarea>\r\n\t\t</fieldset>\r\n\t</form>\r\n\t<p>\r\
\n\t\tTo view the status of an existing ticket, visit the <a style=\"text-decoration:\
\ underline\" href=\"http://support.dnsmadeeasy.com\">support site</a>.\r\n\
\t</p>\r\n</div>\r\n\r\n<script>\r\n\r\n\tfunction showSubmitTicket() {\r\n\
\t\t$('#submitTicket').dialog('open');\r\n\t}\r\n\t\r\n\tajaxForm('/V2.0/support;jsessionid=E79F41C82F35FA352B372465760EB497',\
\ 'POST', '#submitTicketForm', '#submitTicketErrors', function(data, responseText,\
\ jqXHR) {\r\n\t\t\r\n\t\t$('#dialog').dialog(\"destroy\");\r\n\t\t$(\"#dialog\"\
)\r\n\t\t\t.html(\r\n\t\t\t\t'Your support request was successfully submitted.\
\ You should receive a confirmation email regarding this request. For reference,\
\ your ticket ID for this issue is:<p style=\"text-align: center\"> ' + data.responseText\
\ + '</p>'\r\n\t\t\t)\r\n\t\t\t.dialog(\r\n\t\t\t\t{\r\n\t\t\t\t\twidth :\
\ 350,\r\n\t\t\t\t\tmodal : true,\r\n\t\t\t\t\tresizable : false,\r\n\t\t\t\
\t\ttitle : 'Success',\r\n\t\t\t\t\tbuttons : {\r\n\t\t\t\t\t\tOk : function()\
\ {\r\n\t\t\t\t\t\t\t$('#dialog').dialog(\"close\");\r\n\t\t\t\t\t\t}\r\n\t\
\t\t\t\t},\r\n\t\t\t\t\tclose: function() {\r\n\t\t\t\t\t\t$('#submitTicketForm').populate({},\
\ {resetForm:true});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t}, '#submitTicket',\
\ {\r\n\t\twidth: 600,\r\n\t\tblock: true\r\n\t});\t\r\n\t\r\n</script>\r\n\
<div style=\"width: 400px;margin: 0 auto;position: relative;top: 200px; text-align:\
\ center\">\r\n\t<a href=\"/console\">\r\n\t\t<img src=\"/V2.0/img/logo_dns.png;jsessionid=E79F41C82F35FA352B372465760EB497\"\
/>\r\n\t</a>\r\n\t<h3>A system error has occurred.</h3>\r\n\t<p style=\"margin:\
\ 3em auto\">\r\n\t\tHave no fear - our team of emergency response nerds have\
\ already been alerted and are on the case.\r\n\t</p> \r\n\r\n\t<a href=\"\
/V2.0/;jsessionid=E79F41C82F35FA352B372465760EB497\">Return to console</a>\t\
<br class=\"clear\"/>\r\n\t\r\n\t\t<a id=\"submitTicketLink\" onclick=\"showSubmitTicket();\"\
\ >Submit a support ticket</a>\r\n\t\r\n\t<a target=\"_blank\" href=\"http://support.dnsmadeeasy.com\"\
>Support Center</a>\r\n\t<br class=\"clear\"/>\r\n\t<div style=\"margin-top:\
\ 2em\">\r\n\t\t<small>Current IP address: <br />\r\n\t\tLast logged in\
\ on Fri Mar 25 00:00:00 UTC 2016 from 208.72.142.184</small><br />\r\n\t\
</div>\r\n\t<div style=\"margin-top: 2em\">\r\n\t\t<small>Current Date and\
\ Time: 2016-03-25 17:32:30:374</small><br />\r\n\t</div>\r\n\t\r\n</div>\r\
\n\r\n</body>\r\n</html>"}
body: {string: !!python/unicode ''}
headers:
connection: [close]
content-type: [text/html;charset=ISO-8859-1]
date: ['Fri, 25 Mar 2016 17:32:29 GMT']
content-length: ['0']
content-type: [application/json]
date: ['Sun, 27 Mar 2016 02:27:28 GMT']
server: [Apache-Coyote/1.1]
set-cookie: [JSESSIONID=E79F41C82F35FA352B372465760EB497; Path=/V2.0/; HttpOnly]
x-dnsme-requestid: [9a8aaa9c-d913-4e98-b06a-558e439082f8]
set-cookie: [JSESSIONID=E727B449C60C6087C41F87B1854FEFC8; Path=/V2.0/; HttpOnly]
x-dnsme-requestid: [efc9ab60-6f9f-4c9c-932e-260c7ff43dbb]
x-dnsme-requestlimit: ['150']
x-dnsme-requestsremaining: ['135']
status: {code: 500, message: Internal Server Error}
x-dnsme-requestsremaining: ['132']
status: {code: 200, message: OK}
version: 1
Loading

0 comments on commit 966066a

Please sign in to comment.