CLOUDSTACK-8562: Deprecate commands.properties

- Removes commands.properties file
- Fixes apidocs and marvin to be independent of commands.properties usage
- Removes bundling of commands.properties in deb/rpm packaging
- Removes file references across codebase

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
Rohit Yadav 2016-04-30 00:40:47 +05:30
parent 4347776ac6
commit afcbd270b2
12 changed files with 72 additions and 1369 deletions

View File

@ -1,801 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
### bitmap of permissions at the end of each classname, 1 = ADMIN, 2 = RESOURCE_DOMAIN_ADMIN, 4 = DOMAIN_ADMIN, 8 = USER
### Please standardize naming conventions to camel-case (even for acronyms).
### CloudStack authentication commands
login=15
logout=15
### SAML SSO/SLO commands
samlSso=15
samlSlo=15
getSPMetadata=15
listIdps=15
authorizeSamlSso=7
listSamlAuthorization=7
listAndSwitchSamlAccount=15
### Account commands
createAccount=7
deleteAccount=7
updateAccount=7
disableAccount=7
enableAccount=7
lockAccount=7
listAccounts=15
markDefaultZoneForAccount=1
#### User commands
createUser=7
deleteUser=7
updateUser=15
listUsers=15
lockUser=7
disableUser=7
enableUser=7
getUser=1
#### Domain commands
createDomain=1
updateDomain=1
deleteDomain=1
listDomains=7
listDomainChildren=7
####Cloud Identifier commands
getCloudIdentifier=15
#### Limit commands
updateResourceLimit=7
updateResourceCount=7
listResourceLimits=15
#### VM commands
deployVirtualMachine=15
destroyVirtualMachine=15
rebootVirtualMachine=15
startVirtualMachine=15
stopVirtualMachine=15
resetPasswordForVirtualMachine=15
resetSSHKeyForVirtualMachine=15
updateVirtualMachine=15
listVirtualMachines=15
getVMPassword=15
restoreVirtualMachine=15
changeServiceForVirtualMachine=15
scaleVirtualMachine=15
assignVirtualMachine=7
migrateVirtualMachine=1
migrateVirtualMachineWithVolume=1
recoverVirtualMachine=15
expungeVirtualMachine=15
getVirtualMachineUserData=15
#### snapshot commands
createSnapshot=15
listSnapshots=15
deleteSnapshot=15
createSnapshotPolicy=15
updateSnapshotPolicy=15
deleteSnapshotPolicies=15
listSnapshotPolicies=15
revertSnapshot=15
#### template commands
createTemplate=15
registerTemplate=15
updateTemplate=15
copyTemplate=15
deleteTemplate=15
listTemplates=15
updateTemplatePermissions=15
listTemplatePermissions=15
extractTemplate=15
prepareTemplate=1
#### iso commands
attachIso=15
detachIso=15
listIsos=15
registerIso=15
updateIso=15
deleteIso=15
copyIso=15
updateIsoPermissions=15
listIsoPermissions=15
extractIso=15
#### guest OS commands
listOsTypes=15
listOsCategories=15
addGuestOs=1
updateGuestOs=1
removeGuestOs=1
#### guest OS mapping commands
listGuestOsMapping=1
addGuestOsMapping=1
updateGuestOsMapping=1
removeGuestOsMapping=1
#### service offering commands
createServiceOffering=7
deleteServiceOffering=7
updateServiceOffering=7
listServiceOfferings=15
#### disk offering commands
createDiskOffering=7
updateDiskOffering=7
deleteDiskOffering=7
listDiskOfferings=15
#### vlan commands
createVlanIpRange=1
deleteVlanIpRange=1
listVlanIpRanges=1
dedicatePublicIpRange=1
releasePublicIpRange=1
dedicateGuestVlanRange=1
releaseDedicatedGuestVlanRange=1
listDedicatedGuestVlanRanges=1
#### address commands
associateIpAddress=15
disassociateIpAddress=15
listPublicIpAddresses=15
updateIpAddress=15
#### firewall commands
listPortForwardingRules=15
createPortForwardingRule=15
deletePortForwardingRule=15
updatePortForwardingRule=15
#### NAT commands
enableStaticNat=15
createIpForwardingRule=15
deleteIpForwardingRule=15
listIpForwardingRules=15
disableStaticNat=15
#### load balancer commands
createLoadBalancerRule=15
deleteLoadBalancerRule=15
removeFromLoadBalancerRule=15
assignToLoadBalancerRule=15
createLBStickinessPolicy=15
updateLBStickinessPolicy=15
deleteLBStickinessPolicy=15
listLoadBalancerRules=15
listLBStickinessPolicies=15
listLBHealthCheckPolicies=15
createLBHealthCheckPolicy=15
updateLBHealthCheckPolicy=15
deleteLBHealthCheckPolicy=15
listLoadBalancerRuleInstances=15
updateLoadBalancerRule=15
##### SSL offload commands
uploadSslCert=15
deleteSslCert=15
listSslCerts=15
assignCertToLoadBalancer=15
removeCertFromLoadBalancer=15
#### autoscale commands
createCounter=1
createCondition=15
createAutoScalePolicy=15
createAutoScaleVmProfile=15
createAutoScaleVmGroup=15
deleteCounter=1
deleteCondition=15
deleteAutoScalePolicy=15
deleteAutoScaleVmProfile=15
deleteAutoScaleVmGroup=15
listCounters=15
listConditions=15
listAutoScalePolicies=15
listAutoScaleVmProfiles=15
listAutoScaleVmGroups=15
enableAutoScaleVmGroup=15
disableAutoScaleVmGroup=15
updateAutoScalePolicy=15
updateAutoScaleVmProfile=15
updateAutoScaleVmGroup=15
#### router commands
startRouter=7
rebootRouter=7
stopRouter=7
destroyRouter=7
changeServiceForRouter=7
listRouters=7
listVirtualRouterElements=7
configureVirtualRouterElement=7
createVirtualRouterElement=7
upgradeRouterTemplate=1
#### system vm commands
startSystemVm=1
rebootSystemVm=1
stopSystemVm=1
destroySystemVm=1
listSystemVms=3
migrateSystemVm=1
changeServiceForSystemVm=1
scaleSystemVm=1
#### configuration commands
updateConfiguration=1
listConfigurations=1
listCapabilities=15
listDeploymentPlanners=1
cleanVMReservations=1
#### pod commands
createPod=1
updatePod=1
deletePod=1
listPods=3
#### zone commands
createZone=1
updateZone=1
deleteZone=1
listZones=15
#### events commands
listEvents=15
listEventTypes=15
archiveEvents=15
deleteEvents=15
#### alerts commands
listAlerts=3
archiveAlerts=1
deleteAlerts=1
generateAlert=1
#### system capacity commands
listCapacity=3
#### swift commands
addSwift=1
listSwifts=1
#### image store commands
addImageStore=1
addImageStoreS3=1
listImageStores=1
deleteImageStore=1
createSecondaryStagingStore=1
listSecondaryStagingStores=1
deleteSecondaryStagingStore=1
updateCloudToUseObjectStore=1
#### host commands
addHost=3
addCluster=1
deleteCluster=1
updateCluster=1
reconnectHost=1
updateHost=1
deleteHost=3
prepareHostForMaintenance=1
cancelHostMaintenance=1
listHosts=3
listHostTags=7
findHostsForMigration=1
addSecondaryStorage=1
updateHostPassword=1
releaseHostReservation=1
#### VmWare DC
addVmwareDc=1
removeVmwareDc=1
listVmwareDcs=1
#### volume commands
attachVolume=15
uploadVolume=15
detachVolume=15
createVolume=15
deleteVolume=15
listVolumes=15
extractVolume=15
migrateVolume=15
resizeVolume=15
updateVolume=1
#### registration command: FIXME -- this really should be something in management server that
#### generates a new key for the user and they just have to
#### use that key...the key is stored in the db associated w/
#### the userId...every request to the developer API should be
#### checked against the key
registerUserKeys=15
### async-query command
queryAsyncJobResult=15
listAsyncJobs=15
#### storage pools commands
listStoragePools=3
listStorageProviders=3
listStorageTags=7
createStoragePool=1
updateStoragePool=1
deleteStoragePool=1
listClusters=3
enableStorageMaintenance=1
cancelStorageMaintenance=1
findStoragePoolsForMigration=1
#### security group commands
createSecurityGroup=15
deleteSecurityGroup=15
authorizeSecurityGroupIngress=15
revokeSecurityGroupIngress=15
authorizeSecurityGroupEgress=15
revokeSecurityGroupEgress=15
listSecurityGroups=15
#### vm group commands
createInstanceGroup=15
deleteInstanceGroup=15
updateInstanceGroup=15
listInstanceGroups=15
### Certificate commands
uploadCustomCertificate=1
### other commands
listHypervisors=15
### VPN
createRemoteAccessVpn=15
deleteRemoteAccessVpn=15
listRemoteAccessVpns=15
updateRemoteAccessVpn=15
addVpnUser=15
removeVpnUser=15
listVpnUsers=15
#### network offering commands
createNetworkOffering=1
updateNetworkOffering=1
deleteNetworkOffering=1
listNetworkOfferings=15
#### network commands
createNetwork=15
deleteNetwork=15
listNetworks=15
restartNetwork=15
updateNetwork=15
#### nic commands ####
addNicToVirtualMachine=15
removeNicFromVirtualMachine=15
updateDefaultNicForVirtualMachine=15
####
addIpToNic=15
removeIpFromNic=15
updateVmNicIp=15
listNics=15
#### SSH key pair commands
registerSSHKeyPair=15
createSSHKeyPair=15
deleteSSHKeyPair=15
listSSHKeyPairs=15
#### Projects commands
createProject=15
deleteProject=15
updateProject=15
activateProject=15
suspendProject=15
listProjects=15
addAccountToProject=15
deleteAccountFromProject=15
listProjectAccounts=15
listProjectInvitations=15
updateProjectInvitation=15
deleteProjectInvitation=15
####
createFirewallRule=15
deleteFirewallRule=15
listFirewallRules=15
updateFirewallRule=15
####
createEgressFirewallRule=15
deleteEgressFirewallRule=15
listEgressFirewallRules=15
updateEgressFirewallRule=15
#### hypervisor capabilities commands
updateHypervisorCapabilities=1
listHypervisorCapabilities=1
#### Physical Network commands
createPhysicalNetwork=1
deletePhysicalNetwork=1
listPhysicalNetworks=1
updatePhysicalNetwork=1
#### Physical Network Service Provider commands
listSupportedNetworkServices=1
addNetworkServiceProvider=1
deleteNetworkServiceProvider=1
listNetworkServiceProviders=1
updateNetworkServiceProvider=1
#### Physical Network Traffic Type commands
addTrafficType=1
deleteTrafficType=1
listTrafficTypes=1
updateTrafficType=1
listTrafficTypeImplementors=1
#### Storage Network commands
createStorageNetworkIpRange=1
deleteStorageNetworkIpRange=1
listStorageNetworkIpRange=1
updateStorageNetworkIpRange=1
### Network Devices commands
addNetworkDevice=1
listNetworkDevice=1
deleteNetworkDevice=1
### VPC commands
createVPC=15
listVPCs=15
deleteVPC=15
updateVPC=15
restartVPC=15
#### VPC offering commands
createVPCOffering=1
updateVPCOffering=1
deleteVPCOffering=1
listVPCOfferings=15
#### Private gateway commands
createPrivateGateway=1
listPrivateGateways=15
deletePrivateGateway=1
#### Network ACL commands
createNetworkACL=15
updateNetworkACLItem=15
deleteNetworkACL=15
listNetworkACLs=15
createNetworkACLList=15
deleteNetworkACLList=15
replaceNetworkACLList=15
listNetworkACLLists=15
updateNetworkACLList=15
#### Static route commands
createStaticRoute=15
deleteStaticRoute=15
listStaticRoutes=15
#### Tags commands
createTags=15
deleteTags=15
listTags=15
#### Meta Data commands
addResourceDetail=1
removeResourceDetail=1
listResourceDetails=15
### Site-to-site VPN commands
createVpnCustomerGateway=15
createVpnGateway=15
createVpnConnection=15
deleteVpnCustomerGateway=15
deleteVpnGateway=15
deleteVpnConnection=15
updateVpnCustomerGateway=15
resetVpnConnection=15
listVpnCustomerGateways=15
listVpnGateways=15
listVpnConnections=15
updateVpnConnection=15
updateVpnGateway=15
#### router commands
createVirtualRouterElement=7
configureVirtualRouterElement=7
listVirtualRouterElements=7
#### ovs commands
createOvsElement=7
configureOvsElement=7
listOvsElements=7
#### usage commands
generateUsageRecords=1
listUsageRecords=7
listUsageTypes=1
removeRawUsageRecords=1
#### traffic monitor commands
addTrafficMonitor=1
deleteTrafficMonitor=1
listTrafficMonitors=1
#### Cisco Nexus 1000v Virtual Supervisor Module (VSM) commands
deleteCiscoNexusVSM=1
enableCiscoNexusVSM=1
disableCiscoNexusVSM=1
listCiscoNexusVSMs=1
#### f5 big ip load balancer commands
#Deprecated commands
addExternalLoadBalancer=1
deleteExternalLoadBalancer=1
listExternalLoadBalancers=1
addF5LoadBalancer=1
configureF5LoadBalancer=1
deleteF5LoadBalancer=1
listF5LoadBalancers=1
listF5LoadBalancerNetworks=1
#### juniper srx firewall commands
addExternalFirewall=1
deleteExternalFirewall=1
listExternalFirewalls=1
addSrxFirewall=1
deleteSrxFirewall=1
configureSrxFirewall=1
listSrxFirewalls=1
listSrxFirewallNetworks=1
#### Palo Alto firewall commands
addPaloAltoFirewall=1
deletePaloAltoFirewall=1
configurePaloAltoFirewall=1
listPaloAltoFirewalls=1
listPaloAltoFirewallNetworks=1
####Netapp integration commands
createVolumeOnFiler=15
destroyVolumeOnFiler=15
listVolumesOnFiler=15
createLunOnFiler=15
destroyLunOnFiler=15
listLunsOnFiler=15
associateLun=15
dissociateLun=15
createPool=15
deletePool=15
modifyPool=15
listPools=15
#### netscaler load balancer commands
addNetscalerLoadBalancer=1
deleteNetscalerLoadBalancer=1
configureNetscalerLoadBalancer=1
listNetscalerLoadBalancers=1
listNetscalerLoadBalancerNetworks=1
#### nicira nvp commands
addNiciraNvpDevice=1
deleteNiciraNvpDevice=1
listNiciraNvpDevices=1
listNiciraNvpDeviceNetworks=1
# Not implemented (yet)
#configureNiciraNvpDevice=1
#### brocade vcs commands
addBrocadeVcsDevice=1
deleteBrocadeVcsDevice=1
listBrocadeVcsDevices=1
listBrocadeVcsDeviceNetworks=1
#### bigswitch bcf commands
addBigSwitchBcfDevice=1
deleteBigSwitchBcfDevice=1
listBigSwitchBcfDevices=1
#### stratosphere ssp commands
addStratosphereSsp=1
deleteStratoshereSsp=1
#### nuage vsp commands
addNuageVspDevice=1
updateNuageVspDevice=1
deleteNuageVspDevice=1
listNuageVspDevices=1
issueNuageVspResourceRequest=15
#### host simulator commands
configureSimulator=1
querySimulatorMock=1
cleanupSimulatorMock=1
#### api discovery commands
listApis=15
#### API Rate Limit service command
getApiLimit=15
resetApiLimit=1
#### API SolidFire Service Command
getSolidFireAccountId=15
getSolidFireVolumeSize=15
getSolidFireVolumeAccessGroupId=15
getSolidFireVolumeIscsiName=15
#### Region commands
addRegion=1
updateRegion=1
removeRegion=1
listRegions=15
#### GSLB (Global Server Load Balancing) commands
createGlobalLoadBalancerRule=15
deleteGlobalLoadBalancerRule=15
updateGlobalLoadBalancerRule=15
listGlobalLoadBalancerRules=15
assignToGlobalLoadBalancerRule=15
removeFromGlobalLoadBalancerRule=15
### VM Snapshot commands
listVMSnapshot=15
createVMSnapshot=15
deleteVMSnapshot=15
revertToVMSnapshot=15
#### Baremetal commands
addBaremetalHost=1
addBaremetalPxeKickStartServer=1
addBaremetalPxePingServer=1
addBaremetalDhcp=1
listBaremetalDhcp=1
listBaremetalPxeServers=1
addBaremetalRct=1
deleteBaremetalRct=1
listBaremetalRct=1
#### UCS commands
addUcsManager=1
listUcsManagers=1
listUcsProfiles=1
listUcsBlades=1
associateUcsProfileToBlade=1
removedeleteUcsManager=1
#### New Load Balancer commands
createLoadBalancer=15
listLoadBalancers=15
deleteLoadBalancer=15
updateLoadBalancer=15
#Internal Load Balancer Element commands
configureInternalLoadBalancerElement=7
createInternalLoadBalancerElement=7
listInternalLoadBalancerElements=7
#### Affinity group commands
createAffinityGroup=15
deleteAffinityGroup=15
listAffinityGroups=15
updateVMAffinityGroup=15
listAffinityGroupTypes=15
#### Cisco Vnmc commands
addCiscoVnmcResource=1
deleteCiscoVnmcResource=1
listCiscoVnmcResources=1
#### Cisco Asa1000v commands
addCiscoAsa1000vResource=1
deleteCiscoAsa1000vResource=1
listCiscoAsa1000vResources=1
#### portable public IP commands
createPortableIpRange=1
deletePortableIpRange=1
listPortableIpRanges=1
#### Internal LB VM commands
stopInternalLoadBalancerVM=1
startInternalLoadBalancerVM=1
listInternalLoadBalancerVMs=1
### Network Isolation methods listing
listNetworkIsolationMethods=1
#### Dedicated Resource commands
dedicateZone=1
dedicatePod=1
dedicateCluster=1
dedicateHost=1
releaseDedicatedZone=1
releaseDedicatedPod=1
releaseDedicatedCluster=1
releaseDedicatedHost=1
listDedicatedZones=1
listDedicatedPods=1
listDedicatedClusters=1
listDedicatedHosts=1
### LDAP
listLdapConfigurations=15
addLdapConfiguration=3
deleteLdapConfiguration=3
listLdapUsers=3
ldapCreateAccount=3
importLdapUsers=3
linkDomainToLdap=3
#### juniper-contrail commands
createServiceInstance=1
### OpenDaylight plugin commands
addOpenDaylightController=1
deleteOpenDaylightController=1
listOpenDaylightControllers=1
### GloboDNS commands
addGloboDnsHost=1
### volume/template post upload
getUploadParamsForVolume=15
getUploadParamsForTemplate=15
### Quota Service
quotaStatement=15
quotaBalance=15
quotaSummary=15
quotaUpdate=1
quotaTariffList=15
quotaTariffUpdate=1
quotaCredits=1
quotaEmailTemplateList=1
quotaEmailTemplateUpdate=1
quotaIsEnabled=15

