| // 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. |
| |
| */ |
| } |