{"action":"opened","issue":{"url":"https://api.github.com/repos/RackSec/desdemona/issues/8","labels_url":"https://api.github.com/repos/RackSec/desdemona/issues/8/labels{/name}","comments_url":"https://api.github.com/repos/RackSec/desdemona/issues/8/comments","events_url":"https://api.github.com/repos/RackSec/desdemona/issues/8/events","html_url":"https://github.com/RackSec/desdemona/issues/8","id":130495154,"number":8,"title":"Add fake data storage for the development environment","user":{"login":"lvh","id":97816,"avatar_url":"https://avatars.githubusercontent.com/u/97816?v=3","gravatar_id":"","url":"https://api.github.com/users/lvh","html_url":"https://github.com/lvh","followers_url":"https://api.github.com/users/lvh/followers","following_url":"https://api.github.com/users/lvh/following{/other_user}","gists_url":"https://api.github.com/users/lvh/gists{/gist_id}","starred_url":"https://api.github.com/users/lvh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lvh/subscriptions","organizations_url":"https://api.github.com/users/lvh/orgs","repos_url":"https://api.github.com/users/lvh/repos","events_url":"https://api.github.com/users/lvh/events{/privacy}","received_events_url":"https://api.github.com/users/lvh/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-02-01T21:50:19Z","updated_at":"2016-02-01T21:50:19Z","closed_at":null,"body":"Right now, the only way to do archival is Rackspace Cloud Files (see #2). That's unfortunate: it means that a development environment can't test those components without access to the network, and access to a specific service at that. It would be much preferable if you could just `docker compose up` (#7) and have that do a thing all by itself. Simply making long-term storage unavailable is unacceptable: it is critical to how desdemona operates, so that would make a development environment unrealistic.\r\n\r\nThere are a few potential ways to resolve this:\r\n\r\n1. Abstract away the storage API, provide a simple (in-memory?) alternative to Cloud Files\r\n2. Provide fakes for Cloud Files\r\n\r\nBoth have interesting trade-offs. Plan 1 is obviously nice because it opens up the possibility of other storage backends. If we go with plan 1, most of the work in plan 2 should still happen, albeit with a potentially lower priority: plan 2 is how you provide high-assurance testing for the Rackspace Cloud Files backend.\r\n\r\nPlan 2 has a number of parts:\r\n\r\n- [ ] The upstream project [mimic][mimic] needs to learn how to speak OpenStack Swift/Rackspace Cloud Files. Fortunately mimic has a friendly and active development environment, so adding features to it should be fairly painless.\r\n- [ ] The Rackspace Cloud Files jClouds API may or may not be OK with a different identity API URL, which is how Mimic expects to work.\r\n\r\nIt's not clear if this should be done before or after #2, which is about adding support for Rackspace Cloud Files altogether.\r\n\r\n[mimic]: https://github.com/rackerlabs/mimic"}}