{"action":"created","comment":{"url":"https://api.github.com/repos/juju/charm/pulls/comments/25664262","id":25664262,"diff_hunk":"@@ -92,12 +93,30 @@ type Storage struct {\n \t// CountMax defaults to 1 for singleton stores.\n \tCountMax int `bson:\"countmax\"`\n \n+\t// MinimumSize is the minimum size of store that the charm needs to\n+\t// work at all. This is not a recommended size or a comfortable size\n+\t// or a will-work-well size, just a bare minimum below which the charm\n+\t// is going to break.\n+\t// MinimumSize requires a unit, one of MGTPEZY, and is stored as MiB.\n+\t//\n+\t// There is no default MinimumSize; if left unspecified, a provider\n+\t// specific default will be used, typically 1GB for block storage.\n+\tMinimumSize uint64 `bson:\"minimum-size\"`\n+\n \t// Location is the mount location for filesystem stores. For multi-\n \t// stores, the location acts as the parent directory for each mounted\n \t// store.\n \t//\n \t// Location has no default, and is optional.\n \tLocation string `bson:\"location,omitempty\"`\n+\n+\t// Properties allow the charm author to characterise the relative storage\n+\t// performance requirements and sensitivities for each store.\n+\t// eg “transient” is used to indicate that non persistent storage is acceptable,\n+\t// such as tmpfs or ephemeral instance disks.\n+\t//\n+\t// Properties has no default, and is optional.\n+\tProperties []string `bson:properties,omitempty`","path":"meta.go","position":35,"original_position":35,"commit_id":"3ba6b16e78385d46febd762133f3110d87751c76","original_commit_id":"3ba6b16e78385d46febd762133f3110d87751c76","user":{"login":"axw","id":843579,"avatar_url":"https://avatars.githubusercontent.com/u/843579?v=3","gravatar_id":"","url":"https://api.github.com/users/axw","html_url":"https://github.com/axw","followers_url":"https://api.github.com/users/axw/followers","following_url":"https://api.github.com/users/axw/following{/other_user}","gists_url":"https://api.github.com/users/axw/gists{/gist_id}","starred_url":"https://api.github.com/users/axw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/axw/subscriptions","organizations_url":"https://api.github.com/users/axw/orgs","repos_url":"https://api.github.com/users/axw/repos","events_url":"https://api.github.com/users/axw/events{/privacy}","received_events_url":"https://api.github.com/users/axw/received_events","type":"User","site_admin":false},"body":"Given that we won't be honouring properties yet, and it's not clear in the spec whether properties are requirements or hints (I opened a question, never got answered), I'd really rather if this got left out for now.","created_at":"2015-03-03T05:30:53Z","updated_at":"2015-03-03T05:30:53Z","html_url":"https://github.com/juju/charm/pull/88#discussion_r25664262","pull_request_url":"https://api.github.com/repos/juju/charm/pulls/88","_links":{"self":{"href":"https://api.github.com/repos/juju/charm/pulls/comments/25664262"},"html":{"href":"https://github.com/juju/charm/pull/88#discussion_r25664262"},"pull_request":{"href":"https://api.github.com/repos/juju/charm/pulls/88"}}},"pull_request":{"url":"https://api.github.com/repos/juju/charm/pulls/88","id":30347559,"html_url":"https://github.com/juju/charm/pull/88","diff_url":"https://github.com/juju/charm/pull/88.diff","patch_url":"https://github.com/juju/charm/pull/88.patch","issue_url":"https://api.github.com/repos/juju/charm/issues/88","number":88,"state":"open","locked":false,"title":"Add support for parsing more charm storage metadata","user":{"login":"wallyworld","id":5808968,"avatar_url":"https://avatars.githubusercontent.com/u/5808968?v=3","gravatar_id":"","url":"https://api.github.com/users/wallyworld","html_url":"https://github.com/wallyworld","followers_url":"https://api.github.com/users/wallyworld/followers","following_url":"https://api.github.com/users/wallyworld/following{/other_user}","gists_url":"https://api.github.com/users/wallyworld/gists{/gist_id}","starred_url":"https://api.github.com/users/wallyworld/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wallyworld/subscriptions","organizations_url":"https://api.github.com/users/wallyworld/orgs","repos_url":"https://api.github.com/users/wallyworld/repos","events_url":"https://api.github.com/users/wallyworld/events{/privacy}","received_events_url":"https://api.github.com/users/wallyworld/received_events","type":"User","site_admin":false},"body":"minimum-size and properties are now supported in charm storage metadata","created_at":"2015-03-03T05:25:02Z","updated_at":"2015-03-03T05:30:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ff0a0544cab05ed17269025800cef3b9ef202edc","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/juju/charm/pulls/88/commits","review_comments_url":"https://api.github.com/repos/juju/charm/pulls/88/comments","review_comment_url":"https://api.github.com/repos/juju/charm/pulls/comments{/number}","comments_url":"https://api.github.com/repos/juju/charm/issues/88/comments","statuses_url":"https://api.github.com/repos/juju/charm/statuses/3ba6b16e78385d46febd762133f3110d87751c76","head":{"label":"wallyworld:additional-storage-metadata","ref":"additional-storage-metadata","sha":"3ba6b16e78385d46febd762133f3110d87751c76","user":{"login":"wallyworld","id":5808968,"avatar_url":"https://avatars.githubusercontent.com/u/5808968?v=3","gravatar_id":"","url":"https://api.github.com/users/wallyworld","html_url":"https://github.com/wallyworld","followers_url":"https://api.github.com/users/wallyworld/followers","following_url":"https://api.github.com/users/wallyworld/following{/other_user}","gists_url":"https://api.github.com/users/wallyworld/gists{/gist_id}","starred_url":"https://api.github.com/users/wallyworld/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wallyworld/subscriptions","organizations_url":"https://api.github.com/users/wallyworld/orgs","repos_url":"https://api.github.com/users/wallyworld/repos","events_url":"https://api.github.com/users/wallyworld/events{/privacy}","received_events_url":"https://api.github.com/users/wallyworld/received_events","type":"User","site_admin":false},"repo":{"id":20949757,"name":"charm","full_name":"wallyworld/charm","owner":{"login":"wallyworld","id":5808968,"avatar_url":"https://avatars.githubusercontent.com/u/5808968?v=3","gravatar_id":"","url":"https://api.github.com/users/wallyworld","html_url":"https://github.com/wallyworld","followers_url":"https://api.github.com/users/wallyworld/followers","following_url":"https://api.github.com/users/wallyworld/following{/other_user}","gists_url":"https://api.github.com/users/wallyworld/gists{/gist_id}","starred_url":"https://api.github.com/users/wallyworld/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wallyworld/subscriptions","organizations_url":"https://api.github.com/users/wallyworld/orgs","repos_url":"https://api.github.com/users/wallyworld/repos","events_url":"https://api.github.com/users/wallyworld/events{/privacy}","received_events_url":"https://api.github.com/users/wallyworld/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wallyworld/charm","description":"Parsing and testing Juju charms","fork":true,"url":"https://api.github.com/repos/wallyworld/charm","forks_url":"https://api.github.com/repos/wallyworld/charm/forks","keys_url":"https://api.github.com/repos/wallyworld/charm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wallyworld/charm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wallyworld/charm/teams","hooks_url":"https://api.github.com/repos/wallyworld/charm/hooks","issue_events_url":"https://api.github.com/repos/wallyworld/charm/issues/events{/number}","events_url":"https://api.github.com/repos/wallyworld/charm/events","assignees_url":"https://api.github.com/repos/wallyworld/charm/assignees{/user}","branches_url":"https://api.github.com/repos/wallyworld/charm/branches{/branch}","tags_url":"https://api.github.com/repos/wallyworld/charm/tags","blobs_url":"https://api.github.com/repos/wallyworld/charm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wallyworld/charm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wallyworld/charm/git/refs{/sha}","trees_url":"https://api.github.com/repos/wallyworld/charm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wallyworld/charm/statuses/{sha}","languages_url":"https://api.github.com/repos/wallyworld/charm/languages","stargazers_url":"https://api.github.com/repos/wallyworld/charm/stargazers","contributors_url":"https://api.github.com/repos/wallyworld/charm/contributors","subscribers_url":"https://api.github.com/repos/wallyworld/charm/subscribers","subscription_url":"https://api.github.com/repos/wallyworld/charm/subscription","commits_url":"https://api.github.com/repos/wallyworld/charm/commits{/sha}","git_commits_url":"https://api.github.com/repos/wallyworld/charm/git/commits{/sha}","comments_url":"https://api.github.com/repos/wallyworld/charm/comments{/number}","issue_comment_url":"https://api.github.com/repos/wallyworld/charm/issues/comments{/number}","contents_url":"https://api.github.com/repos/wallyworld/charm/contents/{+path}","compare_url":"https://api.github.com/repos/wallyworld/charm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wallyworld/charm/merges","archive_url":"https://api.github.com/repos/wallyworld/charm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wallyworld/charm/downloads","issues_url":"https://api.github.com/repos/wallyworld/charm/issues{/number}","pulls_url":"https://api.github.com/repos/wallyworld/charm/pulls{/number}","milestones_url":"https://api.github.com/repos/wallyworld/charm/milestones{/number}","notifications_url":"https://api.github.com/repos/wallyworld/charm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wallyworld/charm/labels{/name}","releases_url":"https://api.github.com/repos/wallyworld/charm/releases{/id}","created_at":"2014-06-18T04:48:05Z","updated_at":"2014-06-18T10:46:22Z","pushed_at":"2015-03-03T05:23:04Z","git_url":"git://github.com/wallyworld/charm.git","ssh_url":"git@github.com:wallyworld/charm.git","clone_url":"https://github.com/wallyworld/charm.git","svn_url":"https://github.com/wallyworld/charm","homepage":null,"size":449,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"juju:v4","ref":"v4","sha":"83a8d0dcae192db1157ae334c654cdea83f3b8e9","user":{"login":"juju","id":4604548,"avatar_url":"https://avatars.githubusercontent.com/u/4604548?v=3","gravatar_id":"","url":"https://api.github.com/users/juju","html_url":"https://github.com/juju","followers_url":"https://api.github.com/users/juju/followers","following_url":"https://api.github.com/users/juju/following{/other_user}","gists_url":"https://api.github.com/users/juju/gists{/gist_id}","starred_url":"https://api.github.com/users/juju/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juju/subscriptions","organizations_url":"https://api.github.com/users/juju/orgs","repos_url":"https://api.github.com/users/juju/repos","events_url":"https://api.github.com/users/juju/events{/privacy}","received_events_url":"https://api.github.com/users/juju/received_events","type":"Organization","site_admin":false},"repo":{"id":20692246,"name":"charm","full_name":"juju/charm","owner":{"login":"juju","id":4604548,"avatar_url":"https://avatars.githubusercontent.com/u/4604548?v=3","gravatar_id":"","url":"https://api.github.com/users/juju","html_url":"https://github.com/juju","followers_url":"https://api.github.com/users/juju/followers","following_url":"https://api.github.com/users/juju/following{/other_user}","gists_url":"https://api.github.com/users/juju/gists{/gist_id}","starred_url":"https://api.github.com/users/juju/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juju/subscriptions","organizations_url":"https://api.github.com/users/juju/orgs","repos_url":"https://api.github.com/users/juju/repos","events_url":"https://api.github.com/users/juju/events{/privacy}","received_events_url":"https://api.github.com/users/juju/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/juju/charm","description":"Parsing and testing Juju charms","fork":false,"url":"https://api.github.com/repos/juju/charm","forks_url":"https://api.github.com/repos/juju/charm/forks","keys_url":"https://api.github.com/repos/juju/charm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/juju/charm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/juju/charm/teams","hooks_url":"https://api.github.com/repos/juju/charm/hooks","issue_events_url":"https://api.github.com/repos/juju/charm/issues/events{/number}","events_url":"https://api.github.com/repos/juju/charm/events","assignees_url":"https://api.github.com/repos/juju/charm/assignees{/user}","branches_url":"https://api.github.com/repos/juju/charm/branches{/branch}","tags_url":"https://api.github.com/repos/juju/charm/tags","blobs_url":"https://api.github.com/repos/juju/charm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/juju/charm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/juju/charm/git/refs{/sha}","trees_url":"https://api.github.com/repos/juju/charm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/juju/charm/statuses/{sha}","languages_url":"https://api.github.com/repos/juju/charm/languages","stargazers_url":"https://api.github.com/repos/juju/charm/stargazers","contributors_url":"https://api.github.com/repos/juju/charm/contributors","subscribers_url":"https://api.github.com/repos/juju/charm/subscribers","subscription_url":"https://api.github.com/repos/juju/charm/subscription","commits_url":"https://api.github.com/repos/juju/charm/commits{/sha}","git_commits_url":"https://api.github.com/repos/juju/charm/git/commits{/sha}","comments_url":"https://api.github.com/repos/juju/charm/comments{/number}","issue_comment_url":"https://api.github.com/repos/juju/charm/issues/comments{/number}","contents_url":"https://api.github.com/repos/juju/charm/contents/{+path}","compare_url":"https://api.github.com/repos/juju/charm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/juju/charm/merges","archive_url":"https://api.github.com/repos/juju/charm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/juju/charm/downloads","issues_url":"https://api.github.com/repos/juju/charm/issues{/number}","pulls_url":"https://api.github.com/repos/juju/charm/pulls{/number}","milestones_url":"https://api.github.com/repos/juju/charm/milestones{/number}","notifications_url":"https://api.github.com/repos/juju/charm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/juju/charm/labels{/name}","releases_url":"https://api.github.com/repos/juju/charm/releases{/id}","created_at":"2014-06-10T16:11:32Z","updated_at":"2015-02-19T20:51:22Z","pushed_at":"2015-02-19T20:51:22Z","git_url":"git://github.com/juju/charm.git","ssh_url":"git@github.com:juju/charm.git","clone_url":"https://github.com/juju/charm.git","svn_url":"https://github.com/juju/charm","homepage":null,"size":1238,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":4,"forks":20,"open_issues":4,"watchers":0,"default_branch":"v4"}},"_links":{"self":{"href":"https://api.github.com/repos/juju/charm/pulls/88"},"html":{"href":"https://github.com/juju/charm/pull/88"},"issue":{"href":"https://api.github.com/repos/juju/charm/issues/88"},"comments":{"href":"https://api.github.com/repos/juju/charm/issues/88/comments"},"review_comments":{"href":"https://api.github.com/repos/juju/charm/pulls/88/comments"},"review_comment":{"href":"https://api.github.com/repos/juju/charm/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/juju/charm/pulls/88/commits"},"statuses":{"href":"https://api.github.com/repos/juju/charm/statuses/3ba6b16e78385d46febd762133f3110d87751c76"}}}}