From fa85f4e462415f2ce96e387bbaf9d512db64540e Mon Sep 17 00:00:00 2001
From: Doug Hellmann <doug@doughellmann.com>
Date: Mon, 24 Jul 2017 11:37:11 -0400
Subject: [PATCH] add api landing pages for older releases

Add reduced project-data files for older releases that only include
projects with API reference docs or guides to allow us to copy the API
landing page template from pike.

Change-Id: I143f7986f7c6d730696715b687d4e010a23b5a45
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
---
 www/mitaka/api/index.html     |  65 +++++++++++++++++
 www/newton/api/index.html     |  65 +++++++++++++++++
 www/ocata/api/index.html      |  65 +++++++++++++++++
 www/ocata/index.html          |   2 +-
 www/project-data/mitaka.yaml  | 127 ++++++++++++++++++++++++++++++++
 www/project-data/newton.yaml  | 120 ++++++++++++++++++++++++++++++
 www/project-data/ocata.yaml   | 133 ++++++++++++++++++++++++++++++++++
 www/templates/api_guides.tmpl |   2 +-
 8 files changed, 577 insertions(+), 2 deletions(-)
 create mode 100644 www/mitaka/api/index.html
 create mode 100644 www/newton/api/index.html
 create mode 100644 www/ocata/api/index.html
 create mode 100644 www/project-data/mitaka.yaml
 create mode 100644 www/project-data/newton.yaml
 create mode 100644 www/project-data/ocata.yaml

