Skip to content

Commit aa64476

Browse files
Fix toc generation for api docs (#9655)
* Fix toc generation for api docs * Apply suggestions from code review Co-authored-by: dahn <[email protected]> --------- Co-authored-by: dahn <[email protected]>
1 parent 5f80778 commit aa64476

File tree

1 file changed

+40
-68
lines changed

1 file changed

+40
-68
lines changed

tools/apidoc/gen_toc.py

Lines changed: 40 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
# specific language governing permissions and limitations
1717
# under the License.
1818

19-
import os
2019
import os.path
2120
import sys
2221
from xml.dom import minidom
2322
from xml.parsers.expat import ExpatError
23+
import difflib
2424

2525

2626
ROOT_ADMIN = 'r'
@@ -51,7 +51,9 @@
5151
'VirtualMachine': 'Virtual Machine',
5252
'VM': 'Virtual Machine',
5353
'Vnf': 'Virtual Network Functions',
54+
'VnfTemplate': 'Virtual Network Functions',
5455
'GuestSubnet': 'Routing',
56+
'HypervisorGuestOsNames': 'Guest OS',
5557
'Domain': 'Domain',
5658
'Template': 'Template',
5759
'Iso': 'ISO',
@@ -63,83 +65,46 @@
6365
'StaticNat': 'NAT',
6466
'IpForwarding': 'NAT',
6567
'Host': 'Host',
66-
'OutOfBand': 'Out-of-band Management',
68+
'HostTags': 'Host',
69+
'OutOfBandManagement': 'Out-of-band Management',
6770
'Cluster': 'Cluster',
6871
'Account': 'Account',
6972
'Role': 'Role',
7073
'Snapshot': 'Snapshot',
7174
'User': 'User',
75+
'UserData': 'User Data',
7276
'Os': 'Guest OS',
7377
'ServiceOffering': 'Service Offering',
7478
'DiskOffering': 'Disk Offering',
7579
'LoadBalancer': 'Load Balancer',
76-
'SslCert': 'Load Balancer',
80+
'SslCert': 'SSL Certificates',
7781
'Router': 'Router',
78-
'SystemVm': 'System VM',
7982
'Configuration': 'Configuration',
8083
'Capabilities': 'Configuration',
8184
'Pod': 'Pod',
85+
'ManagementNetworkIpRange': 'Pod',
8286
'PublicIpRange': 'Network',
8387
'Zone': 'Zone',
8488
'Vmware' : 'Zone',
8589
'NetworkOffering': 'Network Offering',
8690
'NetworkACL': 'Network ACL',
91+
'NetworkAclItem': 'Network ACL',
8792
'Network': 'Network',
8893
'CiscoNexus': 'Network',
8994
'OpenDaylight': 'Network',
9095
'createServiceInstance': 'Network',
9196
'addGloboDnsHost': 'Network',
92-
'createTungstenFabricProvider': 'Tungsten',
93-
'listTungstenFabricProviders': 'Tungsten',
94-
'configTungstenFabricService': 'Tungsten',
95-
'createTungstenFabricPublicNetwork': 'Tungsten',
96-
'synchronizeTungstenFabricData': 'Tungsten',
97-
'addTungstenFabricPolicyRule': 'Tungsten',
98-
'createTungstenFabricPolicy': 'Tungsten',
99-
'deleteTungstenFabricPolicy': 'Tungsten',
100-
'removeTungstenFabricPolicyRule': 'Tungsten',
101-
'listTungstenFabricTag': 'Tungsten',
102-
'listTungstenFabricTagType': 'Tungsten',
103-
'listTungstenFabricPolicy': 'Tungsten',
104-
'listTungstenFabricPolicyRule': 'Tungsten',
105-
'listTungstenFabricNetwork': 'Tungsten',
106-
'listTungstenFabricVm': 'Tungsten',
107-
'listTungstenFabricNic': 'Tungsten',
108-
'createTungstenFabricTag': 'Tungsten',
109-
'createTungstenFabricTagType': 'Tungsten',
110-
'deleteTungstenFabricTag': 'Tungsten',
111-
'deleteTungstenFabricTagType': 'Tungsten',
112-
'applyTungstenFabricPolicy': 'Tungsten',
113-
'applyTungstenFabricTag': 'Tungsten',
114-
'removeTungstenFabricTag': 'Tungsten',
115-
'removeTungstenFabricPolicy': 'Tungsten',
116-
'createTungstenFabricApplicationPolicySet': 'Tungsten',
117-
'createTungstenFabricFirewallPolicy': 'Tungsten',
118-
'createTungstenFabricFirewallRule': 'Tungsten',
119-
'createTungstenFabricServiceGroup': 'Tungsten',
120-
'createTungstenFabricAddressGroup': 'Tungsten',
121-
'createTungstenFabricLogicalRouter': 'Tungsten',
122-
'addTungstenFabricNetworkGatewayToLogicalRouter': 'Tungsten',
123-
'listTungstenFabricApplicationPolicySet': 'Tungsten',
124-
'listTungstenFabricFirewallPolicy': 'Tungsten',
125-
'listTungstenFabricFirewallRule': 'Tungsten',
126-
'listTungstenFabricServiceGroup': 'Tungsten',
127-
'listTungstenFabricAddressGroup': 'Tungsten',
128-
'listTungstenFabricLogicalRouter': 'Tungsten',
129-
'deleteTungstenFabricApplicationPolicySet': 'Tungsten',
130-
'deleteTungstenFabricFirewallPolicy': 'Tungsten',
131-
'deleteTungstenFabricFirewallRule': 'Tungsten',
132-
'deleteTungstenFabricAddressGroup': 'Tungsten',
133-
'deleteTungstenFabricServiceGroup': 'Tungsten',
134-
'deleteTungstenFabricLogicalRouter': 'Tungsten',
135-
'removeTungstenFabricNetworkGatewayFromLogicalRouter': 'Tungsten',
136-
'updateTungstenFabricLBHealthMonitor': 'Tungsten',
137-
'listTungstenFabricLBHealthMonitor': 'Tungsten',
97+
'TungstenFabric': 'Tungsten',
13898
'listNsxControllers': 'NSX',
13999
'addNsxController': 'NSX',
140100
'deleteNsxController': 'NSX',
141101
'Vpn': 'VPN',
142-
'Limit': 'Limit',
102+
'Limit': 'Resource Limit',
103+
'Netscaler': 'Netscaler',
104+
'NetscalerControlCenter': 'Netscaler',
105+
'NetscalerLoadBalancer': 'Netscaler',
106+
'SolidFire': 'SolidFire',
107+
'PaloAlto': 'Palo Alto',
143108
'ResourceCount': 'Limit',
144109
'CloudIdentifier': 'Cloud Identifier',
145110
'InstanceGroup': 'VM Group',
@@ -150,10 +115,9 @@
150115
'updateStorageCapabilities' : 'Storage Pool',
151116
'SecurityGroup': 'Security Group',
152117
'SSH': 'SSH',
153-
'register': 'Registration',
154118
'AsyncJob': 'Async job',
155119
'Certificate': 'Certificate',
156-
'Hypervisor': 'Hypervisor',
120+
'Hypervisor': 'Configuration',
157121
'Alert': 'Alert',
158122
'Event': 'Event',
159123
'login': 'Authentication',
@@ -175,19 +139,20 @@
175139
'ExternalLoadBalancer': 'Ext Load Balancer',
176140
'ExternalFirewall': 'Ext Firewall',
177141
'Usage': 'Usage',
178-
'TrafficMonitor': 'Usage',
179-
'TrafficType': 'Usage',
142+
'TrafficMonitor': 'Network',
143+
'TrafficType': 'Network',
180144
'Product': 'Product',
181145
'LB': 'Load Balancer',
182146
'ldap': 'LDAP',
183147
'Ldap': 'LDAP',
184-
'Swift': 'Swift',
148+
'Swift': 'Image Store',
185149
'S3' : 'S3',
186-
'SecondaryStorage': 'Host',
150+
'SecondaryStorage': 'Image Store',
187151
'Project': 'Project',
188152
'Lun': 'Storage',
189153
'Pool': 'Pool',
190154
'VPC': 'VPC',
155+
'VPCOffering': 'VPC Offering',
191156
'PrivateGateway': 'VPC',
192157
'migrateVpc': 'VPC',
193158
'Simulator': 'simulator',
@@ -201,13 +166,15 @@
201166
'Counter': 'AutoScale',
202167
'Condition': 'AutoScale',
203168
'Api': 'API Discovery',
169+
'ApiLimit': 'Configuration',
204170
'Region': 'Region',
205171
'Detail': 'Resource metadata',
206172
'addIpToNic': 'Nic',
207173
'removeIpFromNic': 'Nic',
208174
'updateVmNicIp': 'Nic',
209175
'listNics':'Nic',
210-
'AffinityGroup': 'Affinity Group',
176+
'AffinityGroup': 'Affinity Group',
177+
'ImageStore': 'Image Store',
211178
'addImageStore': 'Image Store',
212179
'listImageStore': 'Image Store',
213180
'deleteImageStore': 'Image Store',
@@ -228,15 +195,16 @@
228195
'CacheStores' : 'Cache Stores',
229196
'CacheStore' : 'Cache Store',
230197
'OvsElement' : 'Ovs Element',
231-
'StratosphereSsp' : ' Stratosphere SSP',
198+
'StratosphereSsp' : 'Misc Network Service Providers',
232199
'Metrics' : 'Metrics',
200+
'listClustersMetrics': 'Cluster',
201+
'VpnUser': 'VPN',
202+
'listZonesMetrics': 'Metrics',
233203
'Infrastructure' : 'Metrics',
234-
'listNetscalerControlCenter' : 'Load Balancer',
235204
'listRegisteredServicePackages': 'Load Balancer',
236205
'listNsVpx' : 'Load Balancer',
237206
'destroyNsVPx': 'Load Balancer',
238207
'deployNetscalerVpx' : 'Load Balancer',
239-
'deleteNetscalerControlCenter' : 'Load Balancer',
240208
'stopNetScalerVpx' : 'Load Balancer',
241209
'deleteServicePackageOffering' : 'Load Balancer',
242210
'destroyNsVpx' : 'Load Balancer',
@@ -256,17 +224,16 @@
256224
'UnmanagedInstance': 'Virtual Machine',
257225
'KubernetesSupportedVersion': 'Kubernetes Service',
258226
'KubernetesCluster': 'Kubernetes Service',
259-
'UnmanagedInstance': 'Virtual Machine',
260227
'Rolling': 'Rolling Maintenance',
261228
'importVsphereStoragePolicies' : 'vSphere storage policies',
262229
'listVsphereStoragePolicies' : 'vSphere storage policies',
263230
'ConsoleEndpoint': 'Console Endpoint',
264-
'Shutdown': 'Shutdown',
265231
'importVm': 'Virtual Machine',
232+
'revertToVMSnapshot': 'Virtual Machine',
266233
'listQuarantinedIp': 'IP Quarantine',
267234
'updateQuarantinedIp': 'IP Quarantine',
268235
'removeQuarantinedIp': 'IP Quarantine',
269-
'Shutdown': 'Shutdown',
236+
'Shutdown': 'Management',
270237
'addObjectStoragePool': 'Object Store',
271238
'listObjectStoragePools': 'Object Store',
272239
'deleteObjectStoragePool': 'Object Store',
@@ -276,7 +243,6 @@
276243
'deleteBucket': 'Object Store',
277244
'listBuckets': 'Object Store',
278245
'listVmsForImport': 'Virtual Machine',
279-
'importVm': 'Virtual Machine',
280246
'SharedFS': 'Shared FileSystem',
281247
'SharedFileSystem': 'Shared FileSystem',
282248
'Webhook': 'Webhook',
@@ -297,12 +263,19 @@
297263

298264

299265
def choose_category(fn):
266+
possible_known_categories = []
300267
for k, v in known_categories.items():
301268
if k in fn:
302-
return v
269+
possible_known_categories.append(k)
270+
271+
if len(possible_known_categories) > 0:
272+
close_matches = difflib.get_close_matches(fn, possible_known_categories, n=1, cutoff=0.1)
273+
if len(close_matches) > 0:
274+
return known_categories[close_matches[0]]
275+
else:
276+
return known_categories[possible_known_categories[0]]
303277
raise Exception('Need to add a category for %s to %s:known_categories' %
304278
(fn, __file__))
305-
sys.exit(1)
306279

307280

308281
for f in sys.argv:
@@ -353,7 +326,6 @@ def xml_for(command):
353326
def write_xml(out, user):
354327
with open(out, 'w') as f:
355328
cat_strings = []
356-
357329
for category in categories.keys():
358330
strings = []
359331
for command in categories[category]:

0 commit comments

Comments
 (0)