mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Bug CS-9919: Support for Nexus Swiches (Cisco Vswitches)
At this point, the mgmt server comes up, loading the Nexus related modules without dying. Description: 1) Added a new properties file for Cisco N1kv VSM commands: cisconexusvsm_commands.properties.in 2) Added the CiscoNexusVSMElement to the components.xml file. 3) Modified CiscoNexusVSMElement to implement NetworkElement. The NetworkElement interface functions are not relevant to the N1KV VSM, so we override them with noops. 4) Added an addDao() of CiscoNexusVSMDeviceDaoImpl in populateDaos(), else we'd run into a failure to look up the VSM's dao when the mgmt server is starting up: com.cloud.utils.exception.CloudRuntimeException: Unable to find DAO com.cloud.network.dao.CiscoNexusVSMDeviceDao 5) Also added the CiscoNexusVSMElementService in populateServices(), and modified CiscoNexusVSMElement to implement Manager as well. 6) populateServices() was running into an exception that indicated that it was unable to find a commands.properties file for the cisco n1kv vsm service. Fixed it by changing getProperties() in CiscoNexusVSMElement to return the correct string "cisconexusvsm_commands.properties", and putting in an @Override for getProperties() in CiscoNexusVSMElement. Also fixed up all the other functions in CiscoNexusVSMElement that needed to have @Override. Also updated build/developers.xml with this file location. And did other small cleanup. 7) More clean up in CiscoNexusVSMDeviceManagerImpl. Conflicts: server/src/com/cloud/configuration/DefaultComponentLibrary.java
This commit is contained in:
parent
7028357111
commit
b0facd16e4
@ -381,6 +381,7 @@
|
|||||||
<property name="commands.ext.file" location="${dist.dir}/client/conf/commands-ext.properties" />
|
<property name="commands.ext.file" location="${dist.dir}/client/conf/commands-ext.properties" />
|
||||||
<property name="commands.f5.file" location="${dist.dir}/client/conf/f5bigip_commands.properties" />
|
<property name="commands.f5.file" location="${dist.dir}/client/conf/f5bigip_commands.properties" />
|
||||||
<property name="commands.juniper.file" location="${dist.dir}/client/conf/junipersrx_commands.properties" />
|
<property name="commands.juniper.file" location="${dist.dir}/client/conf/junipersrx_commands.properties" />
|
||||||
|
<property name="commands.cisco.file" location="${dist.dir}/client/conf/cisconexusvsm_commands.properties" />
|
||||||
<property name="commands.netscaler.file" location="${dist.dir}/client/conf/netscalerloadbalancer_commands.properties" />
|
<property name="commands.netscaler.file" location="${dist.dir}/client/conf/netscalerloadbalancer_commands.properties" />
|
||||||
<property name="commands.vr.file" location="${dist.dir}/client/conf/virtualrouter_commands.properties" />
|
<property name="commands.vr.file" location="${dist.dir}/client/conf/virtualrouter_commands.properties" />
|
||||||
|
|
||||||
|
|||||||
6
client/tomcatconf/cisconexusvsm_commands.properties.in
Normal file
6
client/tomcatconf/cisconexusvsm_commands.properties.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
### 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).
|
||||||
|
|
||||||
|
#### Cisco Nexus 1000v Virtual Supervisor Module (VSM) commands
|
||||||
|
addCiscoNexusVSM = com.cloud.api.commands.AddCiscoNexusVSMCmd;7
|
||||||
|
deleteCiscoNexusVSM = com.cloud.api.commands.DeleteCiscoNexusVSMCmd;7
|
||||||
@ -141,6 +141,7 @@
|
|||||||
<adapter name="ExternalDhcpServer" class="com.cloud.network.element.ExternalDhcpElement"/>
|
<adapter name="ExternalDhcpServer" class="com.cloud.network.element.ExternalDhcpElement"/>
|
||||||
<adapter name="BareMetal" class="com.cloud.network.element.BareMetalElement"/>
|
<adapter name="BareMetal" class="com.cloud.network.element.BareMetalElement"/>
|
||||||
<adapter name="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement"/>
|
<adapter name="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement"/>
|
||||||
|
<adapter name="CiscoNexus1000vVSM" class="com.cloud.network.element.CiscoNexusVSMElement"/>
|
||||||
</adapters>
|
</adapters>
|
||||||
<adapters key="com.cloud.cluster.agentlb.AgentLoadBalancerPlanner">
|
<adapters key="com.cloud.cluster.agentlb.AgentLoadBalancerPlanner">
|
||||||
<adapter name="ClusterBasedAgentLbPlanner" class="com.cloud.cluster.agentlb.ClusterBasedAgentLoadBalancerPlanner"/>
|
<adapter name="ClusterBasedAgentLbPlanner" class="com.cloud.cluster.agentlb.ClusterBasedAgentLoadBalancerPlanner"/>
|
||||||
|
|||||||
@ -72,6 +72,8 @@ import com.cloud.network.NetworkManagerImpl;
|
|||||||
import com.cloud.network.StorageNetworkManagerImpl;
|
import com.cloud.network.StorageNetworkManagerImpl;
|
||||||
import com.cloud.network.dao.ExternalFirewallDeviceDaoImpl;
|
import com.cloud.network.dao.ExternalFirewallDeviceDaoImpl;
|
||||||
import com.cloud.network.dao.ExternalLoadBalancerDeviceDaoImpl;
|
import com.cloud.network.dao.ExternalLoadBalancerDeviceDaoImpl;
|
||||||
|
import com.cloud.network.dao.CiscoNexusVSMDeviceDaoImpl;
|
||||||
|
// TODO - Import the Port Profile Device Dao as well.
|
||||||
import com.cloud.network.dao.FirewallRulesCidrsDaoImpl;
|
import com.cloud.network.dao.FirewallRulesCidrsDaoImpl;
|
||||||
import com.cloud.network.dao.FirewallRulesDaoImpl;
|
import com.cloud.network.dao.FirewallRulesDaoImpl;
|
||||||
import com.cloud.network.dao.IPAddressDaoImpl;
|
import com.cloud.network.dao.IPAddressDaoImpl;
|
||||||
@ -97,6 +99,8 @@ import com.cloud.network.element.F5ExternalLoadBalancerElementService;
|
|||||||
import com.cloud.network.element.JuniperSRXExternalFirewallElement;
|
import com.cloud.network.element.JuniperSRXExternalFirewallElement;
|
||||||
import com.cloud.network.element.JuniperSRXFirewallElementService;
|
import com.cloud.network.element.JuniperSRXFirewallElementService;
|
||||||
import com.cloud.network.element.NetscalerElement;
|
import com.cloud.network.element.NetscalerElement;
|
||||||
|
import com.cloud.network.element.CiscoNexusVSMElement;
|
||||||
|
import com.cloud.network.element.CiscoNexusVSMElementService;
|
||||||
import com.cloud.network.element.NetscalerLoadBalancerElementService;
|
import com.cloud.network.element.NetscalerLoadBalancerElementService;
|
||||||
import com.cloud.network.element.VirtualRouterElement;
|
import com.cloud.network.element.VirtualRouterElement;
|
||||||
import com.cloud.network.element.VirtualRouterElementService;
|
import com.cloud.network.element.VirtualRouterElementService;
|
||||||
@ -317,6 +321,8 @@ public class DefaultComponentLibrary extends ComponentLibraryBase implements Com
|
|||||||
addDao("NetworkExternalLoadBalancerDao", NetworkExternalLoadBalancerDaoImpl.class);
|
addDao("NetworkExternalLoadBalancerDao", NetworkExternalLoadBalancerDaoImpl.class);
|
||||||
addDao("NetworkExternalFirewallDao", NetworkExternalFirewallDaoImpl.class);
|
addDao("NetworkExternalFirewallDao", NetworkExternalFirewallDaoImpl.class);
|
||||||
addDao("NetScalerPodDao", NetScalerPodDaoImpl.class);
|
addDao("NetScalerPodDao", NetScalerPodDaoImpl.class);
|
||||||
|
addDao("CiscoNexusVSMDeviceDao", CiscoNexusVSMDeviceDaoImpl.class);
|
||||||
|
// TODO - Also put in the Port Profile Device Dao here.
|
||||||
addDao("PhysicalNetworkTrafficTypeDao", PhysicalNetworkTrafficTypeDaoImpl.class);
|
addDao("PhysicalNetworkTrafficTypeDao", PhysicalNetworkTrafficTypeDaoImpl.class);
|
||||||
addDao("NetworkServiceMapDao", NetworkServiceMapDaoImpl.class);
|
addDao("NetworkServiceMapDao", NetworkServiceMapDaoImpl.class);
|
||||||
addDao("StorageNetworkIpAddressDao", StorageNetworkIpAddressDaoImpl.class);
|
addDao("StorageNetworkIpAddressDao", StorageNetworkIpAddressDaoImpl.class);
|
||||||
@ -411,6 +417,7 @@ public class DefaultComponentLibrary extends ComponentLibraryBase implements Com
|
|||||||
addService("NetscalerExternalLoadBalancerElementService", NetscalerLoadBalancerElementService.class, NetscalerElement.class);
|
addService("NetscalerExternalLoadBalancerElementService", NetscalerLoadBalancerElementService.class, NetscalerElement.class);
|
||||||
addService("F5LoadBalancerElementService", F5ExternalLoadBalancerElementService.class, F5ExternalLoadBalancerElement.class);
|
addService("F5LoadBalancerElementService", F5ExternalLoadBalancerElementService.class, F5ExternalLoadBalancerElement.class);
|
||||||
addService("JuniperSRXFirewallElementService", JuniperSRXFirewallElementService.class, JuniperSRXExternalFirewallElement.class);
|
addService("JuniperSRXFirewallElementService", JuniperSRXFirewallElementService.class, JuniperSRXExternalFirewallElement.class);
|
||||||
|
addService("CiscoNexusVSMElementService", CiscoNexusVSMElementService.class, CiscoNexusVSMElement.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -12,10 +12,7 @@
|
|||||||
// Automatically generated by addcopyright.py at 04/03/2012
|
// Automatically generated by addcopyright.py at 04/03/2012
|
||||||
package com.cloud.network;
|
package com.cloud.network;
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -26,16 +23,6 @@ import org.apache.log4j.Logger;
|
|||||||
import com.cloud.agent.AgentManager;
|
import com.cloud.agent.AgentManager;
|
||||||
import com.cloud.agent.api.Answer;
|
import com.cloud.agent.api.Answer;
|
||||||
import com.cloud.agent.api.StartupCommand;
|
import com.cloud.agent.api.StartupCommand;
|
||||||
import com.cloud.agent.api.StartupExternalLoadBalancerCommand;
|
|
||||||
import com.cloud.agent.api.routing.CreateLoadBalancerApplianceCommand;
|
|
||||||
import com.cloud.agent.api.routing.DestroyLoadBalancerApplianceCommand;
|
|
||||||
import com.cloud.agent.api.routing.IpAssocCommand;
|
|
||||||
import com.cloud.agent.api.routing.LoadBalancerConfigCommand;
|
|
||||||
import com.cloud.agent.api.routing.NetworkElementCommand;
|
|
||||||
import com.cloud.agent.api.routing.SetStaticNatRulesCommand;
|
|
||||||
import com.cloud.agent.api.to.IpAddressTO;
|
|
||||||
import com.cloud.agent.api.to.LoadBalancerTO;
|
|
||||||
import com.cloud.agent.api.to.StaticNatRuleTO;
|
|
||||||
import com.cloud.api.ApiConstants;
|
import com.cloud.api.ApiConstants;
|
||||||
import com.cloud.configuration.Config;
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.configuration.dao.ConfigurationDao;
|
import com.cloud.configuration.dao.ConfigurationDao;
|
||||||
@ -57,42 +44,22 @@ import com.cloud.host.Host;
|
|||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.host.dao.HostDetailsDao;
|
import com.cloud.host.dao.HostDetailsDao;
|
||||||
import com.cloud.network.ExternalLoadBalancerDeviceVO.LBDeviceAllocationState;
|
|
||||||
import com.cloud.network.ExternalLoadBalancerDeviceVO.LBDeviceState;
|
|
||||||
import com.cloud.network.ExternalNetworkDeviceManager.NetworkDevice;
|
import com.cloud.network.ExternalNetworkDeviceManager.NetworkDevice;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
import com.cloud.network.Networks.TrafficType;
|
import com.cloud.network.Networks.TrafficType;
|
||||||
import com.cloud.network.addr.PublicIp;
|
import com.cloud.network.addr.PublicIp;
|
||||||
import com.cloud.network.dao.ExternalFirewallDeviceDao;
|
|
||||||
import com.cloud.network.dao.ExternalLoadBalancerDeviceDao;
|
|
||||||
import com.cloud.network.dao.IPAddressDao;
|
import com.cloud.network.dao.IPAddressDao;
|
||||||
import com.cloud.network.dao.InlineLoadBalancerNicMapDao;
|
|
||||||
import com.cloud.network.dao.LoadBalancerDao;
|
|
||||||
import com.cloud.network.dao.NetworkDao;
|
import com.cloud.network.dao.NetworkDao;
|
||||||
import com.cloud.network.dao.NetworkExternalFirewallDao;
|
|
||||||
import com.cloud.network.dao.NetworkExternalLoadBalancerDao;
|
import com.cloud.network.dao.NetworkExternalLoadBalancerDao;
|
||||||
import com.cloud.network.dao.NetworkServiceMapDao;
|
import com.cloud.network.dao.NetworkServiceMapDao;
|
||||||
import com.cloud.network.dao.PhysicalNetworkDao;
|
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||||
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
|
import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
|
||||||
import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
|
|
||||||
import com.cloud.network.lb.LoadBalancingRule;
|
|
||||||
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
|
|
||||||
import com.cloud.network.resource.CreateLoadBalancerApplianceAnswer;
|
|
||||||
import com.cloud.network.resource.DestroyLoadBalancerApplianceAnswer;
|
|
||||||
import com.cloud.network.rules.FirewallRule;
|
|
||||||
import com.cloud.network.rules.FirewallRule.Purpose;
|
|
||||||
import com.cloud.network.rules.FirewallRuleVO;
|
|
||||||
import com.cloud.network.rules.StaticNatRule;
|
|
||||||
import com.cloud.network.rules.StaticNatRuleImpl;
|
|
||||||
import com.cloud.network.rules.dao.PortForwardingRulesDao;
|
import com.cloud.network.rules.dao.PortForwardingRulesDao;
|
||||||
import com.cloud.offerings.NetworkOfferingVO;
|
|
||||||
import com.cloud.offerings.dao.NetworkOfferingDao;
|
import com.cloud.offerings.dao.NetworkOfferingDao;
|
||||||
import com.cloud.resource.ResourceManager;
|
import com.cloud.resource.ResourceManager;
|
||||||
import com.cloud.resource.ResourceState;
|
import com.cloud.resource.ResourceState;
|
||||||
import com.cloud.resource.ResourceStateAdapter;
|
import com.cloud.resource.ResourceStateAdapter;
|
||||||
import com.cloud.resource.ServerResource;
|
import com.cloud.resource.ServerResource;
|
||||||
import com.cloud.resource.UnableDeleteHostException;
|
|
||||||
import com.cloud.server.api.response.ExternalLoadBalancerResponse;
|
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
import com.cloud.user.AccountManager;
|
import com.cloud.user.AccountManager;
|
||||||
import com.cloud.user.dao.AccountDao;
|
import com.cloud.user.dao.AccountDao;
|
||||||
@ -105,11 +72,6 @@ import com.cloud.utils.db.GenericDaoBase;
|
|||||||
import com.cloud.utils.db.GlobalLock;
|
import com.cloud.utils.db.GlobalLock;
|
||||||
import com.cloud.utils.db.Transaction;
|
import com.cloud.utils.db.Transaction;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.utils.net.NetUtils;
|
|
||||||
import com.cloud.utils.net.UrlUtil;
|
|
||||||
import com.cloud.vm.Nic.ReservationStrategy;
|
|
||||||
import com.cloud.vm.Nic.State;
|
|
||||||
import com.cloud.vm.NicVO;
|
|
||||||
import com.cloud.vm.dao.DomainRouterDao;
|
import com.cloud.vm.dao.DomainRouterDao;
|
||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.network.dao.CiscoNexusVSMDeviceDao;
|
import com.cloud.network.dao.CiscoNexusVSMDeviceDao;
|
||||||
@ -126,8 +88,6 @@ public abstract class CiscoNexusVSMDeviceManagerImpl extends AdapterBase {
|
|||||||
@Inject
|
@Inject
|
||||||
NetworkManager _networkMgr;
|
NetworkManager _networkMgr;
|
||||||
@Inject
|
@Inject
|
||||||
InlineLoadBalancerNicMapDao _inlineLoadBalancerNicMapDao;
|
|
||||||
@Inject
|
|
||||||
NicDao _nicDao;
|
NicDao _nicDao;
|
||||||
@Inject
|
@Inject
|
||||||
AgentManager _agentMgr;
|
AgentManager _agentMgr;
|
||||||
@ -154,8 +114,6 @@ public abstract class CiscoNexusVSMDeviceManagerImpl extends AdapterBase {
|
|||||||
@Inject
|
@Inject
|
||||||
DomainRouterDao _routerDao;
|
DomainRouterDao _routerDao;
|
||||||
@Inject
|
@Inject
|
||||||
LoadBalancerDao _loadBalancerDao;
|
|
||||||
@Inject
|
|
||||||
PortForwardingRulesDao _portForwardingRulesDao;
|
PortForwardingRulesDao _portForwardingRulesDao;
|
||||||
@Inject
|
@Inject
|
||||||
ConfigurationDao _configDao;
|
ConfigurationDao _configDao;
|
||||||
@ -166,13 +124,8 @@ public abstract class CiscoNexusVSMDeviceManagerImpl extends AdapterBase {
|
|||||||
@Inject
|
@Inject
|
||||||
NetworkServiceMapDao _ntwkSrvcProviderDao;
|
NetworkServiceMapDao _ntwkSrvcProviderDao;
|
||||||
@Inject
|
@Inject
|
||||||
NetworkExternalFirewallDao _networkExternalFirewallDao;
|
|
||||||
@Inject
|
|
||||||
ExternalFirewallDeviceDao _externalFirewallDeviceDao;
|
|
||||||
@Inject
|
|
||||||
protected HostPodDao _podDao = null;
|
protected HostPodDao _podDao = null;
|
||||||
|
|
||||||
private long _defaultLbCapacity;
|
|
||||||
private static final org.apache.log4j.Logger s_logger = Logger.getLogger(ExternalLoadBalancerDeviceManagerImpl.class);
|
private static final org.apache.log4j.Logger s_logger = Logger.getLogger(ExternalLoadBalancerDeviceManagerImpl.class);
|
||||||
|
|
||||||
@DB
|
@DB
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
package com.cloud.network.element;
|
package com.cloud.network.element;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
|
|
||||||
@ -27,21 +28,37 @@ import com.cloud.api.response.CiscoNexusVSMResponse;
|
|||||||
import com.cloud.configuration.ConfigurationManager;
|
import com.cloud.configuration.ConfigurationManager;
|
||||||
import com.cloud.configuration.dao.ConfigurationDao;
|
import com.cloud.configuration.dao.ConfigurationDao;
|
||||||
import com.cloud.dc.dao.DataCenterDao;
|
import com.cloud.dc.dao.DataCenterDao;
|
||||||
|
import com.cloud.deploy.DeployDestination;
|
||||||
|
import com.cloud.exception.ConcurrentOperationException;
|
||||||
|
import com.cloud.exception.InsufficientCapacityException;
|
||||||
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.host.dao.HostDetailsDao;
|
import com.cloud.host.dao.HostDetailsDao;
|
||||||
import com.cloud.network.CiscoNexusVSMDeviceVO;
|
import com.cloud.network.CiscoNexusVSMDeviceVO;
|
||||||
import com.cloud.network.CiscoNexusVSMDeviceManagerImpl;
|
import com.cloud.network.CiscoNexusVSMDeviceManagerImpl;
|
||||||
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.NetworkManager;
|
import com.cloud.network.NetworkManager;
|
||||||
|
import com.cloud.network.PhysicalNetworkServiceProvider;
|
||||||
|
import com.cloud.network.Network.Capability;
|
||||||
|
import com.cloud.network.Network.Provider;
|
||||||
|
import com.cloud.network.Network.Service;
|
||||||
import com.cloud.network.dao.NetworkDao;
|
import com.cloud.network.dao.NetworkDao;
|
||||||
import com.cloud.network.dao.NetworkServiceMapDao;
|
import com.cloud.network.dao.NetworkServiceMapDao;
|
||||||
import com.cloud.network.dao.PhysicalNetworkDao;
|
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||||
import com.cloud.network.resource.CiscoNexusVSMResource;
|
import com.cloud.network.resource.CiscoNexusVSMResource;
|
||||||
import com.cloud.resource.ServerResource;
|
import com.cloud.resource.ServerResource;
|
||||||
import com.cloud.utils.component.Inject;
|
import com.cloud.utils.component.Inject;
|
||||||
|
import com.cloud.vm.NicProfile;
|
||||||
|
import com.cloud.vm.ReservationContext;
|
||||||
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.network.PortProfile;
|
import com.cloud.network.PortProfile;
|
||||||
|
import com.cloud.network.element.NetworkElement;
|
||||||
|
import com.cloud.offering.NetworkOffering;
|
||||||
|
import com.cloud.utils.component.Manager;
|
||||||
|
|
||||||
@Local(value = NetworkElement.class)
|
@Local(value = NetworkElement.class)
|
||||||
public class CiscoNexusVSMElement extends CiscoNexusVSMDeviceManagerImpl implements CiscoNexusVSMElementService {
|
public class CiscoNexusVSMElement extends CiscoNexusVSMDeviceManagerImpl implements CiscoNexusVSMElementService, NetworkElement, Manager {
|
||||||
|
|
||||||
private static final Logger s_logger = Logger.getLogger(CiscoNexusVSMElement.class);
|
private static final Logger s_logger = Logger.getLogger(CiscoNexusVSMElement.class);
|
||||||
|
|
||||||
@ -70,7 +87,78 @@ public class CiscoNexusVSMElement extends CiscoNexusVSMDeviceManagerImpl impleme
|
|||||||
@Inject
|
@Inject
|
||||||
ConfigurationDao _configDao;
|
ConfigurationDao _configDao;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Service, Map<Capability, String>> getCapabilities() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Provider getProvider() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean implement(Network network, NetworkOffering offering,
|
||||||
|
DeployDestination dest, ReservationContext context)
|
||||||
|
throws ConcurrentOperationException, ResourceUnavailableException,
|
||||||
|
InsufficientCapacityException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean prepare(Network network, NicProfile nic,
|
||||||
|
VirtualMachineProfile<? extends VirtualMachine> vm,
|
||||||
|
DeployDestination dest, ReservationContext context)
|
||||||
|
throws ConcurrentOperationException, ResourceUnavailableException,
|
||||||
|
InsufficientCapacityException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean release(Network network, NicProfile nic,
|
||||||
|
VirtualMachineProfile<? extends VirtualMachine> vm,
|
||||||
|
ReservationContext context) throws ConcurrentOperationException,
|
||||||
|
ResourceUnavailableException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shutdown(Network network, ReservationContext context,
|
||||||
|
boolean cleanup) throws ConcurrentOperationException,
|
||||||
|
ResourceUnavailableException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean destroy(Network network)
|
||||||
|
throws ConcurrentOperationException, ResourceUnavailableException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isReady(PhysicalNetworkServiceProvider provider) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shutdownProviderInstances(PhysicalNetworkServiceProvider provider,
|
||||||
|
ReservationContext context) throws ConcurrentOperationException,
|
||||||
|
ResourceUnavailableException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canEnableIndividualServices() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean verifyServicesCombination(List<String> services) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public CiscoNexusVSMDeviceVO addCiscoNexusVSM(AddCiscoNexusVSMCmd cmd) {
|
public CiscoNexusVSMDeviceVO addCiscoNexusVSM(AddCiscoNexusVSMCmd cmd) {
|
||||||
|
|
||||||
// This function essentially prepares all the parameters we need to send
|
// This function essentially prepares all the parameters we need to send
|
||||||
@ -95,11 +183,13 @@ public class CiscoNexusVSMElement extends CiscoNexusVSMDeviceManagerImpl impleme
|
|||||||
return vsmDeviceVO;
|
return vsmDeviceVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean deleteCiscoNexusVSM(DeleteCiscoNexusVSMCmd cmd) {
|
public boolean deleteCiscoNexusVSM(DeleteCiscoNexusVSMCmd cmd) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<? extends PortProfile> listNetworks(ListCiscoNexusVSMNetworksCmd cmd) {
|
public List<? extends PortProfile> listNetworks(ListCiscoNexusVSMNetworksCmd cmd) {
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@ -122,11 +212,13 @@ public class CiscoNexusVSMElement extends CiscoNexusVSMDeviceManagerImpl impleme
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<CiscoNexusVSMDeviceVO> listCiscoNexusVSMs(ListCiscoNexusVSMCmd cmd) {
|
public List<CiscoNexusVSMDeviceVO> listCiscoNexusVSMs(ListCiscoNexusVSMCmd cmd) {
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public CiscoNexusVSMResponse createCiscoNexusVSMResponse(CiscoNexusVSMDeviceVO vsmDeviceVO) {
|
public CiscoNexusVSMResponse createCiscoNexusVSMResponse(CiscoNexusVSMDeviceVO vsmDeviceVO) {
|
||||||
CiscoNexusVSMResponse response = new CiscoNexusVSMResponse();
|
CiscoNexusVSMResponse response = new CiscoNexusVSMResponse();
|
||||||
response.setId(vsmDeviceVO.getId());
|
response.setId(vsmDeviceVO.getId());
|
||||||
@ -134,8 +226,8 @@ public class CiscoNexusVSMElement extends CiscoNexusVSMDeviceManagerImpl impleme
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getPropertiesFile() {
|
public String getPropertiesFile() {
|
||||||
return null;
|
return "cisconexusvsm_commands.properties";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -21,12 +21,15 @@ import java.util.Map;
|
|||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
public class PropertiesUtil {
|
public class PropertiesUtil {
|
||||||
/**
|
/**
|
||||||
* Searches the class path and local paths to find the config file.
|
* Searches the class path and local paths to find the config file.
|
||||||
* @param path path to find. if it starts with / then it's absolute path.
|
* @param path path to find. if it starts with / then it's absolute path.
|
||||||
* @return File or null if not found at all.
|
* @return File or null if not found at all.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static File findConfigFile(String path) {
|
public static File findConfigFile(String path) {
|
||||||
ClassLoader cl = PropertiesUtil.class.getClassLoader();
|
ClassLoader cl = PropertiesUtil.class.getClassLoader();
|
||||||
URL url = cl.getResource(path);
|
URL url = cl.getResource(path);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user