{"action":"reopened","issue":{"url":"https://api.github.com/repos/KSP-CKAN/CKAN/issues/327","labels_url":"https://api.github.com/repos/KSP-CKAN/CKAN/issues/327/labels{/name}","comments_url":"https://api.github.com/repos/KSP-CKAN/CKAN/issues/327/comments","events_url":"https://api.github.com/repos/KSP-CKAN/CKAN/issues/327/events","html_url":"https://github.com/KSP-CKAN/CKAN/issues/327","id":48496719,"number":327,"title":"Implement some sort of health check","user":{"login":"pjf","id":12072,"avatar_url":"https://avatars.githubusercontent.com/u/12072?v=3","gravatar_id":"","url":"https://api.github.com/users/pjf","html_url":"https://github.com/pjf","followers_url":"https://api.github.com/users/pjf/followers","following_url":"https://api.github.com/users/pjf/following{/other_user}","gists_url":"https://api.github.com/users/pjf/gists{/gist_id}","starred_url":"https://api.github.com/users/pjf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjf/subscriptions","organizations_url":"https://api.github.com/users/pjf/orgs","repos_url":"https://api.github.com/users/pjf/repos","events_url":"https://api.github.com/users/pjf/events{/privacy}","received_events_url":"https://api.github.com/users/pjf/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/KSP-CKAN/CKAN/labels/ckan.dll","name":"ckan.dll","color":"006b75"},{"url":"https://api.github.com/repos/KSP-CKAN/CKAN/labels/enhancement","name":"enhancement","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2014-11-12T10:48:20Z","updated_at":"2015-05-31T10:53:25Z","closed_at":null,"body":"Right now users can go deleting files from GameData, and we won't notice they've done so. This means we're in an inconsistent state; the CKAN will think something is installed, whereas really it's not.\r\n\r\nWe should provide some sort of health check which walks through all the files we *think* we have installed, and checks to see if they're really there. Since we have SHA1 sums for everything, we can also check to see if they've changed.\r\n\r\nThis means we can provide lists for:\r\n\r\n- Changed files\r\n- Missing files\r\n\r\nThis is going to be useful for debugging, and useful for anyone who wants to verify their installs are as we expect.\r\n\r\nIf a user *does* manually un-install a mod (ie, *all* its files are gone), we can potentially invoke a `ckan uninstall` on it as well, which will fix up our metadata, and remove anything which depended upon it. However that's probably another feature again (and needs a new ticket), and should almost certainly require approval from the user.\r\n\r\n--\r\n\r\nReferenced by #326.\r\n"}}