)]}'
{"doc/source/architecture.rst":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dc4a17598ea8593714cacf59f07af35864f88924","unresolved":false,"context_lines":[{"line_number":46,"context_line":"         Auth, Notifier, Policy, Quota, Location and DB.  The Glance Domain"},{"line_number":47,"context_line":"         Controller makes use of the Glance Store (which is external to the"},{"line_number":48,"context_line":"         Glance block), and (still within the Glance block) it makes use of"},{"line_number":49,"context_line":"         the Database Abstraction Layer, and the Registry Layer.  The"},{"line_number":50,"context_line":"         Registry Layer makes use of the Database Abstraction Layer.  The"},{"line_number":51,"context_line":"         Database abstraction layer exclusively makes use of the Glance"},{"line_number":52,"context_line":"         Database."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a061dce_5c261269","line":49,"range":{"start_line":49,"start_character":41,"end_line":49,"end_character":63},"updated":"2016-04-04 17:14:38.000000000","message":"Note the dashed lines, the Registry Layer is optional.  Maybe change this to say \"and (optionally) the Registry Layer\", or whatever the best practice is for something like this.","commit_id":"e69d4b976c4ae2b9533297448333ee20d39269bb"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dc4a17598ea8593714cacf59f07af35864f88924","unresolved":false,"context_lines":[{"line_number":57,"context_line":"         exclusively makes use of each of the storage systems in the"},{"line_number":58,"context_line":"         Supported Storages block.  Within the Supported Storages block,"},{"line_number":59,"context_line":"         there exist the following storage systems, none of which make use"},{"line_number":60,"context_line":"         of anything else: Filesystem, Swift, S3, Ceph, Sheepdog, and an"},{"line_number":61,"context_line":"         additional generic storage system consisting of ellipses."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. centered:: Image 1. OpenStack Glance Architecture"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a061dce_372539ab","line":61,"range":{"start_line":60,"start_character":66,"end_line":61,"end_character":65},"updated":"2016-04-04 17:14:38.000000000","message":"This may be only me, so feel free to disregard.  I find this kind of misleading because the storage system represented by the \u0027... \u0027 isn\u0027t an additional generic system, rather the idea is that the supported storage systems are Filesystem, Swift, S3, Ceph, ..., Sheepdog where the complete list is given by the currently available drivers in glance_store/_drivers.  I\u0027m not sure what the best way to say that is, though.","commit_id":"e69d4b976c4ae2b9533297448333ee20d39269bb"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0683ed60894dbe7827b97e7d790d7d0c80a1a969","unresolved":false,"context_lines":[{"line_number":57,"context_line":"         exclusively makes use of each of the storage systems in the"},{"line_number":58,"context_line":"         Supported Storages block.  Within the Supported Storages block,"},{"line_number":59,"context_line":"         there exist the following storage systems, none of which make use"},{"line_number":60,"context_line":"         of anything else: Filesystem, Swift, S3, Ceph, \"ellipses\", Sheepdog."},{"line_number":61,"context_line":"         A complete list is given by the currently  available drivers in "},{"line_number":62,"context_line":"         glance_store/_drivers."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_6ca30450","line":60,"range":{"start_line":60,"start_character":56,"end_line":60,"end_character":66},"updated":"2016-04-13 22:34:57.000000000","message":"Do screen readers know how to interpret \u0027...\u0027, or is it better to have \u0027\"ellipses\"\u0027?\n\nI googled, couldn\u0027t find much current on this topic. [0] looks the best, is from 2014.  It says that three periods in a row are called \"pseudo ellipses\" (because there\u0027s a single ellipses character to represent real ellipses).  But, none of the screen readers tested in that article say \"ellipses\" for real ellipses, and only JAWS says \"dot dot dot\" for pseudo ellipses.\n\nI don\u0027t know whether it would be more or less confusing to s/\"ellipses\"/(dot dot dot)/ here or not.  I\u0027ll leave it up to you.\n\n[0] http://www.deque.com/blog/dont-screen-readers-read-whats-screen-part-1-punctuation-typographic-symbols/","commit_id":"ea728c41bb7ba71f31f1bea1ec52212931baf372"},{"author":{"_account_id":21215,"name":"Michael Turvey","email":"michael.w.turvey@intel.com","username":"mwturvey"},"change_message_id":"2d8a58cab2e7c795d5ecda3d099be2bff312c25f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"         exclusively makes use of each of the storage systems in the"},{"line_number":58,"context_line":"         Supported Storages block.  Within the Supported Storages block,"},{"line_number":59,"context_line":"         there exist the following storage systems, none of which make use"},{"line_number":60,"context_line":"         of anything else: Filesystem, Swift, S3, Ceph, \"ellipses\", Sheepdog."},{"line_number":61,"context_line":"         A complete list is given by the currently  available drivers in "},{"line_number":62,"context_line":"         glance_store/_drivers."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_0264d9e1","line":60,"range":{"start_line":60,"start_character":56,"end_line":60,"end_character":66},"in_reply_to":"5a18252c_6ca30450","updated":"2016-04-13 23:31:49.000000000","message":"That\u0027s the same page I had found most helpful when I was trying to figure out what to do with the ellipses.  Three periods is a pseudo ellipses, but there is also the Unicode ellipses character.  According to that page, both JAWS and VoiceOver will read a \"proper\" ellipses character as \"ellipses\" when found by itself instead of in context (as it is in this diagram) and that\u0027s why I went with the word ellipses.  I think it also maintains better readability/ usability for non-screen reader uses of alt text (i.e. text based browsers, any place images are disabled and alt text is used in their place)","commit_id":"ea728c41bb7ba71f31f1bea1ec52212931baf372"}],"doc/source/database_architecture.rst":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"fcfd7f6d33a1b37fc7059ad3d1dd4cee06407471","unresolved":false,"context_lines":[{"line_number":188,"context_line":"         The table named image_locations has the following columns:"},{"line_number":189,"context_line":"         id: int(11), primary;"},{"line_number":190,"context_line":"         image_id: varchar(36), refers to column named id in table Images;"},{"line_number":191,"context_line":"         value: text;"},{"line_number":192,"context_line":"         created_at: datetime;"},{"line_number":193,"context_line":"         updated_at: datetime, nullable;"},{"line_number":194,"context_line":"         deleted_at: datetime, nullable;"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a061dce_60bf5faa","line":191,"updated":"2016-04-06 21:51:15.000000000","message":"Will this really be more useful for someone with a screen reader? Can we instead explain \"the id column is the primary key and ...\" etc.?","commit_id":"e69d4b976c4ae2b9533297448333ee20d39269bb"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dc4a17598ea8593714cacf59f07af35864f88924","unresolved":false,"context_lines":[{"line_number":222,"context_line":"         updated_at: datetime, nullable;"},{"line_number":223,"context_line":"         deleted_at: datetime, nullable; and"},{"line_number":224,"context_line":"         deleted: tinyint(1);."},{"line_number":225,"context_line":"         The table named Images has the following columns:"},{"line_number":226,"context_line":"         id: varchar(36);"},{"line_number":227,"context_line":"         name: varchar(255), nullable;"},{"line_number":228,"context_line":"         size: bigint(20), nullable;"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a061dce_735d04e9","line":225,"updated":"2016-04-04 17:14:38.000000000","message":"I didn\u0027t realize how mysql-specific this diagram was.  Anyway, my only suggestion here would be to list the Images table first, since the other tables all refer to its id column.","commit_id":"e69d4b976c4ae2b9533297448333ee20d39269bb"}],"doc/source/domain_implementation.rst":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"dc4a17598ea8593714cacf59f07af35864f88924","unresolved":false,"context_lines":[{"line_number":53,"context_line":"         DB references db/__init__.py"},{"line_number":54,"context_line":"         Registry references registry/v2/*"},{"line_number":55,"context_line":"         Data Access references db/sqlalchemy/api.py"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":".. _authorization:"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a061dce_930c1896","line":56,"updated":"2016-04-04 17:14:38.000000000","message":"The only thing missing from this description is saying what exactly is in the \"Domain\" layer of the stack (Auth to DB).  I don\u0027t know whether it would be better to list the stack components in your introductory sentences, or to combine it into the list of references you give after the introductory sentences.\n\nThis might be a case where it would be worth pulling some of the info in the diagram into a two-column table of \"Layer Name\" and \"Location in Code\".","commit_id":"e69d4b976c4ae2b9533297448333ee20d39269bb"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0683ed60894dbe7827b97e7d790d7d0c80a1a969","unresolved":false,"context_lines":[{"line_number":37,"context_line":".. figure:: /images/glance_layers.png"},{"line_number":38,"context_line":"   :figwidth: 100%"},{"line_number":39,"context_line":"   :align: center"},{"line_number":40,"context_line":"   :alt: From top to bottom, the stack consists the Router and REST API, "},{"line_number":41,"context_line":"         which are above the domain implementation.  The Auth, Property "},{"line_number":42,"context_line":"         Protection (optional), Notifier, Policy, Quota, "},{"line_number":43,"context_line":"         Location, and Database represent the domain implementation. "}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_cc2698cd","line":40,"range":{"start_line":40,"start_character":39,"end_line":40,"end_character":47},"updated":"2016-04-13 22:34:57.000000000","message":"s/consists/consists of/","commit_id":"ea728c41bb7ba71f31f1bea1ec52212931baf372"},{"author":{"_account_id":21215,"name":"Michael Turvey","email":"michael.w.turvey@intel.com","username":"mwturvey"},"change_message_id":"2d8a58cab2e7c795d5ecda3d099be2bff312c25f","unresolved":false,"context_lines":[{"line_number":37,"context_line":".. figure:: /images/glance_layers.png"},{"line_number":38,"context_line":"   :figwidth: 100%"},{"line_number":39,"context_line":"   :align: center"},{"line_number":40,"context_line":"   :alt: From top to bottom, the stack consists the Router and REST API, "},{"line_number":41,"context_line":"         which are above the domain implementation.  The Auth, Property "},{"line_number":42,"context_line":"         Protection (optional), Notifier, Policy, Quota, "},{"line_number":43,"context_line":"         Location, and Database represent the domain implementation. "}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_02afb981","line":40,"range":{"start_line":40,"start_character":39,"end_line":40,"end_character":47},"in_reply_to":"5a18252c_cc2698cd","updated":"2016-04-13 23:31:49.000000000","message":"Done","commit_id":"ea728c41bb7ba71f31f1bea1ec52212931baf372"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0683ed60894dbe7827b97e7d790d7d0c80a1a969","unresolved":false,"context_lines":[{"line_number":45,"context_line":"         implementation.  Further, the Client block calls the Router; "},{"line_number":46,"context_line":"         the Location block calls the Glance Store, and the Data Access "},{"line_number":47,"context_line":"         layer calls the DBMS."},{"line_number":48,"context_line":"         Additional Metadata:"},{"line_number":49,"context_line":"         Router references api/v2/router.py"},{"line_number":50,"context_line":"         REST API references api/v2/*"},{"line_number":51,"context_line":"         Auth references api/authorization.py"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_a70ff72c","line":48,"updated":"2016-04-13 22:34:57.000000000","message":"Maybe instead of \"Additional Metadata\" say, \"Additional information conveyed in the image is the location in the Glance code of the various components:\"","commit_id":"ea728c41bb7ba71f31f1bea1ec52212931baf372"},{"author":{"_account_id":21215,"name":"Michael Turvey","email":"michael.w.turvey@intel.com","username":"mwturvey"},"change_message_id":"2d8a58cab2e7c795d5ecda3d099be2bff312c25f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"         implementation.  Further, the Client block calls the Router; "},{"line_number":46,"context_line":"         the Location block calls the Glance Store, and the Data Access "},{"line_number":47,"context_line":"         layer calls the DBMS."},{"line_number":48,"context_line":"         Additional Metadata:"},{"line_number":49,"context_line":"         Router references api/v2/router.py"},{"line_number":50,"context_line":"         REST API references api/v2/*"},{"line_number":51,"context_line":"         Auth references api/authorization.py"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_22bab5c0","line":48,"in_reply_to":"5a18252c_a70ff72c","updated":"2016-04-13 23:31:49.000000000","message":"Done","commit_id":"ea728c41bb7ba71f31f1bea1ec52212931baf372"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0683ed60894dbe7827b97e7d790d7d0c80a1a969","unresolved":false,"context_lines":[{"line_number":54,"context_line":"         Policy references api/policy.py"},{"line_number":55,"context_line":"         Quota references quota/__init__.py"},{"line_number":56,"context_line":"         Location references location.py"},{"line_number":57,"context_line":"         DB references db/__init__.py"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":".. _authorization:"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_87a63b0e","line":57,"updated":"2016-04-13 22:34:57.000000000","message":"Maybe s/ references/:/ , especially if you make the above suggested change.\n\nAlso, don\u0027t forget the locations of the Registry and Data Access layer.","commit_id":"ea728c41bb7ba71f31f1bea1ec52212931baf372"},{"author":{"_account_id":21215,"name":"Michael Turvey","email":"michael.w.turvey@intel.com","username":"mwturvey"},"change_message_id":"2d8a58cab2e7c795d5ecda3d099be2bff312c25f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"         Policy references api/policy.py"},{"line_number":55,"context_line":"         Quota references quota/__init__.py"},{"line_number":56,"context_line":"         Location references location.py"},{"line_number":57,"context_line":"         DB references db/__init__.py"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":".. _authorization:"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_82b109e4","line":57,"in_reply_to":"5a18252c_87a63b0e","updated":"2016-04-13 23:31:49.000000000","message":"Done","commit_id":"ea728c41bb7ba71f31f1bea1ec52212931baf372"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c6267b852ca4c0946670b03b1ea3b63aa96ccf0f","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"#. :ref:`authorization`"},{"line_number":27,"context_line":"#. :ref:`property`"},{"line_number":28,"context_line":"#. :ref:`notifier`"},{"line_number":29,"context_line":"#. :ref:`policy`"},{"line_number":30,"context_line":"#. :ref:`quota`"},{"line_number":31,"context_line":"#. :ref:`location`"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5a18252c_48d42fbc","line":28,"updated":"2016-04-14 02:22:55.000000000","message":"Glad you noticed this.  It makes sense to have them in the same order as given in the diagram (which is also the same order in which they appear in the text after the image).","commit_id":"1bea8431524ef2a2835705fa9214862dedfb1a21"}],"doc/source/statuses.rst":[{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a805dacfa365aeca91dd34d9fac025d41218f6a2","unresolved":false,"context_lines":[{"line_number":97,"context_line":"         A transition from the \"deactivated\" state to the \"deleted\" state"},{"line_number":98,"context_line":"         called \"delete\"."},{"line_number":99,"context_line":"         There are no transitions out of the \"deleted\" state."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"   This is a representation of how the image move from one status to the next."},{"line_number":103,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba0121b8_6a88c371","line":100,"updated":"2016-03-31 17:56:59.000000000","message":"Transition from deactivated to active is missing.","commit_id":"8cb6373807d8fe0920d98990eed0db90c26409b5"}]}
