docs: Link to the provider documentation page from the provider matrix table.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/08662bef
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/08662bef
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/08662bef

Branch: refs/heads/trunk
Commit: 08662bef48cf0e6d5e4ff197542a9dbdd3c2a621
Parents: f7c81f6
Author: Tomaz Muraus <[email protected]>
Authored: Fri Oct 11 15:20:11 2013 +0200
Committer: Tomaz Muraus <[email protected]>
Committed: Fri Oct 11 15:20:11 2013 +0200

----------------------------------------------------------------------
 .../generate_provider_feature_matrix_table.py   | 25 ++++++++++++++++----
 1 file changed, 20 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/08662bef/contrib/generate_provider_feature_matrix_table.py
----------------------------------------------------------------------
diff --git a/contrib/generate_provider_feature_matrix_table.py 
b/contrib/generate_provider_feature_matrix_table.py
index 7f7c903..319d00f 100755
--- a/contrib/generate_provider_feature_matrix_table.py
+++ b/contrib/generate_provider_feature_matrix_table.py
@@ -232,16 +232,29 @@ def generate_supported_methods_table(api, 
provider_matrix):
     return result
 
 
-def generate_supported_providers_table(provider_matrix):
+def generate_supported_providers_table(api, provider_matrix):
     data = []
-    header = ['Provider', 'Provider constant', 'Module', 'Class Name']
+    header = ['Provider', 'Documentation', 'Provider constant', 'Module',
+              'Class Name']
 
     data.append(header)
     for provider, values in provider_matrix.items():
+
         name_str = '`%s`_' % (values['name'])
         module_str = ':mod:`%s`' % (values['module'])
         class_str = ':class:`%s`' % (values['class'])
-        row = [name_str, values['constant'], module_str, class_str]
+
+        params = {'api': api, 'provider': provider.lower()}
+        driver_docs_path = pjoin(this_dir,
+                                 '../docs/%(api)s/drivers/%(provider)s.rst'
+                                 % params)
+
+        if os.path.exists(driver_docs_path):
+            docs_link = ':doc:`Click </%(api)s/drivers/%(provider)s>`' % params
+        else:
+            docs_link = ''
+
+        row = [name_str, docs_link, values['constant'], module_str, class_str]
         data.append(row)
 
     result = generate_rst_table(data)
@@ -256,8 +269,6 @@ def generate_tables():
     apis = BASE_API_METHODS.keys()
     for api in apis:
         result = generate_providers_table(api)
-        supported_providers = generate_supported_providers_table(result)
-        supported_methods = generate_supported_methods_table(api, result)
 
         docs_dir = api
 
@@ -266,6 +277,10 @@ def generate_tables():
         elif api.startswith('storage'):
             docs_dir = 'storage'
 
+        supported_providers = generate_supported_providers_table(docs_dir,
+                                                                 result)
+        supported_methods = generate_supported_methods_table(api, result)
+
         current_path = os.path.dirname(__file__)
         target_dir = os.path.abspath(pjoin(current_path,
                                            '../docs/%s/' % (docs_dir)))

Reply via email to