// Copyright 2012 Citrix Systems, Inc. Licensed under the
// Apache License, Version 2.0 (the "License"); you may not use this
// file except in compliance with the License. Citrix Systems, Inc.
// reserves all rights not expressly granted by 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.
//
// Automatically generated by addcopyright.py at 04/03/2012
package com.cloud.network.dao;
import java.util.List;
import com.cloud.network.CiscoNexusVSMDeviceVO;
import com.cloud.utils.db.GenericDao;
public interface CiscoNexusVSMDeviceDao extends GenericDao<CiscoNexusVSMDeviceVO, Long> {
/**
* Return a Cisco Nexus VSM record given its switch domain Id.
* @param Cisco Nexus VSM Switch Domain Id
* @return CiscoNexusVSMDeviceVO for the VSM having the specified switch domain Id.
*/
CiscoNexusVSMDeviceVO getVSMbyDomainId(long domId);
/**
* Return a Cisco Nexus VSM VO (db record) given its name.
* @param vsmName
*/
CiscoNexusVSMDeviceVO getVSMbyName(String vsmName);
/**
* Return a Cisco Nexus VSM VO (db record) given its ipaddress.
* @param vsmIpaddr
*/
CiscoNexusVSMDeviceVO getVSMbyIpaddress(String ipaddress);
/**
* Return a list of VSM devices that use the same VLAN for no matter what interface. Unlikely, but oh well.
* @param vlanId
* - Needs to filter results by the invoker's account Id. So we may end up adding another param
* or may query it in the function.
* @return
*/
List<CiscoNexusVSMDeviceVO> listByVlanId(int vlanId);
/**
* Return a list of VSM devices that use the same VLAN for their mgmt interface. Again, unlikely, but we'll just keep it around.
* @param vlanId
* @return
*/
List<CiscoNexusVSMDeviceVO> listByMgmtVlan(int vlanId);
/**
* Lists all configured VSMs on the management server.
* @return
*/
List<CiscoNexusVSMDeviceVO> listAllVSMs();
/**
* Below is a big list of other functions that we may need, but will declare/define/implement once we implement
* the functions above. Pasting those below to not lose track of them.
*
* ListbyZoneId()
- Lists all VSMs in the specified zone.
ListbyAccountId()
- Lists all VSMs owned by the specified Account.
ListbyStorageVLAN(vlanId)
- Lists all VSMs whose storage VLAN matches the specified VLAN.
- Filters results by the invoker's account Id.
ListbyControlVLAN(vlanId)
- Lists all VSMs whose control VLAN matches the specified VLAN.
- Filters results by the invoker's account Id.
ListbyPacketVLAN(vlanId)
- Lists all VSMs whose Packet VLAN matches the specified VLAN.
- Filters results by the invoker's account Id.
ListbyConfigMode(mode)
- Lists all VSMs which are currently configured in the specified mode (standalone/HA).
- Filters results by the invoker's account Id.
ListbyConfigState(configState)
- Lists all VSMs which are currently configured in the specified state (primary/standby).
- Filters results by the invoker's account Id.
ListbyDeviceState(deviceState)
- Lists all VSMs which are currently in the specified device state (enabled/disabled).
- Filters results by the invoker's account Id.
getBySwitchDomainId(domId)
- Retrieves the VSM with the specified switch domain Id. Each VSM has a unique switch domain Id, just like a real physical switch would.
- Filters results by invoker's account id.
getbySwitchName(vsmName)
- Retrieves the VSM's VO object by the specified vsmName.
*/
}