From 1bea8431524ef2a2835705fa9214862dedfb1a21 Mon Sep 17 00:00:00 2001 From: Mike Turvey Date: Wed, 30 Mar 2016 21:45:36 -0700 Subject: [PATCH] Adding detailed alt text to images for accessibility In order to accomodate developers with screen readers, alt text has been modified to provide an accurate and full description of the diagrams in the documentation. Screen readers use the alt text as a description of an image. Change-Id: I6343c6d9d980331ef2b0f4f23b1fa2d37b0ba602 Closes-Bug: 1432214 --- doc/source/architecture.rst | 23 ++++++++++- doc/source/database_architecture.rst | 58 +++++++++++++++++++++++++++- doc/source/domain_implementation.rst | 24 +++++++++++- doc/source/statuses.rst | 36 ++++++++++++++++- 4 files changed, 136 insertions(+), 5 deletions(-) diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst index 669b5e3a..581ca904 100644 --- a/doc/source/architecture.rst +++ b/doc/source/architecture.rst @@ -38,7 +38,28 @@ but are not extensively tested upstream. .. figure:: /images/architecture.png :figwidth: 100% :align: center - :alt: OpenStack Glance Architecture + :alt: OpenStack Glance Architecture Diagram. + Consists of 5 main blocks: "Client" "Glance" "Keystone" + "Glance Store" and "Supported Storages". + Glance block exposes a REST API. The REST API makes use of the + AuthZ Middleware and a Glance Domain Controller, which contains + Auth, Notifier, Policy, Quota, Location and DB. The Glance Domain + Controller makes use of the Glance Store (which is external to the + Glance block), and (still within the Glance block) it makes use of + the Database Abstraction Layer, and (optionally) the Registry Layer. + The Registry Layer makes use of the Database Abstraction Layer. The + Database abstraction layer exclusively makes use of the Glance + Database. + The Client block makes use of the Rest API (which exists in the + Glance block) and the Keystone block. + The Glance Store block contains AuthN which makes use of the + Keystone block, and it also contains Glance Store Drivers, which + exclusively makes use of each of the storage systems in the + Supported Storages block. Within the Supported Storages block, + there exist the following storage systems, none of which make use + of anything else: Filesystem, Swift, S3, Ceph, "ellipses", Sheepdog. + A complete list is given by the currently available drivers in + glance_store/_drivers. .. centered:: Image 1. OpenStack Glance Architecture diff --git a/doc/source/database_architecture.rst b/doc/source/database_architecture.rst index 6e88a1a4..7a1b6d24 100644 --- a/doc/source/database_architecture.rst +++ b/doc/source/database_architecture.rst @@ -184,7 +184,63 @@ of an *Image* object. .. figure:: /images/glance_db.png :figwidth: 100% :align: center - :alt: Glance images DB schema + :alt: The glance database schema is depicted by 5 tables. + The table named Images has the following columns: + id: varchar(36); + name: varchar(255), nullable; + size: bigint(20), nullable; + status: varchar(30); + is_public: tinyint(1); + created_at: datetime; + updated_at: datetime, nullable; + deleted_at: datetime, nullable; + deleted: tinyint(1); + disk_format: varchar(20), nullable; + container_format: varchar(20), nullable; + checksum: varchar(32), nullable; + owner: varchar(255), nullable + min_disk: int(11); + min_ram: int(11); + protected: tinyint(1); and + virtual_size: bigint(20), nullable;. + The table named image_locations has the following columns: + id: int(11), primary; + image_id: varchar(36), refers to column named id in table Images; + value: text; + created_at: datetime; + updated_at: datetime, nullable; + deleted_at: datetime, nullable; + deleted: tinyint(1); + meta_data: text, nullable; and + status: varchar(30);. + The table named image_members has the following columns: + id: int(11), primary; + image_id: varchar(36), refers to column named id in table Images; + member: varchar(255); + can_share: tinyint(1); + created_at: datetime; + updated_at: datetime, nullable; + deleted_at: datetime, nullable; + deleted: tinyint(1); and + status: varchar(20;. + The table named image_tags has the following columns: + id: int(11), primary; + image_id: varchar(36), refers to column named id in table Images; + value: varchar(255); + created_at: datetime; + updated_at: datetime, nullable; + deleted_at: datetime, nullable; and + deleted: tinyint(1);. + The table named image_properties has the following columns: + id: int(11), primary; + image_id: varchar(36), refers to column named id in table Images; + name: varchar(255); + value: text, nullable; + created_at: datetime; + updated_at: datetime, nullable; + deleted_at: datetime, nullable; and + deleted: tinyint(1);. + .. centered:: Image 1. Glance images DB schema diff --git a/doc/source/domain_implementation.rst b/doc/source/domain_implementation.rst index a026d2ff..9bd5bf3a 100644 --- a/doc/source/domain_implementation.rst +++ b/doc/source/domain_implementation.rst @@ -24,8 +24,8 @@ Gateway and basic layers The domain model contains the following layers: #. :ref:`authorization` -#. :ref:`notifier` #. :ref:`property` +#. :ref:`notifier` #. :ref:`policy` #. :ref:`quota` #. :ref:`location` @@ -37,7 +37,27 @@ their locations: .. figure:: /images/glance_layers.png :figwidth: 100% :align: center - :alt: Image domain layers + :alt: From top to bottom, the stack consists of the Router and REST API, + which are above the domain implementation. The Auth, Property + Protection (optional), Notifier, Policy, Quota, + Location, and Database represent the domain implementation. + The Registry (optional) and Data Access sit below the domain + implementation. Further, the Client block calls the Router; + the Location block calls the Glance Store, and the Data Access + layer calls the DBMS. + Additional information conveyed in the image is the location in + the Glance code of the various components: + Router: api/v2/router.py + REST API: api/v2/* + Auth: api/authorization.py + Property Protection: api/property_protections.py + Notifier: notifier.py + Policy: api/policy.py + Quota: quota/__init__.py + Location: location.py + DB: db/__init__.py + Registry: registry/v2/* + Data Access: db/sqlalchemy/api.py .. _authorization: diff --git a/doc/source/statuses.rst b/doc/source/statuses.rst index 526adfdb..9822d3af 100644 --- a/doc/source/statuses.rst +++ b/doc/source/statuses.rst @@ -65,7 +65,41 @@ Images in Glance can be in one the following statuses: .. figure:: /images/image_status_transition.png :figwidth: 100% :align: center - :alt: Image status transition + :alt: The states consist of: + "queued", "saving", "active", "pending_delete", "deactivated", + "killed", and "deleted". + The transitions consist of: + An initial transition to the "queued" state called "create image". + A transition from the "queued" state to the "active" state + called "add location". + A transition from the "queued" state to the "saving" state + called "upload". + A transition from the "queued" state to the "deleted" state + called "delete". + A transition from the "saving" state to the "active" state + called "upload succeeded". + A transition from the "saving" state to the "deleted" state + called "delete". + A transition from the "saving" state to the "killed" state + called "[v1] upload fail". + A transition from the "saving" state to the "queued" state + called "[v2] upload fail". + A transition from the "active" state to the "deleted" state + called "delete". + A transition from the "active" state to the "pending_delete" state + called "delayed delete". + A transition from the "active" state to the "deactivated" state + called "deactivate". + A transition from the "killed" state to the "deleted" state + called "deleted". + A transition from the "pending_delete" state to the "deleted" state + called "after scrub time". + A transition from the "deactivated" state to the "deleted" state + called "delete". + A transition from the "deactivated" state to the "active" state + called "reactivate". + There are no transitions out of the "deleted" state. + This is a representation of how the image move from one status to the next.