{"action":"created","issue":{"url":"https://api.github.com/repos/rackerlabs/quark/issues/309","labels_url":"https://api.github.com/repos/rackerlabs/quark/issues/309/labels{/name}","comments_url":"https://api.github.com/repos/rackerlabs/quark/issues/309/comments","events_url":"https://api.github.com/repos/rackerlabs/quark/issues/309/events","html_url":"https://github.com/rackerlabs/quark/pull/309","id":54484840,"number":309,"title":"Delete MAC addresses in ranges marked do_not_use","user":{"login":"Cerberus98","id":86828,"avatar_url":"https://avatars.githubusercontent.com/u/86828?v=3","gravatar_id":"","url":"https://api.github.com/users/Cerberus98","html_url":"https://github.com/Cerberus98","followers_url":"https://api.github.com/users/Cerberus98/followers","following_url":"https://api.github.com/users/Cerberus98/following{/other_user}","gists_url":"https://api.github.com/users/Cerberus98/gists{/gist_id}","starred_url":"https://api.github.com/users/Cerberus98/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cerberus98/subscriptions","organizations_url":"https://api.github.com/users/Cerberus98/orgs","repos_url":"https://api.github.com/users/Cerberus98/repos","events_url":"https://api.github.com/users/Cerberus98/events{/privacy}","received_events_url":"https://api.github.com/users/Cerberus98/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-01-15T18:21:43Z","updated_at":"2015-01-15T21:36:59Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rackerlabs/quark/pulls/309","html_url":"https://github.com/rackerlabs/quark/pull/309","diff_url":"https://github.com/rackerlabs/quark/pull/309.diff","patch_url":"https://github.com/rackerlabs/quark/pull/309.patch"},"body":"RM11043\r\n\r\nImplements use of the do_not_use column on mac_address_ranges.\r\nAdditionally, sets a rule in place that if a MAC is deallocated in a\r\nrange marked as do_not_use, it's deleted instead of deallocated. The\r\nreason for this is two fold:\r\n\r\n* We needed a fast fix to unblock other work being done with Neutron\r\n* Introducing the logic necessary to handle deallocating and not reusing\r\n  MACs in the current implementation would also introduce a new chance\r\n  for deadlocks as MAC address ranges would have to be included in all\r\n  queries for MAC address reallocation.\r\n* I have an in-progress fix for removing the SELECT FOR UPDATE when\r\n  reallocating MAC addresses, but there are flaws I have yet to work\r\n  around. Rather than rush the fix, I decided to create a less than\r\n  optimal path so we could move the ball forward."},"comment":{"url":"https://api.github.com/repos/rackerlabs/quark/issues/comments/70166515","html_url":"https://github.com/rackerlabs/quark/pull/309#issuecomment-70166515","issue_url":"https://api.github.com/repos/rackerlabs/quark/issues/309","id":70166515,"user":{"login":"asadoughi","id":775631,"avatar_url":"https://avatars.githubusercontent.com/u/775631?v=3","gravatar_id":"","url":"https://api.github.com/users/asadoughi","html_url":"https://github.com/asadoughi","followers_url":"https://api.github.com/users/asadoughi/followers","following_url":"https://api.github.com/users/asadoughi/following{/other_user}","gists_url":"https://api.github.com/users/asadoughi/gists{/gist_id}","starred_url":"https://api.github.com/users/asadoughi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/asadoughi/subscriptions","organizations_url":"https://api.github.com/users/asadoughi/orgs","repos_url":"https://api.github.com/users/asadoughi/repos","events_url":"https://api.github.com/users/asadoughi/events{/privacy}","received_events_url":"https://api.github.com/users/asadoughi/received_events","type":"User","site_admin":false},"created_at":"2015-01-15T21:36:59Z","updated_at":"2015-01-15T21:36:59Z","body":"Did you refresh the page to re-read my edited post? Please ignore all uses of the word 'full'.\r\n\r\nTo reiterate, I'm suggesting adding the following to the currently proposed implementation:\r\n(1) deleting all deallocated MACs when the mac_address_range is marked as do_not_use (on mac_address_range_update)\r\nOR\r\n(3) not allocating a deallocated MAC as returned from mac_address_find if the associated mac_address_range has do_not_use=True.\r\n"}}