{"action":"created","issue":{"url":"https://api.github.com/repos/mozilla/socorro/issues/3022","labels_url":"https://api.github.com/repos/mozilla/socorro/issues/3022/labels{/name}","comments_url":"https://api.github.com/repos/mozilla/socorro/issues/3022/comments","events_url":"https://api.github.com/repos/mozilla/socorro/issues/3022/events","html_url":"https://github.com/mozilla/socorro/pull/3022","id":110248218,"number":3022,"title":"fixes Bug 1212334 - disambiguate crash dumps being in memory or files","user":{"login":"twobraids","id":581227,"avatar_url":"https://avatars.githubusercontent.com/u/581227?v=3","gravatar_id":"","url":"https://api.github.com/users/twobraids","html_url":"https://github.com/twobraids","followers_url":"https://api.github.com/users/twobraids/followers","following_url":"https://api.github.com/users/twobraids/following{/other_user}","gists_url":"https://api.github.com/users/twobraids/gists{/gist_id}","starred_url":"https://api.github.com/users/twobraids/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twobraids/subscriptions","organizations_url":"https://api.github.com/users/twobraids/orgs","repos_url":"https://api.github.com/users/twobraids/repos","events_url":"https://api.github.com/users/twobraids/events{/privacy}","received_events_url":"https://api.github.com/users/twobraids/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"peterbe","id":26739,"avatar_url":"https://avatars.githubusercontent.com/u/26739?v=3","gravatar_id":"","url":"https://api.github.com/users/peterbe","html_url":"https://github.com/peterbe","followers_url":"https://api.github.com/users/peterbe/followers","following_url":"https://api.github.com/users/peterbe/following{/other_user}","gists_url":"https://api.github.com/users/peterbe/gists{/gist_id}","starred_url":"https://api.github.com/users/peterbe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterbe/subscriptions","organizations_url":"https://api.github.com/users/peterbe/orgs","repos_url":"https://api.github.com/users/peterbe/repos","events_url":"https://api.github.com/users/peterbe/events{/privacy}","received_events_url":"https://api.github.com/users/peterbe/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2015-10-07T15:15:32Z","updated_at":"2015-10-07T19:38:08Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mozilla/socorro/pulls/3022","html_url":"https://github.com/mozilla/socorro/pull/3022","diff_url":"https://github.com/mozilla/socorro/pull/3022.diff","patch_url":"https://github.com/mozilla/socorro/pull/3022.patch"},"body":"_**This PR may look daunting but it isn't that complicated.** It introduces two classes that take the place of what were simple ```dict``` mappings.  It touches a lot of files, but in a very rote manner._\r\n\r\nThere has been a bifurcation in the crash storage data throughout the history of the classes.  The crash dumps have two different representations:\r\n\r\n    1) a mapping of crash names to binary data blobs\r\n    2) a mapping of crash names to file pathnames.\r\n\r\nIt has been a manner of gentleman's agreement that two types do not mix. However, as the two methods have evolved in parallel the distinction has become more and more inconvenient.\r\n\r\nThis PR introduces two classes that encapsulate the two representations.  They each include a method to turn itself into the other. Any crash storage class on receiving a mapping of names/dumps can then just call the method to convert what they've got into what they want.  \r\n\r\nIn addition, each of the crashstorage classes all implemented the same thing when asked to produce the dumps as files on a file system.  This eliminates that duplication - there is only one place where a dumps are written to a file system for temporary use. "},"comment":{"url":"https://api.github.com/repos/mozilla/socorro/issues/comments/146305326","html_url":"https://github.com/mozilla/socorro/pull/3022#issuecomment-146305326","issue_url":"https://api.github.com/repos/mozilla/socorro/issues/3022","id":146305326,"user":{"login":"peterbe","id":26739,"avatar_url":"https://avatars.githubusercontent.com/u/26739?v=3","gravatar_id":"","url":"https://api.github.com/users/peterbe","html_url":"https://github.com/peterbe","followers_url":"https://api.github.com/users/peterbe/followers","following_url":"https://api.github.com/users/peterbe/following{/other_user}","gists_url":"https://api.github.com/users/peterbe/gists{/gist_id}","starred_url":"https://api.github.com/users/peterbe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterbe/subscriptions","organizations_url":"https://api.github.com/users/peterbe/orgs","repos_url":"https://api.github.com/users/peterbe/repos","events_url":"https://api.github.com/users/peterbe/events{/privacy}","received_events_url":"https://api.github.com/users/peterbe/received_events","type":"User","site_admin":false},"created_at":"2015-10-07T19:38:08Z","updated_at":"2015-10-07T19:38:08Z","body":"I **think** I get it. Instead of `dict` you use your own class that makes a better distinction between crash names `-->` binary blobs and crash names `-->` file paths. \r\nCode looks good apart from some nits\r\n\r\nr+ if you accept my PR that stops polluting outside the tests. "}}