diff --git a/www/mitaka/api/index.html b/www/mitaka/api/index.html
new file mode 100644
index 0000000000..6b27af3ef8
--- /dev/null
+++ b/www/mitaka/api/index.html
@@ -0,0 +1,65 @@
+{% set projects = PROJECT_DATA[SERIES] %}
+{% extends "templates/base.tmpl" %}
+{% block pagetitle %}API references{% endblock %}
+{% block title %}API references{% endblock %}
+{% block header %}
+{% endblock header %}
+{% block content %}
+    <!-- Begin Page Content -->
+    <div class="top-docs-wrapper">
+    <div class="container">
+        <div class="row">
+            <div class="col-lg-8 col-md-8 col-sm-8">
+                <h1>OpenStack {% if SERIES != 'latest' %}{{SERIES|title}}{% endif %} API Reference Documentation</h1>
+                <p>
+                This page contains documentation about the OpenStack API and how to use it.
+                </p>
+       </div>
+    </div>
+</div>
+<div class="mid-docs-wrapper" id="docs-main-body">
+        <div class="container">
+            <div class="row">
+                <div class="col-lg-12">
+                </div>
+            </div>
+            <div class="row docs-toc">
+                <div class="col-lg-6 col-md-6 col-sm-6">
+                    <div class="docs-link-sections">
+                        <h3><i class="fa fa-book"></i> API References</h3>
+                        Combined <a href="https://developer.openstack.org/api-ref.html">API Reference</a><br/>
+{% for project in projects|sort(attribute='service') %}
+{% if project.has_api_ref or project.has_api_guide or project.has_in_tree_api_docs %}
+                        {{project.service}} ({{project.name}}):
+{% if project.has_api_ref %}
+                        <a href="https://developer.openstack.org/api-ref/{{project.service_type}}/"> API Reference</a>
+{% endif %}
+{% if project.has_in_tree_api_docs %}
+                        <a href="/{{project.name}}/{{SERIES}}/api/"> API Guide</a>
+{% endif %}
+{% if project.has_api_guide %}
+                        <a href="https://developer.openstack.org/api-guide/{{project.service_type}}/"> API Guide</a>
+{% endif %}
+                        <br/>
+{% endif %}
+{% endfor %}
+                    </div>
+                </div>
+                <div class="col-lg-6 col-md-6 col-sm-6">
+                    <div class="docs-link-sections">
+                        <h3><i class="fa fa-cloud"></i> User Guides</h3>
+                        <a href="https://developer.openstack.org/api-guide/quick-start/">API Guide</a><br/>
+                        <a href="https://developer.openstack.org">Open source software for application development</a><br/>
+                    </div>
+                </div>
+            </div>
+            <div class="row docs-contribute-wrapper">
+                <div class="col-lg-12">
+                    <p>Documentation treated like code, powered by the community - interested?</p>
+                    <a href="/contributor-guide/" class="overview-btn contribute-btn">How To Contribute <i class="fa fa-chevron-right"></i></a>
+                </div>
+            </div>
+        </div>
+</div>
+    <!-- End Page Content -->
+{% endblock content %}
diff --git a/www/newton/api/index.html b/www/newton/api/index.html
new file mode 100644
index 0000000000..6b27af3ef8
--- /dev/null
+++ b/www/newton/api/index.html
@@ -0,0 +1,65 @@
+{% set projects = PROJECT_DATA[SERIES] %}
+{% extends "templates/base.tmpl" %}
+{% block pagetitle %}API references{% endblock %}
+{% block title %}API references{% endblock %}
+{% block header %}
+{% endblock header %}
+{% block content %}
+    <!-- Begin Page Content -->
+    <div class="top-docs-wrapper">
+    <div class="container">
+        <div class="row">
+            <div class="col-lg-8 col-md-8 col-sm-8">
+                <h1>OpenStack {% if SERIES != 'latest' %}{{SERIES|title}}{% endif %} API Reference Documentation</h1>
+                <p>
+                This page contains documentation about the OpenStack API and how to use it.
+                </p>
+       </div>
+    </div>
+</div>
+<div class="mid-docs-wrapper" id="docs-main-body">
+        <div class="container">
+            <div class="row">
+                <div class="col-lg-12">
+                </div>
+            </div>
+            <div class="row docs-toc">
+                <div class="col-lg-6 col-md-6 col-sm-6">
+                    <div class="docs-link-sections">
+                        <h3><i class="fa fa-book"></i> API References</h3>
+                        Combined <a href="https://developer.openstack.org/api-ref.html">API Reference</a><br/>
+{% for project in projects|sort(attribute='service') %}
+{% if project.has_api_ref or project.has_api_guide or project.has_in_tree_api_docs %}
+                        {{project.service}} ({{project.name}}):
+{% if project.has_api_ref %}
+                        <a href="https://developer.openstack.org/api-ref/{{project.service_type}}/"> API Reference</a>
+{% endif %}
+{% if project.has_in_tree_api_docs %}
+                        <a href="/{{project.name}}/{{SERIES}}/api/"> API Guide</a>
+{% endif %}
+{% if project.has_api_guide %}
+                        <a href="https://developer.openstack.org/api-guide/{{project.service_type}}/"> API Guide</a>
+{% endif %}
+                        <br/>
+{% endif %}
+{% endfor %}
+                    </div>
+                </div>
+                <div class="col-lg-6 col-md-6 col-sm-6">
+                    <div class="docs-link-sections">
+                        <h3><i class="fa fa-cloud"></i> User Guides</h3>
+                        <a href="https://developer.openstack.org/api-guide/quick-start/">API Guide</a><br/>
+                        <a href="https://developer.openstack.org">Open source software for application development</a><br/>
+                    </div>
+                </div>
+            </div>
+            <div class="row docs-contribute-wrapper">
+                <div class="col-lg-12">
+                    <p>Documentation treated like code, powered by the community - interested?</p>
+                    <a href="/contributor-guide/" class="overview-btn contribute-btn">How To Contribute <i class="fa fa-chevron-right"></i></a>
+                </div>
+            </div>
+        </div>
+</div>
+    <!-- End Page Content -->
+{% endblock content %}
diff --git a/www/ocata/api/index.html b/www/ocata/api/index.html
new file mode 100644
index 0000000000..6b27af3ef8
--- /dev/null
+++ b/www/ocata/api/index.html
@@ -0,0 +1,65 @@
+{% set projects = PROJECT_DATA[SERIES] %}
+{% extends "templates/base.tmpl" %}
+{% block pagetitle %}API references{% endblock %}
+{% block title %}API references{% endblock %}
+{% block header %}
+{% endblock header %}
+{% block content %}
+    <!-- Begin Page Content -->
+    <div class="top-docs-wrapper">
+    <div class="container">
+        <div class="row">
+            <div class="col-lg-8 col-md-8 col-sm-8">
+                <h1>OpenStack {% if SERIES != 'latest' %}{{SERIES|title}}{% endif %} API Reference Documentation</h1>
+                <p>
+                This page contains documentation about the OpenStack API and how to use it.
+                </p>
+       </div>
+    </div>
+</div>
+<div class="mid-docs-wrapper" id="docs-main-body">
+        <div class="container">
+            <div class="row">
+                <div class="col-lg-12">
+                </div>
+            </div>
+            <div class="row docs-toc">
+                <div class="col-lg-6 col-md-6 col-sm-6">
+                    <div class="docs-link-sections">
+                        <h3><i class="fa fa-book"></i> API References</h3>
+                        Combined <a href="https://developer.openstack.org/api-ref.html">API Reference</a><br/>
+{% for project in projects|sort(attribute='service') %}
+{% if project.has_api_ref or project.has_api_guide or project.has_in_tree_api_docs %}
+                        {{project.service}} ({{project.name}}):
+{% if project.has_api_ref %}
+                        <a href="https://developer.openstack.org/api-ref/{{project.service_type}}/"> API Reference</a>
+{% endif %}
+{% if project.has_in_tree_api_docs %}
+                        <a href="/{{project.name}}/{{SERIES}}/api/"> API Guide</a>
+{% endif %}
+{% if project.has_api_guide %}
+                        <a href="https://developer.openstack.org/api-guide/{{project.service_type}}/"> API Guide</a>
+{% endif %}
+                        <br/>
+{% endif %}
+{% endfor %}
+                    </div>
+                </div>
+                <div class="col-lg-6 col-md-6 col-sm-6">
+                    <div class="docs-link-sections">
+                        <h3><i class="fa fa-cloud"></i> User Guides</h3>
+                        <a href="https://developer.openstack.org/api-guide/quick-start/">API Guide</a><br/>
+                        <a href="https://developer.openstack.org">Open source software for application development</a><br/>
+                    </div>
+                </div>
+            </div>
+            <div class="row docs-contribute-wrapper">
+                <div class="col-lg-12">
+                    <p>Documentation treated like code, powered by the community - interested?</p>
+                    <a href="/contributor-guide/" class="overview-btn contribute-btn">How To Contribute <i class="fa fa-chevron-right"></i></a>
+                </div>
+            </div>
+        </div>
+</div>
+    <!-- End Page Content -->
+{% endblock content %}
diff --git a/www/ocata/index.html b/www/ocata/index.html
index 69097c57f2..0522cc0976 100644
--- a/www/ocata/index.html
+++ b/www/ocata/index.html
@@ -81,7 +81,7 @@
                 </div>
                 <div class="docs-link-sections">
                     <h3 id="api-guides"><i class="fa fa-book"></i> API Guides</h3>
