diff --git a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java index 900508b1fbb..7f9d79c65bc 100644 --- a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java +++ b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java @@ -183,7 +183,7 @@ import com.cloud.utils.net.NetUtils; import com.cloud.utils.script.OutputInterpreter; import com.cloud.utils.script.Script; import com.cloud.vm.ConsoleProxyVO; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.DomainRouter; import com.cloud.vm.State; import com.cloud.vm.VirtualMachineName; @@ -1174,7 +1174,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv protected Answer execute(CreateCommand cmd) { StoragePoolTO pool = cmd.getPool(); - DiskCharacteristics dskch = cmd.getDiskCharacteristics(); + DiskProfile dskch = cmd.getDiskCharacteristics(); StorageVol tmplVol = null; StoragePool primaryPool = null; StorageVol vol = null; diff --git a/api/src/com/cloud/dc/Pod.java b/api/src/com/cloud/dc/Pod.java index fb325e02bdb..bdea8dd0679 100644 --- a/api/src/com/cloud/dc/Pod.java +++ b/api/src/com/cloud/dc/Pod.java @@ -15,5 +15,9 @@ public interface Pod extends Grouping { */ long getId(); + String getCidrAddress(); + int getCidrSize(); + public String getGateway(); + //String getUniqueName(); } diff --git a/api/src/com/cloud/network/NetworkConfiguration.java b/api/src/com/cloud/network/NetworkConfiguration.java index f0193b6c25d..82a1ac62da8 100644 --- a/api/src/com/cloud/network/NetworkConfiguration.java +++ b/api/src/com/cloud/network/NetworkConfiguration.java @@ -28,7 +28,7 @@ public interface NetworkConfiguration { String getCidr(); - void setCidr(String cidr); + public long getDataCenterId(); long getNetworkOfferingId(); } diff --git a/api/src/com/cloud/network/NetworkProfiler.java b/api/src/com/cloud/network/NetworkProfiler.java index 6a3621a6856..226d5fd9af0 100644 --- a/api/src/com/cloud/network/NetworkProfiler.java +++ b/api/src/com/cloud/network/NetworkProfiler.java @@ -3,17 +3,12 @@ */ package com.cloud.network; -import java.util.Collection; -import java.util.List; import java.util.Map; import com.cloud.deploy.DeploymentPlan; -import com.cloud.exception.ConflictingNetworkSettingsException; import com.cloud.offering.NetworkOffering; -import com.cloud.offering.ServiceOffering; import com.cloud.user.Account; import com.cloud.utils.component.Adapter; -import com.cloud.vm.VirtualMachine; /** * NetworkProfiler takes the list of network offerings requested and figures @@ -23,7 +18,4 @@ import com.cloud.vm.VirtualMachine; */ public interface NetworkProfiler extends Adapter { NetworkConfiguration convert(NetworkOffering offering, DeploymentPlan plan, Map params, Account owner); - - List convert(Collection networkOfferings, Account owner); - boolean check(VirtualMachine vm, ServiceOffering serviceOffering, Collection networkProfiles) throws ConflictingNetworkSettingsException; } diff --git a/core/src/com/cloud/storage/StoragePool.java b/api/src/com/cloud/storage/StoragePool.java similarity index 100% rename from core/src/com/cloud/storage/StoragePool.java rename to api/src/com/cloud/storage/StoragePool.java diff --git a/api/src/com/cloud/vm/DiskCharacteristics.java b/api/src/com/cloud/vm/DiskProfile.java similarity index 92% rename from api/src/com/cloud/vm/DiskCharacteristics.java rename to api/src/com/cloud/vm/DiskProfile.java index acb30d14bef..7514bc0f965 100644 --- a/api/src/com/cloud/vm/DiskCharacteristics.java +++ b/api/src/com/cloud/vm/DiskProfile.java @@ -25,7 +25,7 @@ import com.cloud.storage.Volume; * and resources to allocate and create disks. There object is immutable once * it has been created. */ -public class DiskCharacteristics { +public class DiskProfile { private long size; private String[] tags; private Volume.VolumeType type; @@ -36,10 +36,10 @@ public class DiskCharacteristics { private Long templateId; private long volumeId; - protected DiskCharacteristics() { + protected DiskProfile() { } - public DiskCharacteristics(long volumeId, Volume.VolumeType type, String name, long diskOfferingId, long size, String[] tags, boolean useLocalStorage, boolean recreatable, Long templateId) { + public DiskProfile(long volumeId, Volume.VolumeType type, String name, long diskOfferingId, long size, String[] tags, boolean useLocalStorage, boolean recreatable, Long templateId) { this.type = type; this.name = name; this.size = size; diff --git a/api/src/com/cloud/vm/NetworkCharacteristics.java b/api/src/com/cloud/vm/NetworkCharacteristics.java deleted file mode 100644 index 7b8c3482797..00000000000 --- a/api/src/com/cloud/vm/NetworkCharacteristics.java +++ /dev/null @@ -1,42 +0,0 @@ -/** - * - */ -package com.cloud.vm; - -import com.cloud.network.Network.BroadcastDomainType; -import com.cloud.network.Network.Mode; - -public class NetworkCharacteristics { - long id; - BroadcastDomainType type; - String cidr; - Mode mode; - long vmId; - - public BroadcastDomainType getType() { - return type; - } - - public Mode getMode() { - return mode; - } - - public long getNetworkId() { - return id; - } - - public long getVirtualMachineId() { - return vmId; - } - - public NetworkCharacteristics() { - } - - public NetworkCharacteristics(long id, BroadcastDomainType type, String cidr, Mode mode, long vmId) { - this.id = id; - this.type = type; - this.cidr = cidr; - this.mode = mode; - this.vmId = vmId; - } -} diff --git a/api/src/com/cloud/vm/NetworkConcierge.java b/api/src/com/cloud/vm/NetworkConcierge.java index 665103ccfad..b2622de8207 100644 --- a/api/src/com/cloud/vm/NetworkConcierge.java +++ b/api/src/com/cloud/vm/NetworkConcierge.java @@ -3,10 +3,10 @@ */ package com.cloud.vm; +import com.cloud.deploy.DeployDestination; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientVirtualNetworkCapcityException; import com.cloud.network.NetworkConfiguration; -import com.cloud.utils.Pair; import com.cloud.utils.component.Adapter; /** @@ -19,9 +19,11 @@ import com.cloud.utils.component.Adapter; public interface NetworkConcierge extends Adapter { String getUniqueName(); - Nic allocate(VirtualMachine vm, NetworkConfiguration profile, Nic nic); + NicProfile allocate(VirtualMachine vm, NetworkConfiguration config, NicProfile nic) throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException; - Pair reserve(long vmId, NetworkCharacteristics ch) throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException; + boolean create(Nic nic) throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException; + + String reserve(long vmId, NicProfile ch, DeployDestination dest) throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException; boolean release(String uniqueName, String uniqueId); } diff --git a/api/src/com/cloud/vm/Nic.java b/api/src/com/cloud/vm/Nic.java index d7d9f7c9292..f56be7fadf9 100644 --- a/api/src/com/cloud/vm/Nic.java +++ b/api/src/com/cloud/vm/Nic.java @@ -18,19 +18,13 @@ package com.cloud.vm; import com.cloud.network.Network.Mode; +import com.cloud.resource.Resource; /** * Nic represents one nic on the VM. */ -public interface Nic { - enum State { - Allocated, - AcquireIp, - IpAcquired, - } - - State getState(); +public interface Nic extends Resource { String getIp4Address(); @@ -41,17 +35,12 @@ public interface Nic { */ long getNetworkProfileId(); - /** - * @return the unique id to reference this nic. - */ - long getId(); - /** * @return the vm instance id that this nic belongs to. */ long getInstanceId(); - long getDeviceId(); + int getDeviceId(); Mode getMode(); } diff --git a/api/src/com/cloud/vm/NicProfile.java b/api/src/com/cloud/vm/NicProfile.java new file mode 100644 index 00000000000..70b7961c93f --- /dev/null +++ b/api/src/com/cloud/vm/NicProfile.java @@ -0,0 +1,157 @@ +/** + * + */ +package com.cloud.vm; + +import com.cloud.network.Network.AddressFormat; +import com.cloud.network.Network.BroadcastDomainType; +import com.cloud.network.Network.Mode; +import com.cloud.network.Network.TrafficType; +import com.cloud.network.NetworkConfiguration; + +public class NicProfile { + long id; + BroadcastDomainType broadcastType; + String cidr; + Mode mode; + long vmId; + String gateway; + int deviceId; + AddressFormat format; + TrafficType trafficType; + String ip4Address; + String ip6Address; + String macAddress; + + public BroadcastDomainType getType() { + return broadcastType; + } + + public void setBroadcastType(BroadcastDomainType broadcastType) { + this.broadcastType = broadcastType; + } + + public void setCidr(String cidr) { + this.cidr = cidr; + } + + public void setMode(Mode mode) { + this.mode = mode; + } + + public void setVmId(long vmId) { + this.vmId = vmId; + } + + public void setGateway(String gateway) { + this.gateway = gateway; + } + + public void setDeviceId(int deviceId) { + this.deviceId = deviceId; + } + + public void setFormat(AddressFormat format) { + this.format = format; + } + + public void setTrafficType(TrafficType trafficType) { + this.trafficType = trafficType; + } + + public void setIp6Address(String ip6Address) { + this.ip6Address = ip6Address; + } + + public Mode getMode() { + return mode; + } + + public long getNetworkId() { + return id; + } + + public long getVirtualMachineId() { + return vmId; + } + + public long getId() { + return id; + } + + public BroadcastDomainType getBroadcastType() { + return broadcastType; + } + + public String getCidr() { + return cidr; + } + + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + + public long getVmId() { + return vmId; + } + + public String getGateway() { + return gateway; + } + + public int getDeviceId() { + return deviceId; + } + + public AddressFormat getFormat() { + return format; + } + + public TrafficType getTrafficType() { + return trafficType; + } + + public String getIp4Address() { + return ip4Address; + } + + public String getIp6Address() { + return ip6Address; + } + + public String getMacAddress() { + return macAddress; + } + + public void setIp4Address(String ip4Address) { + this.ip4Address = ip4Address; + } + + public NicProfile(Nic nic, NetworkConfiguration network) { + this.id = nic.getId(); + this.deviceId = nic.getDeviceId(); + this.cidr = network.getCidr(); + this.gateway = network.getGateway(); + this.mode = network.getMode(); + this.format = null; + this.broadcastType = network.getBroadcastDomainType(); + this.trafficType = network.getTrafficType(); + this.ip4Address = nic.getIp4Address(); + this.ip6Address = null; + this.macAddress = nic.getMacAddress(); + } + + public NicProfile(long id, BroadcastDomainType type, String cidr, Mode mode, long vmId) { + this.id = id; + this.broadcastType = type; + this.cidr = cidr; + this.mode = mode; + this.vmId = vmId; + } + + public NicProfile(String ip4Address, String macAddress, String gateway) { + this.ip4Address = ip4Address; + this.macAddress = macAddress; + this.gateway = gateway; + } +} diff --git a/api/src/com/cloud/vm/VirtualMachineProfile.java b/api/src/com/cloud/vm/VirtualMachineProfile.java new file mode 100644 index 00000000000..c0c4cea4fd2 --- /dev/null +++ b/api/src/com/cloud/vm/VirtualMachineProfile.java @@ -0,0 +1,107 @@ +/** + * 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 . + * + */ +package com.cloud.vm; + +import java.util.List; +import java.util.Map; + +import com.cloud.hypervisor.Hypervisor; +import com.cloud.offering.ServiceOffering; + +public class VirtualMachineProfile { + VirtualMachine _vm; + int _cpus; + int _speed; // in mhz + long _ram; // in bytes + Hypervisor.Type _hypervisorType; + VirtualMachine.Type _type; + Map _params; + Long _templateId; + List _disks; + List _nics; + + public VirtualMachineProfile(VirtualMachine.Type type) { + this._type = type; + } + + public long getId() { + return _vm.getId(); + } + + public VirtualMachine.Type getType() { + return _type; + } + + public Long getTemplateId() { + return _templateId; + } + + public int getCpus() { + return _cpus; + } + + public int getSpeed() { + return _speed; + } + + public long getRam() { + return _ram; + } + + public void setNics(List profiles) { + this._nics = profiles; + } + + public void setDisks(List profiles) { + this._disks = profiles; + } + + public Hypervisor.Type getHypervisorType() { + return _hypervisorType; + } + + public VirtualMachine getVm() { + return _vm; + } + + public VirtualMachineProfile(long id, int core, int speed, long ram, Long templateId, Hypervisor.Type type, Map params) { + this._cpus = core; + this._speed = speed; + this._ram = ram; + this._hypervisorType = type; + this._params = params; + this._templateId = templateId; + } + + public VirtualMachineProfile(VirtualMachine vm, ServiceOffering offering) { + this._cpus = offering.getCpu(); + this._speed = offering.getSpeed(); + this._ram = offering.getRamSize(); + this._templateId = vm.getTemplateId(); + this._type = vm.getType(); + this._vm = vm; + } + + protected VirtualMachineProfile() { + } + + @Override + public String toString() { + return "VM-" + _type + "-" + _vm.getId(); + } +} \ No newline at end of file diff --git a/api/src/com/cloud/vm/VirtualMachineProfiler.java b/api/src/com/cloud/vm/VirtualMachineProfiler.java index 09e1dcc7f11..1156346bb22 100644 --- a/api/src/com/cloud/vm/VirtualMachineProfiler.java +++ b/api/src/com/cloud/vm/VirtualMachineProfiler.java @@ -9,5 +9,5 @@ import com.cloud.utils.component.Adapter; public interface VirtualMachineProfiler extends Adapter { - VmCharacteristics convert(ServiceOffering offering, VirtualMachineTemplate template); + VirtualMachineProfile convert(ServiceOffering offering, VirtualMachineTemplate template); } diff --git a/api/src/com/cloud/vm/VmCharacteristics.java b/api/src/com/cloud/vm/VmCharacteristics.java deleted file mode 100644 index 4073ec2c393..00000000000 --- a/api/src/com/cloud/vm/VmCharacteristics.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * 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 . - * - */ -package com.cloud.vm; - -import java.util.Map; - -import com.cloud.hypervisor.Hypervisor; - -public class VmCharacteristics { - long id; - int core; - int speed; // in mhz - long ram; // in bytes - Hypervisor.Type hypervisorType; - VirtualMachine.Type type; - Map params; - Long templateId; - - public VmCharacteristics(VirtualMachine.Type type) { - this.type = type; - } - - public VirtualMachine.Type getType() { - return type; - } - - public Long getTemplateId() { - return templateId; - } - - public int getCores() { - return core; - } - - public int getSpeed() { - return speed; - } - - public long getRam() { - return ram; - } - - public Hypervisor.Type getHypervisorType() { - return hypervisorType; - } - - public VmCharacteristics(long id, int core, int speed, long ram, Long templateId, Hypervisor.Type type, Map params) { - this.core = core; - this.speed = speed; - this.ram = ram; - this.hypervisorType = type; - this.params = params; - this.id = id; - this.templateId = templateId; - } - - protected VmCharacteristics() { - } - - @Override - public String toString() { - return "VM-" + type + "-" + id; - } -} \ No newline at end of file diff --git a/core/src/com/cloud/agent/AgentManager.java b/core/src/com/cloud/agent/AgentManager.java index 49bda30e8b3..11740cdaa34 100755 --- a/core/src/com/cloud/agent/AgentManager.java +++ b/core/src/com/cloud/agent/AgentManager.java @@ -44,7 +44,7 @@ import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; import com.cloud.vm.VMInstanceVO; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; /** * AgentManager manages hosts. It directly coordinates between the @@ -180,7 +180,7 @@ public interface AgentManager extends Manager { */ Pair findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long userId, Set avoids); - Host findHost(VmCharacteristics vm, Set avoids); + Host findHost(VirtualMachineProfile vm, Set avoids); /** * Put the agent in maintenance mode. diff --git a/core/src/com/cloud/agent/api/storage/CreateCommand.java b/core/src/com/cloud/agent/api/storage/CreateCommand.java index 48e53748f1e..d53e378aec7 100644 --- a/core/src/com/cloud/agent/api/storage/CreateCommand.java +++ b/core/src/com/cloud/agent/api/storage/CreateCommand.java @@ -21,13 +21,13 @@ import com.cloud.agent.api.Command; import com.cloud.agent.api.to.StoragePoolTO; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.VolumeVO; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.VMInstanceVO; public class CreateCommand extends Command { private long volId; private StoragePoolTO pool; - private DiskCharacteristics diskCharacteristics; + private DiskProfile diskCharacteristics; private String templateUrl; private long size; private String instanceName; @@ -45,7 +45,7 @@ public class CreateCommand extends Command { * @param templateUrl * @param pool */ - public CreateCommand(VolumeVO vol, VMInstanceVO vm, DiskCharacteristics diskCharacteristics, String templateUrl, StoragePoolVO pool) { + public CreateCommand(VolumeVO vol, VMInstanceVO vm, DiskProfile diskCharacteristics, String templateUrl, StoragePoolVO pool) { this(vol, vm, diskCharacteristics, pool, 0); this.templateUrl = templateUrl; } @@ -58,7 +58,7 @@ public class CreateCommand extends Command { * @param diskCharacteristics * @param pool */ - public CreateCommand(VolumeVO vol, VMInstanceVO vm, DiskCharacteristics diskCharacteristics, StoragePoolVO pool, long size) { + public CreateCommand(VolumeVO vol, VMInstanceVO vm, DiskProfile diskCharacteristics, StoragePoolVO pool, long size) { this.volId = vol.getId(); this.diskCharacteristics = diskCharacteristics; this.pool = new StoragePoolTO(pool); @@ -80,7 +80,7 @@ public class CreateCommand extends Command { return pool; } - public DiskCharacteristics getDiskCharacteristics() { + public DiskProfile getDiskCharacteristics() { return diskCharacteristics; } diff --git a/core/src/com/cloud/alert/dao/AlertDaoImpl.java b/core/src/com/cloud/alert/dao/AlertDaoImpl.java index c79c6c48b9c..bee71b47a73 100644 --- a/core/src/com/cloud/alert/dao/AlertDaoImpl.java +++ b/core/src/com/cloud/alert/dao/AlertDaoImpl.java @@ -40,7 +40,7 @@ public class AlertDaoImpl extends GenericDaoBase implements Alert sc.addAnd("podId", SearchCriteria.Op.EQ, podId); } - List alerts = listActiveBy(sc, searchFilter); + List alerts = listBy(sc, searchFilter); if ((alerts != null) && !alerts.isEmpty()) { return alerts.get(0); } diff --git a/core/src/com/cloud/async/dao/AsyncJobDaoImpl.java b/core/src/com/cloud/async/dao/AsyncJobDaoImpl.java index 24cacaa8cc3..13564f43961 100644 --- a/core/src/com/cloud/async/dao/AsyncJobDaoImpl.java +++ b/core/src/com/cloud/async/dao/AsyncJobDaoImpl.java @@ -61,7 +61,7 @@ public class AsyncJobDaoImpl extends GenericDaoBase implements sc.setParameters("instanceId", instanceId); sc.setParameters("status", AsyncJobResult.STATUS_IN_PROGRESS); - List l = listBy(sc); + List l = listIncludingRemovedBy(sc); if(l != null && l.size() > 0) { if(l.size() > 1) { s_logger.warn("Instance " + instanceType + "-" + instanceId + " has multiple pending async-job"); @@ -76,6 +76,6 @@ public class AsyncJobDaoImpl extends GenericDaoBase implements SearchCriteria sc = expiringAsyncJobSearch.create(); sc.setParameters("created", cutTime); Filter filter = new Filter(AsyncJobVO.class, "created", true, 0L, (long)limit); - return listBy(sc, filter); + return listIncludingRemovedBy(sc, filter); } } diff --git a/core/src/com/cloud/async/dao/SyncQueueDaoImpl.java b/core/src/com/cloud/async/dao/SyncQueueDaoImpl.java index d009866e9e0..26026906c5f 100644 --- a/core/src/com/cloud/async/dao/SyncQueueDaoImpl.java +++ b/core/src/com/cloud/async/dao/SyncQueueDaoImpl.java @@ -66,7 +66,7 @@ public class SyncQueueDaoImpl extends GenericDaoBase implemen SearchCriteria sc = TypeIdSearch.create(); sc.setParameters("syncObjType", syncObjType); sc.setParameters("syncObjId", syncObjId); - return findOneActiveBy(sc); + return findOneBy(sc); } protected SyncQueueDaoImpl() { diff --git a/core/src/com/cloud/async/dao/SyncQueueItemDaoImpl.java b/core/src/com/cloud/async/dao/SyncQueueItemDaoImpl.java index a0b4df70074..a8a3202be2b 100644 --- a/core/src/com/cloud/async/dao/SyncQueueItemDaoImpl.java +++ b/core/src/com/cloud/async/dao/SyncQueueItemDaoImpl.java @@ -53,7 +53,7 @@ public class SyncQueueItemDaoImpl extends GenericDaoBase sc.setParameters("queueId", queueId); Filter filter = new Filter(SyncQueueItemVO.class, "created", true, 0L, 1L); - List l = listActiveBy(sc, filter); + List l = listBy(sc, filter); if(l != null && l.size() > 0) return l.get(0); @@ -105,6 +105,6 @@ public class SyncQueueItemDaoImpl extends GenericDaoBase sc.setParameters("lastProcessMsid", msid); Filter filter = new Filter(SyncQueueItemVO.class, "created", true, 0L, 1L); - return listActiveBy(sc, filter); + return listBy(sc, filter); } } diff --git a/core/src/com/cloud/cluster/dao/ManagementServerHostDaoImpl.java b/core/src/com/cloud/cluster/dao/ManagementServerHostDaoImpl.java index 8fb19e21942..ebef69d9e8d 100644 --- a/core/src/com/cloud/cluster/dao/ManagementServerHostDaoImpl.java +++ b/core/src/com/cloud/cluster/dao/ManagementServerHostDaoImpl.java @@ -44,7 +44,7 @@ public class ManagementServerHostDaoImpl extends GenericDaoBase sc = MsIdSearch.create(); sc.setParameters("msid", msid); - List l = listBy(sc); + List l = listIncludingRemovedBy(sc); if(l != null && l.size() > 0) return l.get(0); @@ -101,7 +101,7 @@ public class ManagementServerHostDaoImpl extends GenericDaoBase sc = activeSearch.create(); sc.setParameters("lastUpdateTime", cutTime); - return listBy(sc); + return listIncludingRemovedBy(sc); } public void increaseAlertCount(long id) { diff --git a/core/src/com/cloud/configuration/dao/ConfigurationDaoImpl.java b/core/src/com/cloud/configuration/dao/ConfigurationDaoImpl.java index 54930bcb1dc..84f95d76d73 100644 --- a/core/src/com/cloud/configuration/dao/ConfigurationDaoImpl.java +++ b/core/src/com/cloud/configuration/dao/ConfigurationDaoImpl.java @@ -61,7 +61,7 @@ public class ConfigurationDaoImpl extends GenericDaoBase sc = InstanceSearch.create(); sc.setParameters("instance", "DEFAULT"); - List configurations = listBy(sc); + List configurations = listIncludingRemovedBy(sc); for (ConfigurationVO config : configurations) { if (config.getValue() != null) @@ -71,7 +71,7 @@ public class ConfigurationDaoImpl extends GenericDaoBase sc = NameSearch.create(); sc.setParameters("name", name); - List configurations = listBy(sc); + List configurations = listIncludingRemovedBy(sc); if (configurations.size() == 0) { return null; diff --git a/core/src/com/cloud/configuration/dao/ResourceCountDaoImpl.java b/core/src/com/cloud/configuration/dao/ResourceCountDaoImpl.java index e7921449ff2..e829cf7e2ef 100644 --- a/core/src/com/cloud/configuration/dao/ResourceCountDaoImpl.java +++ b/core/src/com/cloud/configuration/dao/ResourceCountDaoImpl.java @@ -52,7 +52,7 @@ public class ResourceCountDaoImpl extends GenericDaoBase sc.setParameters("accountId", accountId); sc.setParameters("type", type); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } private ResourceCountVO findByDomainIdAndType(long domainId, ResourceType type) { @@ -64,7 +64,7 @@ public class ResourceCountDaoImpl extends GenericDaoBase sc.setParameters("domainId", domainId); sc.setParameters("type", type); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override diff --git a/core/src/com/cloud/configuration/dao/ResourceLimitDaoImpl.java b/core/src/com/cloud/configuration/dao/ResourceLimitDaoImpl.java index d6b4a002f22..f266fadfee6 100644 --- a/core/src/com/cloud/configuration/dao/ResourceLimitDaoImpl.java +++ b/core/src/com/cloud/configuration/dao/ResourceLimitDaoImpl.java @@ -48,7 +48,7 @@ public class ResourceLimitDaoImpl extends GenericDaoBase sc.setParameters("domainId", domainId); sc.setParameters("type", type); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } public List listByDomainId(Long domainId) { @@ -58,7 +58,7 @@ public class ResourceLimitDaoImpl extends GenericDaoBase SearchCriteria sc = IdTypeSearch.create(); sc.setParameters("domainId", domainId); - return listBy(sc); + return listIncludingRemovedBy(sc); } public ResourceLimitVO findByAccountIdAndType(Long accountId, ResourceCount.ResourceType type) { @@ -69,7 +69,7 @@ public class ResourceLimitDaoImpl extends GenericDaoBase sc.setParameters("accountId", accountId); sc.setParameters("type", type); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } public List listByAccountId(Long accountId) { @@ -79,7 +79,7 @@ public class ResourceLimitDaoImpl extends GenericDaoBase SearchCriteria sc = IdTypeSearch.create(); sc.setParameters("accountId", accountId); - return listBy(sc); + return listIncludingRemovedBy(sc); } public boolean update(Long id, Long max) { diff --git a/core/src/com/cloud/dc/HostPodVO.java b/core/src/com/cloud/dc/HostPodVO.java index 724e4c7395e..b0ca1f4dd30 100644 --- a/core/src/com/cloud/dc/HostPodVO.java +++ b/core/src/com/cloud/dc/HostPodVO.java @@ -47,12 +47,12 @@ public class HostPodVO implements Pod { private String cidrAddress; @Column(name = "cidr_size") - private long cidrSize; + private int cidrSize; @Column(name = "description") private String description; - public HostPodVO(String name, long dcId, String gateway, String cidrAddress, long cidrSize, String description) { + public HostPodVO(String name, long dcId, String gateway, String cidrAddress, int cidrSize, String description) { this.name = name; this.dataCenterId = dcId; this.gateway = gateway; @@ -88,7 +88,8 @@ public class HostPodVO implements Pod { this.name = name; } - public String getCidrAddress() { + @Override + public String getCidrAddress() { return cidrAddress; } @@ -96,15 +97,17 @@ public class HostPodVO implements Pod { this.cidrAddress = cidrAddress; } - public long getCidrSize() { + @Override + public int getCidrSize() { return cidrSize; } - public void setCidrSize(long cidrSize) { + public void setCidrSize(int cidrSize) { this.cidrSize = cidrSize; } - public String getGateway() { + @Override + public String getGateway() { return gateway; } diff --git a/core/src/com/cloud/dc/dao/AccountVlanMapDaoImpl.java b/core/src/com/cloud/dc/dao/AccountVlanMapDaoImpl.java index a59d622090e..ed979d56afe 100644 --- a/core/src/com/cloud/dc/dao/AccountVlanMapDaoImpl.java +++ b/core/src/com/cloud/dc/dao/AccountVlanMapDaoImpl.java @@ -38,14 +38,14 @@ public class AccountVlanMapDaoImpl extends GenericDaoBase listAccountVlanMapsByAccount(long accountId) { SearchCriteria sc = AccountSearch.create(); sc.setParameters("accountId", accountId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override public List listAccountVlanMapsByVlan(long vlanDbId) { SearchCriteria sc = VlanSearch.create(); sc.setParameters("vlanDbId", vlanDbId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -53,7 +53,7 @@ public class AccountVlanMapDaoImpl extends GenericDaoBase sc = AccountVlanSearch.create(); sc.setParameters("accountId", accountId); sc.setParameters("vlanDbId", vlanDbId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } public AccountVlanMapDaoImpl() { diff --git a/core/src/com/cloud/dc/dao/ClusterDaoImpl.java b/core/src/com/cloud/dc/dao/ClusterDaoImpl.java index e1d8ffe4b05..ffb4d2b6fc5 100644 --- a/core/src/com/cloud/dc/dao/ClusterDaoImpl.java +++ b/core/src/com/cloud/dc/dao/ClusterDaoImpl.java @@ -45,7 +45,7 @@ public class ClusterDaoImpl extends GenericDaoBase implements C SearchCriteria sc = PodSearch.create(); sc.setParameters("pod", podId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -54,6 +54,6 @@ public class ClusterDaoImpl extends GenericDaoBase implements C sc.setParameters("pod", podId); sc.setParameters("name", name); - return findOneActiveBy(sc); + return findOneBy(sc); } } diff --git a/core/src/com/cloud/dc/dao/DataCenterDao.java b/core/src/com/cloud/dc/dao/DataCenterDao.java index 8075e3b34bc..b66ace75bb5 100644 --- a/core/src/com/cloud/dc/dao/DataCenterDao.java +++ b/core/src/com/cloud/dc/dao/DataCenterDao.java @@ -18,8 +18,8 @@ package com.cloud.dc.dao; -import java.util.List; - +import java.util.List; + import com.cloud.dc.DataCenterVO; import com.cloud.dc.DataCenterVnetVO; import com.cloud.utils.db.GenericDao; @@ -39,7 +39,10 @@ public interface DataCenterDao extends GenericDao { void releaseVnet(String vnet, long dcId, long accountId); void releasePrivateIpAddress(String ipAddress, long dcId, Long instanceId); - void releaseLinkLocalPrivateIpAddress(String ipAddress, long dcId, Long instanceId); + void releasePrivateIpAddress(long nicId); + void releaseLinkLocalPrivateIpAddress(String ipAddress, long dcId, Long instanceId); + void releaseLinkLocalPrivateIpAddress(long nicId); + boolean deletePrivateIpAddressByPod(long podId); boolean deleteLinkLocalPrivateIpAddressByPod(long podId); diff --git a/core/src/com/cloud/dc/dao/DataCenterDaoImpl.java b/core/src/com/cloud/dc/dao/DataCenterDaoImpl.java index a7d4b088ce8..9de84194ae9 100644 --- a/core/src/com/cloud/dc/dao/DataCenterDaoImpl.java +++ b/core/src/com/cloud/dc/dao/DataCenterDaoImpl.java @@ -66,7 +66,7 @@ public class DataCenterDaoImpl extends GenericDaoBase implem public DataCenterVO findByName(String name) { SearchCriteria sc = NameSearch.create(); sc.setParameters("name", name); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override @@ -84,6 +84,16 @@ public class DataCenterDaoImpl extends GenericDaoBase implem _ipAllocDao.releaseIpAddress(ipAddress, dcId, instanceId); } + @Override + public void releasePrivateIpAddress(long nicId) { + _ipAllocDao.releaseIpAddress(nicId); + } + + @Override + public void releaseLinkLocalPrivateIpAddress(long nicId) { + _LinkLocalIpAllocDao.releaseIpAddress(nicId); + } + @Override public void releaseLinkLocalPrivateIpAddress(String ipAddress, long dcId, Long instanceId) { _LinkLocalIpAllocDao.releaseIpAddress(ipAddress, dcId, instanceId); diff --git a/core/src/com/cloud/dc/dao/DataCenterIpAddressDaoImpl.java b/core/src/com/cloud/dc/dao/DataCenterIpAddressDaoImpl.java index 06cb6726af8..5947d45fbeb 100755 --- a/core/src/com/cloud/dc/dao/DataCenterIpAddressDaoImpl.java +++ b/core/src/com/cloud/dc/dao/DataCenterIpAddressDaoImpl.java @@ -136,6 +136,16 @@ public class DataCenterIpAddressDaoImpl extends GenericDaoBase sc = IpDcSearch.create(); + sc.setParameters("instance", nicId); + + DataCenterIpAddressVO vo = createForUpdate(); + vo.setTakenAt(null); + vo.setInstanceId(null); + update(vo, sc); + } + protected DataCenterIpAddressDaoImpl() { super(); FreeIpSearch = createSearchBuilder(); @@ -173,7 +183,7 @@ public class DataCenterIpAddressDaoImpl extends GenericDaoBase sc = PodDcSearch.create(); sc.setParameters("podId", podId); sc.setParameters("dataCenterId", dcId); - return listBy(sc); + return listIncludingRemovedBy(sc); } public List listByPodIdDcIdIpAddress(long podId, long dcId, String ipAddress) { @@ -181,7 +191,7 @@ public class DataCenterIpAddressDaoImpl extends GenericDaoBase sc = IpDcSearch.create(); + sc.setParameters("instance", nicId); + + DataCenterLinkLocalIpAddressVO vo = createForUpdate(); + + vo.setTakenAt(null); + vo.setInstanceId(null); + update(vo, sc); + } + protected DataCenterLinkLocalIpAddressDaoImpl() { super(); FreeIpSearch = createSearchBuilder(); @@ -175,7 +186,7 @@ public class DataCenterLinkLocalIpAddressDaoImpl extends GenericDaoBase sc = PodDcSearch.create(); sc.setParameters("podId", podId); sc.setParameters("dataCenterId", dcId); - return listBy(sc); + return listIncludingRemovedBy(sc); } public List listByPodIdDcIdIpAddress(long podId, long dcId, String ipAddress) { @@ -183,7 +194,7 @@ public class DataCenterLinkLocalIpAddressDaoImpl extends GenericDaoBase listAllocatedVnets(long dcId) { SearchCriteria sc = DcSearchAllocated.create(); sc.setParameters("dc", dcId); - return listActiveBy(sc); + return listBy(sc); } public List findVnet(long dcId, String vnet) { SearchCriteria sc = VnetDcSearch.create();; sc.setParameters("dc", dcId); sc.setParameters("vnet", vnet); - return listActiveBy(sc); + return listBy(sc); } public void add(long dcId, int start, int end) { @@ -114,7 +114,7 @@ public class DataCenterVnetDaoImpl extends GenericDaoBase implements H SearchCriteria sc = DataCenterIdSearch.create(); sc.setParameters("dcId", id); - return listActiveBy(sc); + return listBy(sc); } public HostPodVO findByName(String name, long dcId) { @@ -68,7 +68,7 @@ public class HostPodDaoImpl extends GenericDaoBase implements H sc.setParameters("dc", dcId); sc.setParameters("name", name); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override diff --git a/core/src/com/cloud/dc/dao/PodVlanDaoImpl.java b/core/src/com/cloud/dc/dao/PodVlanDaoImpl.java index f29e7bd7070..cfe3375f884 100755 --- a/core/src/com/cloud/dc/dao/PodVlanDaoImpl.java +++ b/core/src/com/cloud/dc/dao/PodVlanDaoImpl.java @@ -42,7 +42,7 @@ public class PodVlanDaoImpl extends GenericDaoBase implements G public List listAllocatedVnets(long podId) { SearchCriteria sc = PodSearchAllocated.create(); sc.setParameters("podId", podId); - return listActiveBy(sc); + return listBy(sc); } public void add(long podId, int start, int end) { @@ -106,7 +106,7 @@ public class PodVlanDaoImpl extends GenericDaoBase implements G sc.setParameters("podId", podId); sc.setParameters("account", accountId); - PodVlanVO vo = findOneBy(sc); + PodVlanVO vo = findOneIncludingRemovedBy(sc); if (vo == null) { return; } diff --git a/core/src/com/cloud/dc/dao/PodVlanMapDaoImpl.java b/core/src/com/cloud/dc/dao/PodVlanMapDaoImpl.java index 617a084a64b..00410a4002b 100644 --- a/core/src/com/cloud/dc/dao/PodVlanMapDaoImpl.java +++ b/core/src/com/cloud/dc/dao/PodVlanMapDaoImpl.java @@ -38,14 +38,14 @@ public class PodVlanMapDaoImpl extends GenericDaoBase implem public List listPodVlanMapsByPod(long podId) { SearchCriteria sc = PodSearch.create(); sc.setParameters("podId", podId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override public List listPodVlanMapsByVlan(long vlanDbId) { SearchCriteria sc = VlanSearch.create(); sc.setParameters("vlanDbId", vlanDbId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -53,7 +53,7 @@ public class PodVlanMapDaoImpl extends GenericDaoBase implem SearchCriteria sc = PodVlanSearch.create(); sc.setParameters("podId", podId); sc.setParameters("vlanDbId", vlanDbId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } public PodVlanMapDaoImpl() { diff --git a/core/src/com/cloud/dc/dao/VlanDaoImpl.java b/core/src/com/cloud/dc/dao/VlanDaoImpl.java index d98e04edc21..3d19ecd2949 100644 --- a/core/src/com/cloud/dc/dao/VlanDaoImpl.java +++ b/core/src/com/cloud/dc/dao/VlanDaoImpl.java @@ -64,14 +64,14 @@ public class VlanDaoImpl extends GenericDaoBase implements VlanDao SearchCriteria sc = ZoneVlanIdSearch.create(); sc.setParameters("zoneId", zoneId); sc.setParameters("vlanId", vlanId); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override public List findByZone(long zoneId) { SearchCriteria sc = ZoneSearch.create(); sc.setParameters("zoneId", zoneId); - return listBy(sc); + return listIncludingRemovedBy(sc); } public VlanDaoImpl() { @@ -105,7 +105,7 @@ public class VlanDaoImpl extends GenericDaoBase implements VlanDao SearchCriteria sc = ZoneTypeSearch.create(); sc.setParameters("zoneId", zoneId); sc.setParameters("vlanType", vlanType); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -248,7 +248,7 @@ public class VlanDaoImpl extends GenericDaoBase implements VlanDao sc.setParameters("zoneId", zoneId); sc.setParameters("vlanType", VlanType.DirectAttached); - return listBy(sc).size() > 0; + return listIncludingRemovedBy(sc).size() > 0; } @@ -260,7 +260,7 @@ public class VlanDaoImpl extends GenericDaoBase implements VlanDao sc.setParameters("vlanType", VlanType.DirectAttached); sc.setJoinParameters("vlan", "podId", podId); - VlanVO vlan = findOneBy(sc); + VlanVO vlan = findOneIncludingRemovedBy(sc); if (vlan == null) { return null; } diff --git a/core/src/com/cloud/domain/dao/DomainDaoImpl.java b/core/src/com/cloud/domain/dao/DomainDaoImpl.java index 118c4c853dc..02284978839 100644 --- a/core/src/com/cloud/domain/dao/DomainDaoImpl.java +++ b/core/src/com/cloud/domain/dao/DomainDaoImpl.java @@ -188,7 +188,7 @@ public class DomainDaoImpl extends GenericDaoBase implements Dom public DomainVO findDomainByPath(String domainPath) { SearchCriteria sc = createSearchCriteria(); sc.addAnd("path", SearchCriteria.Op.EQ, domainPath); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override @@ -205,7 +205,7 @@ public class DomainDaoImpl extends GenericDaoBase implements Dom SearchCriteria sc = DomainPairSearch.create(); sc.setParameters("id", parentId, childId); - List domainPair = listActiveBy(sc); + List domainPair = listBy(sc); if ((domainPair != null) && (domainPair.size() == 2)) { DomainVO d1 = domainPair.get(0); diff --git a/core/src/com/cloud/event/dao/EventDaoImpl.java b/core/src/com/cloud/event/dao/EventDaoImpl.java index 45b34d5c3e1..a50c37cbd4b 100644 --- a/core/src/com/cloud/event/dao/EventDaoImpl.java +++ b/core/src/com/cloud/event/dao/EventDaoImpl.java @@ -53,7 +53,7 @@ public class EventDaoImpl extends GenericDaoBase implements Event @Override public List searchAllEvents(SearchCriteria sc, Filter filter) { - return listBy(sc, filter); + return listIncludingRemovedBy(sc, filter); } @Override @@ -61,7 +61,7 @@ public class EventDaoImpl extends GenericDaoBase implements Event if (oldTime == null) return null; SearchCriteria sc = createSearchCriteria(); sc.addAnd("createDate", SearchCriteria.Op.LT, oldTime); - return listBy(sc, null); + return listIncludingRemovedBy(sc, null); } @@ -72,7 +72,7 @@ public class EventDaoImpl extends GenericDaoBase implements Event sc.setParameters("state", EventState.Completed); sc.setParameters("startId", 0); sc.setParameters("createDate", minTime, maxTime); - return listBy(sc, null); + return listIncludingRemovedBy(sc, null); } @Override @@ -80,6 +80,6 @@ public class EventDaoImpl extends GenericDaoBase implements Event SearchCriteria sc = CompletedEventSearch.create(); sc.setParameters("state", EventState.Completed); sc.setParameters("startId", startId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } } diff --git a/core/src/com/cloud/ha/dao/HighAvailabilityDaoImpl.java b/core/src/com/cloud/ha/dao/HighAvailabilityDaoImpl.java index db9000a82a1..8d9077c2704 100644 --- a/core/src/com/cloud/ha/dao/HighAvailabilityDaoImpl.java +++ b/core/src/com/cloud/ha/dao/HighAvailabilityDaoImpl.java @@ -120,7 +120,7 @@ public class HighAvailabilityDaoImpl extends GenericDaoBase implem public List findPreviousHA(final long instanceId) { final SearchCriteria sc = PreviousInstanceSearch.create(); sc.setParameters("instance", instanceId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -152,7 +152,7 @@ public class HighAvailabilityDaoImpl extends GenericDaoBase implem sc.setParameters("type", type); sc.setParameters("step", Step.Done, Step.Cancelled, Step.Error); - return listActiveBy(sc); + return listBy(sc); } @@ -169,6 +169,6 @@ public class HighAvailabilityDaoImpl extends GenericDaoBase implem SearchCriteria sc = PreviousWorkSearch.create(); sc.setParameters("instance", instanceId); sc.setParameters("type", type); - return listActiveBy(sc, null).size() > 0; + return listBy(sc, null).size() > 0; } } \ No newline at end of file diff --git a/core/src/com/cloud/host/dao/DetailsDaoImpl.java b/core/src/com/cloud/host/dao/DetailsDaoImpl.java index 25392c2d320..f4c95e82d11 100644 --- a/core/src/com/cloud/host/dao/DetailsDaoImpl.java +++ b/core/src/com/cloud/host/dao/DetailsDaoImpl.java @@ -51,7 +51,7 @@ public class DetailsDaoImpl extends GenericDaoBase implements De sc.setParameters("hostId", hostId); sc.setParameters("name", name); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override diff --git a/core/src/com/cloud/host/dao/HostDaoImpl.java b/core/src/com/cloud/host/dao/HostDaoImpl.java index f858cdd0ef4..01e5c1e173d 100644 --- a/core/src/com/cloud/host/dao/HostDaoImpl.java +++ b/core/src/com/cloud/host/dao/HostDaoImpl.java @@ -219,7 +219,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao SearchCriteria sc = TypeDcSearch.create(); sc.setParameters("type", Host.Type.SecondaryStorage); sc.setParameters("dc", dcId); - List storageHosts = listActiveBy(sc); + List storageHosts = listBy(sc); if (storageHosts == null || storageHosts.size() != 1) { return null; @@ -232,7 +232,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao public List listSecondaryStorageHosts() { SearchCriteria sc = TypeSearch.create(); sc.setParameters("type", Host.Type.SecondaryStorage); - List secondaryStorageHosts = listBy(sc); + List secondaryStorageHosts = listIncludingRemovedBy(sc); return secondaryStorageHosts; } @@ -281,7 +281,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao sc.setParameters("dc", dcId); sc.setParameters("status", Status.Up.toString()); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -290,7 +290,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao sc.setParameters("cluster", clusterId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -300,7 +300,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao sc.setParameters("dc", dcId); sc.setParameters("status", Status.Up.toString()); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -309,7 +309,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao sc.setParameters("dc", dcId); sc.setParameters("privateIpAddress", privateIpAddress); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override @@ -318,7 +318,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao sc.setParameters("dc", dcId); sc.setParameters("storageIpAddress", privateIpAddress); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override @@ -416,7 +416,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao @Override public HostVO findByGuid(String guid) { SearchCriteria sc = GuidSearch.create("guid", guid); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override @@ -425,13 +425,13 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao sc.setParameters("ping", timeout); sc.setParameters("state", Status.Up.toString(), Status.Updating.toString(), Status.Disconnected.toString(), Status.Down.toString()); - return listActiveBy(sc); + return listBy(sc); } public List findHostsLike(String hostName) { SearchCriteria sc = NameLikeSearch.create(); sc.setParameters("name", "%" + hostName + "%"); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -439,25 +439,25 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao SearchCriteria sc = LastPingedSearch2.create(); sc.setParameters("ping", timeout); sc.setParameters("type", type.toString()); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByDataCenter(long dcId) { SearchCriteria sc = DcSearch.create("dc", dcId); - return listActiveBy(sc); + return listBy(sc); } public List listByHostPod(long podId) { SearchCriteria sc = PodSearch.create("pod", podId); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByStatus(Status... status) { SearchCriteria sc = StatusSearch.create(); sc.setParameters("status", (Object[])status); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -466,7 +466,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao sc.setParameters("type", type.toString()); sc.setParameters("dc", dcId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -478,7 +478,7 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao sc.addAnd("routing_capbable", SearchCriteria.Op.EQ, Integer.valueOf(1)); } - return listBy(sc); + return listIncludingRemovedBy(sc); } protected void saveDetails(HostVO host) { diff --git a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index 2eeddb267dd..142463ff42a 100644 --- a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -172,7 +172,7 @@ import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.NetUtils; import com.cloud.utils.script.Script; import com.cloud.vm.ConsoleProxyVO; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.DomainRouter; import com.cloud.vm.SecondaryStorageVmVO; import com.cloud.vm.State; @@ -4729,7 +4729,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR @Override public CreateAnswer execute(CreateCommand cmd) { StoragePoolTO pool = cmd.getPool(); - DiskCharacteristics dskch = cmd.getDiskCharacteristics(); + DiskProfile dskch = cmd.getDiskCharacteristics(); VDI vdi = null; Connection conn = getConnection(); diff --git a/core/src/com/cloud/maid/dao/StackMaidDaoImpl.java b/core/src/com/cloud/maid/dao/StackMaidDaoImpl.java index 9841b3ce85d..072ff6b50cd 100644 --- a/core/src/com/cloud/maid/dao/StackMaidDaoImpl.java +++ b/core/src/com/cloud/maid/dao/StackMaidDaoImpl.java @@ -58,7 +58,7 @@ public class StackMaidDaoImpl extends GenericDaoBase implemen sc.setParameters("threadId", Thread.currentThread().getId()); Filter filter = new Filter(StackMaidVO.class, "seq", false, 0L, (long)1); - List l = listBy(sc, filter); + List l = listIncludingRemovedBy(sc, filter); if(l != null && l.size() > 0) { expunge(l.get(0).getId()); return l.get(0); diff --git a/core/src/com/cloud/network/dao/FirewallRulesDaoImpl.java b/core/src/com/cloud/network/dao/FirewallRulesDaoImpl.java index e714f351d22..55bce08b553 100644 --- a/core/src/com/cloud/network/dao/FirewallRulesDaoImpl.java +++ b/core/src/com/cloud/network/dao/FirewallRulesDaoImpl.java @@ -143,7 +143,7 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i SearchCriteria sc = FWByIPAndForwardingSearch.create(); sc.setParameters("publicIpAddress", publicIPAddress); sc.setParameters("forwarding", forwarding); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -199,14 +199,14 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i public List listIPForwarding(String publicIPAddress) { SearchCriteria sc = FWByIPSearch.create(); sc.setParameters("publicIpAddress", publicIPAddress); - return listActiveBy(sc); + return listBy(sc); } @Override public List listIPForwardingForUpdate(String publicIPAddress) { SearchCriteria sc = FWByIPSearch.create(); sc.setParameters("publicIpAddress", publicIPAddress); - return listActiveBy(sc, null); + return listBy(sc, null); } @Override @@ -234,7 +234,7 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i sc.setParameters("publicIpAddress", publicIp); sc.setParameters("publicPort", publicPort); sc.setParameters("algorithm", algo); - return listActiveBy(sc, null); + return listBy(sc, null); } @Override @@ -245,7 +245,7 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i sc.setParameters("publicPort", port); sc.setParameters("forwarding", forwarding); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -270,7 +270,7 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i sc.setParameters("publicIpAddress", publicIpAddress); sc.setParameters("groupId", securityGroupId); sc.setParameters("forwarding", false); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -278,7 +278,7 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i SearchCriteria sc = FWByGroupId.create(); sc.setParameters("groupId", securityGroupId); sc.setParameters("forwarding", Boolean.TRUE); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -287,7 +287,7 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i sc.setParameters("publicIpAddress", publicIPAddress); sc.setParameters("forwarding", forwarding); sc.addAnd("privateIpAddress", SearchCriteria.Op.EQ, privateIp); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -295,7 +295,7 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i SearchCriteria sc = FWByGroupId.create(); sc.setParameters("groupId", loadBalancerId); sc.setParameters("forwarding", Boolean.FALSE); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -304,7 +304,7 @@ public class FirewallRulesDaoImpl extends GenericDaoBase i sc.setParameters("groupId", groupId); sc.setParameters("privateIpAddress", privateIp); sc.setParameters("forwarding", forwarding); - return findOneActiveBy(sc); + return findOneBy(sc); } } diff --git a/core/src/com/cloud/network/dao/IPAddressDaoImpl.java b/core/src/com/cloud/network/dao/IPAddressDaoImpl.java index cbb58710833..c7cefff591f 100644 --- a/core/src/com/cloud/network/dao/IPAddressDaoImpl.java +++ b/core/src/com/cloud/network/dao/IPAddressDaoImpl.java @@ -172,14 +172,14 @@ public class IPAddressDaoImpl extends GenericDaoBase implem public List listByAccount(long accountId) { SearchCriteria sc = AccountSearch.create(); sc.setParameters("accountId", accountId); - return listBy(sc); + return listIncludingRemovedBy(sc); } public List listByDcIdIpAddress(long dcId, String ipAddress) { SearchCriteria sc = DcIpSearch.create(); sc.setParameters("dataCenterId", dcId); sc.setParameters("ipAddress", ipAddress); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @DB diff --git a/core/src/com/cloud/network/dao/LoadBalancerDaoImpl.java b/core/src/com/cloud/network/dao/LoadBalancerDaoImpl.java index 25d5eb42b33..a9dcda58557 100644 --- a/core/src/com/cloud/network/dao/LoadBalancerDaoImpl.java +++ b/core/src/com/cloud/network/dao/LoadBalancerDaoImpl.java @@ -89,7 +89,7 @@ public class LoadBalancerDaoImpl extends GenericDaoBase im public List listByIpAddress(String ipAddress) { SearchCriteria sc = ListByIp.create(); sc.setParameters("ipAddress", ipAddress); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -97,7 +97,7 @@ public class LoadBalancerDaoImpl extends GenericDaoBase im SearchCriteria sc = IpAndPublicPortSearch.create(); sc.setParameters("ipAddress", ipAddress); sc.setParameters("publicPort", publicPort); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override @@ -105,6 +105,6 @@ public class LoadBalancerDaoImpl extends GenericDaoBase im SearchCriteria sc = AccountAndNameSearch.create(); sc.setParameters("accountId", accountId); sc.setParameters("name", name); - return findOneActiveBy(sc); + return findOneBy(sc); } } diff --git a/core/src/com/cloud/network/dao/LoadBalancerVMMapDaoImpl.java b/core/src/com/cloud/network/dao/LoadBalancerVMMapDaoImpl.java index 890f5cca4f0..ca9c6915dc4 100644 --- a/core/src/com/cloud/network/dao/LoadBalancerVMMapDaoImpl.java +++ b/core/src/com/cloud/network/dao/LoadBalancerVMMapDaoImpl.java @@ -54,7 +54,7 @@ public class LoadBalancerVMMapDaoImpl extends GenericDaoBase sc = createSearchCriteria(); sc.addAnd("instanceId", SearchCriteria.Op.EQ, instanceId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -62,7 +62,7 @@ public class LoadBalancerVMMapDaoImpl extends GenericDaoBase sc = createSearchCriteria(); sc.addAnd("loadBalancerId", SearchCriteria.Op.EQ, loadBalancerId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -71,6 +71,6 @@ public class LoadBalancerVMMapDaoImpl extends GenericDaoBase listBySecurityGroupId(long securityGroupId) { SearchCriteria sc = SecurityGroupIdSearch.create(); sc.setParameters("securityGroupId", securityGroupId); - return listActiveBy(sc); + return listBy(sc); } public void deleteBySecurityGroup(long securityGroupId) { diff --git a/core/src/com/cloud/network/dao/SecurityGroupDaoImpl.java b/core/src/com/cloud/network/dao/SecurityGroupDaoImpl.java index 3e3b68498a7..a865ce82273 100644 --- a/core/src/com/cloud/network/dao/SecurityGroupDaoImpl.java +++ b/core/src/com/cloud/network/dao/SecurityGroupDaoImpl.java @@ -49,7 +49,7 @@ public class SecurityGroupDaoImpl extends GenericDaoBase public List listByAccountId(long accountId) { SearchCriteria sc = AccountIdSearch.create(); sc.setParameters("accountId", accountId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -63,7 +63,7 @@ public class SecurityGroupDaoImpl extends GenericDaoBase sc.addAnd("accountId", SearchCriteria.Op.NULL); } - List securityGroups = listActiveBy(sc); + List securityGroups = listBy(sc); return ((securityGroups != null) && !securityGroups.isEmpty()); } @@ -74,7 +74,7 @@ public class SecurityGroupDaoImpl extends GenericDaoBase if (accountId != null) { SearchCriteria sc = createSearchCriteria(); sc.addAnd("accountId", SearchCriteria.Op.EQ, accountId); - List accountGroups = listActiveBy(sc); + List accountGroups = listBy(sc); availableGroups.addAll(accountGroups); } else if (domainId != null) { while (domainId != null) { @@ -83,7 +83,7 @@ public class SecurityGroupDaoImpl extends GenericDaoBase if (accountId != null) { sc.addAnd("accountId", SearchCriteria.Op.NEQ, accountId); // we added the account specific ones above } - List domainGroups = listActiveBy(sc); + List domainGroups = listBy(sc); availableGroups.addAll(domainGroups); // get the parent domain, repeat the loop diff --git a/core/src/com/cloud/network/dao/SecurityGroupVMMapDaoImpl.java b/core/src/com/cloud/network/dao/SecurityGroupVMMapDaoImpl.java index c8da6f4da18..05be43c5002 100644 --- a/core/src/com/cloud/network/dao/SecurityGroupVMMapDaoImpl.java +++ b/core/src/com/cloud/network/dao/SecurityGroupVMMapDaoImpl.java @@ -57,28 +57,28 @@ public class SecurityGroupVMMapDaoImpl extends GenericDaoBase sc = ListByIpAndVmId.create(); sc.setParameters("ipAddress", ipAddress); sc.setParameters("instanceId", vmId); - return listActiveBy(sc); + return listBy(sc); } @Override public List listBySecurityGroup(long securityGroupId) { SearchCriteria sc = ListBySecurityGroup.create(); sc.setParameters("securityGroupId", securityGroupId); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByIp(String ipAddress) { SearchCriteria sc = ListByIp.create(); sc.setParameters("ipAddress", ipAddress); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByInstanceId(long vmId) { SearchCriteria sc = ListByVmId.create(); sc.setParameters("instanceId", vmId); - return listActiveBy(sc); + return listBy(sc); } } diff --git a/core/src/com/cloud/network/security/dao/IngressRuleDaoImpl.java b/core/src/com/cloud/network/security/dao/IngressRuleDaoImpl.java index d2fcf4b147c..3966131a3fb 100644 --- a/core/src/com/cloud/network/security/dao/IngressRuleDaoImpl.java +++ b/core/src/com/cloud/network/security/dao/IngressRuleDaoImpl.java @@ -73,7 +73,7 @@ public class IngressRuleDaoImpl extends GenericDaoBase impl public List listByNetworkGroupId(long networkGroupId) { SearchCriteria sc = networkGroupIdSearch.create(); sc.setParameters("networkGroupId", networkGroupId); - return listActiveBy(sc); + return listBy(sc); } public int deleteByNetworkGroup(long networkGroupId) { @@ -86,7 +86,7 @@ public class IngressRuleDaoImpl extends GenericDaoBase impl public List listByAllowedNetworkGroupId(long networkGroupId) { SearchCriteria sc = allowedNetworkGroupIdSearch.create(); sc.setParameters("allowedNetworkId", networkGroupId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -98,7 +98,7 @@ public class IngressRuleDaoImpl extends GenericDaoBase impl sc.setParameters("startPort", startPort); sc.setParameters("endPort", endPort); sc.setParameters("cidr", cidr); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -109,7 +109,7 @@ public class IngressRuleDaoImpl extends GenericDaoBase impl sc.setParameters("startPort", startPort); sc.setParameters("endPort", endPort); sc.setJoinParameters("groupName", "groupName", networkGroup); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -161,6 +161,6 @@ public class IngressRuleDaoImpl extends GenericDaoBase impl sc.setParameters("endPort", endPort); sc.setParameters("allowedNetworkId", allowedGroupId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } } diff --git a/core/src/com/cloud/network/security/dao/NetworkGroupDaoImpl.java b/core/src/com/cloud/network/security/dao/NetworkGroupDaoImpl.java index 2513eba3b00..60459094412 100644 --- a/core/src/com/cloud/network/security/dao/NetworkGroupDaoImpl.java +++ b/core/src/com/cloud/network/security/dao/NetworkGroupDaoImpl.java @@ -62,7 +62,7 @@ public class NetworkGroupDaoImpl extends GenericDaoBase im public List listByAccountId(long accountId) { SearchCriteria sc = AccountIdSearch.create(); sc.setParameters("accountId", accountId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -76,7 +76,7 @@ public class NetworkGroupDaoImpl extends GenericDaoBase im sc.addAnd("accountId", SearchCriteria.Op.NULL); } - List securityGroups = listActiveBy(sc); + List securityGroups = listBy(sc); return ((securityGroups != null) && !securityGroups.isEmpty()); } @@ -87,7 +87,7 @@ public class NetworkGroupDaoImpl extends GenericDaoBase im if (accountId != null) { SearchCriteria sc = createSearchCriteria(); sc.addAnd("accountId", SearchCriteria.Op.EQ, accountId); - List accountGroups = listActiveBy(sc); + List accountGroups = listBy(sc); availableGroups.addAll(accountGroups); } else if (domainId != null) { while (domainId != null) { @@ -96,7 +96,7 @@ public class NetworkGroupDaoImpl extends GenericDaoBase im if (accountId != null) { sc.addAnd("accountId", SearchCriteria.Op.NEQ, accountId); // we added the account specific ones above } - List domainGroups = listActiveBy(sc); + List domainGroups = listBy(sc); availableGroups.addAll(domainGroups); // get the parent domain, repeat the loop @@ -114,7 +114,7 @@ public class NetworkGroupDaoImpl extends GenericDaoBase im sc.setParameters("accountId", accountId); sc.setParameters("groupName", name); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -124,6 +124,6 @@ public class NetworkGroupDaoImpl extends GenericDaoBase im sc.setParameters("groupNames", (Object [])names); - return listActiveBy(sc); + return listBy(sc); } } diff --git a/core/src/com/cloud/network/security/dao/NetworkGroupRulesDaoImpl.java b/core/src/com/cloud/network/security/dao/NetworkGroupRulesDaoImpl.java index 464cb5e31b6..924bfe23e12 100644 --- a/core/src/com/cloud/network/security/dao/NetworkGroupRulesDaoImpl.java +++ b/core/src/com/cloud/network/security/dao/NetworkGroupRulesDaoImpl.java @@ -47,7 +47,7 @@ public class NetworkGroupRulesDaoImpl extends GenericDaoBase sc = AccountSearch.create(); sc.setParameters("accountId", accountId); - return listActiveBy(sc, searchFilter); + return listBy(sc, searchFilter); } @Override @@ -86,6 +86,6 @@ public class NetworkGroupRulesDaoImpl extends GenericDaoBase sc = ListByIpAndVmId.create(); sc.setParameters("ipAddress", ipAddress); sc.setParameters("instanceId", vmId); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByNetworkGroup(long networkGroupId) { SearchCriteria sc = ListByNetworkGroup.create(); sc.setParameters("networkGroupId", networkGroupId); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByIp(String ipAddress) { SearchCriteria sc = ListByIp.create(); sc.setParameters("ipAddress", ipAddress); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByInstanceId(long vmId) { SearchCriteria sc = ListByVmId.create(); sc.setParameters("instanceId", vmId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -115,7 +115,7 @@ public class NetworkGroupVMMapDaoImpl extends GenericDaoBase sc = ListByNetworkGroupAndStates.create(); sc.setParameters("networkGroupId", networkGroupId); sc.setParameters("states", (Object[])vmStates); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -130,7 +130,7 @@ public class NetworkGroupVMMapDaoImpl extends GenericDaoBase sc = ListByVmIdGroupId.create(); sc.setParameters("networkGroupId", networkGroupId); sc.setParameters("instanceId", instanceId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } } diff --git a/core/src/com/cloud/network/security/dao/NetworkGroupWorkDaoImpl.java b/core/src/com/cloud/network/security/dao/NetworkGroupWorkDaoImpl.java index 1e9f0b0b96e..75b2d2ec370 100644 --- a/core/src/com/cloud/network/security/dao/NetworkGroupWorkDaoImpl.java +++ b/core/src/com/cloud/network/security/dao/NetworkGroupWorkDaoImpl.java @@ -89,7 +89,7 @@ public class NetworkGroupWorkDaoImpl extends GenericDaoBase sc = taken?VmIdTakenSearch.create():VmIdUnTakenSearch.create(); sc.setParameters("vmId", vmId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -161,7 +161,7 @@ public class NetworkGroupWorkDaoImpl extends GenericDaoBase sc = VmIdStepSearch.create(); sc.setParameters("vmId", vmId); sc.setParameters("step", step); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -196,7 +196,7 @@ public class NetworkGroupWorkDaoImpl extends GenericDaoBase result = listBy(sc); + List result = listIncludingRemovedBy(sc); NetworkGroupWorkVO work = createForUpdate(); work.setStep(Step.Error); diff --git a/core/src/com/cloud/network/security/dao/VmRulesetLogDaoImpl.java b/core/src/com/cloud/network/security/dao/VmRulesetLogDaoImpl.java index 469012ed53b..cb536c2c421 100644 --- a/core/src/com/cloud/network/security/dao/VmRulesetLogDaoImpl.java +++ b/core/src/com/cloud/network/security/dao/VmRulesetLogDaoImpl.java @@ -42,7 +42,7 @@ public class VmRulesetLogDaoImpl extends GenericDaoBase im public VmRulesetLogVO findByVmId(long vmId) { SearchCriteria sc = VmIdSearch.create(); sc.setParameters("vmId", vmId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } diff --git a/core/src/com/cloud/offerings/NetworkOfferingVO.java b/core/src/com/cloud/offerings/NetworkOfferingVO.java index 2b8404b78f1..6a0a4339501 100644 --- a/core/src/com/cloud/offerings/NetworkOfferingVO.java +++ b/core/src/com/cloud/offerings/NetworkOfferingVO.java @@ -164,4 +164,10 @@ public class NetworkOfferingVO implements NetworkOffering { public NetworkOfferingVO(String name, TrafficType trafficType, GuestIpType type) { this(name, "System Offering for " + name, trafficType, type, true, null, null, null); } + + @Override + public String toString() { + StringBuilder buf = new StringBuilder("[Network Offering ["); + return buf.append(id).append("-").append(trafficType).append("-").append(name).append("-").append(guestIpType).append("]").toString(); + } } diff --git a/core/src/com/cloud/storage/dao/DiskOfferingDaoImpl.java b/core/src/com/cloud/storage/dao/DiskOfferingDaoImpl.java index 120d95cc743..ae6f587d5fa 100644 --- a/core/src/com/cloud/storage/dao/DiskOfferingDaoImpl.java +++ b/core/src/com/cloud/storage/dao/DiskOfferingDaoImpl.java @@ -58,14 +58,14 @@ public class DiskOfferingDaoImpl extends GenericDaoBase im SearchCriteria sc = DomainIdSearch.create(); sc.setParameters("domainId", domainId); // FIXME: this should not be exact match, but instead should find all available disk offerings from parent domains - return listActiveBy(sc); + return listBy(sc); } @Override public List findPrivateDiskOffering() { SearchCriteria sc = PrivateDiskOfferingSearch.create(); sc.setParameters("diskSize", 0); - return listActiveBy(sc); + return listBy(sc); } @Override diff --git a/core/src/com/cloud/storage/dao/DiskTemplateDaoImpl.java b/core/src/com/cloud/storage/dao/DiskTemplateDaoImpl.java index 4b2a4b96ab0..7e0f68e75cf 100755 --- a/core/src/com/cloud/storage/dao/DiskTemplateDaoImpl.java +++ b/core/src/com/cloud/storage/dao/DiskTemplateDaoImpl.java @@ -46,7 +46,7 @@ public class DiskTemplateDaoImpl extends GenericDaoBase im sc.setParameters("type", type); sc.setParameters("size", size); - List vos = listActiveBy(sc); + List vos = listBy(sc); assert(vos.size() <= 1); // Should only have one. If more than one something is wrong. return vos.size() == 0 ? null : vos.get(0); } diff --git a/core/src/com/cloud/storage/dao/LaunchPermissionDaoImpl.java b/core/src/com/cloud/storage/dao/LaunchPermissionDaoImpl.java index fca0636b289..990523bb6da 100644 --- a/core/src/com/cloud/storage/dao/LaunchPermissionDaoImpl.java +++ b/core/src/com/cloud/storage/dao/LaunchPermissionDaoImpl.java @@ -100,7 +100,7 @@ public class LaunchPermissionDaoImpl extends GenericDaoBase sc = TemplateAndAccountSearch.create(); sc.setParameters("templateId", templateId); sc.setParameters("accountId", accountId); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override @@ -153,6 +153,6 @@ public class LaunchPermissionDaoImpl extends GenericDaoBase findByTemplate(long templateId) { SearchCriteria sc = TemplateIdSearch.create(); sc.setParameters("templateId", templateId); - return listActiveBy(sc); + return listBy(sc); } } diff --git a/core/src/com/cloud/storage/dao/SnapshotDaoImpl.java b/core/src/com/cloud/storage/dao/SnapshotDaoImpl.java index da7157c90d9..67c59e2ed85 100644 --- a/core/src/com/cloud/storage/dao/SnapshotDaoImpl.java +++ b/core/src/com/cloud/storage/dao/SnapshotDaoImpl.java @@ -40,7 +40,7 @@ public class SnapshotDaoImpl extends GenericDaoBase implements public SnapshotVO findNextSnapshot(long snapshotId) { SearchCriteria sc = ParentIdSearch.create(); sc.setParameters("prevSnapshotId", snapshotId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -52,7 +52,7 @@ public class SnapshotDaoImpl extends GenericDaoBase implements public List listByVolumeId(Filter filter, long volumeId ) { SearchCriteria sc = VolumeIdSearch.create(); sc.setParameters("volumeId", volumeId); - return listActiveBy(sc, filter); + return listBy(sc, filter); } protected SnapshotDaoImpl() { diff --git a/core/src/com/cloud/storage/dao/SnapshotPolicyDaoImpl.java b/core/src/com/cloud/storage/dao/SnapshotPolicyDaoImpl.java index 4a4091d52f3..56d839ddbd4 100644 --- a/core/src/com/cloud/storage/dao/SnapshotPolicyDaoImpl.java +++ b/core/src/com/cloud/storage/dao/SnapshotPolicyDaoImpl.java @@ -40,7 +40,7 @@ public class SnapshotPolicyDaoImpl extends GenericDaoBase sc = VolumeIdIntervalSearch.create(); sc.setParameters("volumeId", volumeId); sc.setParameters("interval", interval); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -53,7 +53,7 @@ public class SnapshotPolicyDaoImpl extends GenericDaoBase sc = VolumeIdSearch.create(); sc.setParameters("volumeId", volumeId); sc.setParameters("active", true); - return listActiveBy(sc, filter); + return listBy(sc, filter); } protected SnapshotPolicyDaoImpl() { @@ -76,6 +76,6 @@ public class SnapshotPolicyDaoImpl extends GenericDaoBase listActivePolicies() { SearchCriteria sc = ActivePolicySearch.create(); sc.setParameters("active", true); - return listBy(sc); + return listIncludingRemovedBy(sc); } } \ No newline at end of file diff --git a/core/src/com/cloud/storage/dao/SnapshotPolicyRefDaoImpl.java b/core/src/com/cloud/storage/dao/SnapshotPolicyRefDaoImpl.java index bdcba8df61a..73479ad727e 100644 --- a/core/src/com/cloud/storage/dao/SnapshotPolicyRefDaoImpl.java +++ b/core/src/com/cloud/storage/dao/SnapshotPolicyRefDaoImpl.java @@ -55,7 +55,7 @@ public class SnapshotPolicyRefDaoImpl extends GenericDaoBase sc = snapPolicy.create(); sc.setParameters("snapshotId", snapshotId); sc.setParameters("policyId", policyId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -70,7 +70,7 @@ public class SnapshotPolicyRefDaoImpl extends GenericDaoBase listBySnapshotId(long snapshotId) { SearchCriteria sc = snapSearch.create(); sc.setParameters("snapshotId", snapshotId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -78,6 +78,6 @@ public class SnapshotPolicyRefDaoImpl extends GenericDaoBase sc = policySearch.create(); sc.setParameters("policyId", policyId); sc.setParameters("volumeId", volumeId); - return listBy(sc); + return listIncludingRemovedBy(sc); } } \ No newline at end of file diff --git a/core/src/com/cloud/storage/dao/SnapshotScheduleDaoImpl.java b/core/src/com/cloud/storage/dao/SnapshotScheduleDaoImpl.java index dc31230cd5b..d358976b46d 100644 --- a/core/src/com/cloud/storage/dao/SnapshotScheduleDaoImpl.java +++ b/core/src/com/cloud/storage/dao/SnapshotScheduleDaoImpl.java @@ -64,7 +64,7 @@ public class SnapshotScheduleDaoImpl extends GenericDaoBase snapshotSchedules = listActiveBy(sc); + List snapshotSchedules = listBy(sc); // This will return only one schedule because of a DB uniqueness constraint. assert (snapshotSchedules.size() <= 1); if (snapshotSchedules.isEmpty()) { diff --git a/core/src/com/cloud/storage/dao/StoragePoolDaoImpl.java b/core/src/com/cloud/storage/dao/StoragePoolDaoImpl.java index a5d716b16ae..23531318350 100644 --- a/core/src/com/cloud/storage/dao/StoragePoolDaoImpl.java +++ b/core/src/com/cloud/storage/dao/StoragePoolDaoImpl.java @@ -139,7 +139,7 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp public List findPoolByName(String name) { SearchCriteria sc = NameSearch.create(); sc.setParameters("name", name); - return listBy(sc); + return listIncludingRemovedBy(sc); } @@ -147,14 +147,14 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp public StoragePoolVO findPoolByUUID(String uuid) { SearchCriteria sc = UUIDSearch.create(); sc.setParameters("uuid", uuid); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override public List findIfDuplicatePoolsExistByUUID(String uuid) { SearchCriteria sc = UUIDSearch.create(); sc.setParameters("uuid", uuid); - return listActiveBy(sc); + return listBy(sc); } @@ -162,7 +162,7 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp public List listByDataCenterId(long datacenterId) { SearchCriteria sc = DatacenterSearch.create(); sc.setParameters("datacenterId", datacenterId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @@ -186,7 +186,7 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp public List listByStorageHost(String hostFqdnOrIp) { SearchCriteria sc = HostSearch.create(); sc.setParameters("host", hostFqdnOrIp); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -204,7 +204,7 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp sc.setParameters("datacenterId", datacenterId); sc.setParameters("podId", podId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -215,12 +215,12 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp sc.setParameters("podId", podId); sc.setParameters("cluster", clusterId); - return listActiveBy(sc); + return listBy(sc); } else { SearchCriteria sc = DcPodAnyClusterSearch.create(); sc.setParameters("datacenterId", datacenterId); sc.setParameters("podId", podId); - return listActiveBy(sc); + return listBy(sc); } } @@ -230,7 +230,7 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp sc.setParameters("hostAddress", host); sc.setParameters("path", path); - return listBy(sc); + return listIncludingRemovedBy(sc); } public StoragePoolVO listById(Integer id) @@ -238,7 +238,7 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp SearchCriteria sc = HostSearch.create(); sc.setParameters("id", id); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @DB diff --git a/core/src/com/cloud/storage/dao/StoragePoolDetailsDaoImpl.java b/core/src/com/cloud/storage/dao/StoragePoolDetailsDaoImpl.java index 520ecbab3a2..97e3b19a529 100644 --- a/core/src/com/cloud/storage/dao/StoragePoolDetailsDaoImpl.java +++ b/core/src/com/cloud/storage/dao/StoragePoolDetailsDaoImpl.java @@ -61,7 +61,7 @@ public class StoragePoolDetailsDaoImpl extends GenericDaoBase sc = PoolSearch.create(); sc.setParameters("pool", poolId); - List details = listActiveBy(sc); + List details = listBy(sc); Map detailsMap = new HashMap(); for (StoragePoolDetailVO detail : details) { detailsMap.put(detail.getName(), detail.getValue()); diff --git a/core/src/com/cloud/storage/dao/StoragePoolHostDaoImpl.java b/core/src/com/cloud/storage/dao/StoragePoolHostDaoImpl.java index 35891cb95ca..6b1dbcb0d8e 100644 --- a/core/src/com/cloud/storage/dao/StoragePoolHostDaoImpl.java +++ b/core/src/com/cloud/storage/dao/StoragePoolHostDaoImpl.java @@ -91,14 +91,14 @@ public class StoragePoolHostDaoImpl extends GenericDaoBase listByPoolId(long id) { SearchCriteria sc = PoolSearch.create(); sc.setParameters("pool_id", id); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override public List listByHostId(long hostId) { SearchCriteria sc = HostSearch.create(); sc.setParameters("host_id", hostId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -106,7 +106,7 @@ public class StoragePoolHostDaoImpl extends GenericDaoBase sc = PoolHostSearch.create(); sc.setParameters("pool_id", poolId); sc.setParameters("host_id", hostId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override diff --git a/core/src/com/cloud/storage/dao/VMTemplateDaoImpl.java b/core/src/com/cloud/storage/dao/VMTemplateDaoImpl.java index aee78a8e79b..ed62b751e5f 100644 --- a/core/src/com/cloud/storage/dao/VMTemplateDaoImpl.java +++ b/core/src/com/cloud/storage/dao/VMTemplateDaoImpl.java @@ -74,35 +74,35 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem public List listByPublic() { SearchCriteria sc = PublicSearch.create(); sc.setParameters("public", 1); - return listActiveBy(sc); + return listBy(sc); } @Override public VMTemplateVO findByName(String templateName) { SearchCriteria sc = UniqueNameSearch.create(); sc.setParameters("uniqueName", templateName); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override public VMTemplateVO findByTemplateName(String templateName) { SearchCriteria sc = NameSearch.create(); sc.setParameters("name", templateName); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override public VMTemplateVO findRoutingTemplate() { SearchCriteria sc = UniqueNameSearch.create(); sc.setParameters("uniqueName", routerTmpltName); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override public VMTemplateVO findConsoleProxyTemplate() { SearchCriteria sc = UniqueNameSearch.create(); sc.setParameters("uniqueName", consoleProxyTmpltName); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -110,7 +110,7 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem SearchCriteria sc = createSearchCriteria(); sc.addAnd("ready", SearchCriteria.Op.EQ, true); sc.addAnd("format", SearchCriteria.Op.NEQ, Storage.ImageFormat.ISO); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -123,14 +123,14 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem sc.addAnd("accountId", SearchCriteria.Op.EQ, accountId); if (path != null) sc.addAnd("path", SearchCriteria.Op.EQ, path); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override public List listByAccountId(long accountId) { SearchCriteria sc = AccountIdSearch.create(); sc.setParameters("accountId", accountId); - return listActiveBy(sc); + return listBy(sc); } @Override diff --git a/core/src/com/cloud/storage/dao/VMTemplateHostDaoImpl.java b/core/src/com/cloud/storage/dao/VMTemplateHostDaoImpl.java index c584539c99e..83d2a15a7de 100755 --- a/core/src/com/cloud/storage/dao/VMTemplateHostDaoImpl.java +++ b/core/src/com/cloud/storage/dao/VMTemplateHostDaoImpl.java @@ -113,7 +113,8 @@ public class VMTemplateHostDaoImpl extends GenericDaoBase listByHostId(long id) { SearchCriteria sc = HostSearch.create(); sc.setParameters("host_id", id); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -146,14 +147,14 @@ public class VMTemplateHostDaoImpl extends GenericDaoBase sc = TemplateSearch.create(); sc.setParameters("template_id", templateId); sc.setParameters("destroyed", false); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override public List listByOnlyTemplateId(long templateId) { SearchCriteria sc = TemplateSearch.create(); sc.setParameters("template_id", templateId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -161,17 +162,15 @@ public class VMTemplateHostDaoImpl extends GenericDaoBase sc = HostTemplateSearch.create(); sc.setParameters("host_id", hostId); sc.setParameters("template_id", templateId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } - - @Override public List listByTemplateStatus(long templateId, VMTemplateHostVO.Status downloadState) { SearchCriteria sc = TemplateStatusSearch.create(); sc.setParameters("template_id", templateId); sc.setParameters("download_state", downloadState.toString()); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -257,7 +256,7 @@ public class VMTemplateHostDaoImpl extends GenericDaoBase sc = HostTemplateSearch.create(); sc.setParameters("host_id", hostId); sc.setParameters("template_id", templateId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -273,7 +272,7 @@ public class VMTemplateHostDaoImpl extends GenericDaoBase sc = PoolTemplateSearch.create(); sc.setParameters("pool_id", poolId); sc.setParameters("template_id", templateId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -281,7 +280,7 @@ public class VMTemplateHostDaoImpl extends GenericDaoBase sc = HostDestroyedSearch.create(); sc.setParameters("host_id", hostId); sc.setParameters("destroyed", true); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -290,7 +289,7 @@ public class VMTemplateHostDaoImpl extends GenericDaoBase listByPoolId(long id) { SearchCriteria sc = PoolSearch.create(); sc.setParameters("pool_id", id); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override public List listByTemplateId(long templateId) { SearchCriteria sc = TemplateSearch.create(); sc.setParameters("template_id", templateId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -115,7 +115,7 @@ public class VMTemplatePoolDaoImpl extends GenericDaoBase sc = PoolTemplateSearch.create(); sc.setParameters("pool_id", hostId); sc.setParameters("template_id", templateId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -123,7 +123,7 @@ public class VMTemplatePoolDaoImpl extends GenericDaoBase sc = TemplateStatusSearch.create(); sc.setParameters("template_id", templateId); sc.setParameters("download_state", downloadState.toString()); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -132,7 +132,7 @@ public class VMTemplatePoolDaoImpl extends GenericDaoBase listByZoneId(long id) { SearchCriteria sc = ZoneSearch.create(); sc.setParameters("zone_id", id); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override public List listByTemplateId(long templateId) { SearchCriteria sc = TemplateSearch.create(); sc.setParameters("template_id", templateId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -73,7 +73,7 @@ public class VMTemplateZoneDaoImpl extends GenericDaoBase sc = ZoneTemplateSearch.create(); sc.setParameters("zone_id", zoneId); sc.setParameters("template_id", templateId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -81,7 +81,7 @@ public class VMTemplateZoneDaoImpl extends GenericDaoBase sc = ZoneTemplateSearch.create(); sc.setParameters("zone_id", zoneId); sc.setParameters("template_id", templateId); - return listBy(sc); + return listIncludingRemovedBy(sc); } } diff --git a/core/src/com/cloud/storage/dao/VolumeDaoImpl.java b/core/src/com/cloud/storage/dao/VolumeDaoImpl.java index 5af77d46cea..dc82102a1a5 100755 --- a/core/src/com/cloud/storage/dao/VolumeDaoImpl.java +++ b/core/src/com/cloud/storage/dao/VolumeDaoImpl.java @@ -101,7 +101,7 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol SearchCriteria sc = DetachedAccountIdSearch.create(); sc.setParameters("accountId", accountId); sc.setParameters("destroyed", false); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -109,14 +109,14 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol SearchCriteria sc = AccountIdSearch.create(); sc.setParameters("accountId", accountId); sc.setParameters("destroyed", false); - return listActiveBy(sc); + return listBy(sc); } @Override public List findByInstance(long id) { SearchCriteria sc = InstanceIdSearch.create(); sc.setParameters("instanceId", id); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -124,14 +124,14 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol SearchCriteria sc = InstanceAndDeviceIdSearch.create(); sc.setParameters("instanceId", instanceId); sc.setParameters("deviceId", deviceId); - return listActiveBy(sc); + return listBy(sc); } @Override public List findByPoolId(long poolId) { SearchCriteria sc = PoolIdSearch.create(); sc.setParameters("poolId", poolId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -140,7 +140,7 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol sc.setParameters("instanceId", id); sc.setParameters("status", AsyncInstanceCreateStatus.Created); sc.setParameters("destroyed", false); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -148,7 +148,7 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol SearchCriteria sc = InstanceAndTypeSearch.create(); sc.setParameters("instanceId", id); sc.setParameters("vType", vType.toString()); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -156,14 +156,14 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol SearchCriteria sc = InstanceIdDestroyedSearch.create(); sc.setParameters("instanceId", vmId); sc.setParameters("destroyed", true); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override public List findByDetachedDestroyed() { SearchCriteria sc = DetachedDestroyedSearch.create(); sc.setParameters("destroyed", true); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -174,7 +174,7 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol sc.setParameters("destroyed", false); sc.setParameters("status", AsyncInstanceCreateStatus.Created); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -183,7 +183,7 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol sc.setParameters("template", templateId); sc.setParameters("zone", zoneId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @DB @@ -215,7 +215,7 @@ public class VolumeDaoImpl extends GenericDaoBase implements Vol SearchCriteria sc = MirrorSearch.create(); sc.setParameters("mirrorState", MirrorState.ACTIVE.toString()); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override diff --git a/core/src/com/cloud/user/dao/AccountDaoImpl.java b/core/src/com/cloud/user/dao/AccountDaoImpl.java index b21096104b5..1b60f22d2b4 100644 --- a/core/src/com/cloud/user/dao/AccountDaoImpl.java +++ b/core/src/com/cloud/user/dao/AccountDaoImpl.java @@ -112,26 +112,26 @@ public class AccountDaoImpl extends GenericDaoBase implements A public List findAccountsLike(String accountName) { SearchCriteria sc = createSearchCriteria(); sc.addAnd("accountName", SearchCriteria.Op.LIKE, "%"+accountName+"%"); - return listActiveBy(sc); + return listBy(sc); } @Override public Account findActiveAccount(String accountName, Long domainId) { SearchCriteria sc = AccountNameSearch.create("accountName", accountName); sc.addAnd("domainId", SearchCriteria.Op.EQ, domainId); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override public Account findAccount(String accountName, Long domainId) { SearchCriteria sc = AccountNameSearch.create("accountName", accountName); sc.addAnd("domainId", SearchCriteria.Op.EQ, domainId); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } public Account findActiveAccountByName(String accountName) { SearchCriteria sc = AccountNameSearch.create("accountName", accountName); - return findOneActiveBy(sc); + return findOneBy(sc); } public List findActiveAccounts(Long maxAccountId, Filter filter) { @@ -140,7 +140,7 @@ public class AccountDaoImpl extends GenericDaoBase implements A SearchCriteria sc = createSearchCriteria(); sc.addAnd("id", SearchCriteria.Op.LTEQ, maxAccountId); - return listActiveBy(sc, filter); + return listBy(sc, filter); } public List findRecentlyDeletedAccounts(Long maxAccountId, Date earliestRemovedDate, Filter filter) { @@ -152,7 +152,7 @@ public class AccountDaoImpl extends GenericDaoBase implements A sc.addAnd("removed", SearchCriteria.Op.NNULL); sc.addAnd("removed", SearchCriteria.Op.GTEQ, earliestRemovedDate); - return listBy(sc, filter); + return listIncludingRemovedBy(sc, filter); } public List findNewAccounts(Long minAccountId, Filter filter) { @@ -161,7 +161,7 @@ public class AccountDaoImpl extends GenericDaoBase implements A SearchCriteria sc = createSearchCriteria(); sc.addAnd("id", SearchCriteria.Op.GT, minAccountId); - return listBy(sc, filter); + return listIncludingRemovedBy(sc, filter); } @Override diff --git a/core/src/com/cloud/user/dao/UserAccountDaoImpl.java b/core/src/com/cloud/user/dao/UserAccountDaoImpl.java index 175f5ca3c7e..8e147389a7e 100644 --- a/core/src/com/cloud/user/dao/UserAccountDaoImpl.java +++ b/core/src/com/cloud/user/dao/UserAccountDaoImpl.java @@ -36,7 +36,7 @@ public class UserAccountDaoImpl extends GenericDaoBase impl SearchCriteria sc = createSearchCriteria(); sc.addAnd("username", SearchCriteria.Op.EQ, username); sc.addAnd("domainId", SearchCriteria.Op.EQ, domainId); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override diff --git a/core/src/com/cloud/user/dao/UserDaoImpl.java b/core/src/com/cloud/user/dao/UserDaoImpl.java index 7fefd2e3c24..4b4a53b11a8 100644 --- a/core/src/com/cloud/user/dao/UserDaoImpl.java +++ b/core/src/com/cloud/user/dao/UserDaoImpl.java @@ -75,41 +75,41 @@ public class UserDaoImpl extends GenericDaoBase implements UserDao SearchCriteria sc = UsernamePasswordSearch.create(); sc.setParameters("username", username); sc.setParameters("password", password); - return findOneActiveBy(sc); + return findOneBy(sc); } public List listByAccount(long accountId) { SearchCriteria sc = AccountIdSearch.create(); sc.setParameters("account", accountId); - return listActiveBy(sc, null); + return listBy(sc, null); } @Override public UserVO getUser(String username) { SearchCriteria sc = UsernameSearch.create(); sc.setParameters("username", username); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override public UserVO getUser(long userId) { SearchCriteria sc = UserIdSearch.create(); sc.setParameters("id", userId); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override public List findUsersLike(String username) { SearchCriteria sc = UsernameLikeSearch.create(); sc.setParameters("username", "%" + username + "%"); - return listActiveBy(sc); + return listBy(sc); } @Override public UserVO findUserBySecretKey(String secretKey) { SearchCriteria sc = SecretKeySearch.create(); sc.setParameters("secretKey", secretKey); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override diff --git a/core/src/com/cloud/user/dao/UserStatisticsDaoImpl.java b/core/src/com/cloud/user/dao/UserStatisticsDaoImpl.java index 72298ba8848..956fe6e1761 100644 --- a/core/src/com/cloud/user/dao/UserStatisticsDaoImpl.java +++ b/core/src/com/cloud/user/dao/UserStatisticsDaoImpl.java @@ -62,7 +62,7 @@ public class UserStatisticsDaoImpl extends GenericDaoBase sc = UserDcSearch.create(); sc.setParameters("account", accountId); sc.setParameters("dc", dcId); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override diff --git a/core/src/com/cloud/vm/VMInstanceVO.java b/core/src/com/cloud/vm/VMInstanceVO.java index 84c91116737..3ca1894206d 100644 --- a/core/src/com/cloud/vm/VMInstanceVO.java +++ b/core/src/com/cloud/vm/VMInstanceVO.java @@ -128,6 +128,7 @@ public class VMInstanceVO implements VirtualMachine { Type type, Long vmTemplateId, long guestOSId, + boolean haEnabled) { this.id = id; this.name = name; @@ -138,6 +139,9 @@ public class VMInstanceVO implements VirtualMachine { this.type = type; this.guestOSId = guestOSId; this.haEnabled = haEnabled; + this.mirroredVols = false; + this.vncPassword = Long.toHexString(new Random().nextLong()); + this.state = State.Creating; } @@ -193,11 +197,13 @@ public class VMInstanceVO implements VirtualMachine { return updated; } - public long getId() { + @Override + public long getId() { return id; } - public Date getCreated() { + @Override + public Date getCreated() { return created; } @@ -205,7 +211,8 @@ public class VMInstanceVO implements VirtualMachine { return updateTime; } - public long getDataCenterId() { + @Override + public long getDataCenterId() { return dataCenterId; } @@ -292,7 +299,8 @@ public class VMInstanceVO implements VirtualMachine { this.templateId = templateId; } - public long getGuestOSId() { + @Override + public long getGuestOSId() { return guestOSId; } diff --git a/core/src/com/cloud/vm/dao/ConsoleProxyDaoImpl.java b/core/src/com/cloud/vm/dao/ConsoleProxyDaoImpl.java index 2d33f98aeb4..7936c22a370 100644 --- a/core/src/com/cloud/vm/dao/ConsoleProxyDaoImpl.java +++ b/core/src/com/cloud/vm/dao/ConsoleProxyDaoImpl.java @@ -231,21 +231,21 @@ public class ConsoleProxyDaoImpl extends GenericDaoBase im SearchCriteria sc = DataCenterStatusSearch.create(); sc.setParameters("states", (Object[])states); sc.setParameters("dc", dataCenterId); - return listActiveBy(sc); + return listBy(sc); } @Override public List getProxyListInStates(State... states) { SearchCriteria sc = StateSearch.create(); sc.setParameters("states", (Object[])states); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByHostId(long hostId) { SearchCriteria sc = HostSearch.create(); sc.setParameters("host", hostId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -253,7 +253,7 @@ public class ConsoleProxyDaoImpl extends GenericDaoBase im SearchCriteria sc = HostUpSearch.create(); sc.setParameters("host", hostId); sc.setParameters("states", new Object[] {State.Destroyed, State.Stopped, State.Expunging}); - return listActiveBy(sc); + return listBy(sc); } @Override diff --git a/core/src/com/cloud/vm/dao/DomainRouterDaoImpl.java b/core/src/com/cloud/vm/dao/DomainRouterDaoImpl.java index 2a12035ded4..c6589d48715 100755 --- a/core/src/com/cloud/vm/dao/DomainRouterDaoImpl.java +++ b/core/src/com/cloud/vm/dao/DomainRouterDaoImpl.java @@ -123,7 +123,7 @@ public class DomainRouterDaoImpl extends GenericDaoBase im public DomainRouterVO findByPublicIpAddress(String ipAddress) { SearchCriteria sc = IpSearch.create(); sc.setParameters("ip", ipAddress); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override @@ -196,7 +196,7 @@ public class DomainRouterDaoImpl extends GenericDaoBase im public List listByDataCenter(long dcId) { SearchCriteria sc = DcSearch.create(); sc.setParameters("dc", dcId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -205,7 +205,7 @@ public class DomainRouterDaoImpl extends GenericDaoBase im sc.setParameters("account", accountId); sc.setParameters("dc", dcId); sc.setParameters("role", Role.DHCP_FIREWALL_LB_PASSWD_USERDATA); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override @@ -214,21 +214,21 @@ public class DomainRouterDaoImpl extends GenericDaoBase im sc.setParameters("account", accountId); sc.setParameters("dc", dcId); sc.setParameters("role", role); - return findOneActiveBy(sc); + return findOneBy(sc); } @Override public List listBy(long accountId) { SearchCriteria sc = AccountSearch.create(); sc.setParameters("account", accountId); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByHostId(Long hostId) { SearchCriteria sc = HostSearch.create(); sc.setParameters("host", hostId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -238,7 +238,7 @@ public class DomainRouterDaoImpl extends GenericDaoBase im sc.setParameters("host", hostId); } sc.setParameters("states", new Object[] {State.Destroyed, State.Stopped, State.Expunging}); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -287,13 +287,13 @@ public class DomainRouterDaoImpl extends GenericDaoBase im public List listByDomain(Long domainId) { SearchCriteria sc = DomainIdSearch.create(); sc.setParameters("domainId", domainId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override public List listByVlanDbId(Long vlanDbId) { SearchCriteria sc = VlanDbIdSearch.create(); sc.setParameters("vlanDbId", vlanDbId); - return listBy(sc); + return listIncludingRemovedBy(sc); } } diff --git a/core/src/com/cloud/vm/dao/SecondaryStorageVmDaoImpl.java b/core/src/com/cloud/vm/dao/SecondaryStorageVmDaoImpl.java index 2005b324888..d5ff13312b8 100644 --- a/core/src/com/cloud/vm/dao/SecondaryStorageVmDaoImpl.java +++ b/core/src/com/cloud/vm/dao/SecondaryStorageVmDaoImpl.java @@ -158,21 +158,21 @@ public class SecondaryStorageVmDaoImpl extends GenericDaoBase sc = DataCenterStatusSearch.create(); sc.setParameters("states", (Object[])states); sc.setParameters("dc", dataCenterId); - return listActiveBy(sc); + return listBy(sc); } @Override public List getSecStorageVmListInStates(State... states) { SearchCriteria sc = StateSearch.create(); sc.setParameters("states", (Object[])states); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByHostId(long hostId) { SearchCriteria sc = HostSearch.create(); sc.setParameters("host", hostId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -180,7 +180,7 @@ public class SecondaryStorageVmDaoImpl extends GenericDaoBase sc = HostUpSearch.create(); sc.setParameters("host", hostId); sc.setParameters("states", new Object[] {State.Destroyed, State.Stopped, State.Expunging}); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -208,6 +208,6 @@ public class SecondaryStorageVmDaoImpl extends GenericDaoBase listByZoneId(long zoneId) { SearchCriteria sc = ZoneSearch.create(); sc.setParameters("zone", zoneId); - return listActiveBy(sc); + return listBy(sc); } } diff --git a/core/src/com/cloud/vm/dao/UserVmDaoImpl.java b/core/src/com/cloud/vm/dao/UserVmDaoImpl.java index 92d7894f08c..5172f337c73 100755 --- a/core/src/com/cloud/vm/dao/UserVmDaoImpl.java +++ b/core/src/com/cloud/vm/dao/UserVmDaoImpl.java @@ -127,7 +127,7 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use sc.setParameters("account", accountId); sc.setParameters("pod", podId); - return listBy(sc); + return listIncludingRemovedBy(sc); } public List listByAccountAndDataCenter(long accountId, long dcId) { @@ -135,7 +135,7 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use sc.setParameters("account", accountId); sc.setParameters("dc", dcId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -148,7 +148,7 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use ssc.addOr("state", SearchCriteria.Op.EQ, state.toString()); } sc.addAnd("state", SearchCriteria.Op.SC, ssc); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -165,7 +165,7 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use sc.setParameters("router", routerId); - return listBy(sc); + return listIncludingRemovedBy(sc); } @Override @@ -225,20 +225,20 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use sc.setParameters("state", State.Destroyed, State.Expunging); sc.setParameters("updateTime", date); - return listActiveBy(sc); + return listBy(sc); } public List listByAccountId(long id) { SearchCriteria sc = AccountSearch.create(); sc.setParameters("account", id); - return listActiveBy(sc); + return listBy(sc); } public List listByHostId(Long id) { SearchCriteria sc = HostSearch.create(); sc.setParameters("host", id); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -246,7 +246,7 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use SearchCriteria sc = HostUpSearch.create(); sc.setParameters("host", hostId); sc.setParameters("states", new Object[] {State.Destroyed, State.Stopped, State.Expunging}); - return listActiveBy(sc); + return listBy(sc); } public List listRunningByHostId(long hostId) { @@ -254,13 +254,13 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use sc.setParameters("host", hostId); sc.setParameters("state", State.Running); - return listActiveBy(sc); + return listBy(sc); } public UserVmVO findByName(String name) { SearchCriteria sc = NameSearch.create(); sc.setParameters("name", name); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } @Override @@ -282,7 +282,7 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use sc.setParameters("dc", dcId); sc.setJoinParameters("offeringSearch", "guestIpType", NetworkOffering.GuestIpType.Virtualized); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -292,6 +292,6 @@ public class UserVmDaoImpl extends GenericDaoBase implements Use sc.setParameters("ip", ipAddress); sc.setParameters("states", new Object[] {State.Destroyed, State.Expunging}); - return listActiveBy(sc); + return listBy(sc); } } diff --git a/core/src/com/cloud/vm/dao/VMInstanceDaoImpl.java b/core/src/com/cloud/vm/dao/VMInstanceDaoImpl.java index d625db08bf7..813e056c2ea 100644 --- a/core/src/com/cloud/vm/dao/VMInstanceDaoImpl.java +++ b/core/src/com/cloud/vm/dao/VMInstanceDaoImpl.java @@ -136,7 +136,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem public List findVMInstancesLike(String name) { SearchCriteria sc = NameLikeSearch.create(); sc.setParameters("name", "%" + name + "%"); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -180,7 +180,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem SearchCriteria sc = HostSearch.create(); sc.setParameters("host", hostid); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -188,7 +188,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem SearchCriteria sc = LastHostSearch.create(); sc.setParameters("lastHost", hostId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -196,7 +196,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem SearchCriteria sc = ZoneSearch.create(); sc.setParameters("zone", zoneId); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -204,7 +204,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem SearchCriteria sc = ZoneVmTypeSearch.create(); sc.setParameters("zone", zoneId); sc.setParameters("type", type.toString()); - return listActiveBy(sc); + return listBy(sc); } @@ -216,7 +216,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem sc.setParameters("template", templateId); sc.setParameters("state", State.Expunging); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -255,7 +255,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem SearchCriteria sc = HostIdTypesSearch.create(); sc.setParameters("hostid", hostid); sc.setParameters("types", (Object[]) types); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -264,14 +264,14 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem sc.setParameters("hostid", hostid); sc.setParameters("types", (Object[]) types); sc.setParameters("states", new Object[] {State.Destroyed, State.Stopped, State.Expunging}); - return listActiveBy(sc); + return listBy(sc); } @Override public List listByTypes(Type... types) { SearchCriteria sc = TypesSearch.create(); sc.setParameters("types", (Object[]) types); - return listActiveBy(sc); + return listBy(sc); } @Override @@ -279,7 +279,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase implem SearchCriteria sc = IdTypesSearch.create(); sc.setParameters("id", id); sc.setParameters("types", (Object[]) types); - return findOneBy(sc); + return findOneIncludingRemovedBy(sc); } diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index ffa53b5b53d..1a38bd33155 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -144,7 +144,7 @@ import com.cloud.utils.nio.NioServer; import com.cloud.utils.nio.Task; import com.cloud.vm.State; import com.cloud.vm.VMInstanceVO; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.dao.VMInstanceDao; /** @@ -400,7 +400,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory { public Host findHost(final Host.Type type, final DataCenterVO dc, final HostPodVO pod, final StoragePoolVO sp, final ServiceOffering offering, final VMTemplateVO template, VMInstanceVO vm, Host currentHost, final Set avoid) { - VmCharacteristics vmc = new VmCharacteristics(vm.getType()); + VirtualMachineProfile vmc = new VirtualMachineProfile(vm.getType()); Enumeration en = _hostAllocators.enumeration(); while (en.hasMoreElements()) { final HostAllocator allocator = en.nextElement(); @@ -1065,7 +1065,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory { return null; } - public Pod findPod(VmCharacteristics vm, DataCenter dc, Set avoids) { + public Pod findPod(VirtualMachineProfile vm, DataCenter dc, Set avoids) { for (PodAllocator allocator : _podAllocators) { Pod pod = allocator.allocateTo(vm, dc, avoids); if (pod != null) { @@ -1774,7 +1774,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory { } @Override - public Host findHost(VmCharacteristics vm, Set avoids) { + public Host findHost(VirtualMachineProfile vm, Set avoids) { return null; } diff --git a/server/src/com/cloud/agent/manager/allocator/HostAllocator.java b/server/src/com/cloud/agent/manager/allocator/HostAllocator.java index 0cd8b462043..b4c0dd66b1e 100755 --- a/server/src/com/cloud/agent/manager/allocator/HostAllocator.java +++ b/server/src/com/cloud/agent/manager/allocator/HostAllocator.java @@ -27,10 +27,10 @@ import com.cloud.offering.ServiceOffering; import com.cloud.storage.VMTemplateVO; import com.cloud.uservm.UserVm; import com.cloud.utils.component.Adapter; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; public interface HostAllocator extends Adapter { boolean isVirtualMachineUpgradable(final UserVm vm, final ServiceOffering offering); - Host allocateTo(VmCharacteristics vm, ServiceOffering offering, Type type, DataCenterVO dc, HostPodVO pod, Long clusterId, VMTemplateVO template, Set avoid); + Host allocateTo(VirtualMachineProfile vm, ServiceOffering offering, Type type, DataCenterVO dc, HostPodVO pod, Long clusterId, VMTemplateVO template, Set avoid); } diff --git a/server/src/com/cloud/agent/manager/allocator/PodAllocator.java b/server/src/com/cloud/agent/manager/allocator/PodAllocator.java index 3c7bdcbb387..f4775ac2c5d 100755 --- a/server/src/com/cloud/agent/manager/allocator/PodAllocator.java +++ b/server/src/com/cloud/agent/manager/allocator/PodAllocator.java @@ -27,10 +27,10 @@ import com.cloud.service.ServiceOfferingVO; import com.cloud.template.VirtualMachineTemplate; import com.cloud.utils.Pair; import com.cloud.utils.component.Adapter; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; public interface PodAllocator extends Adapter { Pair allocateTo(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long userId, Set avoids); - Pod allocateTo(VmCharacteristics vm, DataCenter dc, Set avoids); + Pod allocateTo(VirtualMachineProfile vm, DataCenter dc, Set avoids); } diff --git a/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java index 2570cb94aef..77ce0e5a121 100755 --- a/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java +++ b/server/src/com/cloud/agent/manager/allocator/impl/FirstFitAllocator.java @@ -56,7 +56,7 @@ import com.cloud.vm.ConsoleProxyVO; import com.cloud.vm.DomainRouterVO; import com.cloud.vm.SecondaryStorageVmVO; import com.cloud.vm.UserVmVO; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.dao.ConsoleProxyDao; import com.cloud.vm.dao.DomainRouterDao; import com.cloud.vm.dao.SecondaryStorageVmDao; @@ -83,7 +83,7 @@ public class FirstFitAllocator implements HostAllocator { protected String _allocationAlgorithm = "random"; @Override - public Host allocateTo(VmCharacteristics vm, ServiceOffering offering, Type type, DataCenterVO dc, + public Host allocateTo(VirtualMachineProfile vm, ServiceOffering offering, Type type, DataCenterVO dc, HostPodVO pod, Long clusterId, VMTemplateVO template, Set avoid) { diff --git a/server/src/com/cloud/agent/manager/allocator/impl/FirstFitRoutingAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/FirstFitRoutingAllocator.java index aa34dea5437..2c54bc46099 100644 --- a/server/src/com/cloud/agent/manager/allocator/impl/FirstFitRoutingAllocator.java +++ b/server/src/com/cloud/agent/manager/allocator/impl/FirstFitRoutingAllocator.java @@ -31,12 +31,12 @@ import com.cloud.host.Host; import com.cloud.offering.ServiceOffering; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; @Local(value={HostAllocator.class}) public class FirstFitRoutingAllocator extends FirstFitAllocator { @Override - public Host allocateTo(VmCharacteristics vm, ServiceOffering offering, Host.Type type, DataCenterVO dc, HostPodVO pod, + public Host allocateTo(VirtualMachineProfile vm, ServiceOffering offering, Host.Type type, DataCenterVO dc, HostPodVO pod, Long clusterId, VMTemplateVO template, Set avoid) { try { NDC.push("FirstFitRoutingAllocator"); diff --git a/server/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java index cf43fd40e96..f4c4ac35e30 100755 --- a/server/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java +++ b/server/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java @@ -36,7 +36,7 @@ import com.cloud.storage.StoragePoolVO; import com.cloud.storage.VMTemplateVO; import com.cloud.uservm.UserVm; import com.cloud.utils.component.ComponentLocator; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; @Local(value=HostAllocator.class) public class RandomAllocator implements HostAllocator { @@ -45,7 +45,7 @@ public class RandomAllocator implements HostAllocator { private HostDao _hostDao; @Override - public Host allocateTo(VmCharacteristics vm, ServiceOffering offering, Host.Type type, DataCenterVO dc, HostPodVO pod, + public Host allocateTo(VirtualMachineProfile vm, ServiceOffering offering, Host.Type type, DataCenterVO dc, HostPodVO pod, Long clusterId, VMTemplateVO template, Set avoid) { if (type == Host.Type.Storage) { return null; diff --git a/server/src/com/cloud/agent/manager/allocator/impl/RecreateHostAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/RecreateHostAllocator.java index 430747aff30..ccb0a5ff0a1 100644 --- a/server/src/com/cloud/agent/manager/allocator/impl/RecreateHostAllocator.java +++ b/server/src/com/cloud/agent/manager/allocator/impl/RecreateHostAllocator.java @@ -41,7 +41,7 @@ import com.cloud.storage.dao.StoragePoolDao; import com.cloud.utils.Pair; import com.cloud.utils.component.Inject; import com.cloud.vm.VirtualMachine; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; @Local(value=HostAllocator.class) public class RecreateHostAllocator extends FirstFitRoutingAllocator { @@ -53,7 +53,7 @@ public class RecreateHostAllocator extends FirstFitRoutingAllocator { @Inject AgentManager _agentMgr; @Override - public Host allocateTo(VmCharacteristics vm, ServiceOffering offering, Host.Type type, DataCenterVO dc, HostPodVO pod, + public Host allocateTo(VirtualMachineProfile vm, ServiceOffering offering, Host.Type type, DataCenterVO dc, HostPodVO pod, Long clusterId, VMTemplateVO template, Set avoid) { Host host = super.allocateTo(vm, offering, type, dc, pod, clusterId, template, avoid); if (host != null) { diff --git a/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java index 05c59ba4996..51d8d8afe43 100755 --- a/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java +++ b/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java @@ -32,7 +32,7 @@ import com.cloud.storage.StoragePoolVO; import com.cloud.storage.VMTemplateVO; import com.cloud.uservm.UserVm; import com.cloud.utils.component.ComponentLocator; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; /** * @author ahuang @@ -47,7 +47,7 @@ public class TestingAllocator implements HostAllocator { String _name; @Override - public Host allocateTo(VmCharacteristics vm, ServiceOffering offering, Host.Type type, DataCenterVO dc, HostPodVO pod, + public Host allocateTo(VirtualMachineProfile vm, ServiceOffering offering, Host.Type type, DataCenterVO dc, HostPodVO pod, Long clusterId, VMTemplateVO template, Set avoid) { if (type == Host.Type.Routing && _routingHost != null) { return _hostDao.findById(_routingHost); diff --git a/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java index aa89678d2dc..434cd04778a 100755 --- a/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java +++ b/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java @@ -56,7 +56,7 @@ import com.cloud.vm.State; import com.cloud.vm.UserVmVO; import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VirtualMachine; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.VMInstanceDao; @@ -352,7 +352,7 @@ public class UserConcentratedAllocator implements PodAllocator { } @Override - public Pod allocateTo(VmCharacteristics vm, DataCenter dc, Set avoids) { + public Pod allocateTo(VirtualMachineProfile vm, DataCenter dc, Set avoids) { return null; } } diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java index d3b5250b99b..738921ac271 100644 --- a/server/src/com/cloud/configuration/Config.java +++ b/server/src/com/cloud/configuration/Config.java @@ -148,6 +148,10 @@ public enum Config { CheckPodCIDRs("Advanced", ManagementServer.class, String.class, "check.pod.cidrs", "true", "If true, different pods must belong to different CIDR subnets.", "true,false"), MD5Hashed("Advanced", ManagementServer.class, Boolean.class, "security.password.md5hashed", "true", "If set to false password is sent in clear text or else md5hashed", null), + ControlCidr("Advanced", ManagementServer.class, String.class, "control.cidr", "169.254.0.0/16", "Changes the cidr for the control network traffic. Defaults to using link local. Must be unique within pods", null), + ControlGateway("Advanced", ManagementServer.class, String.class, "control.gateway", "169.254.0.1", "gateway for the control network traffic", null), + + // XenServer VmAllocationAlgorithm("Advanced", ManagementServer.class, String.class, "vm.allocation.algorithm", "random", "If 'random', hosts within a pod will be randomly considered for VM/volume allocation. If 'firstfit', they will be considered on a first-fit basis.", null), XenPublicNetwork("Network", ManagementServer.class, String.class, "xen.public.network.device", null, "[ONLY IF THE PUBLIC NETWORK IS ON A DEDICATED NIC]:The network name label of the physical device dedicated to the public network on a XenServer host", null), diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 16cb9712fed..bf6f06e668f 100644 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -401,7 +401,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager { checkPodAttributes(podId, newPodName, pod.getDataCenterId(), gateway, cidr, startIp, endIp, checkForDuplicates); String cidrAddress = getCidrAddress(cidr); - long cidrSize = getCidrSize(cidr); + int cidrSize = getCidrSize(cidr); if (startIp != null && endIp == null) { endIp = NetUtils.getIpRangeEndIpFromCidr(cidrAddress, cidrSize); @@ -457,7 +457,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager { checkPodAttributes(-1, podName, zoneId, gateway, cidr, startIp, endIp, true); String cidrAddress = getCidrAddress(cidr); - long cidrSize = getCidrSize(cidr); + int cidrSize = getCidrSize(cidr); if (startIp != null) { if (endIp == null) { @@ -1562,9 +1562,9 @@ public class ConfigurationManagerImpl implements ConfigurationManager { return cidrPair[0]; } - private long getCidrSize(String cidr) { + private int getCidrSize(String cidr) { String[] cidrPair = cidr.split("\\/"); - return Long.parseLong(cidrPair[1]); + return Integer.parseInt(cidrPair[1]); } private String getCidrAddress(long podId) { diff --git a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java index 1c72bdd2905..9357302c8a1 100644 --- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java +++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java @@ -72,6 +72,7 @@ import com.cloud.dc.VlanVO; import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.HostPodDao; import com.cloud.dc.dao.VlanDao; +import com.cloud.deploy.DataCenterDeployment; import com.cloud.domain.DomainVO; import com.cloud.event.EventState; import com.cloud.event.EventTypes; @@ -140,6 +141,7 @@ import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine.Event; import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineName; +import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VmManager; import com.cloud.vm.dao.ConsoleProxyDao; import com.cloud.vm.dao.VMInstanceDao; @@ -840,7 +842,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, VirtualMach if (s_logger.isDebugEnabled()) s_logger.debug("Assign console proxy from a newly started instance for request from data center : " + dataCenterId); - Map context = createProxyInstance(dataCenterId); + Map context = createProxyInstance2(dataCenterId); long proxyVmId = (Long) context.get("proxyVmId"); if (proxyVmId == 0) { @@ -879,7 +881,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, VirtualMach if (s_logger.isDebugEnabled()) s_logger.debug("Assign console proxy from a newly started instance for request from data center : " + dataCenterId); - Map context = createProxyInstance(dataCenterId); + Map context = createProxyInstance2(dataCenterId); long proxyVmId = (Long) context.get("proxyVmId"); if (proxyVmId == 0) { @@ -1012,16 +1014,19 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, VirtualMach long id = _consoleProxyDao.getNextInSequence(Long.class, "id"); String name = VirtualMachineName.getConsoleProxyName(id, _instance); - DataCenterVO dc = _dcDao.findById(dataCenterId); - ConsoleProxyVO proxy = new ConsoleProxyVO(id, name, _template.getId(), _template.getGuestOSId(), dataCenterId, 0); - proxy = _consoleProxyDao.persist(proxy); + DataCenterDeployment plan = new DataCenterDeployment(dataCenterId, 1); + List offerings = _networkMgr.getSystemAccountNetworkOfferings(NetworkOfferingVO.SystemVmControlNetwork, NetworkOfferingVO.SystemVmManagementNetwork, NetworkOfferingVO.SystemVmPublicNetwork); List profiles = new ArrayList(offerings.size()); + for (NetworkOfferingVO offering : offerings) { + profiles.add(_networkMgr.setupNetworkProfile(_accountMgr.getSystemAccount(), offering, plan)); + } + ConsoleProxyVO proxy = new ConsoleProxyVO(id, name, _template.getId(), _template.getGuestOSId(), dataCenterId, 0); + proxy = _consoleProxyDao.persist(proxy); try { - proxy = _vmMgr.allocate(proxy, _template, _serviceOffering, profiles, dc, _accountMgr.getSystemAccount()); - proxy = _vmMgr.create(proxy); + VirtualMachineProfile vmProfile = _vmMgr.allocate(proxy, _template, _serviceOffering, profiles, plan, _accountMgr.getSystemAccount()); } catch (InsufficientCapacityException e) { s_logger.warn("InsufficientCapacity", e); throw new CloudRuntimeException("Insufficient capcity exception", e); @@ -1030,95 +1035,14 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, VirtualMach throw new CloudRuntimeException("Unable to contact storage", e); } - return null; - - -/* - Transaction txn = Transaction.currentTxn(); - try { - DataCenterVO dc = _dcDao.findById(dataCenterId); - assert (dc != null); - context.put("dc", dc); + Map context = new HashMap(); + context.put("dc", dc); +// context.put("publicIpAddress", publicIpAndVlan._ipAddr); + HostPodVO pod = _podDao.findById(proxy.getPodId()); + context.put("pod", pod); + context.put("proxyVmId", proxy.getId()); - // this will basically allocate the pod based on data center id as - // we use system user id here - Set avoidPods = new HashSet(); - Pair pod = null; - networkInfo publicIpAndVlan = null; - - // About MAC address allocation - // MAC address used by User VM is inherited from DomR MAC address, - // with the least 16 bits overrided. to avoid - // potential conflicts, domP will mask bit 31 - // - String[] macAddresses = _dcDao.getNextAvailableMacAddressPair(dataCenterId, (1L << 31)); - String privateMacAddress = macAddresses[0]; - String publicMacAddress = macAddresses[1]; - macAddresses = _dcDao.getNextAvailableMacAddressPair(dataCenterId, (1L << 31)); - String guestMacAddress = macAddresses[0]; - while ((pod = _agentMgr.findPod(_template, _serviceOffering, dc, Account.ACCOUNT_ID_SYSTEM, avoidPods)) != null) { - publicIpAndVlan = allocPublicIpAddress(dataCenterId, pod.first().getId(), publicMacAddress); - if (publicIpAndVlan == null) { - s_logger.warn("Unable to allocate public IP address for console proxy vm in data center : " + dataCenterId + ", pod=" - + pod.first().getId()); - avoidPods.add(pod.first().getId()); - } else { - break; - } - } - - if (pod == null || publicIpAndVlan == null) { - s_logger.warn("Unable to allocate pod for console proxy vm in data center : " + dataCenterId); - - context.put("proxyVmId", (long) 0); - return context; - } - long id = _consoleProxyDao.getNextInSequence(Long.class, "id"); - - context.put("publicIpAddress", publicIpAndVlan._ipAddr); - context.put("pod", pod); - if (s_logger.isDebugEnabled()) { - s_logger.debug("Pod allocated " + pod.first().getName()); - } - - String cidrNetmask = NetUtils.getCidrNetmask(pod.first().getCidrSize()); - - // Find the VLAN ID, VLAN gateway, and VLAN netmask for - // publicIpAddress - publicIpAddress = publicIpAndVlan._ipAddr; - - String vlanGateway = publicIpAndVlan._gateWay; - String vlanNetmask = publicIpAndVlan._netMask; - - txn.start(); - ConsoleProxyVO proxy; - String name = VirtualMachineName.getConsoleProxyName(id, _instance).intern(); - proxy = new ConsoleProxyVO(id, name, guestMacAddress, null, NetUtils.getLinkLocalNetMask(), privateMacAddress, null, cidrNetmask, - _template.getId(), _template.getGuestOSId(), publicMacAddress, publicIpAddress, vlanNetmask, publicIpAndVlan._vlanDbId, - publicIpAndVlan._vlanid, pod.first().getId(), dataCenterId, vlanGateway, null, dc.getDns1(), dc.getDns2(), _domain, - _proxyRamSize, 0); - - proxy.setLastHostId(pod.second()); - proxy = _consoleProxyDao.persist(proxy); - long proxyVmId = proxy.getId(); - - final EventVO event = new EventVO(); - event.setUserId(User.UID_SYSTEM); - event.setAccountId(Account.ACCOUNT_ID_SYSTEM); - event.setType(EventTypes.EVENT_PROXY_CREATE); - event.setLevel(EventVO.LEVEL_INFO); - event.setDescription("New console proxy created - " + proxy.getName()); - _eventDao.persist(event); - txn.commit(); - - context.put("proxyVmId", proxyVmId); - return context; - } catch (Throwable e) { - s_logger.error("Unexpected exception : ", e); - - context.put("proxyVmId", (long) 0); - return context; - }*/ + return context; } @DB diff --git a/server/src/com/cloud/network/NetworkConfigurationVO.java b/server/src/com/cloud/network/NetworkConfigurationVO.java index 5f3326ad6e8..863c303269b 100644 --- a/server/src/com/cloud/network/NetworkConfigurationVO.java +++ b/server/src/com/cloud/network/NetworkConfigurationVO.java @@ -29,7 +29,8 @@ import javax.persistence.Table; import com.cloud.network.Network.BroadcastDomainType; import com.cloud.network.Network.Mode; import com.cloud.network.Network.TrafficType; -import com.cloud.vm.NetworkCharacteristics; +import com.cloud.utils.NumbersUtil; +import com.cloud.utils.net.NetUtils; /** * NetworkProfileVO contains information about a specific network. @@ -72,15 +73,16 @@ public class NetworkConfigurationVO implements NetworkConfiguration { public NetworkConfigurationVO() { } - public NetworkConfigurationVO(NetworkConfiguration that, long accountId, long offeringId) { - this(that.getTrafficType(), that.getMode(), that.getBroadcastDomainType(), offeringId); + public NetworkConfigurationVO(NetworkConfiguration that, long offeringId, long dataCenterId) { + this(that.getTrafficType(), that.getMode(), that.getBroadcastDomainType(), offeringId, dataCenterId); } - public NetworkConfigurationVO(TrafficType trafficType, Mode mode, BroadcastDomainType broadcastDomainType, long networkOfferingId) { + public NetworkConfigurationVO(TrafficType trafficType, Mode mode, BroadcastDomainType broadcastDomainType, long networkOfferingId, long dataCenterId) { this.trafficType = trafficType; this.mode = mode; this.broadcastDomainType = broadcastDomainType; this.networkOfferingId = networkOfferingId; + this.dataCenterId = dataCenterId; } @Override @@ -134,7 +136,6 @@ public class NetworkConfigurationVO implements NetworkConfiguration { return cidr; } - @Override public void setCidr(String cidr) { this.cidr = cidr; } @@ -147,7 +148,42 @@ public class NetworkConfigurationVO implements NetworkConfiguration { this.vlanId = vlanId; } - public NetworkCharacteristics toCharacteristics() { - return new NetworkCharacteristics(id, broadcastDomainType, cidr, mode, 0); + @Override + public int hashCode() { + return NumbersUtil.hash(id); + } + + @Override + public long getDataCenterId() { + return dataCenterId; + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof NetworkConfigurationVO)) { + return false; + } + NetworkConfigurationVO that = (NetworkConfigurationVO)obj; + if (this.trafficType != that.trafficType) { + return false; + } + + if (this.vlanId != null && that.vlanId != null && this.vlanId.longValue() != that.vlanId.longValue()) { + return false; + } + + if (this.vlanId != that.vlanId) { + return false; + } + + if ((this.cidr == null && that.cidr != null) || (this.cidr != null && that.cidr == null)) { + return false; + } + + if (this.cidr == null && that.cidr == null) { + return true; + } + + return NetUtils.isNetworkAWithinNetworkB(this.cidr, that.cidr); } } diff --git a/server/src/com/cloud/network/NetworkManager.java b/server/src/com/cloud/network/NetworkManager.java index 4aec20e783a..3ec4ee4486d 100644 --- a/server/src/com/cloud/network/NetworkManager.java +++ b/server/src/com/cloud/network/NetworkManager.java @@ -26,6 +26,7 @@ import com.cloud.async.executor.LoadBalancerParam; import com.cloud.dc.DataCenterVO; import com.cloud.dc.HostPodVO; import com.cloud.dc.VlanVO; +import com.cloud.deploy.DeploymentPlan; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.ResourceAllocationException; @@ -36,6 +37,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; import com.cloud.vm.DomainRouter; import com.cloud.vm.DomainRouterVO; +import com.cloud.vm.NicProfile; import com.cloud.vm.NicVO; import com.cloud.vm.UserVmVO; import com.cloud.vm.VMInstanceVO; @@ -213,15 +215,17 @@ public interface NetworkManager extends Manager { */ List listPublicIpAddressesInVirtualNetwork(long accountId, long dcId, Boolean sourceNat); - NetworkConfigurationVO setupNetworkProfile(AccountVO account, NetworkOfferingVO offering); - NetworkConfigurationVO setupNetworkProfile(AccountVO account, NetworkOfferingVO offering, Map params); - List setupNetworkProfiles(AccountVO account, List offerings); + NetworkConfigurationVO setupNetworkProfile(AccountVO account, NetworkOfferingVO offering, DeploymentPlan plan); + NetworkConfigurationVO setupNetworkProfile(AccountVO account, NetworkOfferingVO offering, Map params, DeploymentPlan plan); + List setupNetworkProfiles(AccountVO account, List offerings, DeploymentPlan plan); List getSystemAccountNetworkOfferings(String... offeringNames); - List allocate(K vm, List> networks) throws InsufficientCapacityException; + List allocate(K vm, List> networks) throws InsufficientCapacityException; List prepare(K vm); void create(K vm); + + List getNics(K vm); } diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 2c96fef5b8c..efaed3882d1 100644 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -148,7 +148,7 @@ import com.cloud.vm.DomainRouter; import com.cloud.vm.DomainRouter.Role; import com.cloud.vm.DomainRouterVO; import com.cloud.vm.NetworkConcierge; -import com.cloud.vm.Nic; +import com.cloud.vm.NicProfile; import com.cloud.vm.NicVO; import com.cloud.vm.State; import com.cloud.vm.UserVmVO; @@ -205,7 +205,9 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager @Inject NetworkConfigurationDao _networkProfileDao = null; @Inject NicDao _nicDao; + @Inject(adapter=NetworkProfiler.class) Adapters _networkProfilers; + @Inject(adapter=NetworkConcierge.class) Adapters _networkConcierges; long _routerTemplateId = -1; @@ -2342,14 +2344,22 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager } @Override - public NetworkConfigurationVO setupNetworkProfile(AccountVO owner, NetworkOfferingVO offering) { - return setupNetworkProfile(owner, offering, new HashMap()); + public NetworkConfigurationVO setupNetworkProfile(AccountVO owner, NetworkOfferingVO offering, DeploymentPlan plan) { + return setupNetworkProfile(owner, offering, new HashMap(), plan); } @Override - public NetworkConfigurationVO setupNetworkProfile(AccountVO owner, NetworkOfferingVO offering, Map params) { + public NetworkConfigurationVO setupNetworkProfile(AccountVO owner, NetworkOfferingVO offering, Map params, DeploymentPlan plan) { + List configs = _networkProfileDao.listBy(owner.getId(), offering.getId(), plan.getDataCenterId()); + if (configs.size() > 0) { + if (s_logger.isDebugEnabled()) { + s_logger.debug("Found existing network configuration for offering " + offering + ": " + configs.get(0)); + } + return configs.get(0); + } + for (NetworkProfiler profiler : _networkProfilers) { - NetworkConfiguration profile = profiler.convert(offering, null, params, owner); + NetworkConfiguration profile = profiler.convert(offering, plan, params, owner); if (profile == null) { continue; } @@ -2362,18 +2372,18 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager } } - NetworkConfigurationVO vo = new NetworkConfigurationVO(profile, owner.getId(), offering.getId()); - return _networkProfileDao.persist(vo); + NetworkConfigurationVO vo = new NetworkConfigurationVO(profile, offering.getId(), plan.getDataCenterId()); + return _networkProfileDao.persist(vo, owner.getId()); } throw new CloudRuntimeException("Unable to convert network offering to network profile: " + offering.getId()); } @Override - public List setupNetworkProfiles(AccountVO owner, List offerings) { + public List setupNetworkProfiles(AccountVO owner, List offerings, DeploymentPlan plan) { List profiles = new ArrayList(offerings.size()); for (NetworkOfferingVO offering : offerings) { - profiles.add(setupNetworkProfile(owner, offering)); + profiles.add(setupNetworkProfile(owner, offering, plan)); } return profiles; } @@ -2397,40 +2407,40 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager @Override @DB - public List allocate(K vm, List> networks) throws InsufficientCapacityException { - List nics = new ArrayList(networks.size()); + public List allocate(K vm, List> networks) throws InsufficientCapacityException { + List nicProfiles = new ArrayList(networks.size()); Transaction txn = Transaction.currentTxn(); txn.start(); - for (Pair network : networks) { + for (Pair network : networks) { for (NetworkConcierge concierge : _networkConcierges) { - Nic nic = concierge.allocate(vm, network.first(), network.second()); - if (nic == null) { + NicProfile profile = concierge.allocate(vm, network.first(), network.second()); + if (profile == null) { continue; } NicVO vo = new NicVO(concierge.getUniqueName(), vm.getId(), network.first().getId()); - if (nic.getIp4Address() != null) { - vo.setIp4Address(nic.getIp4Address()); - vo.setState(NicVO.State.IpAcquired); + if (profile.getIp4Address() != null) { + vo.setIp4Address(profile.getIp4Address()); + vo.setState(NicVO.State.Reserved); } - if (nic.getMacAddress() != null) { - vo.setMacAddress(nic.getMacAddress()); + if (profile.getMacAddress() != null) { + vo.setMacAddress(profile.getMacAddress()); } - if (nic.getMode() != null) { - vo.setMode(nic.getMode()); + if (profile.getMode() != null) { + vo.setMode(profile.getMode()); } vo = _nicDao.persist(vo); - nics.add(vo); + nicProfiles.add(new NicProfile(vo, network.first())); } } txn.commit(); - return nics; + return nicProfiles; } @Override @@ -2440,6 +2450,13 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager @Override public void create(K vm) { + for (NetworkConcierge concierge : _networkConcierges) { + } + } + + @Override + public List getNics(K vm) { + return _nicDao.listBy(vm.getId()); } protected class NetworkUsageTask implements Runnable { diff --git a/server/src/com/cloud/network/dao/NetworkConfigurationDao.java b/server/src/com/cloud/network/dao/NetworkConfigurationDao.java index f5f3b0cd640..a842a38d4f2 100644 --- a/server/src/com/cloud/network/dao/NetworkConfigurationDao.java +++ b/server/src/com/cloud/network/dao/NetworkConfigurationDao.java @@ -24,5 +24,7 @@ import com.cloud.utils.db.GenericDao; public interface NetworkConfigurationDao extends GenericDao { List listBy(long accountId); - List listBy(long accountId, long offeringId); + List listBy(long accountId, long offeringId, long dataCenterId); + NetworkConfigurationVO persist(NetworkConfigurationVO config, long accountId); + void addAccountToNetworkConfiguration(long configId, long accountId); } diff --git a/server/src/com/cloud/network/dao/NetworkConfigurationDaoImpl.java b/server/src/com/cloud/network/dao/NetworkConfigurationDaoImpl.java index 3bfee58ef6c..f8b5b7e6ecb 100644 --- a/server/src/com/cloud/network/dao/NetworkConfigurationDaoImpl.java +++ b/server/src/com/cloud/network/dao/NetworkConfigurationDaoImpl.java @@ -27,14 +27,18 @@ import com.cloud.network.Network.TrafficType; import com.cloud.network.NetworkAccountDaoImpl; import com.cloud.network.NetworkAccountVO; import com.cloud.network.NetworkConfigurationVO; +import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; +import com.cloud.utils.db.Transaction; -@Local(value=NetworkConfigurationDao.class) +@Local(value=NetworkConfigurationDao.class) @DB(txn=false) public class NetworkConfigurationDaoImpl extends GenericDaoBase implements NetworkConfigurationDao { final SearchBuilder ProfileSearch; final SearchBuilder AccountSearch; + final SearchBuilder OfferingSearch; + NetworkAccountDaoImpl _accountsDao = new NetworkAccountDaoImpl(); protected NetworkConfigurationDaoImpl() { @@ -44,29 +48,31 @@ public class NetworkConfigurationDaoImpl extends GenericDaoBase join = _accountsDao.createSearchBuilder(); - join.and("account", join.entity().getAccountId(), SearchCriteria.Op.EQ); - ProfileSearch.join("accounts", join, ProfileSearch.entity().getId(), join.entity().getNetworkConfigurationId()); + ProfileSearch.and("offering", ProfileSearch.entity().getNetworkOfferingId(), SearchCriteria.Op.EQ); + ProfileSearch.and("datacenter", ProfileSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ); ProfileSearch.done(); AccountSearch = createSearchBuilder(); AccountSearch.and("offering", AccountSearch.entity().getNetworkOfferingId(), SearchCriteria.Op.EQ); - join = _accountsDao.createSearchBuilder(); + SearchBuilder join = _accountsDao.createSearchBuilder(); join.and("account", join.entity().getAccountId(), SearchCriteria.Op.EQ); AccountSearch.join("accounts", join, AccountSearch.entity().getId(), join.entity().getNetworkConfigurationId()); + AccountSearch.and("datacenter", AccountSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ); AccountSearch.done(); - - + + OfferingSearch = createSearchBuilder(); + OfferingSearch.and("offering", OfferingSearch.entity().getNetworkOfferingId(), SearchCriteria.Op.EQ); + OfferingSearch.and("datacenter", OfferingSearch.entity().getDataCenterId(), SearchCriteria.Op.EQ); } - public NetworkConfigurationVO findBy(TrafficType trafficType, Mode mode, BroadcastDomainType broadcastType, long accountId) { + public List findBy(TrafficType trafficType, Mode mode, BroadcastDomainType broadcastType, long networkOfferingId, long dataCenterId) { SearchCriteria sc = ProfileSearch.create(); sc.setParameters("trafficType", trafficType); sc.setParameters("broadcastType", broadcastType); - sc.setJoinParameters("accounts", "account", accountId); - - return null; + sc.setParameters("offering", networkOfferingId); + sc.setParameters("datacenter", dataCenterId); + return search(sc, null); } @Override @@ -75,15 +81,37 @@ public class NetworkConfigurationDaoImpl extends GenericDaoBase listBy(long accountId, long offeringId) { + public List listBy(long accountId, long offeringId, long dataCenterId) { SearchCriteria sc = AccountSearch.create(); sc.setParameters("offering", offeringId); sc.setJoinParameters("accounts", "account", accountId); + sc.setParameters("datacenter", dataCenterId); - return listActiveBy(sc); + return listBy(sc); + } + + @Override + public NetworkConfigurationVO persist(NetworkConfigurationVO config) { + throw new UnsupportedOperationException("Use the persist for NetworkConfigurationDao"); + } + + @Override @DB + public NetworkConfigurationVO persist(NetworkConfigurationVO config, long accountId) { + Transaction txn = Transaction.currentTxn(); + txn.start(); + config = super.persist(config); + addAccountToNetworkConfiguration(config.getId(), accountId); + txn.commit(); + return config; + } + + @Override + public void addAccountToNetworkConfiguration(long configurationId, long accountId) { + NetworkAccountVO account = new NetworkAccountVO(configurationId, accountId); + _accountsDao.persist(account); } } diff --git a/server/src/com/cloud/network/NetworkProfilerImpl.java b/server/src/com/cloud/network/profiler/GuestNetworkProfiler.java similarity index 55% rename from server/src/com/cloud/network/NetworkProfilerImpl.java rename to server/src/com/cloud/network/profiler/GuestNetworkProfiler.java index ff346a5d778..2542161eb95 100644 --- a/server/src/com/cloud/network/NetworkProfilerImpl.java +++ b/server/src/com/cloud/network/profiler/GuestNetworkProfiler.java @@ -1,45 +1,43 @@ /** * */ -package com.cloud.network; +package com.cloud.network.profiler; -import java.util.Collection; -import java.util.List; import java.util.Map; import javax.ejb.Local; import com.cloud.dc.DataCenterVO; import com.cloud.dc.dao.DataCenterDao; +import com.cloud.dc.dao.VlanDao; import com.cloud.deploy.DeploymentPlan; -import com.cloud.exception.ConflictingNetworkSettingsException; import com.cloud.network.Network.BroadcastDomainType; import com.cloud.network.Network.Mode; +import com.cloud.network.Network.TrafficType; +import com.cloud.network.NetworkConfiguration; +import com.cloud.network.NetworkConfigurationVO; +import com.cloud.network.NetworkProfiler; import com.cloud.network.dao.NetworkConfigurationDao; import com.cloud.offering.NetworkOffering; import com.cloud.offering.NetworkOffering.GuestIpType; -import com.cloud.offering.ServiceOffering; import com.cloud.user.Account; import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.Inject; -import com.cloud.vm.VirtualMachine; @Local(value=NetworkProfiler.class) -public class NetworkProfilerImpl extends AdapterBase implements NetworkProfiler { +public class GuestNetworkProfiler extends AdapterBase implements NetworkProfiler { @Inject protected NetworkConfigurationDao _profileDao; @Inject protected DataCenterDao _dcDao; + @Inject protected VlanDao _vlanDao; - protected NetworkProfilerImpl() { + protected GuestNetworkProfiler() { super(); - } + } @Override public NetworkConfiguration convert(NetworkOffering offering, DeploymentPlan plan, Map params, Account owner) { - List profiles = _profileDao.listBy(owner.getId(), offering.getId()); - - for (NetworkConfigurationVO profile : profiles) { - // FIXME: We should do more comparisons such as if the specific cidr matches. - return profile; + if (offering.getTrafficType() != TrafficType.Guest) { + return null; } GuestIpType ipType = offering.getGuestIpType(); @@ -53,22 +51,10 @@ public class NetworkProfilerImpl extends AdapterBase implements NetworkProfiler mode = Mode.Dhcp; } - NetworkConfigurationVO profile = new NetworkConfigurationVO(offering.getTrafficType(), mode, broadcastType, offering.getId()); + NetworkConfigurationVO profile = new NetworkConfigurationVO(offering.getTrafficType(), mode, broadcastType, offering.getId(), plan.getDataCenterId()); DataCenterVO dc = _dcDao.findById(plan.getDataCenterId()); + return profile; } - @Override - public List convert(Collection networkOfferings, Account owner) { - List profiles = _profileDao.listBy(owner.getId()); - for (NetworkOffering offering : networkOfferings) { - } - return null; - } - - @Override - public boolean check(VirtualMachine vm, ServiceOffering serviceOffering, Collection networkProfiles) throws ConflictingNetworkSettingsException { - return false; - } - } diff --git a/server/src/com/cloud/offerings/dao/NetworkOfferingDaoImpl.java b/server/src/com/cloud/offerings/dao/NetworkOfferingDaoImpl.java index 95bfae9cc00..dc63e8dd0a8 100644 --- a/server/src/com/cloud/offerings/dao/NetworkOfferingDaoImpl.java +++ b/server/src/com/cloud/offerings/dao/NetworkOfferingDaoImpl.java @@ -29,7 +29,7 @@ public class NetworkOfferingDaoImpl extends GenericDaoBase allocate(DiskCharacteristics rootDisk, List dataDisks, VMInstanceVO vm, DataCenterVO dc, AccountVO account) { + public List allocate(DiskProfile rootDisk, List dataDisks, VMInstanceVO vm, DataCenterVO dc, AccountVO account) { ArrayList vols = new ArrayList(dataDisks.size() + 1); VolumeVO dataVol = null; VolumeVO rootVol = null; @@ -244,7 +244,7 @@ public class StorageManagerImpl implements StorageManager { rootVol.setDeviceId(deviceId++); rootVol = _volsDao.persist(rootVol); vols.add(rootVol); - for (DiskCharacteristics dataDisk : dataDisks) { + for (DiskProfile dataDisk : dataDisks) { dataVol = new VolumeVO(VolumeType.DATADISK, dataDisk.getName(), dc.getId(), account.getDomainId(), account.getId(), dataDisk.getDiskOfferingId(), dataDisk.getSize()); dataVol.setDeviceId(deviceId++); dataVol.setInstanceId(vm.getId()); @@ -260,15 +260,15 @@ public class StorageManagerImpl implements StorageManager { public List allocateTemplatedVm(VMInstanceVO vm, VMTemplateVO template, DiskOfferingVO rootOffering, DiskOfferingVO diskOffering, Long size, DataCenterVO dc, AccountVO account) { assert (template.getFormat() != ImageFormat.ISO) : "You can't create user vm based on ISO with this format"; - DiskCharacteristics rootDisk = null; - List dataDisks = new ArrayList(diskOffering != null ? 1 : 0); + DiskProfile rootDisk = null; + List dataDisks = new ArrayList(diskOffering != null ? 1 : 0); long rootId = _volsDao.getNextInSequence(Long.class, "volume_seq"); - rootDisk = new DiskCharacteristics(rootId, VolumeType.ROOT, "ROOT-" + vm.getId() + " rootId", rootOffering.getId(), 0, rootOffering.getTagsArray(), rootOffering.getUseLocalStorage(), rootOffering.isRecreatable(), template.getId()); + rootDisk = new DiskProfile(rootId, VolumeType.ROOT, "ROOT-" + vm.getId() + " rootId", rootOffering.getId(), 0, rootOffering.getTagsArray(), rootOffering.getUseLocalStorage(), rootOffering.isRecreatable(), template.getId()); if (diskOffering != null) { long dataId = _volsDao.getNextInSequence(Long.class, "volume_seq"); - dataDisks.add(new DiskCharacteristics(dataId, VolumeType.DATADISK, "DATA-" + vm.getId() + "-" + dataId, diskOffering.getId(), size != null ? size : diskOffering.getDiskSizeInBytes(), diskOffering.getTagsArray(), diskOffering.getUseLocalStorage(), diskOffering.isRecreatable(), null)); + dataDisks.add(new DiskProfile(dataId, VolumeType.DATADISK, "DATA-" + vm.getId() + "-" + dataId, diskOffering.getId(), size != null ? size : diskOffering.getDiskSizeInBytes(), diskOffering.getTagsArray(), diskOffering.getUseLocalStorage(), diskOffering.isRecreatable(), null)); } return allocate(rootDisk, dataDisks, vm, dc, account); @@ -279,7 +279,7 @@ public class StorageManagerImpl implements StorageManager { assert (template.getFormat() == ImageFormat.ISO) : "The template has to be ISO"; long rootId = _volsDao.getNextInSequence(Long.class, "volume_seq"); - DiskCharacteristics rootDisk = new DiskCharacteristics(rootId, VolumeType.ROOT, "ROOT-" + vm.getId() + "-" + rootId, rootOffering.getId(), size != null ? size : rootOffering.getDiskSizeInBytes(), rootOffering.getTagsArray(), rootOffering.getUseLocalStorage(), rootOffering.isRecreatable(), null); + DiskProfile rootDisk = new DiskProfile(rootId, VolumeType.ROOT, "ROOT-" + vm.getId() + "-" + rootId, rootOffering.getId(), size != null ? size : rootOffering.getDiskSizeInBytes(), rootOffering.getTagsArray(), rootOffering.getUseLocalStorage(), rootOffering.isRecreatable(), null); List vols = allocate(rootDisk, null, vm, dc, account); return vols.get(0); } @@ -411,7 +411,7 @@ public class StorageManagerImpl implements StorageManager { return unshare(vm, vols, host) ? vols : null; } - protected StoragePoolVO findStoragePool(DiskCharacteristics dskCh, final DataCenterVO dc, HostPodVO pod, Long clusterId, final ServiceOffering offering, final VMInstanceVO vm, final VMTemplateVO template, final Set avoid) { + protected StoragePoolVO findStoragePool(DiskProfile dskCh, final DataCenterVO dc, HostPodVO pod, Long clusterId, final ServiceOffering offering, final VMInstanceVO vm, final VMTemplateVO template, final Set avoid) { Enumeration en = _storagePoolAllocators.enumeration(); while (en.hasMoreElements()) { final StoragePoolAllocator allocator = en.nextElement(); @@ -466,7 +466,7 @@ public class StorageManagerImpl implements StorageManager { return answers[0]; } - protected DiskCharacteristics createDiskCharacteristics(VolumeVO volume, VMTemplateVO template, DataCenterVO dc, DiskOfferingVO diskOffering) { + protected DiskProfile createDiskCharacteristics(VolumeVO volume, VMTemplateVO template, DataCenterVO dc, DiskOfferingVO diskOffering) { if (volume.getVolumeType() == VolumeType.ROOT && Storage.ImageFormat.ISO != template.getFormat()) { SearchCriteria sc = HostTemplateStatesSearch.create(); sc.setParameters("id", template.getId()); @@ -479,9 +479,9 @@ public class StorageManagerImpl implements StorageManager { } VMTemplateHostVO ss = sss.get(0); - return new DiskCharacteristics(volume.getId(), volume.getVolumeType(), volume.getName(), diskOffering.getId(), ss.getSize(), diskOffering.getTagsArray(), diskOffering.getUseLocalStorage(), diskOffering.isRecreatable(), Storage.ImageFormat.ISO != template.getFormat() ? template.getId() : null); + return new DiskProfile(volume.getId(), volume.getVolumeType(), volume.getName(), diskOffering.getId(), ss.getSize(), diskOffering.getTagsArray(), diskOffering.getUseLocalStorage(), diskOffering.isRecreatable(), Storage.ImageFormat.ISO != template.getFormat() ? template.getId() : null); } else { - return new DiskCharacteristics(volume.getId(), volume.getVolumeType(), volume.getName(), diskOffering.getId(), diskOffering.getDiskSizeInBytes(), diskOffering.getTagsArray(), diskOffering.getUseLocalStorage(), diskOffering.isRecreatable(), null); + return new DiskProfile(volume.getId(), volume.getVolumeType(), volume.getName(), diskOffering.getId(), diskOffering.getDiskSizeInBytes(), diskOffering.getTagsArray(), diskOffering.getUseLocalStorage(), diskOffering.isRecreatable(), null); } } @@ -545,7 +545,7 @@ public class StorageManagerImpl implements StorageManager { String volumeUUID = null; String details = null; - DiskCharacteristics dskCh = createDiskCharacteristics(volume, template, dc, diskOffering); + DiskProfile dskCh = createDiskCharacteristics(volume, template, dc, diskOffering); // Determine what pod to store the volume in @@ -771,7 +771,7 @@ public class StorageManagerImpl implements StorageManager { StoragePoolVO pool = null; final HashSet avoidPools = new HashSet(avoids); - DiskCharacteristics dskCh = null; + DiskProfile dskCh = null; if (volume.getVolumeType() == VolumeType.ROOT && Storage.ImageFormat.ISO != template.getFormat()) { dskCh = createDiskCharacteristics(volume, template, dc, offering); } else { @@ -1564,7 +1564,7 @@ public class StorageManagerImpl implements StorageManager { public VolumeVO moveVolume(VolumeVO volume, long destPoolDcId, Long destPoolPodId, Long destPoolClusterId) throws InternalErrorException { // Find a destination storage pool with the specified criteria DiskOfferingVO diskOffering = _diskOfferingDao.findById(volume.getDiskOfferingId()); - DiskCharacteristics dskCh = new DiskCharacteristics(volume.getId(), volume.getVolumeType(), volume.getName(), diskOffering.getId(), diskOffering.getDiskSizeInBytes(), diskOffering.getTagsArray(), diskOffering.getUseLocalStorage(), diskOffering.isRecreatable(), null); + DiskProfile dskCh = new DiskProfile(volume.getId(), volume.getVolumeType(), volume.getName(), diskOffering.getId(), diskOffering.getDiskSizeInBytes(), diskOffering.getTagsArray(), diskOffering.getUseLocalStorage(), diskOffering.isRecreatable(), null); DataCenterVO destPoolDataCenter = _dcDao.findById(destPoolDcId); HostPodVO destPoolPod = _podDao.findById(destPoolPodId); StoragePoolVO destPool = findStoragePool(dskCh, destPoolDataCenter, destPoolPod, destPoolClusterId, null, null, null, new HashSet()); @@ -2307,11 +2307,11 @@ public class StorageManagerImpl implements StorageManager { return vol; } - final protected DiskCharacteristics createDiskCharacteristics(VolumeVO volume, DiskOfferingVO offering) { - return new DiskCharacteristics(volume.getId(), volume.getVolumeType(), volume.getName(), offering.getId(), volume.getSize(), offering.getTagsArray(), offering.getUseLocalStorage(), offering.isRecreatable(), volume.getTemplateId()); + final protected DiskProfile createDiskCharacteristics(VolumeVO volume, DiskOfferingVO offering) { + return new DiskProfile(volume.getId(), volume.getVolumeType(), volume.getName(), offering.getId(), volume.getSize(), offering.getTagsArray(), offering.getUseLocalStorage(), offering.isRecreatable(), volume.getTemplateId()); } - final protected DiskCharacteristics createDiskCharacteristics(VolumeVO volume) { + final protected DiskProfile createDiskCharacteristics(VolumeVO volume) { DiskOfferingVO offering = _diskOfferingDao.findById(volume.getDiskOfferingId()); return createDiskCharacteristics(volume, offering); } @@ -2321,7 +2321,7 @@ public class StorageManagerImpl implements StorageManager { List vols = _volsDao.findByInstance(vm.getId()); assert vols.size() >= 1 : "Come on, what's with the zero volumes for " + vm; for (VolumeVO vol : vols) { - DiskCharacteristics dskCh = createDiskCharacteristics(vol); + DiskProfile dskCh = createDiskCharacteristics(vol); int retry = _retry; while (--retry >= 0) { diff --git a/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java b/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java index 500c927c70c..782f01b17d6 100644 --- a/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java +++ b/server/src/com/cloud/storage/allocator/AbstractStoragePoolAllocator.java @@ -55,7 +55,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.component.Inject; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VirtualMachine; @@ -100,7 +100,7 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement return true; } - abstract boolean allocatorIsCorrectType(DiskCharacteristics dskCh, VMInstanceVO vm, ServiceOffering offering); + abstract boolean allocatorIsCorrectType(DiskProfile dskCh, VMInstanceVO vm, ServiceOffering offering); protected boolean templateAvailable(long templateId, long poolId) { VMTemplateStorageResourceAssoc thvo = _templatePoolDao.findByPoolTemplate(poolId, templateId); @@ -114,7 +114,7 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement } } - protected boolean localStorageAllocationNeeded(DiskCharacteristics dskCh, VMInstanceVO vm, ServiceOffering offering) { + protected boolean localStorageAllocationNeeded(DiskProfile dskCh, VMInstanceVO vm, ServiceOffering offering) { if (vm == null) { // We are finding a pool for a volume, so we need a shared storage allocator return false; @@ -128,12 +128,12 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement } } - protected boolean poolIsCorrectType(DiskCharacteristics dskCh, StoragePool pool, VMInstanceVO vm, ServiceOffering offering) { + protected boolean poolIsCorrectType(DiskProfile dskCh, StoragePool pool, VMInstanceVO vm, ServiceOffering offering) { boolean localStorageAllocationNeeded = localStorageAllocationNeeded(dskCh, vm, offering); return ((!localStorageAllocationNeeded && pool.getPoolType().isShared()) || (localStorageAllocationNeeded && !pool.getPoolType().isShared())); } - protected boolean checkPool(Set avoid, StoragePoolVO pool, DiskCharacteristics dskCh, VMTemplateVO template, List templatesInPool, ServiceOffering offering, + protected boolean checkPool(Set avoid, StoragePoolVO pool, DiskProfile dskCh, VMTemplateVO template, List templatesInPool, ServiceOffering offering, VMInstanceVO vm, StatsCollector sc) { if (avoid.contains(pool)) { return false; diff --git a/server/src/com/cloud/storage/allocator/FirstFitStoragePoolAllocator.java b/server/src/com/cloud/storage/allocator/FirstFitStoragePoolAllocator.java index 24bc8a3e6c9..944653a452d 100644 --- a/server/src/com/cloud/storage/allocator/FirstFitStoragePoolAllocator.java +++ b/server/src/com/cloud/storage/allocator/FirstFitStoragePoolAllocator.java @@ -32,7 +32,7 @@ import com.cloud.server.StatsCollector; import com.cloud.storage.StoragePool; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.VMInstanceVO; @Local(value=StoragePoolAllocator.class) @@ -40,12 +40,12 @@ public class FirstFitStoragePoolAllocator extends AbstractStoragePoolAllocator { private static final Logger s_logger = Logger.getLogger(FirstFitStoragePoolAllocator.class); @Override - public boolean allocatorIsCorrectType(DiskCharacteristics dskCh, VMInstanceVO vm, ServiceOffering offering) { + public boolean allocatorIsCorrectType(DiskProfile dskCh, VMInstanceVO vm, ServiceOffering offering) { return !localStorageAllocationNeeded(dskCh, vm, offering); } @Override - public StoragePool allocateToPool(DiskCharacteristics dskCh, ServiceOffering offering, DataCenterVO dc, HostPodVO pod, Long clusterId, + public StoragePool allocateToPool(DiskProfile dskCh, ServiceOffering offering, DataCenterVO dc, HostPodVO pod, Long clusterId, VMInstanceVO vm, VMTemplateVO template, Set avoid) { // Check that the allocator type is correct if (!allocatorIsCorrectType(dskCh, vm, offering)) { diff --git a/server/src/com/cloud/storage/allocator/GarbageCollectingStoragePoolAllocator.java b/server/src/com/cloud/storage/allocator/GarbageCollectingStoragePoolAllocator.java index ca49b197d89..7a39f4d164f 100644 --- a/server/src/com/cloud/storage/allocator/GarbageCollectingStoragePoolAllocator.java +++ b/server/src/com/cloud/storage/allocator/GarbageCollectingStoragePoolAllocator.java @@ -34,7 +34,7 @@ import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePool; import com.cloud.storage.VMTemplateVO; import com.cloud.utils.component.ComponentLocator; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.VMInstanceVO; @Local(value=StoragePoolAllocator.class) @@ -48,7 +48,7 @@ public class GarbageCollectingStoragePoolAllocator extends AbstractStoragePoolAl boolean _storagePoolCleanupEnabled; @Override - public boolean allocatorIsCorrectType(DiskCharacteristics dskCh, VMInstanceVO vm, ServiceOffering offering) { + public boolean allocatorIsCorrectType(DiskProfile dskCh, VMInstanceVO vm, ServiceOffering offering) { return true; } @@ -61,7 +61,7 @@ public class GarbageCollectingStoragePoolAllocator extends AbstractStoragePoolAl } @Override - public StoragePool allocateToPool(DiskCharacteristics dskCh, + public StoragePool allocateToPool(DiskProfile dskCh, ServiceOffering offering, DataCenterVO dc, HostPodVO pod, diff --git a/server/src/com/cloud/storage/allocator/LocalStoragePoolAllocator.java b/server/src/com/cloud/storage/allocator/LocalStoragePoolAllocator.java index 2fb07a5a7e7..1ea7ef7ecfd 100644 --- a/server/src/com/cloud/storage/allocator/LocalStoragePoolAllocator.java +++ b/server/src/com/cloud/storage/allocator/LocalStoragePoolAllocator.java @@ -49,12 +49,12 @@ import com.cloud.utils.db.GenericSearchBuilder; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria.Func; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.State; import com.cloud.vm.UserVmVO; import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VirtualMachine; -import com.cloud.vm.VmCharacteristics; +import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.VMInstanceDao; @@ -84,12 +84,12 @@ public class LocalStoragePoolAllocator extends FirstFitStoragePoolAllocator { @Override - public boolean allocatorIsCorrectType(DiskCharacteristics dskCh, VMInstanceVO vm, ServiceOffering offering) { + public boolean allocatorIsCorrectType(DiskProfile dskCh, VMInstanceVO vm, ServiceOffering offering) { return localStorageAllocationNeeded(dskCh, vm, offering); } @Override - public StoragePool allocateToPool(DiskCharacteristics dskCh, + public StoragePool allocateToPool(DiskProfile dskCh, ServiceOffering offering, DataCenterVO dc, HostPodVO pod, @@ -104,7 +104,7 @@ public class LocalStoragePoolAllocator extends FirstFitStoragePoolAllocator { } Set myAvoids = new HashSet(avoid); - VmCharacteristics vmc = new VmCharacteristics(vm.getType()); + VirtualMachineProfile vmc = new VirtualMachineProfile(vm.getType()); StoragePool pool = null; while ((pool = super.allocateToPool(dskCh, offering, dc, pod, clusterId, vm, template, myAvoids)) != null) { myAvoids.add(pool); diff --git a/server/src/com/cloud/storage/allocator/RandomStoragePoolAllocator.java b/server/src/com/cloud/storage/allocator/RandomStoragePoolAllocator.java index 7937372ec79..0ffb5f99826 100644 --- a/server/src/com/cloud/storage/allocator/RandomStoragePoolAllocator.java +++ b/server/src/com/cloud/storage/allocator/RandomStoragePoolAllocator.java @@ -32,7 +32,7 @@ import com.cloud.server.StatsCollector; import com.cloud.storage.StoragePool; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.VMInstanceVO; @Local(value=StoragePoolAllocator.class) @@ -40,12 +40,12 @@ public class RandomStoragePoolAllocator extends AbstractStoragePoolAllocator { private static final Logger s_logger = Logger.getLogger(RandomStoragePoolAllocator.class); @Override - public boolean allocatorIsCorrectType(DiskCharacteristics dskCh, VMInstanceVO vm, ServiceOffering offering) { + public boolean allocatorIsCorrectType(DiskProfile dskCh, VMInstanceVO vm, ServiceOffering offering) { return true; } @Override - public StoragePool allocateToPool(DiskCharacteristics dskCh, ServiceOffering offering, + public StoragePool allocateToPool(DiskProfile dskCh, ServiceOffering offering, DataCenterVO dc, HostPodVO pod, Long clusterId, VMInstanceVO vm, VMTemplateVO template, Set avoid) { diff --git a/server/src/com/cloud/storage/allocator/StoragePoolAllocator.java b/server/src/com/cloud/storage/allocator/StoragePoolAllocator.java index 8972d2418e7..b2b5be426ff 100644 --- a/server/src/com/cloud/storage/allocator/StoragePoolAllocator.java +++ b/server/src/com/cloud/storage/allocator/StoragePoolAllocator.java @@ -26,7 +26,7 @@ import com.cloud.offering.ServiceOffering; import com.cloud.storage.StoragePool; import com.cloud.storage.VMTemplateVO; import com.cloud.utils.component.Adapter; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VirtualMachine; @@ -36,7 +36,7 @@ import com.cloud.vm.VirtualMachine; */ public interface StoragePoolAllocator extends Adapter { - StoragePool allocateToPool(DiskCharacteristics dskCh, ServiceOffering offering, DataCenterVO dc, HostPodVO pod, Long cluster, VMInstanceVO vm, VMTemplateVO template, Set avoids); + StoragePool allocateToPool(DiskProfile dskCh, ServiceOffering offering, DataCenterVO dc, HostPodVO pod, Long cluster, VMInstanceVO vm, VMTemplateVO template, Set avoids); String chooseStorageIp(VirtualMachine vm, Host host, Host storage); } diff --git a/server/src/com/cloud/storage/allocator/UseLocalForRootAllocator.java b/server/src/com/cloud/storage/allocator/UseLocalForRootAllocator.java index 6d9c1adfdef..06adab2bffc 100644 --- a/server/src/com/cloud/storage/allocator/UseLocalForRootAllocator.java +++ b/server/src/com/cloud/storage/allocator/UseLocalForRootAllocator.java @@ -33,7 +33,7 @@ import com.cloud.storage.StoragePool; import com.cloud.storage.VMTemplateVO; import com.cloud.storage.Volume.VolumeType; import com.cloud.utils.component.ComponentLocator; -import com.cloud.vm.DiskCharacteristics; +import com.cloud.vm.DiskProfile; import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VirtualMachine; @@ -42,7 +42,7 @@ public class UseLocalForRootAllocator extends LocalStoragePoolAllocator implemen boolean _useLocalStorage; @Override - public StoragePool allocateToPool(DiskCharacteristics dskCh, ServiceOffering offering, DataCenterVO dc, HostPodVO pod, Long clusterId, VMInstanceVO vm, VMTemplateVO template, Set avoids) { + public StoragePool allocateToPool(DiskProfile dskCh, ServiceOffering offering, DataCenterVO dc, HostPodVO pod, Long clusterId, VMInstanceVO vm, VMTemplateVO template, Set avoids) { if (!_useLocalStorage) { return null; } @@ -69,7 +69,7 @@ public class UseLocalForRootAllocator extends LocalStoragePoolAllocator implemen } @Override - protected boolean localStorageAllocationNeeded(DiskCharacteristics dskCh, VMInstanceVO vm, ServiceOffering offering) { + protected boolean localStorageAllocationNeeded(DiskProfile dskCh, VMInstanceVO vm, ServiceOffering offering) { if (dskCh.getType() == VolumeType.ROOT) { return true; } else if (dskCh.getType() == VolumeType.DATADISK) { diff --git a/server/src/com/cloud/vm/MauriceMoss.java b/server/src/com/cloud/vm/MauriceMoss.java index 63fcc2dae55..3a5f766b357 100644 --- a/server/src/com/cloud/vm/MauriceMoss.java +++ b/server/src/com/cloud/vm/MauriceMoss.java @@ -18,8 +18,10 @@ package com.cloud.vm; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.ejb.Local; import javax.naming.ConfigurationException; @@ -29,12 +31,15 @@ import org.apache.log4j.Logger; import com.cloud.agent.AgentManager; import com.cloud.configuration.Config; import com.cloud.configuration.dao.ConfigurationDao; -import com.cloud.dc.DataCenterVO; +import com.cloud.deploy.DeployDestination; +import com.cloud.deploy.DeploymentDispatcher; +import com.cloud.deploy.DeploymentPlan; import com.cloud.exception.AgentUnavailableException; import com.cloud.exception.InsufficientCapacityException; -import com.cloud.network.NetworkManager; import com.cloud.network.NetworkConfigurationVO; +import com.cloud.network.NetworkManager; import com.cloud.service.ServiceOfferingVO; +import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.DiskOfferingVO; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.StorageManager; @@ -45,10 +50,12 @@ import com.cloud.user.AccountVO; import com.cloud.utils.Journal; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; +import com.cloud.utils.component.Adapters; import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.component.Inject; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; +import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.dao.VMInstanceDao; @Local(value=VmManager.class) @@ -60,24 +67,33 @@ public class MauriceMoss implements VmManager { @Inject private NetworkManager _networkMgr; @Inject private AgentManager _agentMgr; @Inject private VMInstanceDao _vmDao; + @Inject private ServiceOfferingDao _offeringDao; + + @Inject(adapter=DeploymentDispatcher.class) + private Adapters _dispatchers; + private int _retry; @Override @DB - public T allocate(T vm, + public VirtualMachineProfile allocate(T vm, VMTemplateVO template, ServiceOfferingVO serviceOffering, Pair rootDiskOffering, List> dataDiskOfferings, - List> networks, - DataCenterVO dc, + List> networks, + DeploymentPlan plan, AccountVO owner) throws InsufficientCapacityException { if (s_logger.isDebugEnabled()) { s_logger.debug("Allocating entries for VM: " + vm); } + VirtualMachineProfile vmProfile = new VirtualMachineProfile(vm, serviceOffering); + Transaction txn = Transaction.currentTxn(); txn.start(); - List nics = _networkMgr.allocate(vm, networks); - + List nics = _networkMgr.allocate(vm, networks); + vmProfile.setNics(nics); + + List disks = new ArrayList(dataDiskOfferings.size() + 1); VolumeVO volume = _storageMgr.allocate(VolumeType.ROOT, rootDiskOffering.first(), "ROOT-" + vm.getId(), rootDiskOffering.second(), template.getFormat() != ImageFormat.ISO ? template : null, vm, owner); for (Pair offering : dataDiskOfferings) { volume = _storageMgr.allocate(VolumeType.DATADISK, offering.first(), "DATA-" + vm.getId(), offering.second(), null, vm, owner); @@ -87,43 +103,91 @@ public class MauriceMoss implements VmManager { if (s_logger.isDebugEnabled()) { s_logger.debug("Allocation completed for VM: " + vm); } - return vm; + + boolean created = false; + try { + vmProfile = create(vmProfile, plan); + created = vmProfile != null; + } catch (InsufficientCapacityException e) { + throw e; + } finally { + if (!created) { + // TODO: Error handling + } + } + + return vmProfile; } @Override - public T allocate(T vm, + public VirtualMachineProfile allocate(T vm, VMTemplateVO template, ServiceOfferingVO serviceOffering, Long rootSize, Pair dataDiskOffering, - List> networks, - DataCenterVO dc, + List> networks, + DeploymentPlan plan, AccountVO owner) throws InsufficientCapacityException { List> diskOfferings = new ArrayList>(1); if (dataDiskOffering != null) { diskOfferings.add(dataDiskOffering); } - return allocate(vm, template, serviceOffering, new Pair(serviceOffering, rootSize), diskOfferings, networks, dc, owner); + return allocate(vm, template, serviceOffering, new Pair(serviceOffering, rootSize), diskOfferings, networks, plan, owner); } @Override - public T allocate(T vm, + public VirtualMachineProfile allocate(T vm, VMTemplateVO template, ServiceOfferingVO serviceOffering, List networkProfiles, - DataCenterVO dc, AccountVO owner) throws InsufficientCapacityException { - List> networks = new ArrayList>(networkProfiles.size()); + DeploymentPlan plan, + AccountVO owner) throws InsufficientCapacityException { + List> networks = new ArrayList>(networkProfiles.size()); for (NetworkConfigurationVO profile : networkProfiles) { - networks.add(new Pair(profile, null)); + networks.add(new Pair(profile, null)); } - return allocate(vm, template, serviceOffering, new Pair(serviceOffering, null), null, networks, dc, owner); + return allocate(vm, template, serviceOffering, new Pair(serviceOffering, null), null, networks, plan, owner); } - - @Override - public void create(VmCharacteristics vm, List disks, List networks) { - // TODO Auto-generated method stub + protected VirtualMachineProfile create(VirtualMachineProfile vmProfile, DeploymentPlan plan) throws InsufficientCapacityException { + if (s_logger.isDebugEnabled()) { + s_logger.debug("Creating actual resources for VM " + vmProfile); + } + + Journal journal = new Journal.LogJournal("Creating " + vmProfile, s_logger); + Set avoids = new HashSet(); + int retry = _retry; + while (_retry-- > 0) { + DeployDestination context = null; + for (DeploymentDispatcher dispatcher : _dispatchers) { + context = dispatcher.plan(vmProfile, plan, avoids); + if (context != null) { + journal.record("Deployment found ", vmProfile, context); + break; + } + } + + if (context == null) { + throw new CloudRuntimeException("Unable to create a deployment for " + vmProfile); + } + + VMInstanceVO vm = _vmDao.findById(vmProfile.getId()); + + vm.setDataCenterId(context.getDataCenter().getId()); + vm.setPodId(context.getPod().getId()); + vm.setHostId(context.getHost().getId()); + _vmDao.update(vm.getId(), vm); + + _networkMgr.create(vm); + _storageMgr.create(vm); + } + + if (s_logger.isDebugEnabled()) { + s_logger.debug("Creation complete for VM " + vmProfile); + } + + return vmProfile; } @Override @@ -150,6 +214,8 @@ public class MauriceMoss implements VmManager { ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); Map params = configDao.getConfiguration(xmlParams); + _dispatchers = locator.getAdapters(DeploymentDispatcher.class); + _retry = NumbersUtil.parseInt(params.get(Config.StartRetry.key()), 2); return true; } @@ -162,28 +228,6 @@ public class MauriceMoss implements VmManager { protected MauriceMoss() { } - @Override - public T create(T v) { - if (s_logger.isDebugEnabled()) { - s_logger.debug("Creating actual resources for VM " + v); - } - Journal journal = new Journal.LogJournal("Creating " + v, s_logger); - - VMInstanceVO vm = _vmDao.findById(v.getId()); - - int retry = _retry; - while (_retry-- > 0) { -// Pod pod = _agentMgr.findPod(f); - } - _networkMgr.create(vm); - _storageMgr.create(vm); - - if (s_logger.isDebugEnabled()) { - s_logger.debug("Creation complete for VM " + vm); - } - return null; - } - @Override public T start(T vm) { // TODO Auto-generated method stub diff --git a/server/src/com/cloud/vm/NicVO.java b/server/src/com/cloud/vm/NicVO.java index 6a56cd4ff7f..e8ff34cef82 100644 --- a/server/src/com/cloud/vm/NicVO.java +++ b/server/src/com/cloud/vm/NicVO.java @@ -17,6 +17,8 @@ */ package com.cloud.vm; +import java.util.Date; + import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; @@ -71,16 +73,19 @@ public class NicVO implements Nic { State state; @Column(name="name") - String conciergeName; + String reserver; @Column(name="reservation_id") String reservationId; @Column(name="device_id") int deviceId; + + @Column(name="update_time") + Date updateTime; - public NicVO(String conciergeName, long instanceId, long profileId) { - this.conciergeName = conciergeName; + public NicVO(String reserver, long instanceId, long profileId) { + this.reserver = reserver; this.instanceId = instanceId; this.networkProfileId = profileId; this.state = State.Allocated; @@ -129,14 +134,11 @@ public class NicVO implements Nic { } @Override - public long getDeviceId() { + public int getDeviceId() { return deviceId; } - public String getConciergeName() { - return conciergeName; - } - + @Override public String getReservationId() { return reservationId; } @@ -145,10 +147,6 @@ public class NicVO implements Nic { this.reservationId = id; } - public void setConciergeName(String conciergeName) { - this.conciergeName = conciergeName; - } - public void setDeviceId(int deviceId) { this.deviceId = deviceId; } @@ -161,4 +159,28 @@ public class NicVO implements Nic { public void setMode(Mode mode) { this.mode = mode; } + + @Override + public String getReserver() { + return reserver; + } + + public void setReserver(String reserver) { + this.reserver = reserver; + } + + @Override + public int getExpectedReservationInterval() { + return -1; + } + + @Override + public int getExpectedReleaseInterval() { + return -1; + } + + @Override + public Date getUpdateTime() { + return updateTime; + } } diff --git a/server/src/com/cloud/vm/VmManager.java b/server/src/com/cloud/vm/VmManager.java index 53de68f9522..45fc167783b 100644 --- a/server/src/com/cloud/vm/VmManager.java +++ b/server/src/com/cloud/vm/VmManager.java @@ -19,7 +19,7 @@ package com.cloud.vm; import java.util.List; -import com.cloud.dc.DataCenterVO; +import com.cloud.deploy.DeploymentPlan; import com.cloud.exception.AgentUnavailableException; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientCapacityException; @@ -37,39 +37,35 @@ import com.cloud.utils.component.Manager; */ public interface VmManager extends Manager { - T allocate(T vm, + VirtualMachineProfile allocate(T vm, VMTemplateVO template, ServiceOfferingVO serviceOffering, Pair rootDiskOffering, List> dataDiskOfferings, - List> networks, - DataCenterVO dc, - AccountVO owner) throws InsufficientCapacityException; + List> networks, + DeploymentPlan plan, + AccountVO owner) throws InsufficientCapacityException, StorageUnavailableException; - T allocate(T vm, + VirtualMachineProfile allocate(T vm, VMTemplateVO template, ServiceOfferingVO serviceOffering, Long rootSize, Pair dataDiskOffering, - List> networks, - DataCenterVO dc, - AccountVO owner) throws InsufficientCapacityException; + List> networks, + DeploymentPlan plan, + AccountVO owner) throws InsufficientCapacityException, StorageUnavailableException; - T allocate(T vm, + VirtualMachineProfile allocate(T vm, VMTemplateVO template, ServiceOfferingVO serviceOffering, List networkProfiles, - DataCenterVO dc, - AccountVO owner) throws InsufficientCapacityException; - - T create(T vm) throws InsufficientCapacityException, StorageUnavailableException; + DeploymentPlan plan, + AccountVO owner) throws InsufficientCapacityException, StorageUnavailableException; T start(T vm) throws InsufficientCapacityException, StorageUnavailableException, ConcurrentOperationException; T stop(T vm) throws AgentUnavailableException, ConcurrentOperationException; - void create(VmCharacteristics vm, List disks, List networks); - void destroy(); } diff --git a/server/src/com/cloud/vm/dao/NicDao.java b/server/src/com/cloud/vm/dao/NicDao.java index dcd545eca1f..6f4e3616a3e 100644 --- a/server/src/com/cloud/vm/dao/NicDao.java +++ b/server/src/com/cloud/vm/dao/NicDao.java @@ -3,9 +3,12 @@ */ package com.cloud.vm.dao; +import java.util.List; + import com.cloud.utils.db.GenericDao; import com.cloud.vm.NicVO; public interface NicDao extends GenericDao { + List listBy(long instanceId); } diff --git a/server/src/com/cloud/vm/dao/NicDaoImpl.java b/server/src/com/cloud/vm/dao/NicDaoImpl.java index 8006755e781..c6b1eda5ac8 100644 --- a/server/src/com/cloud/vm/dao/NicDaoImpl.java +++ b/server/src/com/cloud/vm/dao/NicDaoImpl.java @@ -3,15 +3,32 @@ */ package com.cloud.vm.dao; +import java.util.List; + import javax.ejb.Local; import com.cloud.utils.db.GenericDaoBase; +import com.cloud.utils.db.SearchBuilder; +import com.cloud.utils.db.SearchCriteria; import com.cloud.vm.NicVO; @Local(value=NicDao.class) public class NicDaoImpl extends GenericDaoBase implements NicDao { + private final SearchBuilder InstanceSearch; + protected NicDaoImpl() { super(); + + InstanceSearch = createSearchBuilder(); + InstanceSearch.and("instance", InstanceSearch.entity().getInstanceId(), SearchCriteria.Op.EQ); + InstanceSearch.done(); + } + + @Override + public List listBy(long instanceId) { + SearchCriteria sc = InstanceSearch.create(); + sc.setParameters("instance", instanceId); + return listIncludingRemovedBy(sc); } } diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index 3898c7fe3cf..1500ec32cf5 100755 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -95,9 +95,9 @@ CREATE TABLE `cloud`.`network_configurations` ( `name` varchar(255) COMMENT 'name for this network', `traffic_type` varchar(32) NOT NULL COMMENT 'type of traffic going through this network', `broadcast_domain_type` varchar(32) NOT NULL COMMENT 'type of broadcast domain used', - `gateway` varchar(15) NOT NULL COMMENT 'gateway for this network configuration', - `cidr` varchar(32) NOT NULL COMMENT 'network cidr', - `mode` varchar(32) NOT NULL COMMENT 'How to retrieve ip address in this network', + `gateway` varchar(15) COMMENT 'gateway for this network configuration', + `cidr` varchar(18) COMMENT 'network cidr', + `mode` varchar(32) COMMENT 'How to retrieve ip address in this network', `vlan_id` bigint unsigned NULL COMMENT 'vlan id if the broadcast_domain_type is the vlan', `network_offering_id` bigint unsigned NOT NULL COMMENT 'network offering id that this configuration is created from', `data_center_id` bigint unsigned NOT NULL COMMENT 'data center id that this configuration is used in', @@ -122,6 +122,7 @@ CREATE TABLE `cloud`.`nics` ( `name` varchar(64) COMMENT 'Name of the component that reserved the ip address', `reservation_id` varchar(64) COMMENT 'id for the reservation', `device_id` int(10) COMMENT 'device id for the network when plugged into the virtual machine', + `update_time` timestamp NOT NULL COMMENT 'time the state was changed', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -679,10 +680,10 @@ CREATE TABLE `cloud`.`console_proxy` ( `dns1` varchar(15) COMMENT 'dns1', `dns2` varchar(15) COMMENT 'dns2', `domain` varchar(255) COMMENT 'domain', - `public_mac_address` varchar(17) NOT NULL unique COMMENT 'mac address of the public facing network card', + `public_mac_address` varchar(17) unique COMMENT 'mac address of the public facing network card', `public_ip_address` varchar(15) UNIQUE COMMENT 'public ip address for the console proxy', `public_netmask` varchar(15) COMMENT 'public netmask used for the console proxy', - `guest_mac_address` varchar(17) NOT NULL unique COMMENT 'mac address of the guest facing network card', + `guest_mac_address` varchar(17) unique COMMENT 'mac address of the guest facing network card', `guest_ip_address` varchar(15) UNIQUE COMMENT 'guest ip address for the console proxy', `guest_netmask` varchar(15) COMMENT 'guest netmask used for the console proxy', `vlan_db_id` bigint unsigned COMMENT 'Foreign key into vlan id table', diff --git a/utils/src/com/cloud/utils/component/Adapters.java b/utils/src/com/cloud/utils/component/Adapters.java index fe9f0edcb1e..0fc5afad683 100755 --- a/utils/src/com/cloud/utils/component/Adapters.java +++ b/utils/src/com/cloud/utils/component/Adapters.java @@ -18,8 +18,10 @@ package com.cloud.utils.component; import java.util.Enumeration; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import com.cloud.utils.EnumerationImpl; @@ -32,12 +34,13 @@ import com.cloud.utils.EnumerationImpl; * **/ public class Adapters implements Iterable { + private Map _map; private List _adapters; protected String _name; public Adapters(String name, List adapters) { _name = name; - _adapters = adapters; + set(adapters); } /** @@ -63,10 +66,19 @@ public class Adapters implements Iterable { } protected void set(List adapters) { + HashMap map = new HashMap(adapters.size()); + for (T adapter : adapters) { + map.put(adapter.getName(), adapter); + } + this._map = map; this._adapters = adapters; } + + protected T get(String name) { + return _map.get(name); + } public boolean isSet() { return _adapters.size() != 0; } -} +} \ No newline at end of file diff --git a/utils/src/com/cloud/utils/component/ComponentLocator.java b/utils/src/com/cloud/utils/component/ComponentLocator.java index aad5619850f..0c406eddb65 100755 --- a/utils/src/com/cloud/utils/component/ComponentLocator.java +++ b/utils/src/com/cloud/utils/component/ComponentLocator.java @@ -359,6 +359,8 @@ public class ComponentLocator extends Thread implements ComponentLocatorMBean { instance = locator.getManager(fc); } else if (GenericDao.class.isAssignableFrom(fc)) { instance = locator.getDao(fc); + } else if (Adapters.class.isAssignableFrom(fc)) { + instance = locator.getAdapters(inject.adapter()); } if (instance == null) { @@ -487,6 +489,7 @@ public class ComponentLocator extends Thread implements ComponentLocatorMBean { } } + @Override public String getParentName() { return _parentLocator != null ? _parentLocator.getName() : "None"; } @@ -499,6 +502,7 @@ public class ComponentLocator extends Thread implements ComponentLocatorMBean { return (T)createInstance(clazz, true, args); } + @Override public Map> getAdapters() { HashMap> result = new HashMap>(); for (Map.Entry> entry : _adapterMap.entrySet()) { @@ -522,6 +526,7 @@ public class ComponentLocator extends Thread implements ComponentLocatorMBean { return parentResults; } + @Override public Collection getManagers() { Collection names = _parentLocator != null ? _parentLocator.getManagers() : new HashSet(); for (Map.Entry> entry : _managerMap.entrySet()) { @@ -530,6 +535,7 @@ public class ComponentLocator extends Thread implements ComponentLocatorMBean { return names; } + @Override public Collection getDaos() { Collection names = _parentLocator != null ? _parentLocator.getDaos() : new HashSet(); for (Map.Entry>> entry : _daoMap.entrySet()) { diff --git a/utils/src/com/cloud/utils/component/Inject.java b/utils/src/com/cloud/utils/component/Inject.java index cff0b6cb67f..8c948d75e43 100644 --- a/utils/src/com/cloud/utils/component/Inject.java +++ b/utils/src/com/cloud/utils/component/Inject.java @@ -26,4 +26,5 @@ import java.lang.annotation.Target; @Target(FIELD) @Retention(RUNTIME) public @interface Inject { + Class adapter() default Adapter.class; } diff --git a/utils/src/com/cloud/utils/db/GenericDaoBase.java b/utils/src/com/cloud/utils/db/GenericDaoBase.java index 8c5f7bd2c1f..3cce85f230d 100755 --- a/utils/src/com/cloud/utils/db/GenericDaoBase.java +++ b/utils/src/com/cloud/utils/db/GenericDaoBase.java @@ -721,7 +721,7 @@ public abstract class GenericDaoBase implements Gene return _entityBeanType; } - protected T findOneBy(final SearchCriteria sc) { + protected T findOneIncludingRemovedBy(final SearchCriteria sc) { Filter filter = new Filter(1); List results = searchIncludingRemoved(sc, filter, null, false); assert results.size() <= 1 : "Didn't the limiting worked?"; @@ -729,29 +729,19 @@ public abstract class GenericDaoBase implements Gene } @DB(txn=false) - protected T findOneActiveBy(final SearchCriteria sc) { + protected T findOneBy(final SearchCriteria sc) { if (_removed != null) { sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); } - return findOneBy(sc); - } - - @DB(txn=false) - protected List listActiveBy(final SearchCriteria sc, final Filter filter) { - if (_removed != null) { - sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); - } - return listBy(sc, filter); - } - - @DB(txn=false) - protected List listActiveBy(final SearchCriteria sc) { - return listActiveBy(sc, null); + return findOneIncludingRemovedBy(sc); } @DB(txn=false) protected List listBy(final SearchCriteria sc, final Filter filter) { - return searchIncludingRemoved(sc, filter, null, false); + if (_removed != null) { + sc.addAnd(_removed.second().field.getName(), SearchCriteria.Op.NULL); + } + return listIncludingRemovedBy(sc, filter); } @DB(txn=false) @@ -759,6 +749,16 @@ public abstract class GenericDaoBase implements Gene return listBy(sc, null); } + @DB(txn=false) + protected List listIncludingRemovedBy(final SearchCriteria sc, final Filter filter) { + return searchIncludingRemoved(sc, filter, null, false); + } + + @DB(txn=false) + protected List listIncludingRemovedBy(final SearchCriteria sc) { + return listIncludingRemovedBy(sc, null); + } + @Override @DB(txn=false) @SuppressWarnings("unchecked") public T findById(final ID id) {