This is an automated email from the ASF dual-hosted git repository.

joao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new aa6447636eb Fix toc generation for api docs (#9655)
aa6447636eb is described below

commit aa6447636eb2880e77278e47c02705e74f3e4050
Author: Vishesh <vishes...@gmail.com>
AuthorDate: Tue Sep 17 17:43:55 2024 +0530

    Fix toc generation for api docs (#9655)
    
    * Fix toc generation for api docs
    
    * Apply suggestions from code review
    
    Co-authored-by: dahn <daan.hoogl...@gmail.com>
    
    ---------
    
    Co-authored-by: dahn <daan.hoogl...@gmail.com>
---
 tools/apidoc/gen_toc.py | 108 ++++++++++++++++++------------------------------
 1 file changed, 40 insertions(+), 68 deletions(-)

diff --git a/tools/apidoc/gen_toc.py b/tools/apidoc/gen_toc.py
index aea803035ce..8d28749a637 100644
--- a/tools/apidoc/gen_toc.py
+++ b/tools/apidoc/gen_toc.py
@@ -16,11 +16,11 @@
 # specific language governing permissions and limitations
 # under the License.
 
-import os
 import os.path
 import sys
 from xml.dom import minidom
 from xml.parsers.expat import ExpatError
+import difflib
 
 
 ROOT_ADMIN = 'r'
@@ -51,7 +51,9 @@ known_categories = {
     'VirtualMachine': 'Virtual Machine',
     'VM': 'Virtual Machine',
     'Vnf': 'Virtual Network Functions',
+    'VnfTemplate': 'Virtual Network Functions',
     'GuestSubnet': 'Routing',
+    'HypervisorGuestOsNames': 'Guest OS',
     'Domain': 'Domain',
     'Template': 'Template',
     'Iso': 'ISO',
@@ -63,83 +65,46 @@ known_categories = {
     'StaticNat': 'NAT',
     'IpForwarding': 'NAT',
     'Host': 'Host',
-    'OutOfBand': 'Out-of-band Management',
+    'HostTags': 'Host',
+    'OutOfBandManagement': 'Out-of-band Management',
     'Cluster': 'Cluster',
     'Account': 'Account',
     'Role': 'Role',
     'Snapshot': 'Snapshot',
     'User': 'User',
+    'UserData': 'User Data',
     'Os': 'Guest OS',
     'ServiceOffering': 'Service Offering',
     'DiskOffering': 'Disk Offering',
     'LoadBalancer': 'Load Balancer',
-    'SslCert': 'Load Balancer',
+    'SslCert': 'SSL Certificates',
     'Router': 'Router',
-    'SystemVm': 'System VM',
     'Configuration': 'Configuration',
     'Capabilities': 'Configuration',
     'Pod': 'Pod',
+    'ManagementNetworkIpRange': 'Pod',
     'PublicIpRange': 'Network',
     'Zone': 'Zone',
     'Vmware' : 'Zone',
     'NetworkOffering': 'Network Offering',
     'NetworkACL': 'Network ACL',
+    'NetworkAclItem': 'Network ACL',
     'Network': 'Network',
     'CiscoNexus': 'Network',
     'OpenDaylight': 'Network',
     'createServiceInstance': 'Network',
     'addGloboDnsHost': 'Network',
-    'createTungstenFabricProvider': 'Tungsten',
-    'listTungstenFabricProviders': 'Tungsten',
-    'configTungstenFabricService': 'Tungsten',
-    'createTungstenFabricPublicNetwork': 'Tungsten',
-    'synchronizeTungstenFabricData': 'Tungsten',
-    'addTungstenFabricPolicyRule': 'Tungsten',
-    'createTungstenFabricPolicy': 'Tungsten',
-    'deleteTungstenFabricPolicy': 'Tungsten',
-    'removeTungstenFabricPolicyRule': 'Tungsten',
-    'listTungstenFabricTag': 'Tungsten',
-    'listTungstenFabricTagType': 'Tungsten',
-    'listTungstenFabricPolicy': 'Tungsten',
-    'listTungstenFabricPolicyRule': 'Tungsten',
-    'listTungstenFabricNetwork': 'Tungsten',
-    'listTungstenFabricVm': 'Tungsten',
-    'listTungstenFabricNic': 'Tungsten',
-    'createTungstenFabricTag': 'Tungsten',
-    'createTungstenFabricTagType': 'Tungsten',
-    'deleteTungstenFabricTag': 'Tungsten',
-    'deleteTungstenFabricTagType': 'Tungsten',
-    'applyTungstenFabricPolicy': 'Tungsten',
-    'applyTungstenFabricTag': 'Tungsten',
-    'removeTungstenFabricTag': 'Tungsten',
-    'removeTungstenFabricPolicy': 'Tungsten',
-    'createTungstenFabricApplicationPolicySet': 'Tungsten',
-    'createTungstenFabricFirewallPolicy': 'Tungsten',
-    'createTungstenFabricFirewallRule': 'Tungsten',
-    'createTungstenFabricServiceGroup': 'Tungsten',
-    'createTungstenFabricAddressGroup': 'Tungsten',
-    'createTungstenFabricLogicalRouter': 'Tungsten',
-    'addTungstenFabricNetworkGatewayToLogicalRouter': 'Tungsten',
-    'listTungstenFabricApplicationPolicySet': 'Tungsten',
-    'listTungstenFabricFirewallPolicy': 'Tungsten',
-    'listTungstenFabricFirewallRule': 'Tungsten',
-    'listTungstenFabricServiceGroup': 'Tungsten',
-    'listTungstenFabricAddressGroup': 'Tungsten',
-    'listTungstenFabricLogicalRouter': 'Tungsten',
-    'deleteTungstenFabricApplicationPolicySet': 'Tungsten',
-    'deleteTungstenFabricFirewallPolicy': 'Tungsten',
-    'deleteTungstenFabricFirewallRule': 'Tungsten',
-    'deleteTungstenFabricAddressGroup': 'Tungsten',
-    'deleteTungstenFabricServiceGroup': 'Tungsten',
-    'deleteTungstenFabricLogicalRouter': 'Tungsten',
-    'removeTungstenFabricNetworkGatewayFromLogicalRouter': 'Tungsten',
-    'updateTungstenFabricLBHealthMonitor': 'Tungsten',
-    'listTungstenFabricLBHealthMonitor': 'Tungsten',
+    'TungstenFabric': 'Tungsten',
     'listNsxControllers': 'NSX',
     'addNsxController': 'NSX',
     'deleteNsxController': 'NSX',
     'Vpn': 'VPN',
-    'Limit': 'Limit',
+    'Limit': 'Resource Limit',
+    'Netscaler': 'Netscaler',
+    'NetscalerControlCenter': 'Netscaler',
+    'NetscalerLoadBalancer': 'Netscaler',
+    'SolidFire': 'SolidFire',
+    'PaloAlto': 'Palo Alto',
     'ResourceCount': 'Limit',
     'CloudIdentifier': 'Cloud Identifier',
     'InstanceGroup': 'VM Group',
@@ -150,10 +115,9 @@ known_categories = {
     'updateStorageCapabilities' : 'Storage Pool',
     'SecurityGroup': 'Security Group',
     'SSH': 'SSH',
-    'register': 'Registration',
     'AsyncJob': 'Async job',
     'Certificate': 'Certificate',
-    'Hypervisor': 'Hypervisor',
+    'Hypervisor': 'Configuration',
     'Alert': 'Alert',
     'Event': 'Event',
     'login': 'Authentication',
@@ -175,19 +139,20 @@ known_categories = {
     'ExternalLoadBalancer': 'Ext Load Balancer',
     'ExternalFirewall': 'Ext Firewall',
     'Usage': 'Usage',
-    'TrafficMonitor': 'Usage',
-    'TrafficType': 'Usage',
+    'TrafficMonitor': 'Network',
+    'TrafficType': 'Network',
     'Product': 'Product',
     'LB': 'Load Balancer',
     'ldap': 'LDAP',
     'Ldap': 'LDAP',
-    'Swift': 'Swift',
+    'Swift': 'Image Store',
     'S3' : 'S3',
-    'SecondaryStorage': 'Host',
+    'SecondaryStorage': 'Image Store',
     'Project': 'Project',
     'Lun': 'Storage',
     'Pool': 'Pool',
     'VPC': 'VPC',
+    'VPCOffering': 'VPC Offering',
     'PrivateGateway': 'VPC',
     'migrateVpc': 'VPC',
     'Simulator': 'simulator',
@@ -201,13 +166,15 @@ known_categories = {
     'Counter': 'AutoScale',
     'Condition': 'AutoScale',
     'Api': 'API Discovery',
+    'ApiLimit': 'Configuration',
     'Region': 'Region',
     'Detail': 'Resource metadata',
     'addIpToNic': 'Nic',
     'removeIpFromNic': 'Nic',
     'updateVmNicIp': 'Nic',
     'listNics':'Nic',
-       'AffinityGroup': 'Affinity Group',
+    'AffinityGroup': 'Affinity Group',
+    'ImageStore': 'Image Store',
     'addImageStore': 'Image Store',
     'listImageStore': 'Image Store',
     'deleteImageStore': 'Image Store',
@@ -228,15 +195,16 @@ known_categories = {
     'CacheStores' : 'Cache Stores',
     'CacheStore' : 'Cache Store',
     'OvsElement' : 'Ovs Element',
-    'StratosphereSsp' : ' Stratosphere SSP',
+    'StratosphereSsp' : 'Misc Network Service Providers',
     'Metrics' : 'Metrics',
+    'listClustersMetrics': 'Cluster',
+    'VpnUser': 'VPN',
+    'listZonesMetrics': 'Metrics',
     'Infrastructure' : 'Metrics',
-    'listNetscalerControlCenter' : 'Load Balancer',
     'listRegisteredServicePackages': 'Load Balancer',
     'listNsVpx' : 'Load Balancer',
     'destroyNsVPx': 'Load Balancer',
     'deployNetscalerVpx' : 'Load Balancer',
-    'deleteNetscalerControlCenter' : 'Load Balancer',
     'stopNetScalerVpx' : 'Load Balancer',
     'deleteServicePackageOffering' : 'Load Balancer',
     'destroyNsVpx' : 'Load Balancer',
@@ -256,17 +224,16 @@ known_categories = {
     'UnmanagedInstance': 'Virtual Machine',
     'KubernetesSupportedVersion': 'Kubernetes Service',
     'KubernetesCluster': 'Kubernetes Service',
-    'UnmanagedInstance': 'Virtual Machine',
     'Rolling': 'Rolling Maintenance',
     'importVsphereStoragePolicies' : 'vSphere storage policies',
     'listVsphereStoragePolicies' : 'vSphere storage policies',
     'ConsoleEndpoint': 'Console Endpoint',
-    'Shutdown': 'Shutdown',
     'importVm': 'Virtual Machine',
+    'revertToVMSnapshot': 'Virtual Machine',
     'listQuarantinedIp': 'IP Quarantine',
     'updateQuarantinedIp': 'IP Quarantine',
     'removeQuarantinedIp': 'IP Quarantine',
-    'Shutdown': 'Shutdown',
+    'Shutdown': 'Management',
     'addObjectStoragePool': 'Object Store',
     'listObjectStoragePools': 'Object Store',
     'deleteObjectStoragePool': 'Object Store',
@@ -276,7 +243,6 @@ known_categories = {
     'deleteBucket': 'Object Store',
     'listBuckets': 'Object Store',
     'listVmsForImport': 'Virtual Machine',
-    'importVm': 'Virtual Machine',
     'SharedFS': 'Shared FileSystem',
     'SharedFileSystem': 'Shared FileSystem',
     'Webhook': 'Webhook',
@@ -297,12 +263,19 @@ categories = {}
 
 
 def choose_category(fn):
+    possible_known_categories = []
     for k, v in known_categories.items():
         if k in fn:
-            return v
+            possible_known_categories.append(k)
+
+    if len(possible_known_categories) > 0:
+        close_matches = difflib.get_close_matches(fn, 
possible_known_categories, n=1, cutoff=0.1)
+        if len(close_matches) > 0:
+            return known_categories[close_matches[0]]
+        else:
+            return known_categories[possible_known_categories[0]]
     raise Exception('Need to add a category for %s to %s:known_categories' %
                     (fn, __file__))
-    sys.exit(1)
 
 
 for f in sys.argv:
@@ -353,7 +326,6 @@ def xml_for(command):
 def write_xml(out, user):
     with open(out, 'w') as f:
         cat_strings = []
-
         for category in categories.keys():
             strings = []
             for command in categories[category]:

Reply via email to