View File

@ -595,9 +595,6 @@
<Component Id="cmp71D36BFB6B214FAAD323C31A1CE3BC19" Guid="{EF4C61E1-F77E-4E4D-80EA-131511E0804E}">
<File Id="fil44B623C422B90349A635A113C5F4D417" KeyPath="yes" Source="!(wix.SourceClient)\WEB-INF\classes\cloudmanagementserver.keystore" />
</Component>
<Component Id="cmp19EB0E73466EB36D5AA02AB4CE8164B0" Guid="{D3EDCF5B-8A0F-444B-AE64-6C3EEE5F25F0}">
<File Id="filAB20DD6954DD207821DD0311C1F48FAA" KeyPath="yes" Source="!(wix.SourceClient)\WEB-INF\classes\commands.properties" />
</Component>
<Component Id="cmp68E096BB729948107692341D8202CC5A" Guid="{0D5D3AF3-0BC0-48EE-ABA3-AF07535169BF}">
<File Id="fil3E9BCB1A8CB8F8415FE3E71B65A94878" KeyPath="yes" Source="!(wix.SourceClient)\WEB-INF\classes\context.xml" />
</Component>

View File

@ -41,7 +41,6 @@ import org.apache.log4j.Logger;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
@ -67,16 +66,10 @@ import java.util.zip.ZipOutputStream;
public class ApiXmlDocWriter {
public static final Logger s_logger = Logger.getLogger(ApiXmlDocWriter.class.getName());
private static final short DOMAIN_ADMIN_COMMAND = 4;
private static final short USER_COMMAND = 8;
private static String s_dirName = "";
private static Map<String, Class<?>> s_apiNameCmdClassMap = new HashMap<String, Class<?>>();
private static LinkedHashMap<Object, String> s_allApiCommands = new LinkedHashMap<Object, String>();
private static LinkedHashMap<Object, String> s_domainAdminApiCommands = new LinkedHashMap<Object, String>();
private static LinkedHashMap<Object, String> s_regularUserApiCommands = new LinkedHashMap<Object, String>();
private static TreeMap<Object, String> s_allApiCommandsSorted = new TreeMap<Object, String>();
private static TreeMap<Object, String> s_domainAdminApiCommandsSorted = new TreeMap<Object, String>();
private static TreeMap<Object, String> s_regularUserApiCommandsSorted = new TreeMap<Object, String>();
private static String s_dirName = "";
private static final List<String> AsyncResponses = setAsyncResponses();
private static List<String> setAsyncResponses() {
@ -123,71 +116,22 @@ public class ApiXmlDocWriter {
s_apiNameCmdClassMap.put(apiName, cmdClass);
}
}
LinkedProperties preProcessedCommands = new LinkedProperties();
String[] fileNames = null;
System.out.printf("Scanned and found %d APIs\n", s_apiNameCmdClassMap.size());
List<String> argsList = Arrays.asList(args);
Iterator<String> iter = argsList.iterator();
while (iter.hasNext()) {
String arg = iter.next();
// populate the file names
if (arg.equals("-f")) {
fileNames = iter.next().split(",");
}
if (arg.equals("-d")) {
s_dirName = iter.next();
}
}
if ((fileNames == null) || (fileNames.length == 0)) {
System.out.println("Please specify input file(s) separated by coma using -f option");
System.exit(2);
}
for (String fileName : fileNames) {
try(FileInputStream in = new FileInputStream(fileName);) {
preProcessedCommands.load(in);
} catch (FileNotFoundException ex) {
System.out.println("Can't find file " + fileName);
System.exit(2);
} catch (IOException ex1) {
System.out.println("Error reading from file " + ex1);
System.exit(2);
}
}
Iterator<?> propertiesIterator = preProcessedCommands.keys.iterator();
// Get command classes and response object classes
while (propertiesIterator.hasNext()) {
String key = (String)propertiesIterator.next();
String preProcessedCommand = preProcessedCommands.getProperty(key);
int splitIndex = preProcessedCommand.lastIndexOf(";");
String commandRoleMask = preProcessedCommand.substring(splitIndex + 1);
Class<?> cmdClass = s_apiNameCmdClassMap.get(key);
if (cmdClass == null) {
System.out.println("Check, is this api part of another build profile? Null value for key: " + key + " preProcessedCommand=" + preProcessedCommand);
continue;
}
String commandName = cmdClass.getName();
s_allApiCommands.put(key, commandName);
short cmdPermissions = 1;
if (commandRoleMask != null) {
cmdPermissions = Short.parseShort(commandRoleMask);
}
if ((cmdPermissions & DOMAIN_ADMIN_COMMAND) != 0) {
s_domainAdminApiCommands.put(key, commandName);
}
if ((cmdPermissions & USER_COMMAND) != 0) {
s_regularUserApiCommands.put(key, commandName);
}
for (Map.Entry<String, Class<?>> entry: s_apiNameCmdClassMap.entrySet()) {
Class<?> cls = entry.getValue();
s_allApiCommands.put(entry.getKey(), cls.getName());
}
s_allApiCommandsSorted.putAll(s_allApiCommands);
s_domainAdminApiCommandsSorted.putAll(s_domainAdminApiCommands);
s_regularUserApiCommandsSorted.putAll(s_regularUserApiCommands);
try {
// Create object writer
@ -195,83 +139,38 @@ public class ApiXmlDocWriter {
xs.alias("command", Command.class);
xs.alias("arg", Argument.class);
String xmlDocDir = s_dirName + "/xmldoc";
String rootAdminDirName = xmlDocDir + "/root_admin";
String domainAdminDirName = xmlDocDir + "/domain_admin";
String regularUserDirName = xmlDocDir + "/regular_user";
String rootAdminDirName = xmlDocDir + "/apis";
(new File(rootAdminDirName)).mkdirs();
(new File(domainAdminDirName)).mkdirs();
(new File(regularUserDirName)).mkdirs();
ObjectOutputStream out = xs.createObjectOutputStream(new FileWriter(s_dirName + "/commands.xml"), "commands");
ObjectOutputStream rootAdmin = xs.createObjectOutputStream(new FileWriter(rootAdminDirName + "/" + "rootAdminSummary.xml"), "commands");
ObjectOutputStream rootAdminSorted = xs.createObjectOutputStream(new FileWriter(rootAdminDirName + "/" + "rootAdminSummarySorted.xml"), "commands");
ObjectOutputStream domainAdmin = xs.createObjectOutputStream(new FileWriter(domainAdminDirName + "/" + "domainAdminSummary.xml"), "commands");
ObjectOutputStream outDomainAdminSorted = xs.createObjectOutputStream(new FileWriter(domainAdminDirName + "/" + "domainAdminSummarySorted.xml"), "commands");
ObjectOutputStream regularUser = xs.createObjectOutputStream(new FileWriter(regularUserDirName + "/regularUserSummary.xml"), "commands");
ObjectOutputStream regularUserSorted = xs.createObjectOutputStream(new FileWriter(regularUserDirName + "/regularUserSummarySorted.xml"), "commands");
ObjectOutputStream rootAdmin = xs.createObjectOutputStream(new FileWriter(rootAdminDirName + "/" + "apiSummary.xml"), "commands");
ObjectOutputStream rootAdminSorted = xs.createObjectOutputStream(new FileWriter(rootAdminDirName + "/" + "apiSummarySorted.xml"), "commands");
// Write commands in the order they are represented in commands.properties.in file
Iterator<?> it = s_allApiCommands.keySet().iterator();
while (it.hasNext()) {
String key = (String)it.next();
// Write admin commands
writeCommand(out, key);
writeCommand(rootAdmin, key);
// Write single commands to separate xml files
ObjectOutputStream singleRootAdminCommandOs = xs.createObjectOutputStream(new FileWriter(rootAdminDirName + "/" + key + ".xml"), "command");
writeCommand(singleRootAdminCommandOs, key);
singleRootAdminCommandOs.close();
if (s_domainAdminApiCommands.containsKey(key)) {
writeCommand(domainAdmin, key);
ObjectOutputStream singleDomainAdminCommandOs = xs.createObjectOutputStream(new FileWriter(domainAdminDirName + "/" + key + ".xml"), "command");
writeCommand(singleDomainAdminCommandOs, key);
singleDomainAdminCommandOs.close();
}
if (s_regularUserApiCommands.containsKey(key)) {
writeCommand(regularUser, key);
ObjectOutputStream singleRegularUserCommandOs = xs.createObjectOutputStream(new FileWriter(regularUserDirName + "/" + key + ".xml"), "command");
writeCommand(singleRegularUserCommandOs, key);
singleRegularUserCommandOs.close();
}
}
// Write sorted commands
it = s_allApiCommandsSorted.keySet().iterator();
while (it.hasNext()) {
String key = (String)it.next();
writeCommand(rootAdminSorted, key);
if (s_domainAdminApiCommands.containsKey(key)) {
writeCommand(outDomainAdminSorted, key);
}
if (s_regularUserApiCommands.containsKey(key)) {
writeCommand(regularUserSorted, key);
}
}
out.close();
rootAdmin.close();
rootAdminSorted.close();
domainAdmin.close();
outDomainAdminSorted.close();
regularUser.close();
regularUserSorted.close();
// write alerttypes to xml
writeAlertTypes(xmlDocDir);
// gzip directory with xml doc
// zipDir(dirName + "xmldoc.zip", xmlDocDir);
// Delete directory
// deleteDir(new File(xmlDocDir));
} catch (Exception ex) {
ex.printStackTrace();
System.exit(2);
@ -537,5 +436,4 @@ public class ApiXmlDocWriter {
return super.put(key, value);
}
}
}

View File

@ -23,9 +23,7 @@ public class XmlToHtmlConverter extends XmlToHtmlConverterData {
// To turn off generation of API docs for certain roles, comment out
public static void main(String[] args) {
XmlToHtmlConverter x = new XmlToHtmlConverter();
x.populateForRootAdmin();
x.populateForDomainAdmin();
x.populateForUser();
x.populateForApi();
x.generateToc();
x.generateIndividualCommandPages();
}
@ -33,26 +31,12 @@ public class XmlToHtmlConverter extends XmlToHtmlConverterData {
public void generateToc() {
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
// Generate the TOC for the API reference for User role
Transformer transformer = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource("generatetocforuser.xsl"));
// Modify this path to match your own setup.
transformer.transform(new javax.xml.transform.stream.StreamSource("regular_user/regularUserSummary.xml"), new javax.xml.transform.stream.StreamResult(
new FileOutputStream("html/TOC_User.html")));
// Generate the TOC for root administrator role
Transformer transformer1 = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource("generatetocforadmin.xsl"));
Transformer transformer1 = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource("generatetoc.xsl"));
// Modify this path to match your own setup.
transformer1.transform(new javax.xml.transform.stream.StreamSource("root_admin/rootAdminSummary.xml"),
transformer1.transform(new javax.xml.transform.stream.StreamSource("apis/apiSummarySorted.xml"),
// Modify this path to your own desired output location.
new javax.xml.transform.stream.StreamResult(new FileOutputStream("html/TOC_Root_Admin.html")));
// Generate the TOC for domain admin role
Transformer transformer2 = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource("generatetocfordomainadmin.xsl"));
// The XML to be transformed must be at the location below.
// Modify this path to match your own setup.
transformer2.transform(new javax.xml.transform.stream.StreamSource("domain_admin/domainAdminSummary.xml"),
// Modify this path to your own desired output location.
new javax.xml.transform.stream.StreamResult(new FileOutputStream("html/TOC_Domain_Admin.html")));
new javax.xml.transform.stream.StreamResult(new FileOutputStream("html/index.html")));
} catch (Exception e) {
e.printStackTrace();
}
@ -60,50 +44,18 @@ public class XmlToHtmlConverter extends XmlToHtmlConverterData {
// Create man pages
public void generateIndividualCommandPages() {
for (String commandName : rootAdminCommandNames) {
for (String commandName : allCommandNames) {
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource("generateadmincommands.xsl"));
Transformer transformer = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource("generatecommands.xsl"));
transformer.transform
// Modify this path to the location of the input files on your system.
(new javax.xml.transform.stream.StreamSource("root_admin/" + commandName + ".xml"),
(new javax.xml.transform.stream.StreamSource("apis/" + commandName + ".xml"),
// Modify this path with the desired output location.
new javax.xml.transform.stream.StreamResult(new FileOutputStream("html/root_admin/" + commandName + ".html")));
} catch (Exception e) {
e.printStackTrace();
}
}
for (String commandName : domainAdminCommandNames) {
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource("generatedomainadmincommands.xsl"));
transformer.transform
// Modify this path with the location of the input files on your system.
(new javax.xml.transform.stream.StreamSource("domain_admin/" + commandName + ".xml"),
// Modify this path to the desired output location.
new javax.xml.transform.stream.StreamResult(new FileOutputStream("html/domain_admin/" + commandName + ".html")));
} catch (Exception e) {
e.printStackTrace();
}
}
for (String commandName : userCommandNames) {
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new javax.xml.transform.stream.StreamSource("generateusercommands.xsl"));
transformer.transform(new javax.xml.transform.stream.StreamSource("regular_user/" + commandName + ".xml"), new javax.xml.transform.stream.StreamResult(
new FileOutputStream("html/user/" + commandName + ".html")));
new javax.xml.transform.stream.StreamResult(new FileOutputStream("html/apis/" + commandName + ".html")));
} catch (Exception e) {
e.printStackTrace();
}