-                    <a href="/api/">API Guides</a>
+                    <a href="api">API Guides</a>
                     <p>OpenStack API Documentation</p>
                 </div>
             </div>
diff --git a/www/project-data/mitaka.yaml b/www/project-data/mitaka.yaml
new file mode 100644
index 0000000000..bc78b8c99c
--- /dev/null
+++ b/www/project-data/mitaka.yaml
@@ -0,0 +1,127 @@
+---
+# Schema: See schema.yaml and README.txt
+
+- name: keystone
+  service: Identity service
+  service_type: identity
+  has_api_ref: true
+  type: service
+
+- name: glance
+  service: Image service
+  service_type: image
+  has_api_ref: true
+  type: service
+
+- name: nova
+  service: Compute service
+  service_type: compute
+  has_api_ref: true
+  has_api_guide: true
+  type: service
+
+- name: neutron
+  service: Networking service
+  service_type: network
+  has_api_ref: true
+  type: service
+
+- name: cinder
+  service: Block Storage service
+  service_type: block-storage
+  type: service
+  has_api_ref: true
+
+- name: ironic
+  service: Bare Metal service
+  service_type: baremetal
+  has_api_ref: true
+  type: service
+
+- name: magnum
+  service: Container Infrastructure Management service
+  service_type: container-infrastructure-management
+  has_api_ref: true
+  type: service
+
+- name: trove
+  service: Database service
+  service_type: database
+  has_api_ref: true
+  type: service
+
+- name: designate
+  service: DNS service
+  service_type: dns
+  has_api_ref: true
+  type: service
+
+- name: barbican
+  service: Key Manager service
+  service_type: key-manager
+  has_api_guide: true
+  has_api_ref: true
+  type: service
+
+- name: zaqar
+  service: Messaging service
+  service_type: message
+  has_api_ref: true
+  type: service
+
+- name: swift
+  service: Object Storage service
+  service_type: object-store
+  has_api_ref: true
+  type: service
+
+- name: heat
+  service: Orchestration service
+  service_type: orchestration
+  has_in_tree_api_docs: true
+  has_api_ref: true
+  type: service
+
+- name: manila
+  service: Shared File Systems service
+  service_type: shared-file-system
+  has_api_ref: true
+  type: service
+
+- name: sahara
+  service: Data Processing service
+  service_type: data-processing
+  has_api_ref: true
+  type: service
+
+- name: murano
+  service: Application Catalog service
+  service_type: application-catalog
+  type: service
+  has_api_ref: true
+
+- name: senlin
+  service: Clustering service
+  service_type: resource-cluster
+  type: service
+  has_api_ref: true
+
+- name: tacker
+  service: NFV Orchestration service
+  service_type: nfv-orchestration
+  type: service
+  has_api_ref: true
+
+- name: searchlight
+  service: Search service
+  # NOTE(dhellmann): This causes /search/ to redirect to the
+  # searchlight documentation.
+  service_type: search
+  type: service
+  has_api_ref: true
+
+- name: octavia
+  service: Load-balancer service
+  service_type: load-balancer
+  has_api_ref: true
+  type: service
diff --git a/www/project-data/newton.yaml b/www/project-data/newton.yaml
new file mode 100644
index 0000000000..266efa5811
--- /dev/null
+++ b/www/project-data/newton.yaml
@@ -0,0 +1,120 @@
+---
+# Schema: See schema.yaml and README.txt
+
+- name: keystone
+  service: Identity service
+  service_type: identity
+  has_api_ref: true
+  type: service
+
+- name: glance
+  service: Image service
+  service_type: image
+  has_api_ref: true
+  type: service
+
+- name: nova
+  service: Compute service
+  service_type: compute
+  has_api_ref: true
+  has_api_guide: true
+  type: service
+
+- name: neutron
+  service: Networking service
+  service_type: network
+  has_api_ref: true
+  type: service
+
+- name: cinder
+  service: Block Storage service
+  service_type: block-storage
+  type: service
+  has_api_ref: true
+
+- name: ironic
+  service: Bare Metal service
+  service_type: baremetal
+  has_api_ref: true
+  type: service
+
+- name: magnum
+  service: Container Infrastructure Management service
+  service_type: container-infrastructure-management
+  has_api_ref: true
+  type: service
+
+- name: trove
+  service: Database service
+  service_type: database
+  has_api_ref: true
+  type: service
+
+- name: designate
+  service: DNS service
+  service_type: dns
+  has_api_ref: true
+  type: service
+
+- name: barbican
+  service: Key Manager service
+  service_type: key-manager
+  has_api_guide: true
+  has_api_ref: true
+  type: service
+
+- name: zaqar
+  service: Messaging service
+  service_type: message
+  has_api_ref: true
+  type: service
+
+- name: swift
+  service: Object Storage service
+  service_type: object-store
+  has_api_ref: true
+  type: service
+
+- name: manila
+  service: Shared File Systems service
+  service_type: shared-file-system
+  has_api_ref: true
+  type: service
+
+- name: sahara
+  service: Data Processing service
+  service_type: data-processing
+  has_api_ref: true
+  type: service
+
+- name: murano
+  service: Application Catalog service
+  service_type: application-catalog
+  type: service
+  has_api_ref: true
+
+- name: tacker
+  service: NFV Orchestration service
+  service_type: nfv-orchestration
+  type: service
+  has_api_ref: true
+
+- name: searchlight
+  service: Search service
+  # NOTE(dhellmann): This causes /search/ to redirect to the
+  # searchlight documentation.
+  service_type: search
+  type: service
+  has_api_ref: true
+
+- name: octavia
+  service: Load-balancer service
+  service_type: load-balancer
+  has_api_ref: true
+  type: service
+
+- name: karbor
+  service: Data Protection Orchestration Service
+  service_type: data-protection-orchestration
+  has_api_ref: true
+  type: service
diff --git a/www/project-data/ocata.yaml b/www/project-data/ocata.yaml
new file mode 100644
index 0000000000..7df841e29b
--- /dev/null
+++ b/www/project-data/ocata.yaml
@@ -0,0 +1,133 @@
+---
+# Schema: See schema.yaml and README.txt
+
+- name: keystone
+  service: Identity service
+  service_type: identity
+  has_api_ref: true
+  type: service
+
+- name: glance
+  service: Image service
+  service_type: image
+  has_api_ref: true
+  type: service
+
+- name: nova
+  service: Compute service
+  service_type: compute
+  has_api_ref: true
+  has_api_guide: true
+  type: service
+
+- name: neutron
+  service: Networking service
+  service_type: network
+  has_api_ref: true
+  type: service
+
+- name: cinder
+  service: Block Storage service
+  service_type: block-storage
+  type: service
+  has_api_ref: true
+
+- name: ironic
+  service: Bare Metal service
+  service_type: baremetal
+  has_api_ref: true
+  type: service
+
+- name: magnum
+  service: Container Infrastructure Management service
+  service_type: container-infrastructure-management
+  has_api_ref: true
+  type: service
+
+- name: trove
+  service: Database service
+  service_type: database
+  has_api_ref: true
+  type: service
+
+- name: designate
+  service: DNS service
+  service_type: dns
+  has_api_ref: true
+  type: service
+
+- name: barbican
+  service: Key Manager service
+  service_type: key-manager
+  has_api_guide: true
+  has_api_ref: true
+  type: service
+
+- name: zaqar
+  service: Messaging service
+  service_type: message
+  has_api_ref: true
+  type: service
+
+- name: swift
+  service: Object Storage service
+  service_type: object-store
+  has_api_ref: true
+  type: service
+
+- name: heat
+  service: Orchestration service
+  service_type: orchestration
+  has_in_tree_api_docs: true
+  has_api_ref: true
+  type: service
+
+- name: manila
+  service: Shared File Systems service
+  service_type: shared-file-system
+  has_api_ref: true
+  type: service
+
+- name: sahara
+  service: Data Processing service
+  service_type: data-processing
+  has_api_ref: true
+  type: service
+
+- name: murano
+  service: Application Catalog service
+  service_type: application-catalog
+  type: service
+  has_api_ref: true
+
+- name: senlin
+  service: Clustering service
+  service_type: resource-cluster
+  type: service
+  has_api_ref: true
+
+- name: tacker
+  service: NFV Orchestration service
+  service_type: nfv-orchestration
+  type: service
+  has_api_ref: true
+
+- name: searchlight
+  service: Search service
+  # NOTE(dhellmann): This causes /search/ to redirect to the
+  # searchlight documentation.
+  service_type: search
+  type: service
+  has_api_ref: true
+
+- name: octavia
+  service: Load-balancer service
+  service_type: load-balancer
+  has_api_ref: true
+  type: service
+
+- name: karbor
+  service: Data Protection Orchestration Service
+  service_type: data-protection-orchestration
+  has_api_ref: true
+  type: service
diff --git a/www/templates/api_guides.tmpl b/www/templates/api_guides.tmpl
index 2767559f56..70919caaa2 100644
--- a/www/templates/api_guides.tmpl
+++ b/www/templates/api_guides.tmpl
@@ -1,5 +1,5 @@
                 <div class="docs-link-sections">
                     <h3 id="api-guides"><i class="fa fa-book"></i> API Guides</h3>
-                    <a href="/api/">API Guides</a>
+                    <a href="api/">API Guides</a>
                     <p>OpenStack API Documentation</p>
                 </div>