docs: Modify generate providers table script to support detection of deploy_node feature.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/2b04dfb2 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/2b04dfb2 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/2b04dfb2 Branch: refs/heads/trunk Commit: 2b04dfb20c17e02bbe2663f87a52c126d3935b78 Parents: 4059174 Author: Tomaz Muraus <[email protected]> Authored: Sun Aug 4 15:11:06 2013 +0200 Committer: Tomaz Muraus <[email protected]> Committed: Sun Aug 4 15:11:06 2013 +0200 ---------------------------------------------------------------------- contrib/generate_provider_feature_matrix_table.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/2b04dfb2/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 afdcfb7..55fac04 100755 --- a/contrib/generate_provider_feature_matrix_table.py +++ b/contrib/generate_provider_feature_matrix_table.py @@ -40,7 +40,8 @@ from libcloud.dns.types import Provider as DNSProvider BASE_API_METHODS = { 'compute_main': ['list_nodes', 'create_node', 'reboot_node', - 'destroy_node', 'list_images', 'list_sizes'], + 'destroy_node', 'list_images', 'list_sizes', + 'deploy_node'], 'compute_block_storage': ['list_volumes', 'create_volume', 'destroy_volume', 'attach_volume', 'detach_volume', @@ -65,7 +66,8 @@ FRIENDLY_METHODS_NAMES = { 'reboot_node': 'reboot node', 'destroy_node': 'destroy node', 'list_images': 'list images', - 'list_sizes': 'list sizes' + 'list_sizes': 'list sizes', + 'deploy_node': 'deploy node' }, 'compute_block_storage': { 'list_volumes': 'list volumes', @@ -166,8 +168,14 @@ def generate_providers_table(api): for method_name in base_api_methods: base_method = base_methods[method_name] driver_method = driver_methods[method_name] - is_implemented = (id(driver_method.im_func) != - id(base_method.im_func)) + + if method_name == 'deploy_node': + features = getattr(cls, 'features', {}).get('create_node', []) + is_implemented = len(features) >= 1 + else: + is_implemented = (id(driver_method.im_func) != + id(base_method.im_func)) + result[name]['methods'][method_name] = is_implemented return result
