)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[docs] Adds Domain API sub-section"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch add a new Domain API sub-section to the"},{"line_number":10,"context_line":"Glance Background Concepts section."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I74a4923f2ba1a52cfd2d9ac42a8571619ef0882a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba63e191_5ad41a46","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":14},"updated":"2016-01-19 18:44:00.000000000","message":"nit: add -\u003e adds","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[docs] Adds Domain API sub-section"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch add a new Domain API sub-section to the"},{"line_number":10,"context_line":"Glance Background Concepts section."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I74a4923f2ba1a52cfd2d9ac42a8571619ef0882a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba63e191_56a05543","line":9,"range":{"start_line":9,"start_character":11,"end_line":9,"end_character":14},"in_reply_to":"ba63e191_5ad41a46","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"e8f964f6df3522d5851dd984d75f4fcfd46dfe20","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Olena Logvinova \u003cologvinova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-20 11:01:50 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[docs] Add Domain API sub-section"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds a new Domain API sub-section to the"},{"line_number":10,"context_line":"Glance Background Concepts section."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a68dd71_5baf83e3","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":21},"updated":"2016-01-20 13:09:18.000000000","message":"Which API do we mean here?\n\nIf we\u0027re documenting an API I\u0027d expect something like:\n\n functionX: takes these arguments, does this thing\n\n\nI think the doc is great -- but wonder if it\u0027s intended to be more an overview of the domain model\u0027s layers than documenting a particular API. (Also, users may think REST API.)","commit_id":"4fcd472949086da4a1c8a886e177c0f236542f3c"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"0d5b35775a25f43d740f3b2fece08794dc562ecc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Olena Logvinova \u003cologvinova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-20 11:01:50 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[docs] Add Domain API sub-section"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds a new Domain API sub-section to the"},{"line_number":10,"context_line":"Glance Background Concepts section."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a68dd71_b3590391","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":21},"in_reply_to":"9a68dd71_5baf83e3","updated":"2016-01-20 14:36:00.000000000","message":"Thanks Stuart. Will rename this subsection in the next patch.","commit_id":"4fcd472949086da4a1c8a886e177c0f236542f3c"}],"doc/source/domain_api.rst":[{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"05d5d455469afce454be7b8dc3c678a8c1813256","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The first layer of domain model provides a verification of whether an"},{"line_number":47,"context_line":"image itself or its property for a given user can be changed. An admin and"},{"line_number":48,"context_line":"image owner can apply the changes. The information about user is"},{"line_number":49,"context_line":"taken from the request ``context`` and is compared with the image ``owner``."},{"line_number":50,"context_line":"If a user cannot apply a change, an appropriate error message appears."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a7e1126_e4590cfe","line":48,"range":{"start_line":48,"start_character":57,"end_line":48,"end_character":61},"updated":"2015-12-22 09:56:23.000000000","message":"a user","commit_id":"558c120b0a03f6ec7d55e0bb6167d0804e873d5b"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"75d094587e43287683386d608aeeab289dfab8d0","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The first layer of domain model provides a verification of whether an"},{"line_number":47,"context_line":"image itself or its property for a given user can be changed. An admin and"},{"line_number":48,"context_line":"image owner can apply the changes. The information about user is"},{"line_number":49,"context_line":"taken from the request ``context`` and is compared with the image ``owner``."},{"line_number":50,"context_line":"If a user cannot apply a change, an appropriate error message appears."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a7e1126_d1de0d3d","line":48,"range":{"start_line":48,"start_character":57,"end_line":48,"end_character":61},"in_reply_to":"3a7e1126_e4590cfe","updated":"2015-12-22 10:16:46.000000000","message":"Done","commit_id":"558c120b0a03f6ec7d55e0bb6167d0804e873d5b"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"05d5d455469afce454be7b8dc3c678a8c1813256","unresolved":false,"context_lines":[{"line_number":47,"context_line":"image itself or its property for a given user can be changed. An admin and"},{"line_number":48,"context_line":"image owner can apply the changes. The information about user is"},{"line_number":49,"context_line":"taken from the request ``context`` and is compared with the image ``owner``."},{"line_number":50,"context_line":"If a user cannot apply a change, an appropriate error message appears."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":".. _notifier:"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a7e1126_e4b10ce1","line":50,"range":{"start_line":50,"start_character":3,"end_line":50,"end_character":4},"updated":"2015-12-22 09:56:23.000000000","message":"the","commit_id":"558c120b0a03f6ec7d55e0bb6167d0804e873d5b"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"75d094587e43287683386d608aeeab289dfab8d0","unresolved":false,"context_lines":[{"line_number":47,"context_line":"image itself or its property for a given user can be changed. An admin and"},{"line_number":48,"context_line":"image owner can apply the changes. The information about user is"},{"line_number":49,"context_line":"taken from the request ``context`` and is compared with the image ``owner``."},{"line_number":50,"context_line":"If a user cannot apply a change, an appropriate error message appears."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":".. _notifier:"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a7e1126_71eab9dc","line":50,"range":{"start_line":50,"start_character":3,"end_line":50,"end_character":4},"in_reply_to":"3a7e1126_e4b10ce1","updated":"2015-12-22 10:16:46.000000000","message":"Done","commit_id":"558c120b0a03f6ec7d55e0bb6167d0804e873d5b"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"227e26071e0ae25d3e98522f38359f654f966eaa","unresolved":false,"context_lines":[{"line_number":50,"context_line":"If the user cannot apply a change, an appropriate error message appears."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":".. _notifier:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Notifier"},{"line_number":55,"context_line":"--------"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a7b0d38_193c452e","line":53,"updated":"2015-12-25 14:50:44.000000000","message":"Does it to mention property protection layer here? It is optional but it allows to fully describe all available layers.","commit_id":"af649f201ef1e8bb52ce993783fcc62404f8f0df"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"27e8748170adbcb8c789f749c3bbe553c4b9248a","unresolved":false,"context_lines":[{"line_number":50,"context_line":"If the user cannot apply a change, an appropriate error message appears."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":".. _notifier:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Notifier"},{"line_number":55,"context_line":"--------"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6ed579_9f6cbd09","line":53,"in_reply_to":"1a7b0d38_193c452e","updated":"2016-01-18 16:09:49.000000000","message":"Confirmed with Daria and Mikhail and will add this layer description in next patch. Thanks Kairat.","commit_id":"af649f201ef1e8bb52ce993783fcc62404f8f0df"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"5143f4248dffecbfc41331e6b326a154b7b301ec","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Copyright 2015 OpenStack Foundation"},{"line_number":3,"context_line":"      All Rights Reserved."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_97fdce70","line":2,"range":{"start_line":2,"start_character":16,"end_line":2,"end_character":20},"updated":"2016-01-18 18:33:09.000000000","message":"Should this be 2016?","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"c5378f2c313fce878a5cbddd860d895483f5ffd3","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Copyright 2015 OpenStack Foundation"},{"line_number":3,"context_line":"      All Rights Reserved."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_4d400d57","line":2,"range":{"start_line":2,"start_character":16,"end_line":2,"end_character":20},"in_reply_to":"ba63e191_97fdce70","updated":"2016-01-19 10:13:31.000000000","message":"Nice catch! Thanks much Brianna!","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"5143f4248dffecbfc41331e6b326a154b7b301ec","unresolved":false,"context_lines":[{"line_number":45,"context_line":"-------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The first layer of domain model provides a verification of whether an"},{"line_number":48,"context_line":"image itself or its property for a given user can be changed. An admin and"},{"line_number":49,"context_line":"image owner can apply the changes. The information about a user is"},{"line_number":50,"context_line":"taken from the request ``context`` and is compared with the image ``owner``."},{"line_number":51,"context_line":"If the user cannot apply a change, an appropriate error message appears."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_572516c0","line":48,"range":{"start_line":48,"start_character":29,"end_line":48,"end_character":60},"updated":"2016-01-18 18:33:09.000000000","message":"It might be better to say \"can be changed by a given user\"\n\nAs it is stated, it could be understood that the property is a user-specific attribute.","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"5143f4248dffecbfc41331e6b326a154b7b301ec","unresolved":false,"context_lines":[{"line_number":45,"context_line":"-------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The first layer of domain model provides a verification of whether an"},{"line_number":48,"context_line":"image itself or its property for a given user can be changed. An admin and"},{"line_number":49,"context_line":"image owner can apply the changes. The information about a user is"},{"line_number":50,"context_line":"taken from the request ``context`` and is compared with the image ``owner``."},{"line_number":51,"context_line":"If the user cannot apply a change, an appropriate error message appears."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_d7bb4674","line":48,"range":{"start_line":48,"start_character":71,"end_line":48,"end_character":74},"updated":"2016-01-18 18:33:09.000000000","message":"Should this be \"or\" instead?  Does the image owner also have to be an admin in order to apply the changes?","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"c5378f2c313fce878a5cbddd860d895483f5ffd3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"-------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The first layer of domain model provides a verification of whether an"},{"line_number":48,"context_line":"image itself or its property for a given user can be changed. An admin and"},{"line_number":49,"context_line":"image owner can apply the changes. The information about a user is"},{"line_number":50,"context_line":"taken from the request ``context`` and is compared with the image ``owner``."},{"line_number":51,"context_line":"If the user cannot apply a change, an appropriate error message appears."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_b9e547a9","line":48,"range":{"start_line":48,"start_character":29,"end_line":48,"end_character":60},"in_reply_to":"ba63e191_572516c0","updated":"2016-01-19 10:13:31.000000000","message":"The image can be changed not by a user only, but by admin as well, for example. So I would not change the preposition here. Let me remove this part completely.","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"c5378f2c313fce878a5cbddd860d895483f5ffd3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"-------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The first layer of domain model provides a verification of whether an"},{"line_number":48,"context_line":"image itself or its property for a given user can be changed. An admin and"},{"line_number":49,"context_line":"image owner can apply the changes. The information about a user is"},{"line_number":50,"context_line":"taken from the request ``context`` and is compared with the image ``owner``."},{"line_number":51,"context_line":"If the user cannot apply a change, an appropriate error message appears."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_b85545c7","line":48,"range":{"start_line":48,"start_character":71,"end_line":48,"end_character":74},"in_reply_to":"ba63e191_d7bb4674","updated":"2016-01-19 10:13:31.000000000","message":"No, the image owner may not be an admin. Either admin or owner can apply the changes. So changing \u0027and\u0027 to \u0027or\u0027.","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"5143f4248dffecbfc41331e6b326a154b7b301ec","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  to an image."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The property protection layer manages access to the meta properties"},{"line_number":68,"context_line":"through the Glance’s public API calls. You can restrict the access in the"},{"line_number":69,"context_line":"property protection configuration file."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":".. _notifier:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_6213ba5d","line":68,"range":{"start_line":68,"start_character":8,"end_line":68,"end_character":12},"updated":"2016-01-18 18:33:09.000000000","message":"\"the\" should be deleted","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"c5378f2c313fce878a5cbddd860d895483f5ffd3","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  to an image."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The property protection layer manages access to the meta properties"},{"line_number":68,"context_line":"through the Glance’s public API calls. You can restrict the access in the"},{"line_number":69,"context_line":"property protection configuration file."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":".. _notifier:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_785eedea","line":68,"range":{"start_line":68,"start_character":8,"end_line":68,"end_character":12},"in_reply_to":"ba63e191_6213ba5d","updated":"2016-01-19 10:13:31.000000000","message":"Done","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"5143f4248dffecbfc41331e6b326a154b7b301ec","unresolved":false,"context_lines":[{"line_number":76,"context_line":"On the third layer of domain model, the following items are added to"},{"line_number":77,"context_line":"the message queue:"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"#. Notifications about all the image changes"},{"line_number":80,"context_line":"#. All the exceptions and warnings that occurred while using an image"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":".. _policy:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_a21f725a","line":79,"range":{"start_line":79,"start_character":37,"end_line":79,"end_character":44},"updated":"2016-01-18 18:33:09.000000000","message":"Should there be a \".\" at the end? Most lists have a \".\" at the end of each item","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"c5378f2c313fce878a5cbddd860d895483f5ffd3","unresolved":false,"context_lines":[{"line_number":76,"context_line":"On the third layer of domain model, the following items are added to"},{"line_number":77,"context_line":"the message queue:"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"#. Notifications about all the image changes"},{"line_number":80,"context_line":"#. All the exceptions and warnings that occurred while using an image"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":".. _policy:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_2bd6dec5","line":79,"range":{"start_line":79,"start_character":37,"end_line":79,"end_character":44},"in_reply_to":"ba63e191_a21f725a","updated":"2016-01-19 10:13:31.000000000","message":"We follow IBM style guide in docs, and the rule asks not to include a period if list items comprise only sentence fragments.","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"5143f4248dffecbfc41331e6b326a154b7b301ec","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The sixth layer of domain model is used for interaction with the store via"},{"line_number":112,"context_line":"the ``glance_store`` library, like upload and download, and for managing an"},{"line_number":113,"context_line":"image location. On this layer, an image is validated before the upload. And"},{"line_number":114,"context_line":"if the validation succeeds, image is written to the ``glance_store`` library."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"This fifth layer of domain model is responsible for:"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_02799e93","line":114,"range":{"start_line":113,"start_character":72,"end_line":114,"end_character":77},"updated":"2016-01-18 18:33:09.000000000","message":"This is a fragment.  I would remove the \"And\" and just start the sentence with \"If\"","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"c5378f2c313fce878a5cbddd860d895483f5ffd3","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The sixth layer of domain model is used for interaction with the store via"},{"line_number":112,"context_line":"the ``glance_store`` library, like upload and download, and for managing an"},{"line_number":113,"context_line":"image location. On this layer, an image is validated before the upload. And"},{"line_number":114,"context_line":"if the validation succeeds, image is written to the ``glance_store`` library."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"This fifth layer of domain model is responsible for:"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_eb5be652","line":114,"range":{"start_line":113,"start_character":72,"end_line":114,"end_character":77},"in_reply_to":"ba63e191_02799e93","updated":"2016-01-19 10:13:31.000000000","message":"Done","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"5143f4248dffecbfc41331e6b326a154b7b301ec","unresolved":false,"context_lines":[{"line_number":113,"context_line":"image location. On this layer, an image is validated before the upload. And"},{"line_number":114,"context_line":"if the validation succeeds, image is written to the ``glance_store`` library."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"This fifth layer of domain model is responsible for:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"#. Checking whether a location URI is correct when a new location is added."},{"line_number":119,"context_line":"#. Removing an image data from the store when an image location is changed."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_a2a45208","line":116,"range":{"start_line":116,"start_character":5,"end_line":116,"end_character":10},"updated":"2016-01-18 18:33:09.000000000","message":"Should this be \"sixth\" instead?","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"c5378f2c313fce878a5cbddd860d895483f5ffd3","unresolved":false,"context_lines":[{"line_number":113,"context_line":"image location. On this layer, an image is validated before the upload. And"},{"line_number":114,"context_line":"if the validation succeeds, image is written to the ``glance_store`` library."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"This fifth layer of domain model is responsible for:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"#. Checking whether a location URI is correct when a new location is added."},{"line_number":119,"context_line":"#. Removing an image data from the store when an image location is changed."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_8baa6a18","line":116,"range":{"start_line":116,"start_character":5,"end_line":116,"end_character":10},"in_reply_to":"ba63e191_a2a45208","updated":"2016-01-19 10:13:31.000000000","message":"Thanks! Done.","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"5143f4248dffecbfc41331e6b326a154b7b301ec","unresolved":false,"context_lines":[{"line_number":124,"context_line":"Database"},{"line_number":125,"context_line":"--------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"On the last layer of domain model:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* The methods to interact with the database API are implemented."},{"line_number":130,"context_line":"* Images are converted to the corresponding format to be recorded in the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_02875e62","line":127,"range":{"start_line":127,"start_character":7,"end_line":127,"end_character":11},"updated":"2016-01-18 18:33:09.000000000","message":"It may be good to say \"seventh\" here","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"c5378f2c313fce878a5cbddd860d895483f5ffd3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"Database"},{"line_number":125,"context_line":"--------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"On the last layer of domain model:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* The methods to interact with the database API are implemented."},{"line_number":130,"context_line":"* Images are converted to the corresponding format to be recorded in the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba63e191_ebad2632","line":127,"range":{"start_line":127,"start_character":7,"end_line":127,"end_character":11},"in_reply_to":"ba63e191_02875e62","updated":"2016-01-19 10:13:31.000000000","message":"Done","commit_id":"5f7fed3d67a375cec533bd9be83cfcf135049bd5"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Gateway and basic layers"},{"line_number":22,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Domain model contains the following layers:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"#. :ref:`authorization`"},{"line_number":27,"context_line":"#. :ref:`notifier`"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_bae8b6e3","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":6},"updated":"2016-01-19 18:44:00.000000000","message":"I would start with \"The\":\n\nThe domain model contains the following layers:","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Gateway and basic layers"},{"line_number":22,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Domain model contains the following layers:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"#. :ref:`authorization`"},{"line_number":27,"context_line":"#. :ref:`notifier`"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_f3c4fb5f","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":6},"in_reply_to":"ba63e191_bae8b6e3","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":31,"context_line":"#. :ref:`location`"},{"line_number":32,"context_line":"#. :ref:`database`"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"A schema below shows a stack that contains the Image domain layers and"},{"line_number":35,"context_line":"their locations:"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. figure:: /images/glance_layers.png"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_1ab8e2e4","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":1},"updated":"2016-01-19 18:44:00.000000000","message":"A -\u003e The","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":31,"context_line":"#. :ref:`location`"},{"line_number":32,"context_line":"#. :ref:`database`"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"A schema below shows a stack that contains the Image domain layers and"},{"line_number":35,"context_line":"their locations:"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. figure:: /images/glance_layers.png"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_53ace79f","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":1},"in_reply_to":"ba63e191_1ab8e2e4","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Authorization"},{"line_number":45,"context_line":"-------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The first layer of domain model provides a verification of whether an"},{"line_number":48,"context_line":"image itself or its property can be changed. An admin or image owner can"},{"line_number":49,"context_line":"apply the changes. The information about a user is taken from the request"},{"line_number":50,"context_line":"``context`` and is compared with the image ``owner``. If the user cannot"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_1aaf8295","line":47,"range":{"start_line":47,"start_character":16,"end_line":47,"end_character":25},"updated":"2016-01-19 18:44:00.000000000","message":"of the domain","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Authorization"},{"line_number":45,"context_line":"-------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The first layer of domain model provides a verification of whether an"},{"line_number":48,"context_line":"image itself or its property can be changed. An admin or image owner can"},{"line_number":49,"context_line":"apply the changes. The information about a user is taken from the request"},{"line_number":50,"context_line":"``context`` and is compared with the image ``owner``. If the user cannot"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_d3a0d7a1","line":47,"range":{"start_line":47,"start_character":16,"end_line":47,"end_character":25},"in_reply_to":"ba63e191_1aaf8295","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Property protection"},{"line_number":56,"context_line":"-------------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"The second layer of domain model is optional. It becomes available if you set"},{"line_number":59,"context_line":"the ``property_protection_file`` parameter in the Glance configuration file."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"There are two types of image properties in Glance:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_3a892627","line":58,"range":{"start_line":58,"start_character":17,"end_line":58,"end_character":26},"updated":"2016-01-19 18:44:00.000000000","message":"of the domain","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Property protection"},{"line_number":56,"context_line":"-------------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"The second layer of domain model is optional. It becomes available if you set"},{"line_number":59,"context_line":"the ``property_protection_file`` parameter in the Glance configuration file."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"There are two types of image properties in Glance:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_137e6f19","line":58,"range":{"start_line":58,"start_character":17,"end_line":58,"end_character":26},"in_reply_to":"ba63e191_3a892627","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"There are two types of image properties in Glance:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Core properties, as specified by the image schema."},{"line_number":64,"context_line":"* Meta properties. These are the arbitrary key/value pairs that can be added"},{"line_number":65,"context_line":"  to an image."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_ba7d161e","line":63,"range":{"start_line":63,"start_character":51,"end_line":63,"end_character":52},"updated":"2016-01-19 18:44:00.000000000","message":"This is a fragment","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"There are two types of image properties in Glance:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Core properties, as specified by the image schema."},{"line_number":64,"context_line":"* Meta properties. These are the arbitrary key/value pairs that can be added"},{"line_number":65,"context_line":"  to an image."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_f3d71beb","line":63,"range":{"start_line":63,"start_character":51,"end_line":63,"end_character":52},"in_reply_to":"ba63e191_ba7d161e","updated":"2016-01-20 09:02:54.000000000","message":"Yup, but IBM style guide has another rule about such type of lists:\nIf a list contains list items that start with sentence fragments, and one or more of the fragments are followed by complete sentences, include periods after all sentence fragments and sentences. (The below list item in our case contains a complete sentence, therefore we need full stops for all the items. But I will follow your suggestion about rephrasing. Thanks! \u003d)","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":61,"context_line":"There are two types of image properties in Glance:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Core properties, as specified by the image schema."},{"line_number":64,"context_line":"* Meta properties. These are the arbitrary key/value pairs that can be added"},{"line_number":65,"context_line":"  to an image."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The property protection layer manages access to the meta properties"},{"line_number":68,"context_line":"through Glance’s public API calls. You can restrict the access in the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_1a9d4259","line":65,"range":{"start_line":64,"start_character":2,"end_line":65,"end_character":14},"updated":"2016-01-19 18:44:00.000000000","message":"I would phrase both bullet points the same, maybe the second bullet point can be:\n\nMeta properties, which are the arbitrary key/value pairs that can be added to an image","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":61,"context_line":"There are two types of image properties in Glance:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* Core properties, as specified by the image schema."},{"line_number":64,"context_line":"* Meta properties. These are the arbitrary key/value pairs that can be added"},{"line_number":65,"context_line":"  to an image."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The property protection layer manages access to the meta properties"},{"line_number":68,"context_line":"through Glance’s public API calls. You can restrict the access in the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_f3739b13","line":65,"range":{"start_line":64,"start_character":2,"end_line":65,"end_character":14},"in_reply_to":"ba63e191_1a9d4259","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Notifier"},{"line_number":74,"context_line":"--------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"On the third layer of domain model, the following items are added to"},{"line_number":77,"context_line":"the message queue:"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"#. Notifications about all the image changes"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_9aa9327e","line":76,"range":{"start_line":76,"start_character":19,"end_line":76,"end_character":28},"updated":"2016-01-19 18:44:00.000000000","message":"of the domain","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Notifier"},{"line_number":74,"context_line":"--------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"On the third layer of domain model, the following items are added to"},{"line_number":77,"context_line":"the message queue:"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"#. Notifications about all the image changes"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_73ec8b8f","line":76,"range":{"start_line":76,"start_character":19,"end_line":76,"end_character":28},"in_reply_to":"ba63e191_9aa9327e","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":76,"context_line":"On the third layer of domain model, the following items are added to"},{"line_number":77,"context_line":"the message queue:"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"#. Notifications about all the image changes"},{"line_number":80,"context_line":"#. All the exceptions and warnings that occurred while using an image"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":".. _policy:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_fab06edf","line":79,"range":{"start_line":79,"start_character":23,"end_line":79,"end_character":30},"updated":"2016-01-19 18:44:00.000000000","message":"all of the","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"On the third layer of domain model, the following items are added to"},{"line_number":77,"context_line":"the message queue:"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"#. Notifications about all the image changes"},{"line_number":80,"context_line":"#. All the exceptions and warnings that occurred while using an image"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":".. _policy:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_93bd7f6a","line":79,"range":{"start_line":79,"start_character":23,"end_line":79,"end_character":30},"in_reply_to":"ba63e191_fab06edf","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":77,"context_line":"the message queue:"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"#. Notifications about all the image changes"},{"line_number":80,"context_line":"#. All the exceptions and warnings that occurred while using an image"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":".. _policy:"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_dac6ca48","line":80,"range":{"start_line":80,"start_character":3,"end_line":80,"end_character":10},"updated":"2016-01-19 18:44:00.000000000","message":"All of the","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"the message queue:"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"#. Notifications about all the image changes"},{"line_number":80,"context_line":"#. All the exceptions and warnings that occurred while using an image"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":".. _policy:"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_b3c0c3e1","line":80,"range":{"start_line":80,"start_character":3,"end_line":80,"end_character":10},"in_reply_to":"ba63e191_dac6ca48","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Policy"},{"line_number":85,"context_line":"------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The fourth layer of domain model is responsible for:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"#. Defining access rules to perform actions with an image. The rules are"},{"line_number":90,"context_line":"   defined in the :file:`etc/policy.json` file."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_7ac55e3a","line":87,"range":{"start_line":87,"start_character":17,"end_line":87,"end_character":26},"updated":"2016-01-19 18:44:00.000000000","message":"of the domain","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Policy"},{"line_number":85,"context_line":"------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The fourth layer of domain model is responsible for:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"#. Defining access rules to perform actions with an image. The rules are"},{"line_number":90,"context_line":"   defined in the :file:`etc/policy.json` file."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_53b70786","line":87,"range":{"start_line":87,"start_character":17,"end_line":87,"end_character":26},"in_reply_to":"ba63e191_7ac55e3a","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":95,"context_line":"Quota"},{"line_number":96,"context_line":"-----"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"On the fifth layer of domain model, if a user has an admin-defined size"},{"line_number":99,"context_line":"quota for all of his uploaded images, there is a check that verifies whether"},{"line_number":100,"context_line":"this quota exceeds the limit during an image uploading and saving:"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_bad2f6fe","line":98,"range":{"start_line":98,"start_character":19,"end_line":98,"end_character":28},"updated":"2016-01-19 18:44:00.000000000","message":"of the domain","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":95,"context_line":"Quota"},{"line_number":96,"context_line":"-----"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"On the fifth layer of domain model, if a user has an admin-defined size"},{"line_number":99,"context_line":"quota for all of his uploaded images, there is a check that verifies whether"},{"line_number":100,"context_line":"this quota exceeds the limit during an image uploading and saving:"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_93649f22","line":98,"range":{"start_line":98,"start_character":19,"end_line":98,"end_character":28},"in_reply_to":"ba63e191_bad2f6fe","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"On the fifth layer of domain model, if a user has an admin-defined size"},{"line_number":99,"context_line":"quota for all of his uploaded images, there is a check that verifies whether"},{"line_number":100,"context_line":"this quota exceeds the limit during an image uploading and saving:"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* If the quota does not exceed the limit, the action to add an image succeeds."},{"line_number":103,"context_line":"* If the quota exceeds the limit, the action does not succeed and an"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_fafe2e6a","line":100,"range":{"start_line":100,"start_character":45,"end_line":100,"end_character":65},"updated":"2016-01-19 18:44:00.000000000","message":"upload and save","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"On the fifth layer of domain model, if a user has an admin-defined size"},{"line_number":99,"context_line":"quota for all of his uploaded images, there is a check that verifies whether"},{"line_number":100,"context_line":"this quota exceeds the limit during an image uploading and saving:"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* If the quota does not exceed the limit, the action to add an image succeeds."},{"line_number":103,"context_line":"* If the quota exceeds the limit, the action does not succeed and an"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_b3676324","line":100,"range":{"start_line":100,"start_character":45,"end_line":100,"end_character":65},"in_reply_to":"ba63e191_fafe2e6a","updated":"2016-01-20 09:02:54.000000000","message":"Done. If possible, could you please specify the rule of using infinitive instead of gerund here? I used gerunds as nouns adherent to the main noun (image) here.","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":99,"context_line":"quota for all of his uploaded images, there is a check that verifies whether"},{"line_number":100,"context_line":"this quota exceeds the limit during an image uploading and saving:"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* If the quota does not exceed the limit, the action to add an image succeeds."},{"line_number":103,"context_line":"* If the quota exceeds the limit, the action does not succeed and an"},{"line_number":104,"context_line":"  appropriate error message appears."},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_ba40b6a6","line":102,"range":{"start_line":102,"start_character":35,"end_line":102,"end_character":45},"updated":"2016-01-19 18:44:00.000000000","message":"limit, then the","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"quota for all of his uploaded images, there is a check that verifies whether"},{"line_number":100,"context_line":"this quota exceeds the limit during an image uploading and saving:"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* If the quota does not exceed the limit, the action to add an image succeeds."},{"line_number":103,"context_line":"* If the quota exceeds the limit, the action does not succeed and an"},{"line_number":104,"context_line":"  appropriate error message appears."},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_934b3f87","line":102,"range":{"start_line":102,"start_character":35,"end_line":102,"end_character":45},"in_reply_to":"ba63e191_ba40b6a6","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":100,"context_line":"this quota exceeds the limit during an image uploading and saving:"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* If the quota does not exceed the limit, the action to add an image succeeds."},{"line_number":103,"context_line":"* If the quota exceeds the limit, the action does not succeed and an"},{"line_number":104,"context_line":"  appropriate error message appears."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":".. _location:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_9a45b2b4","line":103,"range":{"start_line":103,"start_character":27,"end_line":103,"end_character":37},"updated":"2016-01-19 18:44:00.000000000","message":"limit, then the","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":100,"context_line":"this quota exceeds the limit during an image uploading and saving:"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* If the quota does not exceed the limit, the action to add an image succeeds."},{"line_number":103,"context_line":"* If the quota exceeds the limit, the action does not succeed and an"},{"line_number":104,"context_line":"  appropriate error message appears."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":".. _location:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_b34e8394","line":103,"range":{"start_line":103,"start_character":27,"end_line":103,"end_character":37},"in_reply_to":"ba63e191_9a45b2b4","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":108,"context_line":"Location"},{"line_number":109,"context_line":"--------"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The sixth layer of domain model is used for interaction with the store via"},{"line_number":112,"context_line":"the ``glance_store`` library, like upload and download, and for managing an"},{"line_number":113,"context_line":"image location. On this layer, an image is validated before the upload. If"},{"line_number":114,"context_line":"the validation succeeds, an image is written to the ``glance_store`` library."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_da224a01","line":111,"range":{"start_line":111,"start_character":16,"end_line":111,"end_character":25},"updated":"2016-01-19 18:44:00.000000000","message":"of the domain","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":108,"context_line":"Location"},{"line_number":109,"context_line":"--------"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The sixth layer of domain model is used for interaction with the store via"},{"line_number":112,"context_line":"the ``glance_store`` library, like upload and download, and for managing an"},{"line_number":113,"context_line":"image location. On this layer, an image is validated before the upload. If"},{"line_number":114,"context_line":"the validation succeeds, an image is written to the ``glance_store`` library."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_93325f0f","line":111,"range":{"start_line":111,"start_character":16,"end_line":111,"end_character":25},"in_reply_to":"ba63e191_da224a01","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":113,"context_line":"image location. On this layer, an image is validated before the upload. If"},{"line_number":114,"context_line":"the validation succeeds, an image is written to the ``glance_store`` library."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"This sixth layer of domain model is responsible for:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"#. Checking whether a location URI is correct when a new location is added"},{"line_number":119,"context_line":"#. Removing an image data from the store when an image location is changed"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_fa838eca","line":116,"range":{"start_line":116,"start_character":17,"end_line":116,"end_character":26},"updated":"2016-01-19 18:44:00.000000000","message":"of the domain","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":113,"context_line":"image location. On this layer, an image is validated before the upload. If"},{"line_number":114,"context_line":"the validation succeeds, an image is written to the ``glance_store`` library."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"This sixth layer of domain model is responsible for:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"#. Checking whether a location URI is correct when a new location is added"},{"line_number":119,"context_line":"#. Removing an image data from the store when an image location is changed"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_533ce7e1","line":116,"range":{"start_line":116,"start_character":17,"end_line":116,"end_character":26},"in_reply_to":"ba63e191_fa838eca","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":116,"context_line":"This sixth layer of domain model is responsible for:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"#. Checking whether a location URI is correct when a new location is added"},{"line_number":119,"context_line":"#. Removing an image data from the store when an image location is changed"},{"line_number":120,"context_line":"#. Preventing an image location duplicates"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":".. _database:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_ba551651","line":119,"range":{"start_line":119,"start_character":3,"end_line":119,"end_character":25},"updated":"2016-01-19 18:44:00.000000000","message":"Removing image data","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"This sixth layer of domain model is responsible for:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"#. Checking whether a location URI is correct when a new location is added"},{"line_number":119,"context_line":"#. Removing an image data from the store when an image location is changed"},{"line_number":120,"context_line":"#. Preventing an image location duplicates"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":".. _database:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_13274fcb","line":119,"range":{"start_line":119,"start_character":3,"end_line":119,"end_character":25},"in_reply_to":"ba63e191_ba551651","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"#. Checking whether a location URI is correct when a new location is added"},{"line_number":119,"context_line":"#. Removing an image data from the store when an image location is changed"},{"line_number":120,"context_line":"#. Preventing an image location duplicates"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":".. _database:"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_9ab5b232","line":120,"range":{"start_line":120,"start_character":3,"end_line":120,"end_character":42},"updated":"2016-01-19 18:44:00.000000000","message":"This should either be \"Preventing an image location duplicate\" or \"Preventing image location duplicates\"","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"#. Checking whether a location URI is correct when a new location is added"},{"line_number":119,"context_line":"#. Removing an image data from the store when an image location is changed"},{"line_number":120,"context_line":"#. Preventing an image location duplicates"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":".. _database:"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_332293ba","line":120,"range":{"start_line":120,"start_character":3,"end_line":120,"end_character":42},"in_reply_to":"ba63e191_9ab5b232","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":124,"context_line":"Database"},{"line_number":125,"context_line":"--------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"On the seventh layer of domain model:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* The methods to interact with the database API are implemented."},{"line_number":130,"context_line":"* Images are converted to the corresponding format to be recorded in the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_7a4f9ebd","line":127,"range":{"start_line":127,"start_character":21,"end_line":127,"end_character":30},"updated":"2016-01-19 18:44:00.000000000","message":"of the domain","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":124,"context_line":"Database"},{"line_number":125,"context_line":"--------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"On the seventh layer of domain model:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* The methods to interact with the database API are implemented."},{"line_number":130,"context_line":"* Images are converted to the corresponding format to be recorded in the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_96000d03","line":127,"range":{"start_line":127,"start_character":21,"end_line":127,"end_character":30},"in_reply_to":"ba63e191_7a4f9ebd","updated":"2016-01-20 09:02:54.000000000","message":"Done","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"4307ec72fc9c4daf8f6f12afc87322f49d465d47","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* The methods to interact with the database API are implemented."},{"line_number":130,"context_line":"* Images are converted to the corresponding format to be recorded in the"},{"line_number":131,"context_line":"  database. And vice versa, information received from the database is"},{"line_number":132,"context_line":"  converted to an Image object."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_fa7cee73","line":131,"range":{"start_line":131,"start_character":12,"end_line":131,"end_character":26},"updated":"2016-01-19 18:44:00.000000000","message":"\"Also\" would be better here","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"},{"author":{"_account_id":14962,"name":"ologvinova","email":"ologvinova@mirantis.com","username":"ologvinova"},"change_message_id":"e3d121e134dee36c5cf02a08758091bc850fb87a","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* The methods to interact with the database API are implemented."},{"line_number":130,"context_line":"* Images are converted to the corresponding format to be recorded in the"},{"line_number":131,"context_line":"  database. And vice versa, information received from the database is"},{"line_number":132,"context_line":"  converted to an Image object."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba63e191_369361a5","line":131,"range":{"start_line":131,"start_character":12,"end_line":131,"end_character":26},"in_reply_to":"ba63e191_fa7cee73","updated":"2016-01-20 09:02:54.000000000","message":"And does \u0027also\u0027 highlights the reverse if we change to your variant? I will leave \u0027And\u0027 only.","commit_id":"b988cfbec2fc9d4bacc414f62eed8000bc1e77ee"}],"doc/source/images/glance_layers.png":[{"author":{"_account_id":16658,"name":"Darja Shakhray","email":"damalyavkina@gmail.com","username":"dshakhray"},"change_message_id":"b48828582ee52ce652af5f9bde64af70720b6560","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9a68dd71_7bcb6773","updated":"2016-01-20 13:07:42.000000000","message":"Property protection is located between Auth and Notifier","commit_id":"4fcd472949086da4a1c8a886e177c0f236542f3c"}]}