View File

@ -58,9 +58,7 @@ set -e
(cd "$DISTDIR/xmldoc"
cp "$thisdir"/*.java .
cp "$thisdir"/*.xsl .
sed -e 's,%API_HEADER%,User API,g' "$thisdir/generatetoc_header.xsl" >generatetocforuser.xsl
sed -e 's,%API_HEADER%,Root Admin API,g' "$thisdir/generatetoc_header.xsl" >generatetocforadmin.xsl
sed -e 's,%API_HEADER%,Domain Admin API,g' "$thisdir/generatetoc_header.xsl" >generatetocfordomainadmin.xsl
sed -e 's,%API_HEADER%,All APIs,g' "$thisdir/generatetoc_header.xsl" >generatetoc.xsl
PLATFORM=`uname -s`
if [[ "$PLATFORM" =~ .*WIN.* ]]
@ -74,15 +72,10 @@ set -e
python "$thisdir/gen_toc.py" $(find . -type f)
fi
cat generatetocforuser_include.xsl >>generatetocforuser.xsl
cat generatetocforadmin_include.xsl >>generatetocforadmin.xsl
cat generatetocfordomainadmin_include.xsl >>generatetocfordomainadmin.xsl
cat generatetoc_include.xsl >> generatetoc.xsl
cat "$thisdir/generatetoc_footer.xsl" >>generatetoc.xsl
cat "$thisdir/generatetoc_footer.xsl" >>generatetocforuser.xsl
cat "$thisdir/generatetoc_footer.xsl" >>generatetocforadmin.xsl
cat "$thisdir/generatetoc_footer.xsl" >>generatetocfordomainadmin.xsl
mkdir -p html/user html/domain_admin html/root_admin
mkdir -p html/apis
cp -r "$thisdir/includes" html
cp -r "$thisdir/images" html

View File

@ -23,35 +23,25 @@ from xml.dom import minidom
from xml.parsers.expat import ExpatError
REGULAR_USER = 'u'
DOMAIN_ADMIN = 'd'
ROOT_ADMIN = 'r'
user_to_func = {
REGULAR_USER: 'populateForUser',
DOMAIN_ADMIN: 'populateForDomainAdmin',
ROOT_ADMIN: 'populateForRootAdmin',
ROOT_ADMIN: 'populateForApi',
}
user_to_cns = {
REGULAR_USER: 'userCommandNames',
DOMAIN_ADMIN: 'domainAdminCommandNames',
ROOT_ADMIN: 'rootAdminCommandNames',
ROOT_ADMIN: 'allCommandNames',
}
dirname_to_user = {
'regular_user': REGULAR_USER,
'domain_admin': DOMAIN_ADMIN,
'root_admin': ROOT_ADMIN,
'apis': ROOT_ADMIN,
}
dirname_to_dirname = {
'regular_user': 'user',
'domain_admin': 'domain_admin',
'root_admin': 'root_admin',
'apis': 'apis',
}
@ -131,6 +121,7 @@ known_categories = {
'Product': 'Product',
'LB': 'Load Balancer',
'ldap': 'LDAP',
'Ldap': 'LDAP',
'Swift': 'Swift',
'S3' : 'S3',
'SecondaryStorage': 'Host',
@ -302,15 +293,9 @@ import java.util.HashSet;
import java.util.Set;
public class XmlToHtmlConverterData {
Set<String> rootAdminCommandNames = new HashSet<String>();
Set<String> domainAdminCommandNames = new HashSet<String>();
Set<String> userCommandNames = new HashSet<String>();
Set<String> allCommandNames = new HashSet<String>();
''')
f.write(java_for_user(REGULAR_USER) + "\n");
f.write(java_for_user(ROOT_ADMIN) + "\n")
f.write(java_for_user(DOMAIN_ADMIN) + "\n")
f.write('''
}
@ -318,7 +303,5 @@ public class XmlToHtmlConverterData {
''')
write_xml('generatetocforuser_include.xsl', REGULAR_USER)
write_xml('generatetocforadmin_include.xsl', ROOT_ADMIN)
write_xml('generatetocfordomainadmin_include.xsl', DOMAIN_ADMIN)
write_xml('generatetoc_include.xsl', ROOT_ADMIN)
write_java('XmlToHtmlConverterData.java')

View File

@ -33,31 +33,31 @@ version="1.0">
<div id="insidetopbg">
<div id="inside_wrapper">
<div class="uppermenu_panel">
<div class="uppermenu_box">
<div class="uppermenu_box">
</div>
</div>
<div id="main_master">
<div id="inside_header">
<div class="header_top">
<a class="cloud_logo" href="http://cloudstack.org"></a>
<div class="mainemenu_panel">
</div>
</div>
</div>
</div>
<div id="main_content">
<div class="inside_apileftpanel">
<div class="inside_contentpanel" style="width:930px;">
<div class="api_titlebox">
<div class="api_titlebox_left">
<div class="inside_contentpanel" style="width:930px;">
<div class="api_titlebox">
<div class="api_titlebox_left">
<xsl:for-each select="command/command">
<!-- Modify this line for the release version -->
<span>
Apache CloudStack v4.6.0 Root Admin API Reference
<!-- Modify this line for the release version -->
<span>
Apache CloudStack v4.9.0 Root Admin API Reference
</span>
<p></p>
<h1><xsl:value-of select="name"/></h1>
@ -65,16 +65,16 @@ version="1.0">
</xsl:for-each>
</div>
<div class="api_titlebox_right">
<a class="api_backbutton" href="../TOC_Root_Admin.html"></a>
<a class="api_backbutton" href="../index.html"></a>
</div>
</div>
<div class="api_tablepanel">
<h2>Request parameters</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Parameter Name</strong></td>
<div class="api_tablepanel">
<h2>Request parameters</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Parameter Name</strong></td>
<td style="width:500px;">Description</td>
<td style="width:180px;">Required</td>
@ -87,7 +87,7 @@ version="1.0">
<td style="width:180px;"><strong><xsl:value-of select="required"/></strong></td>
</xsl:if>
<xsl:if test="required='false'">
<td style="width:200px;"><i><xsl:value-of select="name"/></i></td>
<td style="width:200px;"><i><xsl:value-of select="name"/></i></td>
<td style="width:500px;"><i><xsl:value-of select="description"/></i></td>
<td style="width:180px;"><i><xsl:value-of select="required"/></i></td>
</xsl:if>
@ -95,16 +95,16 @@ version="1.0">
</xsl:for-each>
</table>
</div>
<div class="api_tablepanel">
<h2>Response Tags</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Response Name</strong></td>
<div class="api_tablepanel">
<h2>Response Tags</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Response Name</strong></td>
<td style="width:500px;">Description</td>
</tr>
<xsl:for-each select="command/command/response/arg">
<tr>
<td style="width:200px;"><strong><xsl:value-of select="name"/></strong></td>
@ -112,31 +112,31 @@ version="1.0">
<xsl:for-each select="./arguments/arg">
<tr>
<td style="width:180px; padding-left:25px;"><strong><xsl:value-of select="name"/></strong></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
</tr>
<xsl:for-each select="./arguments/arg">
<tr>
<td style="width:165px; padding-left:40px;"><xsl:value-of select="name"/></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</div>
</div>
</div>
</div>
</div>
</div><!-- #BeginLibraryItem "/libraries/footer.lbi" -->
@ -149,10 +149,10 @@ version="1.0">
</noscript>
</div>
<div id="footer_mainmaster">
<div id="footer_mainmaster">
<p>Copyright © 2015 The Apache Software Foundation, Licensed under the
<a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0.</a> <br />
Apache, CloudStack, Apache CloudStack, the Apache CloudStack logo, the CloudMonkey logo and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
Apache, CloudStack, Apache CloudStack, the Apache CloudStack logo, the CloudMonkey logo and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
</div>
</div>
</div>
@ -161,4 +161,3 @@ version="1.0">
</html>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,159 +0,0 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" doctype-public="-//W3C//DTD HTML 1.0 Transitional//EN"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel= "stylesheet" href="../includes/main.css" type="text/css" />
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
<title>Apache CloudStack | The Power Behind Your Cloud</title>
</head>
<body>
<div id="insidetopbg">
<div id="inside_wrapper">
<div class="uppermenu_panel">
<div class="uppermenu_box">
</div>
</div>
<div id="main_master">
<div id="inside_header">
<div class="header_top">
<a class="cloud_logo" href="http://cloudstack.org"></a>
<div class="mainemenu_panel">
</div>
</div>
</div>
<div id="main_content">
<div class="inside_apileftpanel">
<div class="inside_contentpanel" style="width:930px;">
<div class="api_titlebox">
<div class="api_titlebox_left">
<xsl:for-each select="command/command">
<!-- Modify this line for the release version -->
<span>
Apache CloudStack v4.6.0 Domain Admin API Reference
</span>
<p></p>
<h1><xsl:value-of select="name"/></h1>
<p><xsl:value-of select="description"/></p>
</xsl:for-each>
</div>
<div class="api_titlebox_right">
<a class="api_backbutton" href="../TOC_Domain_Admin.html"></a>
</div>
</div>
<div class="api_tablepanel">
<h2>Request parameters</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Parameter Name</strong></td>
<td style="width:500px;">Description</td>
<td style="width:180px;">Required</td>
</tr>
<xsl:for-each select="command/command/request/arg">
<tr>
<xsl:if test="required='true'">
<td style="width:200px;"><strong><xsl:value-of select="name"/></strong></td>
<td style="width:500px;"><strong><xsl:value-of select="description"/></strong></td>
<td style="width:180px;"><strong><xsl:value-of select="required"/></strong></td>
</xsl:if>
<xsl:if test="required='false'">
<td style="width:200px;"><i><xsl:value-of select="name"/></i></td>
<td style="width:500px;"><i><xsl:value-of select="description"/></i></td>
<td style="width:180px;"><i><xsl:value-of select="required"/></i></td>
</xsl:if>
</tr>
</xsl:for-each>
</table>
</div>
<div class="api_tablepanel">
<h2>Response Tags</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Response Name</strong></td>
<td style="width:500px;">Description</td>
</tr>
<xsl:for-each select="command/command/response/arg">
<tr>
<td style="width:200px;"><strong><xsl:value-of select="name"/></strong></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
<xsl:for-each select="./arguments/arg">
<tr>
<td style="width:180px; padding-left:25px;"><strong><xsl:value-of select="name"/></strong></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
</tr>
<xsl:for-each select="./arguments/arg">
<tr>
<td style="width:165px; padding-left:40px;"><xsl:value-of select="name"/></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer_mainmaster">
<p>Copyright © 2015 The Apache Software Foundation, Licensed under the
<a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0.</a> <br />
Apache, CloudStack, Apache CloudStack, the Apache CloudStack logo, the CloudMonkey logo and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
</div>
</div>
</div>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

View File

@ -25,7 +25,7 @@ version="1.0">
<body>
<table border="1" cellpadding="1" cellspacing="0.5">
<tr>
<h1 ALIGN='CENTER'>Cloudstack API Version 4.6.0</h1>
<h1 ALIGN='CENTER'>Cloudstack API Version 4.9.0</h1>
<br/>
<h2 ALIGN='CENTER'>Table of Contents</h2>
<th><h3>Name</h3></th>

View File

@ -52,7 +52,7 @@ version="1.0">
<div class="inside_apileftpanel">
<div class="inside_contentpanel" style="width:930px;">
<!-- Modify this line for the release version -->
<h1>Apache CloudStack API Documentation (v4.6.0)</h1>
<h1>Apache CloudStack API Documentation (v4.9.0)</h1>
<a class="api_backbutton" href="http://cloudstack.apache.org/docs/api/"></a>
<div class="apiannouncement_box">
<div class="apiannouncement_contentarea">

View File

@ -1,157 +0,0 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" doctype-public="-//W3C//DTD HTML 1.0 Transitional//EN"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel= "stylesheet" href="../includes/main.css" type="text/css" />
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
<title>Apache CloudStack | The Power Behind Your Cloud</title>
</head>
<body>
<div id="insidetopbg">
<div id="inside_wrapper">
<div class="uppermenu_panel">
<div class="uppermenu_box"></div>
</div>
<div id="main_master">
<div id="inside_header">
<div class="header_top">
<a class="cloud_logo" href="http://cloudstack.org"></a>
<div class="mainemenu_panel">
</div>
</div>
</div>
<div id="main_content">
<div class="inside_apileftpanel">
<div class="inside_contentpanel" style="width:930px;">
<div class="api_titlebox">
<div class="api_titlebox_left">
<xsl:for-each select="command/command">
<!-- Modify this line for the release version -->
<span>
Apache CloudStack v4.6.0 User API Reference
</span>
<p></p>
<h1><xsl:value-of select="name"/></h1>
<p><xsl:value-of select="description"/></p>
</xsl:for-each>
</div>
<div class="api_titlebox_right">
<a class="api_backbutton" href="../TOC_User.html"></a>
</div>
</div>
<div class="api_tablepanel">
<h2>Request parameters</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Parameter Name</strong></td>
<td style="width:500px;">Description</td>
<td style="width:180px;">Required</td>
</tr>
<xsl:for-each select="command/command/request/arg">
<tr>
<xsl:if test="required='true'">
<td style="width:200px;"><strong><xsl:value-of select="name"/></strong></td>
<td style="width:500px;"><strong><xsl:value-of select="description"/></strong></td>
<td style="width:180px;"><strong><xsl:value-of select="required"/></strong></td>
</xsl:if>
<xsl:if test="required='false'">
<td style="width:200px;"><i><xsl:value-of select="name"/></i></td>
<td style="width:500px;"><i><xsl:value-of select="description"/></i></td>
<td style="width:180px;"><i><xsl:value-of select="required"/></i></td>
</xsl:if>
</tr>
</xsl:for-each>
</table>
</div>
<div class="api_tablepanel">
<h2>Response Tags</h2>
<table class="apitable">
<tr class="hed">
<td style="width:200px;"><strong>Response Name</strong></td>
<td style="width:500px;">Description</td>
</tr>
<xsl:for-each select="command/command/response/arg">
<tr>
<td style="width:200px;"><strong><xsl:value-of select="name"/></strong></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
<xsl:for-each select="./arguments/arg">
<tr>
<td style="width:180px; padding-left:25px;"><strong><xsl:value-of select="name"/></strong></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
</tr>
<xsl:for-each select="./arguments/arg">
<tr>
<td style="width:165px; padding-left:40px;"><xsl:value-of select="name"/></td>
<td style="width:500px;"><xsl:value-of select="description"/></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer_mainmaster">
<p>Copyright © 2015 The Apache Software Foundation, Licensed under the
<a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0.</a> <br />
Apache, CloudStack, Apache CloudStack, the Apache CloudStack logo, the CloudMonkey logo and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
</div>
</div>
</div>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

View File

@ -61,8 +61,6 @@
<argument>${client.config.jars}</argument>
<argument>${client.config.jars}</argument>
<argument>./target</argument>
<argument>-f</argument>
<argument>${client.config.conf}/commands.properties</argument>
</arguments>
</configuration>
</execution>