{"action":"created","comment":{"url":"https://api.github.com/repos/scality/nfs-ganesha/pulls/comments/78406219","id":78406219,"diff_hunk":"@@ -192,33 +192,23 @@ __. and ..__\n File creation is decoupled from open and write. A new entry is created in DBD. the metadata associated to the object notably contains:\n  - a random content-md5 with char #32 set to '-'\n  - Date and last-modified set to now()\n- - owner-display-name and owner-id set to configured values\n+ - owner-display-name and owner-id set to the values found in the bucket attributes\n  - an empty locations array\n- - Future: Do we have to remove the placeholder??\n+ - Future: Do we have to remove or update the placeholder?\n \n This has the effect of creating instantly an empty file.\n \n-\n-## File removal\n-\n- - Future: If the object is the last with this prefix, create a placeholder\n- - delete object entry from DBD bucket\n- - delete all parts from sproxyd storage\n-\n-At this time, it's kind of broken when the file to remove is the last in the prefix.\n-\n ### Directory creation\n \n- - Future: Create a placeholder for the directory\n-\n-At this time, directory creation is badly implemented using internal states that can't be relied on.\n+Directories are created as placeholders. A placeholder is an empty object named after the directory name with a trailing slash (```/```) with content-type set to ```application/x-directory```\n \n \n-### Directory removal\n+## File/Directory removal\n \n- - Future: delete the placeholder if it is the last object with this prefix\n-\n-Today, it's almost broken\n+ - create the placeholder and replace it if it already exists ! it is faster than a lookup","path":"Design.md","position":35,"original_position":35,"commit_id":"0f8afc263d247ef4f2e8bbe105f97c49bb0fe082","original_commit_id":"0f8afc263d247ef4f2e8bbe105f97c49bb0fe082","user":{"login":"LaurenSpiegel","id":7368115,"avatar_url":"https://avatars.githubusercontent.com/u/7368115?v=3","gravatar_id":"","url":"https://api.github.com/users/LaurenSpiegel","html_url":"https://github.com/LaurenSpiegel","followers_url":"https://api.github.com/users/LaurenSpiegel/followers","following_url":"https://api.github.com/users/LaurenSpiegel/following{/other_user}","gists_url":"https://api.github.com/users/LaurenSpiegel/gists{/gist_id}","starred_url":"https://api.github.com/users/LaurenSpiegel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LaurenSpiegel/subscriptions","organizations_url":"https://api.github.com/users/LaurenSpiegel/orgs","repos_url":"https://api.github.com/users/LaurenSpiegel/repos","events_url":"https://api.github.com/users/LaurenSpiegel/events{/privacy}","received_events_url":"https://api.github.com/users/LaurenSpiegel/received_events","type":"User","site_admin":false},"body":"Ah, so this is only for file removal, not directory removal?","created_at":"2016-09-12T16:30:03Z","updated_at":"2016-09-12T16:30:03Z","html_url":"https://github.com/scality/nfs-ganesha/pull/4#discussion_r78406219","pull_request_url":"https://api.github.com/repos/scality/nfs-ganesha/pulls/4","_links":{"self":{"href":"https://api.github.com/repos/scality/nfs-ganesha/pulls/comments/78406219"},"html":{"href":"https://github.com/scality/nfs-ganesha/pull/4#discussion_r78406219"},"pull_request":{"href":"https://api.github.com/repos/scality/nfs-ganesha/pulls/4"}}},"pull_request":{"url":"https://api.github.com/repos/scality/nfs-ganesha/pulls/4","id":83664200,"html_url":"https://github.com/scality/nfs-ganesha/pull/4","diff_url":"https://github.com/scality/nfs-ganesha/pull/4.diff","patch_url":"https://github.com/scality/nfs-ganesha/pull/4.patch","issue_url":"https://api.github.com/repos/scality/nfs-ganesha/issues/4","number":4,"state":"open","locked":false,"title":"Ft/placeholders","user":{"login":"ploki","id":1005355,"avatar_url":"https://avatars.githubusercontent.com/u/1005355?v=3","gravatar_id":"","url":"https://api.github.com/users/ploki","html_url":"https://github.com/ploki","followers_url":"https://api.github.com/users/ploki/followers","following_url":"https://api.github.com/users/ploki/following{/other_user}","gists_url":"https://api.github.com/users/ploki/gists{/gist_id}","starred_url":"https://api.github.com/users/ploki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ploki/subscriptions","organizations_url":"https://api.github.com/users/ploki/orgs","repos_url":"https://api.github.com/users/ploki/repos","events_url":"https://api.github.com/users/ploki/events{/privacy}","received_events_url":"https://api.github.com/users/ploki/received_events","type":"User","site_admin":false},"body":"placeholders for directories\r\n\r\nreview only the last commit as others belong to another pool request","created_at":"2016-09-01T16:22:52Z","updated_at":"2016-09-12T16:30:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8a7c14d7901d4a42e8f9c3597ff5ca4d6288c91e","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/scality/nfs-ganesha/pulls/4/commits","review_comments_url":"https://api.github.com/repos/scality/nfs-ganesha/pulls/4/comments","review_comment_url":"https://api.github.com/repos/scality/nfs-ganesha/pulls/comments{/number}","comments_url":"https://api.github.com/repos/scality/nfs-ganesha/issues/4/comments","statuses_url":"https://api.github.com/repos/scality/nfs-ganesha/statuses/0f8afc263d247ef4f2e8bbe105f97c49bb0fe082","head":{"label":"scality:ft/placeholders","ref":"ft/placeholders","sha":"0f8afc263d247ef4f2e8bbe105f97c49bb0fe082","user":{"login":"scality","id":383812,"avatar_url":"https://avatars.githubusercontent.com/u/383812?v=3","gravatar_id":"","url":"https://api.github.com/users/scality","html_url":"https://github.com/scality","followers_url":"https://api.github.com/users/scality/followers","following_url":"https://api.github.com/users/scality/following{/other_user}","gists_url":"https://api.github.com/users/scality/gists{/gist_id}","starred_url":"https://api.github.com/users/scality/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scality/subscriptions","organizations_url":"https://api.github.com/users/scality/orgs","repos_url":"https://api.github.com/users/scality/repos","events_url":"https://api.github.com/users/scality/events{/privacy}","received_events_url":"https://api.github.com/users/scality/received_events","type":"Organization","site_admin":false},"repo":{"id":67059852,"name":"nfs-ganesha","full_name":"scality/nfs-ganesha","owner":{"login":"scality","id":383812,"avatar_url":"https://avatars.githubusercontent.com/u/383812?v=3","gravatar_id":"","url":"https://api.github.com/users/scality","html_url":"https://github.com/scality","followers_url":"https://api.github.com/users/scality/followers","following_url":"https://api.github.com/users/scality/following{/other_user}","gists_url":"https://api.github.com/users/scality/gists{/gist_id}","starred_url":"https://api.github.com/users/scality/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scality/subscriptions","organizations_url":"https://api.github.com/users/scality/orgs","repos_url":"https://api.github.com/users/scality/repos","events_url":"https://api.github.com/users/scality/events{/privacy}","received_events_url":"https://api.github.com/users/scality/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/scality/nfs-ganesha","description":"NFS-Ganesha is an NFSv3,v4,v4.1 fileserver that runs in user mode on most UNIX/Linux systems","fork":true,"url":"https://api.github.com/repos/scality/nfs-ganesha","forks_url":"https://api.github.com/repos/scality/nfs-ganesha/forks","keys_url":"https://api.github.com/repos/scality/nfs-ganesha/keys{/key_id}","collaborators_url":"https://api.github.com/repos/scality/nfs-ganesha/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/scality/nfs-ganesha/teams","hooks_url":"https://api.github.com/repos/scality/nfs-ganesha/hooks","issue_events_url":"https://api.github.com/repos/scality/nfs-ganesha/issues/events{/number}","events_url":"https://api.github.com/repos/scality/nfs-ganesha/events","assignees_url":"https://api.github.com/repos/scality/nfs-ganesha/assignees{/user}","branches_url":"https://api.github.com/repos/scality/nfs-ganesha/branches{/branch}","tags_url":"https://api.github.com/repos/scality/nfs-ganesha/tags","blobs_url":"https://api.github.com/repos/scality/nfs-ganesha/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/scality/nfs-ganesha/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/scality/nfs-ganesha/git/refs{/sha}","trees_url":"https://api.github.com/repos/scality/nfs-ganesha/git/trees{/sha}","statuses_url":"https://api.github.com/repos/scality/nfs-ganesha/statuses/{sha}","languages_url":"https://api.github.com/repos/scality/nfs-ganesha/languages","stargazers_url":"https://api.github.com/repos/scality/nfs-ganesha/stargazers","contributors_url":"https://api.github.com/repos/scality/nfs-ganesha/contributors","subscribers_url":"https://api.github.com/repos/scality/nfs-ganesha/subscribers","subscription_url":"https://api.github.com/repos/scality/nfs-ganesha/subscription","commits_url":"https://api.github.com/repos/scality/nfs-ganesha/commits{/sha}","git_commits_url":"https://api.github.com/repos/scality/nfs-ganesha/git/commits{/sha}","comments_url":"https://api.github.com/repos/scality/nfs-ganesha/comments{/number}","issue_comment_url":"https://api.github.com/repos/scality/nfs-ganesha/issues/comments{/number}","contents_url":"https://api.github.com/repos/scality/nfs-ganesha/contents/{+path}","compare_url":"https://api.github.com/repos/scality/nfs-ganesha/compare/{base}...{head}","merges_url":"https://api.github.com/repos/scality/nfs-ganesha/merges","archive_url":"https://api.github.com/repos/scality/nfs-ganesha/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/scality/nfs-ganesha/downloads","issues_url":"https://api.github.com/repos/scality/nfs-ganesha/issues{/number}","pulls_url":"https://api.github.com/repos/scality/nfs-ganesha/pulls{/number}","milestones_url":"https://api.github.com/repos/scality/nfs-ganesha/milestones{/number}","notifications_url":"https://api.github.com/repos/scality/nfs-ganesha/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/scality/nfs-ganesha/labels{/name}","releases_url":"https://api.github.com/repos/scality/nfs-ganesha/releases{/id}","deployments_url":"https://api.github.com/repos/scality/nfs-ganesha/deployments","created_at":"2016-08-31T17:41:54Z","updated_at":"2016-09-05T01:38:22Z","pushed_at":"2016-09-09T09:41:47Z","git_url":"git://github.com/scality/nfs-ganesha.git","ssh_url":"git@github.com:scality/nfs-ganesha.git","clone_url":"https://github.com/scality/nfs-ganesha.git","svn_url":"https://github.com/scality/nfs-ganesha","homepage":null,"size":96347,"stargazers_count":1,"watchers_count":1,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":9,"forks":0,"open_issues":9,"watchers":1,"default_branch":"scality-nfs"}},"base":{"label":"scality:scality-nfs","ref":"scality-nfs","sha":"46b45ac59297aa4aaa1959fdb8662cdd66a68c80","user":{"login":"scality","id":383812,"avatar_url":"https://avatars.githubusercontent.com/u/383812?v=3","gravatar_id":"","url":"https://api.github.com/users/scality","html_url":"https://github.com/scality","followers_url":"https://api.github.com/users/scality/followers","following_url":"https://api.github.com/users/scality/following{/other_user}","gists_url":"https://api.github.com/users/scality/gists{/gist_id}","starred_url":"https://api.github.com/users/scality/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scality/subscriptions","organizations_url":"https://api.github.com/users/scality/orgs","repos_url":"https://api.github.com/users/scality/repos","events_url":"https://api.github.com/users/scality/events{/privacy}","received_events_url":"https://api.github.com/users/scality/received_events","type":"Organization","site_admin":false},"repo":{"id":67059852,"name":"nfs-ganesha","full_name":"scality/nfs-ganesha","owner":{"login":"scality","id":383812,"avatar_url":"https://avatars.githubusercontent.com/u/383812?v=3","gravatar_id":"","url":"https://api.github.com/users/scality","html_url":"https://github.com/scality","followers_url":"https://api.github.com/users/scality/followers","following_url":"https://api.github.com/users/scality/following{/other_user}","gists_url":"https://api.github.com/users/scality/gists{/gist_id}","starred_url":"https://api.github.com/users/scality/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scality/subscriptions","organizations_url":"https://api.github.com/users/scality/orgs","repos_url":"https://api.github.com/users/scality/repos","events_url":"https://api.github.com/users/scality/events{/privacy}","received_events_url":"https://api.github.com/users/scality/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/scality/nfs-ganesha","description":"NFS-Ganesha is an NFSv3,v4,v4.1 fileserver that runs in user mode on most UNIX/Linux systems","fork":true,"url":"https://api.github.com/repos/scality/nfs-ganesha","forks_url":"https://api.github.com/repos/scality/nfs-ganesha/forks","keys_url":"https://api.github.com/repos/scality/nfs-ganesha/keys{/key_id}","collaborators_url":"https://api.github.com/repos/scality/nfs-ganesha/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/scality/nfs-ganesha/teams","hooks_url":"https://api.github.com/repos/scality/nfs-ganesha/hooks","issue_events_url":"https://api.github.com/repos/scality/nfs-ganesha/issues/events{/number}","events_url":"https://api.github.com/repos/scality/nfs-ganesha/events","assignees_url":"https://api.github.com/repos/scality/nfs-ganesha/assignees{/user}","branches_url":"https://api.github.com/repos/scality/nfs-ganesha/branches{/branch}","tags_url":"https://api.github.com/repos/scality/nfs-ganesha/tags","blobs_url":"https://api.github.com/repos/scality/nfs-ganesha/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/scality/nfs-ganesha/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/scality/nfs-ganesha/git/refs{/sha}","trees_url":"https://api.github.com/repos/scality/nfs-ganesha/git/trees{/sha}","statuses_url":"https://api.github.com/repos/scality/nfs-ganesha/statuses/{sha}","languages_url":"https://api.github.com/repos/scality/nfs-ganesha/languages","stargazers_url":"https://api.github.com/repos/scality/nfs-ganesha/stargazers","contributors_url":"https://api.github.com/repos/scality/nfs-ganesha/contributors","subscribers_url":"https://api.github.com/repos/scality/nfs-ganesha/subscribers","subscription_url":"https://api.github.com/repos/scality/nfs-ganesha/subscription","commits_url":"https://api.github.com/repos/scality/nfs-ganesha/commits{/sha}","git_commits_url":"https://api.github.com/repos/scality/nfs-ganesha/git/commits{/sha}","comments_url":"https://api.github.com/repos/scality/nfs-ganesha/comments{/number}","issue_comment_url":"https://api.github.com/repos/scality/nfs-ganesha/issues/comments{/number}","contents_url":"https://api.github.com/repos/scality/nfs-ganesha/contents/{+path}","compare_url":"https://api.github.com/repos/scality/nfs-ganesha/compare/{base}...{head}","merges_url":"https://api.github.com/repos/scality/nfs-ganesha/merges","archive_url":"https://api.github.com/repos/scality/nfs-ganesha/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/scality/nfs-ganesha/downloads","issues_url":"https://api.github.com/repos/scality/nfs-ganesha/issues{/number}","pulls_url":"https://api.github.com/repos/scality/nfs-ganesha/pulls{/number}","milestones_url":"https://api.github.com/repos/scality/nfs-ganesha/milestones{/number}","notifications_url":"https://api.github.com/repos/scality/nfs-ganesha/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/scality/nfs-ganesha/labels{/name}","releases_url":"https://api.github.com/repos/scality/nfs-ganesha/releases{/id}","deployments_url":"https://api.github.com/repos/scality/nfs-ganesha/deployments","created_at":"2016-08-31T17:41:54Z","updated_at":"2016-09-05T01:38:22Z","pushed_at":"2016-09-09T09:41:47Z","git_url":"git://github.com/scality/nfs-ganesha.git","ssh_url":"git@github.com:scality/nfs-ganesha.git","clone_url":"https://github.com/scality/nfs-ganesha.git","svn_url":"https://github.com/scality/nfs-ganesha","homepage":null,"size":96347,"stargazers_count":1,"watchers_count":1,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":9,"forks":0,"open_issues":9,"watchers":1,"default_branch":"scality-nfs"}},"_links":{"self":{"href":"https://api.github.com/repos/scality/nfs-ganesha/pulls/4"},"html":{"href":"https://github.com/scality/nfs-ganesha/pull/4"},"issue":{"href":"https://api.github.com/repos/scality/nfs-ganesha/issues/4"},"comments":{"href":"https://api.github.com/repos/scality/nfs-ganesha/issues/4/comments"},"review_comments":{"href":"https://api.github.com/repos/scality/nfs-ganesha/pulls/4/comments"},"review_comment":{"href":"https://api.github.com/repos/scality/nfs-ganesha/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/scality/nfs-ganesha/pulls/4/commits"},"statuses":{"href":"https://api.github.com/repos/scality/nfs-ganesha/statuses/0f8afc263d247ef4f2e8bbe105f97c49bb0fe082"}}}}
{"actor":{"display_login":"LaurenSpiegel"}}