{"action":"created","issue":{"url":"https://api.github.com/repos/MartijnBraam/python-isc-dhcp-leases/issues/16","repository_url":"https://api.github.com/repos/MartijnBraam/python-isc-dhcp-leases","labels_url":"https://api.github.com/repos/MartijnBraam/python-isc-dhcp-leases/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/MartijnBraam/python-isc-dhcp-leases/issues/16/comments","events_url":"https://api.github.com/repos/MartijnBraam/python-isc-dhcp-leases/issues/16/events","html_url":"https://github.com/MartijnBraam/python-isc-dhcp-leases/pull/16","id":217613755,"number":16,"title":"Fixed crash when record has hardware but not ends fields","user":{"login":"colinjc","id":5770232,"avatar_url":"https://avatars1.githubusercontent.com/u/5770232?v=3","gravatar_id":"","url":"https://api.github.com/users/colinjc","html_url":"https://github.com/colinjc","followers_url":"https://api.github.com/users/colinjc/followers","following_url":"https://api.github.com/users/colinjc/following{/other_user}","gists_url":"https://api.github.com/users/colinjc/gists{/gist_id}","starred_url":"https://api.github.com/users/colinjc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colinjc/subscriptions","organizations_url":"https://api.github.com/users/colinjc/orgs","repos_url":"https://api.github.com/users/colinjc/repos","events_url":"https://api.github.com/users/colinjc/events{/privacy}","received_events_url":"https://api.github.com/users/colinjc/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2017-03-28T16:13:13Z","updated_at":"2017-03-29T21:01:47Z","closed_at":"2017-03-29T21:01:45Z","pull_request":{"url":"https://api.github.com/repos/MartijnBraam/python-isc-dhcp-leases/pulls/16","html_url":"https://github.com/MartijnBraam/python-isc-dhcp-leases/pull/16","diff_url":"https://github.com/MartijnBraam/python-isc-dhcp-leases/pull/16.diff","patch_url":"https://github.com/MartijnBraam/python-isc-dhcp-leases/pull/16.patch"},"body":"When parsing our dhcpd.leases file the library was crashing on a record because it has the hardware field but not he ends field, so it tries to construct and fails with a KeyError [here](https://github.com/MartijnBraam/python-isc-dhcp-leases/blob/310e61bbba54e789453161961d66f1eaad6f382b/isc_dhcp_leases/iscdhcpleases.py#L209)\r\n```python\r\n        if properties['ends'] == 'never':\r\n```\r\n\r\nlease 172.23.251.150 {\r\n  starts 4 2015/09/10 00:29:00;\r\n  tstp 4 2015/09/10 00:28:44;\r\n  tsfp 4 2015/09/10 00:29:00;\r\n  atsfp 4 2015/09/10 00:29:00;\r\n  binding state free;\r\n  hardware ethernet 00:21:cc:06:94:e9;\r\n  uid \"\\001\\000!\\314\\006\\224\\351\";\r\n}\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/MartijnBraam/python-isc-dhcp-leases/issues/comments/290224730","html_url":"https://github.com/MartijnBraam/python-isc-dhcp-leases/pull/16#issuecomment-290224730","issue_url":"https://api.github.com/repos/MartijnBraam/python-isc-dhcp-leases/issues/16","id":290224730,"user":{"login":"MartijnBraam","id":6928199,"avatar_url":"https://avatars3.githubusercontent.com/u/6928199?v=3","gravatar_id":"","url":"https://api.github.com/users/MartijnBraam","html_url":"https://github.com/MartijnBraam","followers_url":"https://api.github.com/users/MartijnBraam/followers","following_url":"https://api.github.com/users/MartijnBraam/following{/other_user}","gists_url":"https://api.github.com/users/MartijnBraam/gists{/gist_id}","starred_url":"https://api.github.com/users/MartijnBraam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MartijnBraam/subscriptions","organizations_url":"https://api.github.com/users/MartijnBraam/orgs","repos_url":"https://api.github.com/users/MartijnBraam/repos","events_url":"https://api.github.com/users/MartijnBraam/events{/privacy}","received_events_url":"https://api.github.com/users/MartijnBraam/received_events","type":"User","site_admin":false},"created_at":"2017-03-29T21:01:47Z","updated_at":"2017-03-29T21:01:47Z","body":"Looks great, thanks!"}}
{"actor":{"display_login":"MartijnBraam"}}