blob: 5660f1660b98eaee3073e36cc329fd669c8bc716 [file] [log] [blame]
// 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.
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.
*/
}