mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	bug 5904,5474: added listCapabilities API
This commit is contained in:
		
							parent
							
								
									31081a681c
								
							
						
					
					
						commit
						acb23b6158
					
				| @ -139,6 +139,7 @@ listSystemVms=com.cloud.api.commands.ListSystemVMsCmd;1 | |||||||
| updateConfiguration=com.cloud.api.commands.UpdateCfgCmd;1 | updateConfiguration=com.cloud.api.commands.UpdateCfgCmd;1 | ||||||
| listConfigurations=com.cloud.api.commands.ListCfgsByCmd;1 | listConfigurations=com.cloud.api.commands.ListCfgsByCmd;1 | ||||||
| addConfig=com.cloud.api.commands.AddConfigCmd;15 | addConfig=com.cloud.api.commands.AddConfigCmd;15 | ||||||
|  | listCapabilities=com.cloud.api.commands.ListCapabilitiesCmd;15 | ||||||
| 
 | 
 | ||||||
| #### pod commands | #### pod commands | ||||||
| createPod=com.cloud.api.commands.CreatePodCmd;1 | createPod=com.cloud.api.commands.CreatePodCmd;1 | ||||||
|  | |||||||
| @ -2187,4 +2187,5 @@ public interface ManagementServer { | |||||||
| 	 | 	 | ||||||
| 	boolean checkIfMaintenable(long hostId); | 	boolean checkIfMaintenable(long hostId); | ||||||
| 
 | 
 | ||||||
|  |     Map<String, String> listCapabilities(); | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										58
									
								
								server/src/com/cloud/api/commands/ListCapabilitiesCmd.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								server/src/com/cloud/api/commands/ListCapabilitiesCmd.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | |||||||
|  | /** | ||||||
|  |  *  Copyright (C) 2010 Cloud.com, Inc.  All rights reserved. | ||||||
|  |  *  | ||||||
|  |  * This software is licensed under the GNU General Public License v3 or later. | ||||||
|  |  *  | ||||||
|  |  * It is free software: you can redistribute it and/or modify | ||||||
|  |  * it under the terms of the GNU General Public License as published by | ||||||
|  |  * the Free Software Foundation, either version 3 of the License, or any later version. | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  *  | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||||
|  |  *  | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | package com.cloud.api.commands; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.Iterator; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | 
 | ||||||
|  | import org.apache.log4j.Logger; | ||||||
|  | 
 | ||||||
|  | import com.cloud.api.BaseCmd; | ||||||
|  | import com.cloud.utils.Pair; | ||||||
|  | 
 | ||||||
|  | public class ListCapabilitiesCmd extends BaseCmd { | ||||||
|  | 	public static final Logger s_logger = Logger.getLogger(ListCapabilitiesCmd.class.getName()); | ||||||
|  | 
 | ||||||
|  |     private static final String s_name = "listcapabilitiesresponse"; | ||||||
|  |     private static final List<Pair<Enum, Boolean>> s_properties = new ArrayList<Pair<Enum, Boolean>>(); | ||||||
|  | 
 | ||||||
|  |     public String getName() { | ||||||
|  |         return s_name; | ||||||
|  |     } | ||||||
|  |     public List<Pair<Enum, Boolean>> getProperties() { | ||||||
|  |         return s_properties; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public List<Pair<String, Object>> execute(Map<String, Object> params) { | ||||||
|  |              | ||||||
|  |         Map<String, String> capabilities = null; | ||||||
|  | 	    capabilities = getManagementServer().listCapabilities(); | ||||||
|  | 
 | ||||||
|  |         Iterator<String> iterator = capabilities.keySet().iterator(); | ||||||
|  |         List<Pair<String, Object>> capabilityPair = new ArrayList<Pair<String, Object>>(); | ||||||
|  |         while (iterator.hasNext()) { | ||||||
|  |             String capability = iterator.next(); | ||||||
|  |             capabilityPair.add(new Pair<String, Object>(capability, capabilities.get(capability))); | ||||||
|  |         } | ||||||
|  |         return capabilityPair; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -8594,6 +8594,26 @@ public class ManagementServerImpl implements ManagementServer { | |||||||
| 		return false; | 		return false; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |     @Override | ||||||
|  |     public Map<String, String> listCapabilities() { | ||||||
|  |         Map<String, String> capabilities = new HashMap<String, String>(); | ||||||
|  |          | ||||||
|  |         String networkGroupsEnabled = _configs.get("direct.attach.network.groups.enabled"); | ||||||
|  |         if(networkGroupsEnabled == null)  | ||||||
|  |             networkGroupsEnabled = "false";              | ||||||
|  | 
 | ||||||
|  |         capabilities.put("networkGroupsEnabled", networkGroupsEnabled); | ||||||
|  |          | ||||||
|  |         final Class<?> c = this.getClass(); | ||||||
|  |         String fullVersion = c.getPackage().getImplementationVersion(); | ||||||
|  |         String version = "unknown";  | ||||||
|  |         if(fullVersion.length() > 0){ | ||||||
|  |             version = fullVersion.substring(0,fullVersion.lastIndexOf(".")); | ||||||
|  |         } | ||||||
|  |         capabilities.put("cloudStackVersion", version); | ||||||
|  |         return capabilities; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user