mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
merge compiles
This commit is contained in:
parent
7f3a748d6c
commit
14bd345f1f
@ -430,21 +430,6 @@
|
|||||||
'${db.cloud.password}';</sqlCommand>
|
'${db.cloud.password}';</sqlCommand>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
|
||||||
<id>grant-user-cloud-usage-all</id>
|
|
||||||
<phase>process-test-resources</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>execute</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<username>root</username>
|
|
||||||
<password>${db.root.password}</password>
|
|
||||||
<url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
|
|
||||||
<sqlCommand>GRANT ALL ON cloud_usage.* to
|
|
||||||
${db.cloud.username}@`%` identified by
|
|
||||||
'${db.cloud.password}';</sqlCommand>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
<execution>
|
||||||
<id>grant-user-cloud-bridge</id>
|
<id>grant-user-cloud-bridge</id>
|
||||||
<phase>process-test-resources</phase>
|
<phase>process-test-resources</phase>
|
||||||
@ -522,7 +507,9 @@
|
|||||||
<profile>
|
<profile>
|
||||||
<id>simulator</id>
|
<id>simulator</id>
|
||||||
<activation>
|
<activation>
|
||||||
<property><name>deploydb-simulator</name></property>
|
<property>
|
||||||
|
<name>deploydb-simulator</name>
|
||||||
|
</property>
|
||||||
</activation>
|
</activation>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|||||||
@ -20,6 +20,11 @@
|
|||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.cloudstack</groupId>
|
||||||
|
<artifactId>cloud-utils</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.cloudstack</groupId>
|
<groupId>org.apache.cloudstack</groupId>
|
||||||
<artifactId>cloud-api</artifactId>
|
<artifactId>cloud-api</artifactId>
|
||||||
|
|||||||
@ -21,8 +21,6 @@ package org.apache.cloudstack.engine.service.api;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.ws.rs.POST;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.ClusterEntity;
|
import org.apache.cloudstack.engine.datacenter.entity.api.ClusterEntity;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.HostEntity;
|
import org.apache.cloudstack.engine.datacenter.entity.api.HostEntity;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.PodEntity;
|
import org.apache.cloudstack.engine.datacenter.entity.api.PodEntity;
|
||||||
@ -42,10 +40,8 @@ public interface ProvisioningService {
|
|||||||
|
|
||||||
StorageEntity registerStorage(String name, List<String> tags, Map<String, String> details);
|
StorageEntity registerStorage(String name, List<String> tags, Map<String, String> details);
|
||||||
|
|
||||||
@POST
|
|
||||||
ZoneEntity registerZone(String zoneUuid, String name, String owner, List<String> tags, Map<String, String> details);
|
ZoneEntity registerZone(String zoneUuid, String name, String owner, List<String> tags, Map<String, String> details);
|
||||||
|
|
||||||
@POST
|
|
||||||
PodEntity registerPod(String podUuid, String name, String owner, String zoneUuid, List<String> tags, Map<String, String> details);
|
PodEntity registerPod(String podUuid, String name, String owner, String zoneUuid, List<String> tags, Map<String, String> details);
|
||||||
|
|
||||||
ClusterEntity registerCluster(String clusterUuid, String name, String owner, List<String> tags, Map<String, String> details);
|
ClusterEntity registerCluster(String clusterUuid, String name, String owner, List<String> tags, Map<String, String> details);
|
||||||
|
|||||||
@ -557,4 +557,10 @@ public class VMEntityVO implements VirtualMachine, FiniteStateObject<State, Virt
|
|||||||
this.networkIds = networkIds;
|
this.networkIds = networkIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getDiskOfferingId() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,14 +26,14 @@ import javax.persistence.Table;
|
|||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.Identity;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State;
|
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State.Event;
|
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State.Event;
|
||||||
|
|
||||||
import com.cloud.api.Identity;
|
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.org.Cluster;
|
import com.cloud.org.Cluster;
|
||||||
import com.cloud.org.Managed.ManagedState;
|
|
||||||
import com.cloud.org.Grouping;
|
import com.cloud.org.Grouping;
|
||||||
|
import com.cloud.org.Managed.ManagedState;
|
||||||
import com.cloud.utils.NumbersUtil;
|
import com.cloud.utils.NumbersUtil;
|
||||||
import com.cloud.utils.db.GenericDao;
|
import com.cloud.utils.db.GenericDao;
|
||||||
import com.cloud.utils.db.StateMachine;
|
import com.cloud.utils.db.StateMachine;
|
||||||
@ -122,22 +122,27 @@ public class ClusterVO implements Cluster, Identity {
|
|||||||
this.state = State.Disabled;
|
this.state = State.Disabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public long getId() {
|
public long getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public long getDataCenterId() {
|
public long getDataCenterId() {
|
||||||
return dataCenterId;
|
return dataCenterId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public long getPodId() {
|
public long getPodId() {
|
||||||
return podId;
|
return podId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Cluster.ClusterType getClusterType() {
|
public Cluster.ClusterType getClusterType() {
|
||||||
return clusterType;
|
return clusterType;
|
||||||
}
|
}
|
||||||
@ -146,6 +151,7 @@ public class ClusterVO implements Cluster, Identity {
|
|||||||
this.clusterType = clusterType;
|
this.clusterType = clusterType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public AllocationState getAllocationState() {
|
public AllocationState getAllocationState() {
|
||||||
return allocationState;
|
return allocationState;
|
||||||
}
|
}
|
||||||
@ -154,6 +160,7 @@ public class ClusterVO implements Cluster, Identity {
|
|||||||
this.allocationState = allocationState;
|
this.allocationState = allocationState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public ManagedState getManagedState() {
|
public ManagedState getManagedState() {
|
||||||
return managedState;
|
return managedState;
|
||||||
}
|
}
|
||||||
@ -180,6 +187,7 @@ public class ClusterVO implements Cluster, Identity {
|
|||||||
return this.id == that.id;
|
return this.id == that.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public HypervisorType getHypervisorType() {
|
public HypervisorType getHypervisorType() {
|
||||||
return HypervisorType.getType(hypervisorType);
|
return HypervisorType.getType(hypervisorType);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,10 +29,10 @@ import javax.persistence.Temporal;
|
|||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
import javax.persistence.Transient;
|
import javax.persistence.Transient;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.Identity;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State;
|
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State.Event;
|
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State.Event;
|
||||||
|
|
||||||
import com.cloud.api.Identity;
|
|
||||||
import com.cloud.dc.DataCenter;
|
import com.cloud.dc.DataCenter;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
import com.cloud.org.Grouping;
|
import com.cloud.org.Grouping;
|
||||||
@ -405,6 +405,7 @@ public class DataCenterVO implements DataCenter, Identity {
|
|||||||
details.put(name, value);
|
details.put(name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public AllocationState getAllocationState() {
|
public AllocationState getAllocationState() {
|
||||||
return allocationState;
|
return allocationState;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,10 +26,10 @@ import javax.persistence.Table;
|
|||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.Identity;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State;
|
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State.Event;
|
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State.Event;
|
||||||
|
|
||||||
import com.cloud.api.Identity;
|
|
||||||
import com.cloud.dc.Pod;
|
import com.cloud.dc.Pod;
|
||||||
import com.cloud.org.Grouping;
|
import com.cloud.org.Grouping;
|
||||||
import com.cloud.utils.NumbersUtil;
|
import com.cloud.utils.NumbersUtil;
|
||||||
@ -120,6 +120,7 @@ public class HostPodVO implements Pod, Identity {
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public long getDataCenterId() {
|
public long getDataCenterId() {
|
||||||
return dataCenterId;
|
return dataCenterId;
|
||||||
}
|
}
|
||||||
@ -128,6 +129,7 @@ public class HostPodVO implements Pod, Identity {
|
|||||||
this.dataCenterId = dataCenterId;
|
this.dataCenterId = dataCenterId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
@ -163,6 +165,7 @@ public class HostPodVO implements Pod, Identity {
|
|||||||
this.gateway = gateway;
|
this.gateway = gateway;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
@ -171,6 +174,7 @@ public class HostPodVO implements Pod, Identity {
|
|||||||
this.description = description;
|
this.description = description;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public AllocationState getAllocationState() {
|
public AllocationState getAllocationState() {
|
||||||
return allocationState;
|
return allocationState;
|
||||||
}
|
}
|
||||||
@ -189,6 +193,7 @@ public class HostPodVO implements Pod, Identity {
|
|||||||
return NumbersUtil.hash(id);
|
return NumbersUtil.hash(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean getExternalDhcp() {
|
public boolean getExternalDhcp() {
|
||||||
return externalDhcp;
|
return externalDhcp;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,10 +37,10 @@ import javax.persistence.Temporal;
|
|||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
import javax.persistence.Transient;
|
import javax.persistence.Transient;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.Identity;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State;
|
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State;
|
||||||
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State.Event;
|
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State.Event;
|
||||||
|
|
||||||
import com.cloud.api.Identity;
|
|
||||||
import com.cloud.host.Host;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
|
|||||||
@ -29,14 +29,12 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
import org.apache.cloudstack.storage.image.format.ISO;
|
import org.apache.cloudstack.storage.image.format.ISO;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.cloud.api.BaseCmd;
|
|
||||||
import com.cloud.configuration.dao.ConfigurationDao;
|
import com.cloud.configuration.dao.ConfigurationDao;
|
||||||
import com.cloud.dc.dao.DataCenterDao;
|
import com.cloud.dc.dao.DataCenterDao;
|
||||||
import com.cloud.domain.DomainVO;
|
import com.cloud.domain.DomainVO;
|
||||||
@ -48,9 +46,9 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
|||||||
import com.cloud.projects.Project.ListProjectResourcesCriteria;
|
import com.cloud.projects.Project.ListProjectResourcesCriteria;
|
||||||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||||
import com.cloud.storage.Storage;
|
import com.cloud.storage.Storage;
|
||||||
import com.cloud.storage.VMTemplateZoneVO;
|
|
||||||
import com.cloud.storage.Storage.TemplateType;
|
import com.cloud.storage.Storage.TemplateType;
|
||||||
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
||||||
|
import com.cloud.storage.VMTemplateZoneVO;
|
||||||
import com.cloud.storage.dao.VMTemplateDaoImpl;
|
import com.cloud.storage.dao.VMTemplateDaoImpl;
|
||||||
import com.cloud.storage.dao.VMTemplateDetailsDao;
|
import com.cloud.storage.dao.VMTemplateDetailsDao;
|
||||||
import com.cloud.storage.dao.VMTemplateZoneDao;
|
import com.cloud.storage.dao.VMTemplateZoneDao;
|
||||||
@ -59,8 +57,6 @@ import com.cloud.tags.dao.ResourceTagsDaoImpl;
|
|||||||
import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
|
import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.component.ComponentInject;
|
|
||||||
import com.cloud.utils.component.ComponentLocator;
|
|
||||||
import com.cloud.utils.db.DB;
|
import com.cloud.utils.db.DB;
|
||||||
import com.cloud.utils.db.Filter;
|
import com.cloud.utils.db.Filter;
|
||||||
import com.cloud.utils.db.GenericDaoBase;
|
import com.cloud.utils.db.GenericDaoBase;
|
||||||
@ -68,8 +64,8 @@ import com.cloud.utils.db.GenericSearchBuilder;
|
|||||||
import com.cloud.utils.db.JoinBuilder;
|
import com.cloud.utils.db.JoinBuilder;
|
||||||
import com.cloud.utils.db.SearchBuilder;
|
import com.cloud.utils.db.SearchBuilder;
|
||||||
import com.cloud.utils.db.SearchCriteria;
|
import com.cloud.utils.db.SearchCriteria;
|
||||||
import com.cloud.utils.db.Transaction;
|
|
||||||
import com.cloud.utils.db.SearchCriteria.Func;
|
import com.cloud.utils.db.SearchCriteria.Func;
|
||||||
|
import com.cloud.utils.db.Transaction;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@ -674,8 +670,10 @@ public class ImageDataDaoImpl extends GenericDaoBase<ImageDataVO, Long> implemen
|
|||||||
}
|
}
|
||||||
// for now, defaulting pageSize to a large val if null; may need to
|
// for now, defaulting pageSize to a large val if null; may need to
|
||||||
// revisit post 2.2RC2
|
// revisit post 2.2RC2
|
||||||
if (isIso && templateZonePairList.size() < (pageSize != null ? pageSize : 500) && templateFilter != TemplateFilter.community
|
if (isIso &&
|
||||||
&& !(templateFilter == TemplateFilter.self && !BaseCmd.isRootAdmin(caller.getType()))) { // evaluates
|
templateZonePairList.size() < (pageSize != null ? pageSize : 500) &&
|
||||||
|
templateFilter != TemplateFilter.community &&
|
||||||
|
!(templateFilter == TemplateFilter.self) /* TODO: Fix this! && !BaseCmd.isRootAdmin(caller.getType())*/) { // evaluates
|
||||||
// to
|
// to
|
||||||
// true
|
// true
|
||||||
// If
|
// If
|
||||||
@ -855,6 +853,7 @@ public class ImageDataDaoImpl extends GenericDaoBase<ImageDataVO, Long> implemen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public ImageDataVO findSystemVMTemplate(long zoneId, HypervisorType hType) {
|
public ImageDataVO findSystemVMTemplate(long zoneId, HypervisorType hType) {
|
||||||
SearchCriteria<ImageDataVO> sc = tmpltTypeHyperSearch.create();
|
SearchCriteria<ImageDataVO> sc = tmpltTypeHyperSearch.create();
|
||||||
sc.setParameters("templateType", Storage.TemplateType.SYSTEM);
|
sc.setParameters("templateType", Storage.TemplateType.SYSTEM);
|
||||||
|
|||||||
@ -33,11 +33,12 @@ import javax.persistence.Temporal;
|
|||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
import javax.persistence.Transient;
|
import javax.persistence.Transient;
|
||||||
|
|
||||||
import com.cloud.api.Identity;
|
import org.apache.cloudstack.api.Identity;
|
||||||
|
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.storage.Storage;
|
import com.cloud.storage.Storage;
|
||||||
import com.cloud.storage.VMTemplateVO;
|
|
||||||
import com.cloud.storage.Storage.TemplateType;
|
import com.cloud.storage.Storage.TemplateType;
|
||||||
|
import com.cloud.storage.VMTemplateVO;
|
||||||
import com.cloud.utils.db.GenericDao;
|
import com.cloud.utils.db.GenericDao;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@ -77,7 +78,7 @@ public class ImageDataVO implements Identity {
|
|||||||
|
|
||||||
@Temporal(value = TemporalType.TIMESTAMP)
|
@Temporal(value = TemporalType.TIMESTAMP)
|
||||||
@Column(name = GenericDao.CREATED_COLUMN)
|
@Column(name = GenericDao.CREATED_COLUMN)
|
||||||
private Date created = null;
|
private final Date created = null;
|
||||||
|
|
||||||
@Column(name = GenericDao.REMOVED)
|
@Column(name = GenericDao.REMOVED)
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
@Temporal(TemporalType.TIMESTAMP)
|
||||||
|
|||||||
@ -32,11 +32,11 @@ import javax.persistence.TableGenerator;
|
|||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.Identity;
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.disktype.Unknown;
|
import org.apache.cloudstack.engine.subsystem.api.storage.disktype.Unknown;
|
||||||
|
|
||||||
import com.cloud.api.Identity;
|
|
||||||
import com.cloud.storage.Volume;
|
|
||||||
import com.cloud.storage.Storage.StoragePoolType;
|
import com.cloud.storage.Storage.StoragePoolType;
|
||||||
|
import com.cloud.storage.Volume;
|
||||||
import com.cloud.utils.NumbersUtil;
|
import com.cloud.utils.NumbersUtil;
|
||||||
import com.cloud.utils.db.GenericDao;
|
import com.cloud.utils.db.GenericDao;
|
||||||
import com.cloud.utils.fsm.StateObject;
|
import com.cloud.utils.fsm.StateObject;
|
||||||
@ -345,6 +345,7 @@ public class VolumeVO implements Identity, StateObject<Volume.State> {
|
|||||||
return updated;
|
return updated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Volume.State getState() {
|
public Volume.State getState() {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,7 +19,6 @@
|
|||||||
package org.apache.cloudstack.storage.datastore.db;
|
package org.apache.cloudstack.storage.datastore.db;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
@ -30,12 +29,10 @@ import javax.persistence.Table;
|
|||||||
import javax.persistence.TableGenerator;
|
import javax.persistence.TableGenerator;
|
||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
import javax.persistence.Transient;
|
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.Identity;
|
||||||
import org.apache.cloudstack.storage.datastore.DataStoreStatus;
|
import org.apache.cloudstack.storage.datastore.DataStoreStatus;
|
||||||
|
|
||||||
import com.cloud.api.Identity;
|
|
||||||
import com.cloud.storage.Storage.StoragePoolType;
|
|
||||||
import com.cloud.utils.db.GenericDao;
|
import com.cloud.utils.db.GenericDao;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@ -118,6 +115,7 @@ public class PrimaryDataStoreVO implements Identity {
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getUuid() {
|
public String getUuid() {
|
||||||
return uuid;
|
return uuid;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,22 +21,23 @@ import java.io.FileInputStream;
|
|||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.APIAccessChecker;
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import com.cloud.exception.PermissionDeniedException;
|
import com.cloud.exception.PermissionDeniedException;
|
||||||
import com.cloud.server.ManagementServer;
|
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
import com.cloud.user.AccountManager;
|
import com.cloud.user.AccountManager;
|
||||||
import com.cloud.user.User;
|
import com.cloud.user.User;
|
||||||
import com.cloud.utils.PropertiesUtil;
|
import com.cloud.utils.PropertiesUtil;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.utils.component.ComponentLocator;
|
|
||||||
import com.cloud.utils.component.Inject;
|
import com.cloud.utils.component.Inject;
|
||||||
import com.cloud.utils.component.PluggableService;
|
import com.cloud.utils.component.PluggableService;
|
||||||
|
|
||||||
@ -60,6 +61,7 @@ public class StaticRoleBasedAPIAccessChecker extends AdapterBase implements APIA
|
|||||||
private static List<String> s_allCommands = null;
|
private static List<String> s_allCommands = null;
|
||||||
|
|
||||||
protected @Inject AccountManager _accountMgr;
|
protected @Inject AccountManager _accountMgr;
|
||||||
|
@Inject protected List<PluggableService> _services;
|
||||||
|
|
||||||
protected StaticRoleBasedAPIAccessChecker() {
|
protected StaticRoleBasedAPIAccessChecker() {
|
||||||
super();
|
super();
|
||||||
@ -109,13 +111,8 @@ public class StaticRoleBasedAPIAccessChecker extends AdapterBase implements APIA
|
|||||||
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
|
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
|
||||||
super.configure(name, params);
|
super.configure(name, params);
|
||||||
|
|
||||||
// Read command properties files to build the static map per role.
|
|
||||||
ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
|
|
||||||
List<PluggableService> services = locator.getAllPluggableServices();
|
|
||||||
services.add((PluggableService) ComponentLocator.getComponent(ManagementServer.Name));
|
|
||||||
|
|
||||||
List<String> configFiles = new ArrayList<String>();
|
List<String> configFiles = new ArrayList<String>();
|
||||||
for (PluggableService service : services) {
|
for (PluggableService service : _services) {
|
||||||
configFiles.addAll(Arrays.asList(service.getPropertiesFiles()));
|
configFiles.addAll(Arrays.asList(service.getPropertiesFiles()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,10 +30,11 @@ import javax.naming.directory.InitialDirContext;
|
|||||||
import javax.naming.directory.SearchControls;
|
import javax.naming.directory.SearchControls;
|
||||||
import javax.naming.directory.SearchResult;
|
import javax.naming.directory.SearchResult;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.ApiConstants.LDAPParams;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.bouncycastle.util.encoders.Base64;
|
import org.bouncycastle.util.encoders.Base64;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.ApiConstants.LDAPParams;
|
|
||||||
import com.cloud.configuration.dao.ConfigurationDao;
|
import com.cloud.configuration.dao.ConfigurationDao;
|
||||||
import com.cloud.server.ManagementServer;
|
import com.cloud.server.ManagementServer;
|
||||||
import com.cloud.user.UserAccount;
|
import com.cloud.user.UserAccount;
|
||||||
@ -115,7 +116,7 @@ public class LDAPUserAuthenticator extends DefaultUserAuthenticator {
|
|||||||
|
|
||||||
// Search for objects with those matching attributes
|
// Search for objects with those matching attributes
|
||||||
NamingEnumeration<SearchResult> answer = ctx.search(searchBase, queryFilter, sc);
|
NamingEnumeration<SearchResult> answer = ctx.search(searchBase, queryFilter, sc);
|
||||||
SearchResult sr = (SearchResult)answer.next();
|
SearchResult sr = answer.next();
|
||||||
String cn = sr.getName();
|
String cn = sr.getName();
|
||||||
answer.close();
|
answer.close();
|
||||||
ctx.close();
|
ctx.close();
|
||||||
@ -152,6 +153,7 @@ public class LDAPUserAuthenticator extends DefaultUserAuthenticator {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean configure(String name, Map<String, Object> params)
|
public boolean configure(String name, Map<String, Object> params)
|
||||||
throws ConfigurationException {
|
throws ConfigurationException {
|
||||||
super.configure(name, params);
|
super.configure(name, params);
|
||||||
|
|||||||
@ -85,6 +85,11 @@
|
|||||||
<artifactId>reflections</artifactId>
|
<artifactId>reflections</artifactId>
|
||||||
<version>0.9.8</version>
|
<version>0.9.8</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.cloudstack</groupId>
|
||||||
|
<artifactId>cloud-engine-api</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<defaultGoal>install</defaultGoal>
|
<defaultGoal>install</defaultGoal>
|
||||||
|
|||||||
@ -52,16 +52,29 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.APIAccessChecker;
|
import org.apache.cloudstack.acl.APIAccessChecker;
|
||||||
import org.apache.cloudstack.acl.ControlledEntity;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.*;
|
import org.apache.cloudstack.api.BaseAsyncCmd;
|
||||||
|
import org.apache.cloudstack.api.BaseAsyncCreateCmd;
|
||||||
|
import org.apache.cloudstack.api.BaseCmd;
|
||||||
|
import org.apache.cloudstack.api.BaseListCmd;
|
||||||
|
import org.apache.cloudstack.api.ResponseObject;
|
||||||
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.admin.host.ListHostsCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.router.ListRoutersCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.user.ListUsersCmd;
|
||||||
import org.apache.cloudstack.api.command.user.account.ListAccountsCmd;
|
import org.apache.cloudstack.api.command.user.account.ListAccountsCmd;
|
||||||
import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
|
import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
|
||||||
import org.apache.cloudstack.api.command.user.event.ListEventsCmd;
|
import org.apache.cloudstack.api.command.user.event.ListEventsCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.project.ListProjectInvitationsCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.project.ListProjectsCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.securitygroup.ListSecurityGroupsCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.tag.ListTagsCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
|
import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
|
import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
|
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
|
||||||
|
import org.apache.cloudstack.api.response.ExceptionResponse;
|
||||||
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.http.client.utils.URLEncodedUtils;
|
|
||||||
import org.apache.http.ConnectionClosedException;
|
import org.apache.http.ConnectionClosedException;
|
||||||
import org.apache.http.HttpException;
|
import org.apache.http.HttpException;
|
||||||
import org.apache.http.HttpRequest;
|
import org.apache.http.HttpRequest;
|
||||||
@ -69,6 +82,7 @@ import org.apache.http.HttpResponse;
|
|||||||
import org.apache.http.HttpServerConnection;
|
import org.apache.http.HttpServerConnection;
|
||||||
import org.apache.http.HttpStatus;
|
import org.apache.http.HttpStatus;
|
||||||
import org.apache.http.NameValuePair;
|
import org.apache.http.NameValuePair;
|
||||||
|
import org.apache.http.client.utils.URLEncodedUtils;
|
||||||
import org.apache.http.entity.BasicHttpEntity;
|
import org.apache.http.entity.BasicHttpEntity;
|
||||||
import org.apache.http.impl.DefaultHttpResponseFactory;
|
import org.apache.http.impl.DefaultHttpResponseFactory;
|
||||||
import org.apache.http.impl.DefaultHttpServerConnection;
|
import org.apache.http.impl.DefaultHttpServerConnection;
|
||||||
@ -89,18 +103,9 @@ import org.apache.http.protocol.ResponseContent;
|
|||||||
import org.apache.http.protocol.ResponseDate;
|
import org.apache.http.protocol.ResponseDate;
|
||||||
import org.apache.http.protocol.ResponseServer;
|
import org.apache.http.protocol.ResponseServer;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.reflections.Reflections;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.command.admin.host.ListHostsCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.router.ListRoutersCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.user.ListUsersCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.project.ListProjectInvitationsCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.project.ListProjectsCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.securitygroup.ListSecurityGroupsCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.tag.ListTagsCmd;
|
|
||||||
import com.cloud.api.response.ApiResponseSerializer;
|
import com.cloud.api.response.ApiResponseSerializer;
|
||||||
import org.apache.cloudstack.api.response.ExceptionResponse;
|
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
|
||||||
import com.cloud.async.AsyncJob;
|
import com.cloud.async.AsyncJob;
|
||||||
import com.cloud.async.AsyncJobManager;
|
import com.cloud.async.AsyncJobManager;
|
||||||
import com.cloud.async.AsyncJobVO;
|
import com.cloud.async.AsyncJobVO;
|
||||||
@ -123,18 +128,15 @@ import com.cloud.user.UserAccount;
|
|||||||
import com.cloud.user.UserContext;
|
import com.cloud.user.UserContext;
|
||||||
import com.cloud.user.UserVO;
|
import com.cloud.user.UserVO;
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.component.Adapters;
|
|
||||||
import com.cloud.utils.StringUtils;
|
import com.cloud.utils.StringUtils;
|
||||||
|
import com.cloud.utils.component.ComponentContext;
|
||||||
import com.cloud.utils.component.ComponentLocator;
|
import com.cloud.utils.component.ComponentLocator;
|
||||||
import com.cloud.utils.component.Inject;
|
|
||||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||||
import com.cloud.utils.db.SearchCriteria;
|
import com.cloud.utils.db.SearchCriteria;
|
||||||
import com.cloud.utils.db.Transaction;
|
import com.cloud.utils.db.Transaction;
|
||||||
import com.cloud.utils.exception.CSExceptionErrorCode;
|
import com.cloud.utils.exception.CSExceptionErrorCode;
|
||||||
import com.cloud.uuididentity.dao.IdentityDao;
|
import com.cloud.uuididentity.dao.IdentityDao;
|
||||||
|
|
||||||
import org.reflections.Reflections;
|
|
||||||
|
|
||||||
public class ApiServer implements HttpRequestHandler {
|
public class ApiServer implements HttpRequestHandler {
|
||||||
private static final Logger s_logger = Logger.getLogger(ApiServer.class.getName());
|
private static final Logger s_logger = Logger.getLogger(ApiServer.class.getName());
|
||||||
private static final Logger s_accessLogger = Logger.getLogger("apiserver." + ApiServer.class.getName());
|
private static final Logger s_accessLogger = Logger.getLogger("apiserver." + ApiServer.class.getName());
|
||||||
@ -143,18 +145,18 @@ public class ApiServer implements HttpRequestHandler {
|
|||||||
public static String jsonContentType = "text/javascript";
|
public static String jsonContentType = "text/javascript";
|
||||||
private ApiDispatcher _dispatcher;
|
private ApiDispatcher _dispatcher;
|
||||||
|
|
||||||
@Inject private AccountManager _accountMgr = null;
|
@Inject private final AccountManager _accountMgr = null;
|
||||||
@Inject private DomainManager _domainMgr = null;
|
@Inject private final DomainManager _domainMgr = null;
|
||||||
@Inject private AsyncJobManager _asyncMgr = null;
|
@Inject private final AsyncJobManager _asyncMgr = null;
|
||||||
@Inject(adapter = APIAccessChecker.class)
|
@Inject private ConfigurationDao _configDao;
|
||||||
protected Adapters<APIAccessChecker> _apiAccessCheckers;
|
@Inject protected List<APIAccessChecker> _apiAccessCheckers;
|
||||||
|
|
||||||
private Account _systemAccount = null;
|
private Account _systemAccount = null;
|
||||||
private User _systemUser = null;
|
private User _systemUser = null;
|
||||||
private static int _workerCount = 0;
|
private static int _workerCount = 0;
|
||||||
private static ApiServer s_instance = null;
|
private static ApiServer s_instance = null;
|
||||||
private static final DateFormat _dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
|
private static final DateFormat _dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
|
||||||
private Map<String, Class<?>> _apiNameCmdClassMap = new HashMap<String, Class<?>>();
|
private final Map<String, Class<?>> _apiNameCmdClassMap = new HashMap<String, Class<?>>();
|
||||||
|
|
||||||
private static ExecutorService _executor = new ThreadPoolExecutor(10, 150, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory("ApiServer"));
|
private static ExecutorService _executor = new ThreadPoolExecutor(10, 150, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory("ApiServer"));
|
||||||
|
|
||||||
@ -164,20 +166,13 @@ public class ApiServer implements HttpRequestHandler {
|
|||||||
|
|
||||||
public static void initApiServer(String[] apiConfig) {
|
public static void initApiServer(String[] apiConfig) {
|
||||||
if (s_instance == null) {
|
if (s_instance == null) {
|
||||||
//Injecting will create ApiServer object with all its
|
s_instance = new ApiServer();
|
||||||
//vars injected as well, no need to do the following:
|
s_instance = ComponentContext.inject(s_instance);
|
||||||
//s_instance = new ApiServer();
|
|
||||||
s_instance = ComponentLocator.inject(ApiServer.class);
|
|
||||||
s_instance.init(apiConfig);
|
s_instance.init(apiConfig);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ApiServer getInstance() {
|
public static ApiServer getInstance() {
|
||||||
// Assumption: CloudStartupServlet would initialize ApiServer
|
|
||||||
// initApiServer(null);
|
|
||||||
if (s_instance == null) {
|
|
||||||
s_logger.fatal("ApiServer instance failed to initialize");
|
|
||||||
}
|
|
||||||
return s_instance;
|
return s_instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,9 +185,7 @@ public class ApiServer implements HttpRequestHandler {
|
|||||||
_dispatcher = ApiDispatcher.getInstance();
|
_dispatcher = ApiDispatcher.getInstance();
|
||||||
|
|
||||||
Integer apiPort = null; // api port, null by default
|
Integer apiPort = null; // api port, null by default
|
||||||
ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
|
SearchCriteria<ConfigurationVO> sc = _configDao.createSearchCriteria();
|
||||||
ConfigurationDao configDao = locator.getDao(ConfigurationDao.class);
|
|
||||||
SearchCriteria<ConfigurationVO> sc = configDao.createSearchCriteria();
|
|
||||||
sc.addAnd("name", SearchCriteria.Op.EQ, "integration.api.port");
|
sc.addAnd("name", SearchCriteria.Op.EQ, "integration.api.port");
|
||||||
List<ConfigurationVO> values = _configDao.search(sc, null);
|
List<ConfigurationVO> values = _configDao.search(sc, null);
|
||||||
if ((values != null) && (values.size() > 0)) {
|
if ((values != null) && (values.size() > 0)) {
|
||||||
@ -215,8 +208,8 @@ public class ApiServer implements HttpRequestHandler {
|
|||||||
_apiNameCmdClassMap.put(apiName, cmdClass);
|
_apiNameCmdClassMap.put(apiName, cmdClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
encodeApiResponse = Boolean.valueOf(configDao.getValue(Config.EncodeApiResponse.key()));
|
encodeApiResponse = Boolean.valueOf(_configDao.getValue(Config.EncodeApiResponse.key()));
|
||||||
String jsonType = configDao.getValue(Config.JavaScriptDefaultContentType.key());
|
String jsonType = _configDao.getValue(Config.JavaScriptDefaultContentType.key());
|
||||||
if (jsonType != null) {
|
if (jsonType != null) {
|
||||||
jsonContentType = jsonType;
|
jsonContentType = jsonType;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,15 +27,15 @@ import javax.inject.Inject;
|
|||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.command.admin.network.CreateStorageNetworkIpRangeCmd;
|
import org.apache.cloudstack.api.command.admin.network.CreateStorageNetworkIpRangeCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.network.DeleteStorageNetworkIpRangeCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.network.ListStorageNetworkIpRangeCmd;
|
import org.apache.cloudstack.api.command.admin.network.ListStorageNetworkIpRangeCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.network.UpdateStorageNetworkIpRangeCmd;
|
import org.apache.cloudstack.api.command.admin.network.UpdateStorageNetworkIpRangeCmd;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.command.admin.network.DeleteStorageNetworkIpRangeCmd;
|
|
||||||
import com.cloud.dc.HostPodVO;
|
import com.cloud.dc.HostPodVO;
|
||||||
import com.cloud.dc.StorageNetworkIpRange;
|
|
||||||
import com.cloud.dc.StorageNetworkIpAddressVO;
|
import com.cloud.dc.StorageNetworkIpAddressVO;
|
||||||
|
import com.cloud.dc.StorageNetworkIpRange;
|
||||||
import com.cloud.dc.StorageNetworkIpRangeVO;
|
import com.cloud.dc.StorageNetworkIpRangeVO;
|
||||||
import com.cloud.dc.dao.HostPodDao;
|
import com.cloud.dc.dao.HostPodDao;
|
||||||
import com.cloud.dc.dao.StorageNetworkIpAddressDao;
|
import com.cloud.dc.dao.StorageNetworkIpAddressDao;
|
||||||
@ -43,12 +43,11 @@ import com.cloud.dc.dao.StorageNetworkIpRangeDao;
|
|||||||
import com.cloud.exception.InvalidParameterValueException;
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
import com.cloud.network.Networks.TrafficType;
|
import com.cloud.network.Networks.TrafficType;
|
||||||
import com.cloud.network.dao.NetworkDao;
|
import com.cloud.network.dao.NetworkDao;
|
||||||
import com.cloud.utils.component.Inject;
|
|
||||||
import com.cloud.utils.db.DB;
|
import com.cloud.utils.db.DB;
|
||||||
|
import com.cloud.utils.db.SearchCriteria.Op;
|
||||||
import com.cloud.utils.db.SearchCriteria2;
|
import com.cloud.utils.db.SearchCriteria2;
|
||||||
import com.cloud.utils.db.SearchCriteriaService;
|
import com.cloud.utils.db.SearchCriteriaService;
|
||||||
import com.cloud.utils.db.Transaction;
|
import com.cloud.utils.db.Transaction;
|
||||||
import com.cloud.utils.db.SearchCriteria.Op;
|
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.utils.net.NetUtils;
|
import com.cloud.utils.net.NetUtils;
|
||||||
import com.cloud.vm.SecondaryStorageVmVO;
|
import com.cloud.vm.SecondaryStorageVmVO;
|
||||||
@ -296,7 +295,10 @@ public class StorageNetworkManagerImpl implements StorageNetworkManager, Storage
|
|||||||
s_logger.warn(msg);
|
s_logger.warn(msg);
|
||||||
throw new CloudRuntimeException(msg);
|
throw new CloudRuntimeException(msg);
|
||||||
}
|
}
|
||||||
/* entries in op_dc_storage_network_ip_address will be deleted automatically due to fk_storage_ip_address__range_id constraint key */
|
/*
|
||||||
|
* entries in op_dc_storage_network_ip_address will be deleted automatically due to
|
||||||
|
* fk_storage_ip_address__range_id constraint key
|
||||||
|
*/
|
||||||
_sNwIpRangeDao.remove(rangeId);
|
_sNwIpRangeDao.remove(rangeId);
|
||||||
} finally {
|
} finally {
|
||||||
if (range != null) {
|
if (range != null) {
|
||||||
@ -323,7 +325,7 @@ public class StorageNetworkManagerImpl implements StorageNetworkManager, Storage
|
|||||||
result = _sNwIpRangeDao.listAll();
|
result = _sNwIpRangeDao.listAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
return (List<StorageNetworkIpRange>)result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -22,10 +22,11 @@ import java.util.Random;
|
|||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.persistence.TableGenerator;
|
import javax.persistence.TableGenerator;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.GuestType;
|
import com.cloud.network.Network.GuestType;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
@ -61,21 +62,21 @@ import com.cloud.utils.net.NetUtils;
|
|||||||
@Local(value = NetworkDao.class)
|
@Local(value = NetworkDao.class)
|
||||||
@DB(txn = false)
|
@DB(txn = false)
|
||||||
public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements NetworkDao {
|
public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements NetworkDao {
|
||||||
final SearchBuilder<NetworkVO> AllFieldsSearch;
|
SearchBuilder<NetworkVO> AllFieldsSearch;
|
||||||
final SearchBuilder<NetworkVO> AccountSearch;
|
SearchBuilder<NetworkVO> AccountSearch;
|
||||||
final SearchBuilder<NetworkVO> RelatedConfigSearch;
|
SearchBuilder<NetworkVO> RelatedConfigSearch;
|
||||||
final SearchBuilder<NetworkVO> AccountNetworkSearch;
|
SearchBuilder<NetworkVO> AccountNetworkSearch;
|
||||||
final SearchBuilder<NetworkVO> ZoneBroadcastUriSearch;
|
SearchBuilder<NetworkVO> ZoneBroadcastUriSearch;
|
||||||
final SearchBuilder<NetworkVO> ZoneSecurityGroupSearch;
|
SearchBuilder<NetworkVO> ZoneSecurityGroupSearch;
|
||||||
final GenericSearchBuilder<NetworkVO, Integer> CountBy;
|
GenericSearchBuilder<NetworkVO, Integer> CountBy;
|
||||||
final SearchBuilder<NetworkVO> PhysicalNetworkSearch;
|
SearchBuilder<NetworkVO> PhysicalNetworkSearch;
|
||||||
final SearchBuilder<NetworkVO> SecurityGroupSearch;
|
SearchBuilder<NetworkVO> SecurityGroupSearch;
|
||||||
final GenericSearchBuilder<NetworkVO, Long> NetworksRegularUserCanCreateSearch;
|
GenericSearchBuilder<NetworkVO, Long> NetworksRegularUserCanCreateSearch;
|
||||||
private final GenericSearchBuilder<NetworkVO, Integer> NetworksCount;
|
GenericSearchBuilder<NetworkVO, Integer> NetworksCount;
|
||||||
final SearchBuilder<NetworkVO> SourceNATSearch;
|
SearchBuilder<NetworkVO> SourceNATSearch;
|
||||||
final GenericSearchBuilder<NetworkVO, Long> CountByZoneAndURI;
|
GenericSearchBuilder<NetworkVO, Long> CountByZoneAndURI;
|
||||||
final GenericSearchBuilder<NetworkVO, Long> VpcNetworksCount;
|
GenericSearchBuilder<NetworkVO, Long> VpcNetworksCount;
|
||||||
final SearchBuilder<NetworkVO> OfferingAccountNetworkSearch;
|
SearchBuilder<NetworkVO> OfferingAccountNetworkSearch;
|
||||||
|
|
||||||
ResourceTagsDaoImpl _tagsDao = ComponentLocator.inject(ResourceTagsDaoImpl.class);
|
ResourceTagsDaoImpl _tagsDao = ComponentLocator.inject(ResourceTagsDaoImpl.class);
|
||||||
NetworkAccountDaoImpl _accountsDao = ComponentLocator.inject(NetworkAccountDaoImpl.class);
|
NetworkAccountDaoImpl _accountsDao = ComponentLocator.inject(NetworkAccountDaoImpl.class);
|
||||||
@ -85,7 +86,7 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
|
|||||||
NetworkOfferingDaoImpl _ntwkOffDao = ComponentLocator.inject(NetworkOfferingDaoImpl.class);
|
NetworkOfferingDaoImpl _ntwkOffDao = ComponentLocator.inject(NetworkOfferingDaoImpl.class);
|
||||||
|
|
||||||
|
|
||||||
final TableGenerator _tgMacAddress;
|
TableGenerator _tgMacAddress;
|
||||||
Random _rand = new Random(System.currentTimeMillis());
|
Random _rand = new Random(System.currentTimeMillis());
|
||||||
long _prefix = 0x2;
|
long _prefix = 0x2;
|
||||||
|
|
||||||
@ -549,6 +550,7 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N
|
|||||||
return findOneBy(sc);
|
return findOneBy(sc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@DB
|
@DB
|
||||||
public boolean remove(Long id) {
|
public boolean remove(Long id) {
|
||||||
Transaction txn = Transaction.currentTxn();
|
Transaction txn = Transaction.currentTxn();
|
||||||
|
|||||||
@ -35,18 +35,16 @@ import javax.persistence.InheritanceType;
|
|||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.Transient;
|
import javax.persistence.Transient;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.Identity;
|
import com.cloud.network.dao.FirewallRulesCidrsDao;
|
||||||
import com.cloud.network.dao.FirewallRulesCidrsDaoImpl;
|
|
||||||
import com.cloud.utils.db.GenericDao;
|
import com.cloud.utils.db.GenericDao;
|
||||||
import com.cloud.utils.net.NetUtils;
|
import com.cloud.utils.net.NetUtils;
|
||||||
import org.apache.cloudstack.api.InternalIdentity;
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name="firewall_rules")
|
@Table(name="firewall_rules")
|
||||||
@Inheritance(strategy=InheritanceType.JOINED)
|
@Inheritance(strategy=InheritanceType.JOINED)
|
||||||
@DiscriminatorColumn(name="purpose", discriminatorType=DiscriminatorType.STRING, length=32)
|
@DiscriminatorColumn(name="purpose", discriminatorType=DiscriminatorType.STRING, length=32)
|
||||||
public class FirewallRuleVO implements FirewallRule {
|
public class FirewallRuleVO implements FirewallRule {
|
||||||
protected final FirewallRulesCidrsDaoImpl _firewallRulesCidrsDao = ComponentLocator.inject(FirewallRulesCidrsDaoImpl.class);
|
@Inject protected FirewallRulesCidrsDao _firewallRulesCidrsDao;
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy=GenerationType.IDENTITY)
|
@GeneratedValue(strategy=GenerationType.IDENTITY)
|
||||||
|
|||||||
@ -38,10 +38,10 @@ import javax.mail.URLName;
|
|||||||
import javax.mail.internet.InternetAddress;
|
import javax.mail.internet.InternetAddress;
|
||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
|
||||||
import com.cloud.api.query.dao.ProjectAccountJoinDao;
|
import com.cloud.api.query.dao.ProjectAccountJoinDao;
|
||||||
import com.cloud.api.query.dao.ProjectInvitationJoinDao;
|
import com.cloud.api.query.dao.ProjectInvitationJoinDao;
|
||||||
import com.cloud.api.query.dao.ProjectJoinDao;
|
import com.cloud.api.query.dao.ProjectJoinDao;
|
||||||
@ -73,7 +73,6 @@ import com.cloud.user.UserContext;
|
|||||||
import com.cloud.user.dao.AccountDao;
|
import com.cloud.user.dao.AccountDao;
|
||||||
import com.cloud.utils.DateUtil;
|
import com.cloud.utils.DateUtil;
|
||||||
import com.cloud.utils.NumbersUtil;
|
import com.cloud.utils.NumbersUtil;
|
||||||
import com.cloud.utils.component.Inject;
|
|
||||||
import com.cloud.utils.component.Manager;
|
import com.cloud.utils.component.Manager;
|
||||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||||
import com.cloud.utils.db.DB;
|
import com.cloud.utils.db.DB;
|
||||||
@ -428,6 +427,7 @@ public class ProjectManagerImpl implements ProjectManager, Manager{
|
|||||||
return _projectAccountDao.canAccessProjectAccount(caller.getId(), accountId);
|
return _projectAccountDao.canAccessProjectAccount(caller.getId(), accountId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean canModifyProjectAccount(Account caller, long accountId) {
|
public boolean canModifyProjectAccount(Account caller, long accountId) {
|
||||||
//ROOT admin always can access the project
|
//ROOT admin always can access the project
|
||||||
if (caller.getType() == Account.ACCOUNT_TYPE_ADMIN) {
|
if (caller.getType() == Account.ACCOUNT_TYPE_ADMIN) {
|
||||||
|
|||||||
@ -16,6 +16,35 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.server;
|
package com.cloud.server;
|
||||||
|
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.EOFException;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import javax.crypto.KeyGenerator;
|
||||||
|
import javax.crypto.SecretKey;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import org.apache.commons.codec.binary.Base64;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.cloud.configuration.Config;
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.configuration.ConfigurationVO;
|
import com.cloud.configuration.ConfigurationVO;
|
||||||
import com.cloud.configuration.Resource;
|
import com.cloud.configuration.Resource;
|
||||||
@ -45,7 +74,11 @@ import com.cloud.network.Networks.BroadcastDomainType;
|
|||||||
import com.cloud.network.Networks.Mode;
|
import com.cloud.network.Networks.Mode;
|
||||||
import com.cloud.network.Networks.TrafficType;
|
import com.cloud.network.Networks.TrafficType;
|
||||||
import com.cloud.network.dao.NetworkDao;
|
import com.cloud.network.dao.NetworkDao;
|
||||||
import com.cloud.network.guru.*;
|
import com.cloud.network.guru.ControlNetworkGuru;
|
||||||
|
import com.cloud.network.guru.DirectPodBasedNetworkGuru;
|
||||||
|
import com.cloud.network.guru.PodBasedNetworkGuru;
|
||||||
|
import com.cloud.network.guru.PublicNetworkGuru;
|
||||||
|
import com.cloud.network.guru.StorageNetworkGuru;
|
||||||
import com.cloud.offering.NetworkOffering;
|
import com.cloud.offering.NetworkOffering;
|
||||||
import com.cloud.offering.NetworkOffering.Availability;
|
import com.cloud.offering.NetworkOffering.Availability;
|
||||||
import com.cloud.offerings.NetworkOfferingServiceMapVO;
|
import com.cloud.offerings.NetworkOfferingServiceMapVO;
|
||||||
@ -63,7 +96,6 @@ import com.cloud.user.User;
|
|||||||
import com.cloud.user.dao.AccountDao;
|
import com.cloud.user.dao.AccountDao;
|
||||||
import com.cloud.utils.PasswordGenerator;
|
import com.cloud.utils.PasswordGenerator;
|
||||||
import com.cloud.utils.PropertiesUtil;
|
import com.cloud.utils.PropertiesUtil;
|
||||||
import com.cloud.utils.component.ComponentLocator;
|
|
||||||
import com.cloud.utils.crypt.DBEncryptionUtil;
|
import com.cloud.utils.crypt.DBEncryptionUtil;
|
||||||
import com.cloud.utils.db.DB;
|
import com.cloud.utils.db.DB;
|
||||||
import com.cloud.utils.db.Transaction;
|
import com.cloud.utils.db.Transaction;
|
||||||
@ -71,20 +103,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||||||
import com.cloud.utils.net.NetUtils;
|
import com.cloud.utils.net.NetUtils;
|
||||||
import com.cloud.utils.script.Script;
|
import com.cloud.utils.script.Script;
|
||||||
import com.cloud.uuididentity.dao.IdentityDao;
|
import com.cloud.uuididentity.dao.IdentityDao;
|
||||||
import org.apache.commons.codec.binary.Base64;
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import javax.crypto.KeyGenerator;
|
|
||||||
import javax.crypto.SecretKey;
|
|
||||||
import java.io.*;
|
|
||||||
import java.net.InetAddress;
|
|
||||||
import java.net.UnknownHostException;
|
|
||||||
import java.security.NoSuchAlgorithmException;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class ConfigurationServerImpl implements ConfigurationServer {
|
public class ConfigurationServerImpl implements ConfigurationServer {
|
||||||
|
|||||||
@ -26,7 +26,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -48,13 +47,24 @@ import javax.management.MBeanRegistrationException;
|
|||||||
import javax.management.MalformedObjectNameException;
|
import javax.management.MalformedObjectNameException;
|
||||||
import javax.management.NotCompliantMBeanException;
|
import javax.management.NotCompliantMBeanException;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||||
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
|
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.cluster.ListClustersCmd;
|
import org.apache.cloudstack.api.command.admin.cluster.ListClustersCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.config.ListCfgsByCmd;
|
import org.apache.cloudstack.api.command.admin.config.ListCfgsByCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.domain.UpdateDomainCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.host.UpdateHostPasswordCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.pod.ListPodsByCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.resource.ListAlertsCmd;
|
import org.apache.cloudstack.api.command.admin.resource.ListAlertsCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.resource.ListCapacityCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.resource.UploadCustomCertificateCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd;
|
import org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.systemvm.DestroySystemVmCmd;
|
import org.apache.cloudstack.api.command.admin.systemvm.DestroySystemVmCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.systemvm.ListSystemVMsCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.systemvm.RebootSystemVmCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.systemvm.StopSystemVmCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.systemvm.UpgradeSystemVMCmd;
|
import org.apache.cloudstack.api.command.admin.systemvm.UpgradeSystemVMCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.vlan.ListVlanIpRangesCmd;
|
||||||
import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
|
import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
|
||||||
import org.apache.cloudstack.api.command.user.config.ListCapabilitiesCmd;
|
import org.apache.cloudstack.api.command.user.config.ListCapabilitiesCmd;
|
||||||
import org.apache.cloudstack.api.command.user.guest.ListGuestOsCategoriesCmd;
|
import org.apache.cloudstack.api.command.user.guest.ListGuestOsCategoriesCmd;
|
||||||
@ -63,19 +73,21 @@ import org.apache.cloudstack.api.command.user.iso.ListIsosCmd;
|
|||||||
import org.apache.cloudstack.api.command.user.iso.UpdateIsoCmd;
|
import org.apache.cloudstack.api.command.user.iso.UpdateIsoCmd;
|
||||||
import org.apache.cloudstack.api.command.user.offering.ListDiskOfferingsCmd;
|
import org.apache.cloudstack.api.command.user.offering.ListDiskOfferingsCmd;
|
||||||
import org.apache.cloudstack.api.command.user.offering.ListServiceOfferingsCmd;
|
import org.apache.cloudstack.api.command.user.offering.ListServiceOfferingsCmd;
|
||||||
import org.apache.cloudstack.api.command.user.ssh.ListSSHKeyPairsCmd;
|
import org.apache.cloudstack.api.command.user.ssh.CreateSSHKeyPairCmd;
|
||||||
import org.apache.cloudstack.api.command.user.ssh.DeleteSSHKeyPairCmd;
|
import org.apache.cloudstack.api.command.user.ssh.DeleteSSHKeyPairCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.ssh.ListSSHKeyPairsCmd;
|
||||||
import org.apache.cloudstack.api.command.user.ssh.RegisterSSHKeyPairCmd;
|
import org.apache.cloudstack.api.command.user.ssh.RegisterSSHKeyPairCmd;
|
||||||
import org.apache.cloudstack.api.command.user.template.ListTemplatesCmd;
|
import org.apache.cloudstack.api.command.user.template.ListTemplatesCmd;
|
||||||
import org.apache.cloudstack.api.command.user.template.UpdateTemplateCmd;
|
import org.apache.cloudstack.api.command.user.template.UpdateTemplateCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.GetVMPasswordCmd;
|
import org.apache.cloudstack.api.command.user.vm.GetVMPasswordCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd;
|
||||||
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
|
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
|
||||||
|
import org.apache.cloudstack.api.response.ExtractResponse;
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
|
||||||
import com.cloud.agent.AgentManager;
|
import com.cloud.agent.AgentManager;
|
||||||
import com.cloud.agent.api.GetVncPortAnswer;
|
import com.cloud.agent.api.GetVncPortAnswer;
|
||||||
import com.cloud.agent.api.GetVncPortCommand;
|
import com.cloud.agent.api.GetVncPortCommand;
|
||||||
@ -86,38 +98,19 @@ import com.cloud.alert.Alert;
|
|||||||
import com.cloud.alert.AlertManager;
|
import com.cloud.alert.AlertManager;
|
||||||
import com.cloud.alert.AlertVO;
|
import com.cloud.alert.AlertVO;
|
||||||
import com.cloud.alert.dao.AlertDao;
|
import com.cloud.alert.dao.AlertDao;
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
|
||||||
import com.cloud.api.ApiDBUtils;
|
import com.cloud.api.ApiDBUtils;
|
||||||
import org.apache.cloudstack.api.command.user.ssh.CreateSSHKeyPairCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.resource.ListCapacityCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.pod.ListPodsByCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.systemvm.ListSystemVMsCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.vlan.ListVlanIpRangesCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.systemvm.RebootSystemVmCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.systemvm.StopSystemVmCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.domain.UpdateDomainCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.host.UpdateHostPasswordCmd;
|
|
||||||
import com.cloud.api.query.dao.DomainRouterJoinDao;
|
|
||||||
import com.cloud.api.query.dao.InstanceGroupJoinDao;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.resource.UploadCustomCertificateCmd;
|
|
||||||
import org.apache.cloudstack.api.response.ExtractResponse;
|
|
||||||
|
|
||||||
import com.cloud.async.AsyncJobExecutor;
|
import com.cloud.async.AsyncJobExecutor;
|
||||||
import com.cloud.async.AsyncJobManager;
|
import com.cloud.async.AsyncJobManager;
|
||||||
import com.cloud.async.AsyncJobResult;
|
import com.cloud.async.AsyncJobResult;
|
||||||
import com.cloud.async.AsyncJobVO;
|
import com.cloud.async.AsyncJobVO;
|
||||||
import com.cloud.async.BaseAsyncJobExecutor;
|
import com.cloud.async.BaseAsyncJobExecutor;
|
||||||
import com.cloud.async.dao.AsyncJobDao;
|
|
||||||
import com.cloud.capacity.Capacity;
|
import com.cloud.capacity.Capacity;
|
||||||
import com.cloud.capacity.CapacityVO;
|
import com.cloud.capacity.CapacityVO;
|
||||||
import com.cloud.capacity.dao.CapacityDao;
|
import com.cloud.capacity.dao.CapacityDao;
|
||||||
import com.cloud.capacity.dao.CapacityDaoImpl.SummedCapacity;
|
import com.cloud.capacity.dao.CapacityDaoImpl.SummedCapacity;
|
||||||
import com.cloud.configuration.Config;
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.configuration.ConfigurationManager;
|
|
||||||
import com.cloud.configuration.Configuration;
|
import com.cloud.configuration.Configuration;
|
||||||
|
import com.cloud.configuration.ConfigurationManager;
|
||||||
import com.cloud.configuration.ConfigurationVO;
|
import com.cloud.configuration.ConfigurationVO;
|
||||||
import com.cloud.configuration.dao.ConfigurationDao;
|
import com.cloud.configuration.dao.ConfigurationDao;
|
||||||
import com.cloud.consoleproxy.ConsoleProxyManagementState;
|
import com.cloud.consoleproxy.ConsoleProxyManagementState;
|
||||||
@ -146,7 +139,6 @@ import com.cloud.event.EventTypes;
|
|||||||
import com.cloud.event.EventUtils;
|
import com.cloud.event.EventUtils;
|
||||||
import com.cloud.event.EventVO;
|
import com.cloud.event.EventVO;
|
||||||
import com.cloud.event.dao.EventDao;
|
import com.cloud.event.dao.EventDao;
|
||||||
import com.cloud.event.dao.EventJoinDao;
|
|
||||||
import com.cloud.exception.CloudAuthenticationException;
|
import com.cloud.exception.CloudAuthenticationException;
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
import com.cloud.exception.ConcurrentOperationException;
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
@ -233,9 +225,7 @@ import com.cloud.utils.Pair;
|
|||||||
import com.cloud.utils.PasswordGenerator;
|
import com.cloud.utils.PasswordGenerator;
|
||||||
import com.cloud.utils.Ternary;
|
import com.cloud.utils.Ternary;
|
||||||
import com.cloud.utils.component.Adapter;
|
import com.cloud.utils.component.Adapter;
|
||||||
import com.cloud.utils.component.Adapters;
|
|
||||||
import com.cloud.utils.component.ComponentContext;
|
import com.cloud.utils.component.ComponentContext;
|
||||||
import com.cloud.utils.component.ComponentLocator;
|
|
||||||
import com.cloud.utils.component.Manager;
|
import com.cloud.utils.component.Manager;
|
||||||
import com.cloud.utils.component.SystemIntegrityChecker;
|
import com.cloud.utils.component.SystemIntegrityChecker;
|
||||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||||
@ -269,7 +259,6 @@ import com.cloud.vm.VirtualMachineProfileImpl;
|
|||||||
import com.cloud.vm.dao.ConsoleProxyDao;
|
import com.cloud.vm.dao.ConsoleProxyDao;
|
||||||
import com.cloud.vm.dao.DomainRouterDao;
|
import com.cloud.vm.dao.DomainRouterDao;
|
||||||
import com.cloud.vm.dao.InstanceGroupDao;
|
import com.cloud.vm.dao.InstanceGroupDao;
|
||||||
import com.cloud.vm.dao.NicDao;
|
|
||||||
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
@ -281,64 +270,107 @@ import edu.emory.mathcs.backport.java.util.Collections;
|
|||||||
public class ManagementServerImpl implements ManagementServer {
|
public class ManagementServerImpl implements ManagementServer {
|
||||||
public static final Logger s_logger = Logger.getLogger(ManagementServerImpl.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ManagementServerImpl.class.getName());
|
||||||
|
|
||||||
private final AccountManager _accountMgr;
|
@Inject
|
||||||
private final AgentManager _agentMgr;
|
private AccountManager _accountMgr;
|
||||||
private final AlertManager _alertMgr;
|
@Inject
|
||||||
private final IPAddressDao _publicIpAddressDao;
|
private AgentManager _agentMgr;
|
||||||
private final DomainRouterDao _routerDao;
|
@Inject
|
||||||
private final DomainRouterJoinDao _routerJoinDao;
|
private AlertManager _alertMgr;
|
||||||
private final ConsoleProxyDao _consoleProxyDao;
|
@Inject
|
||||||
private final ClusterDao _clusterDao;
|
private IPAddressDao _publicIpAddressDao;
|
||||||
private final SecondaryStorageVmDao _secStorageVmDao;
|
@Inject
|
||||||
private final EventDao _eventDao;
|
private DomainRouterDao _routerDao;
|
||||||
private final EventJoinDao _eventJoinDao;
|
@Inject
|
||||||
private final DataCenterDao _dcDao;
|
private ConsoleProxyDao _consoleProxyDao;
|
||||||
private final VlanDao _vlanDao;
|
@Inject
|
||||||
private final AccountVlanMapDao _accountVlanMapDao;
|
private ClusterDao _clusterDao;
|
||||||
private final PodVlanMapDao _podVlanMapDao;
|
@Inject
|
||||||
private final HostDao _hostDao;
|
private SecondaryStorageVmDao _secStorageVmDao;
|
||||||
private final HostDetailsDao _detailsDao;
|
@Inject
|
||||||
private final UserDao _userDao;
|
private EventDao _eventDao;
|
||||||
private final UserVmDao _userVmDao;
|
@Inject
|
||||||
private final ConfigurationDao _configDao;
|
private DataCenterDao _dcDao;
|
||||||
private final ConsoleProxyManager _consoleProxyMgr;
|
@Inject
|
||||||
private final SecondaryStorageVmManager _secStorageVmMgr;
|
private VlanDao _vlanDao;
|
||||||
private final SwiftManager _swiftMgr;
|
@Inject
|
||||||
private final S3Manager _s3Mgr;
|
private AccountVlanMapDao _accountVlanMapDao;
|
||||||
private final ServiceOfferingDao _offeringsDao;
|
@Inject
|
||||||
private final DiskOfferingDao _diskOfferingDao;
|
private PodVlanMapDao _podVlanMapDao;
|
||||||
private final VMTemplateDao _templateDao;
|
@Inject
|
||||||
private final DomainDao _domainDao;
|
private HostDao _hostDao;
|
||||||
private final AccountDao _accountDao;
|
@Inject
|
||||||
private final AlertDao _alertDao;
|
private HostDetailsDao _detailsDao;
|
||||||
private final CapacityDao _capacityDao;
|
@Inject
|
||||||
private final GuestOSDao _guestOSDao;
|
private UserDao _userDao;
|
||||||
private final GuestOSCategoryDao _guestOSCategoryDao;
|
@Inject
|
||||||
private final StoragePoolDao _poolDao;
|
private UserVmDao _userVmDao;
|
||||||
private final NicDao _nicDao;
|
@Inject
|
||||||
private final NetworkDao _networkDao;
|
private ConfigurationDao _configDao;
|
||||||
private final StorageManager _storageMgr;
|
@Inject
|
||||||
private final VirtualMachineManager _itMgr;
|
private ConsoleProxyManager _consoleProxyMgr;
|
||||||
private final HostPodDao _hostPodDao;
|
@Inject
|
||||||
private final VMInstanceDao _vmInstanceDao;
|
private SecondaryStorageVmManager _secStorageVmMgr;
|
||||||
private final VolumeDao _volumeDao;
|
@Inject
|
||||||
private final AsyncJobDao _jobDao;
|
private SwiftManager _swiftMgr;
|
||||||
private final AsyncJobManager _asyncMgr;
|
@Inject
|
||||||
private final int _purgeDelay;
|
private ServiceOfferingDao _offeringsDao;
|
||||||
private final InstanceGroupDao _vmGroupDao;
|
@Inject
|
||||||
private final InstanceGroupJoinDao _vmGroupJoinDao;
|
private DiskOfferingDao _diskOfferingDao;
|
||||||
private final UploadMonitor _uploadMonitor;
|
@Inject
|
||||||
private final UploadDao _uploadDao;
|
private VMTemplateDao _templateDao;
|
||||||
private final SSHKeyPairDao _sshKeyPairDao;
|
@Inject
|
||||||
private final LoadBalancerDao _loadbalancerDao;
|
private DomainDao _domainDao;
|
||||||
private final HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;
|
@Inject
|
||||||
private final Adapters<HostAllocator> _hostAllocators;
|
private AccountDao _accountDao;
|
||||||
private final ConfigurationManager _configMgr;
|
@Inject
|
||||||
private final ResourceTagDao _resourceTagDao;
|
private AlertDao _alertDao;
|
||||||
|
@Inject
|
||||||
|
private CapacityDao _capacityDao;
|
||||||
|
@Inject
|
||||||
|
private GuestOSDao _guestOSDao;
|
||||||
|
@Inject
|
||||||
|
private GuestOSCategoryDao _guestOSCategoryDao;
|
||||||
|
@Inject
|
||||||
|
private StoragePoolDao _poolDao;
|
||||||
|
@Inject
|
||||||
|
private NetworkDao _networkDao;
|
||||||
|
@Inject
|
||||||
|
private StorageManager _storageMgr;
|
||||||
|
@Inject
|
||||||
|
private VirtualMachineManager _itMgr;
|
||||||
|
@Inject
|
||||||
|
private HostPodDao _hostPodDao;
|
||||||
|
@Inject
|
||||||
|
private VMInstanceDao _vmInstanceDao;
|
||||||
|
@Inject
|
||||||
|
private VolumeDao _volumeDao;
|
||||||
|
@Inject
|
||||||
|
private AsyncJobManager _asyncMgr;
|
||||||
|
private int _purgeDelay;
|
||||||
|
@Inject
|
||||||
|
private InstanceGroupDao _vmGroupDao;
|
||||||
|
@Inject
|
||||||
|
private UploadMonitor _uploadMonitor;
|
||||||
|
@Inject
|
||||||
|
private UploadDao _uploadDao;
|
||||||
|
@Inject
|
||||||
|
private SSHKeyPairDao _sshKeyPairDao;
|
||||||
|
@Inject
|
||||||
|
private LoadBalancerDao _loadbalancerDao;
|
||||||
|
@Inject
|
||||||
|
private HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private List<HostAllocator> _hostAllocators;
|
||||||
|
@Inject
|
||||||
|
private ConfigurationManager _configMgr;
|
||||||
|
@Inject
|
||||||
|
private ResourceTagDao _resourceTagDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ProjectManager _projectMgr;
|
ProjectManager _projectMgr;
|
||||||
private final ResourceManager _resourceMgr;
|
@Inject
|
||||||
|
ResourceManager _resourceMgr;
|
||||||
@Inject
|
@Inject
|
||||||
SnapshotManager _snapshotMgr;
|
SnapshotManager _snapshotMgr;
|
||||||
@Inject
|
@Inject
|
||||||
@ -346,83 +378,24 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
@Inject
|
@Inject
|
||||||
HostTagsDao _hostTagsDao;
|
HostTagsDao _hostTagsDao;
|
||||||
|
|
||||||
private final KeystoreManager _ksMgr;
|
@Inject
|
||||||
|
S3Manager _s3Mgr;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
ComponentContext _placeholder;
|
||||||
|
|
||||||
private final ScheduledExecutorService _eventExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("EventChecker"));
|
private final ScheduledExecutorService _eventExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("EventChecker"));
|
||||||
|
private KeystoreManager _ksMgr;
|
||||||
|
|
||||||
private final Map<String, String> _configs;
|
private Map<String, String> _configs;
|
||||||
|
|
||||||
private final StatsCollector _statsCollector;
|
private Map<String, Boolean> _availableIdsMap;
|
||||||
|
|
||||||
private final Map<String, Boolean> _availableIdsMap;
|
@Inject List<UserAuthenticator> _userAuthenticators;
|
||||||
|
|
||||||
private Adapters<UserAuthenticator> _userAuthenticators;
|
|
||||||
|
|
||||||
private String _hashKey = null;
|
private String _hashKey = null;
|
||||||
|
|
||||||
protected ManagementServerImpl() {
|
public ManagementServerImpl() {
|
||||||
ComponentLocator locator = ComponentLocator.getLocator(Name);
|
|
||||||
_configDao = locator.getDao(ConfigurationDao.class);
|
|
||||||
_routerDao = locator.getDao(DomainRouterDao.class);
|
|
||||||
_routerJoinDao = locator.getDao(DomainRouterJoinDao.class);
|
|
||||||
_eventDao = locator.getDao(EventDao.class);
|
|
||||||
_eventJoinDao = locator.getDao(EventJoinDao.class);
|
|
||||||
_dcDao = locator.getDao(DataCenterDao.class);
|
|
||||||
_vlanDao = locator.getDao(VlanDao.class);
|
|
||||||
_accountVlanMapDao = locator.getDao(AccountVlanMapDao.class);
|
|
||||||
_podVlanMapDao = locator.getDao(PodVlanMapDao.class);
|
|
||||||
_hostDao = locator.getDao(HostDao.class);
|
|
||||||
_detailsDao = locator.getDao(HostDetailsDao.class);
|
|
||||||
_hostPodDao = locator.getDao(HostPodDao.class);
|
|
||||||
_jobDao = locator.getDao(AsyncJobDao.class);
|
|
||||||
_clusterDao = locator.getDao(ClusterDao.class);
|
|
||||||
_nicDao = locator.getDao(NicDao.class);
|
|
||||||
_networkDao = locator.getDao(NetworkDao.class);
|
|
||||||
_loadbalancerDao = locator.getDao(LoadBalancerDao.class);
|
|
||||||
|
|
||||||
_accountMgr = locator.getManager(AccountManager.class);
|
|
||||||
_agentMgr = locator.getManager(AgentManager.class);
|
|
||||||
_alertMgr = locator.getManager(AlertManager.class);
|
|
||||||
_consoleProxyMgr = locator.getManager(ConsoleProxyManager.class);
|
|
||||||
_secStorageVmMgr = locator.getManager(SecondaryStorageVmManager.class);
|
|
||||||
_swiftMgr = locator.getManager(SwiftManager.class);
|
|
||||||
_s3Mgr = locator.getManager(S3Manager.class);
|
|
||||||
_storageMgr = locator.getManager(StorageManager.class);
|
|
||||||
_publicIpAddressDao = locator.getDao(IPAddressDao.class);
|
|
||||||
_consoleProxyDao = locator.getDao(ConsoleProxyDao.class);
|
|
||||||
_secStorageVmDao = locator.getDao(SecondaryStorageVmDao.class);
|
|
||||||
_userDao = locator.getDao(UserDao.class);
|
|
||||||
_userVmDao = locator.getDao(UserVmDao.class);
|
|
||||||
_offeringsDao = locator.getDao(ServiceOfferingDao.class);
|
|
||||||
_diskOfferingDao = locator.getDao(DiskOfferingDao.class);
|
|
||||||
_templateDao = locator.getDao(VMTemplateDao.class);
|
|
||||||
_domainDao = locator.getDao(DomainDao.class);
|
|
||||||
_accountDao = locator.getDao(AccountDao.class);
|
|
||||||
_alertDao = locator.getDao(AlertDao.class);
|
|
||||||
_capacityDao = locator.getDao(CapacityDao.class);
|
|
||||||
_guestOSDao = locator.getDao(GuestOSDao.class);
|
|
||||||
_guestOSCategoryDao = locator.getDao(GuestOSCategoryDao.class);
|
|
||||||
_poolDao = locator.getDao(StoragePoolDao.class);
|
|
||||||
_vmGroupDao = locator.getDao(InstanceGroupDao.class);
|
|
||||||
_vmGroupJoinDao = locator.getDao(InstanceGroupJoinDao.class);
|
|
||||||
_uploadDao = locator.getDao(UploadDao.class);
|
|
||||||
_configs = _configDao.getConfiguration();
|
|
||||||
_vmInstanceDao = locator.getDao(VMInstanceDao.class);
|
|
||||||
_volumeDao = locator.getDao(VolumeDao.class);
|
|
||||||
_asyncMgr = locator.getManager(AsyncJobManager.class);
|
|
||||||
_uploadMonitor = locator.getManager(UploadMonitor.class);
|
|
||||||
_sshKeyPairDao = locator.getDao(SSHKeyPairDao.class);
|
|
||||||
_itMgr = locator.getManager(VirtualMachineManager.class);
|
|
||||||
_ksMgr = locator.getManager(KeystoreManager.class);
|
|
||||||
_resourceMgr = locator.getManager(ResourceManager.class);
|
|
||||||
_configMgr = locator.getManager(ConfigurationManager.class);
|
|
||||||
_resourceTagDao = locator.getDao(ResourceTagDao.class);
|
|
||||||
|
|
||||||
_hypervisorCapabilitiesDao = locator.getDao(HypervisorCapabilitiesDao.class);
|
|
||||||
|
|
||||||
_hostAllocators = locator.getAdapters(HostAllocator.class);
|
|
||||||
if (_hostAllocators == null || !_hostAllocators.isSet()) {
|
|
||||||
s_logger.error("Unable to find HostAllocators");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
@ -432,8 +405,6 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
String value = _configs.get("event.purge.interval");
|
String value = _configs.get("event.purge.interval");
|
||||||
int cleanup = NumbersUtil.parseInt(value, 60 * 60 * 24); // 1 day.
|
int cleanup = NumbersUtil.parseInt(value, 60 * 60 * 24); // 1 day.
|
||||||
|
|
||||||
_statsCollector = StatsCollector.getInstance(_configs);
|
|
||||||
|
|
||||||
_purgeDelay = NumbersUtil.parseInt(_configs.get("event.purge.delay"), 0);
|
_purgeDelay = NumbersUtil.parseInt(_configs.get("event.purge.delay"), 0);
|
||||||
if (_purgeDelay != 0) {
|
if (_purgeDelay != 0) {
|
||||||
_eventExecutor.scheduleAtFixedRate(new EventPurgeTask(), cleanup, cleanup, TimeUnit.SECONDS);
|
_eventExecutor.scheduleAtFixedRate(new EventPurgeTask(), cleanup, cleanup, TimeUnit.SECONDS);
|
||||||
@ -444,13 +415,9 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
for (String id : availableIds) {
|
for (String id : availableIds) {
|
||||||
_availableIdsMap.put(id, true);
|
_availableIdsMap.put(id, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
_userAuthenticators = locator.getAdapters(UserAuthenticator.class);
|
|
||||||
if (_userAuthenticators == null || !_userAuthenticators.isSet()) {
|
|
||||||
s_logger.error("Unable to find an user authenticator.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void startup() {
|
public void startup() {
|
||||||
s_logger.info("Startup CloudStack management server...");
|
s_logger.info("Startup CloudStack management server...");
|
||||||
initCloudStackComponents();
|
initCloudStackComponents();
|
||||||
@ -1053,7 +1020,6 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
return new Pair<List<? extends Cluster>, Integer>(result.first(), result.second());
|
return new Pair<List<? extends Cluster>, Integer>(result.first(), result.second());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Pair<List<? extends Host>, List<? extends Host>> listHostsForMigrationOfVM(Long vmId, Long startIndex, Long pageSize) {
|
public Pair<List<? extends Host>, List<? extends Host>> listHostsForMigrationOfVM(Long vmId, Long startIndex, Long pageSize) {
|
||||||
// access check - only root admin can migrate VM
|
// access check - only root admin can migrate VM
|
||||||
@ -1683,9 +1649,6 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
return _templateDao.findById(id);
|
return _templateDao.findById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Pair<List<? extends IpAddress>, Integer> searchForIPAddresses(ListPublicIpAddressesCmd cmd) {
|
public Pair<List<? extends IpAddress>, Integer> searchForIPAddresses(ListPublicIpAddressesCmd cmd) {
|
||||||
Object keyword = cmd.getKeyword();
|
Object keyword = cmd.getKeyword();
|
||||||
@ -1736,7 +1699,7 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
sb.and("isStaticNat", sb.entity().isOneToOneNat(), SearchCriteria.Op.EQ);
|
sb.and("isStaticNat", sb.entity().isOneToOneNat(), SearchCriteria.Op.EQ);
|
||||||
sb.and("vpcId", sb.entity().getVpcId(), SearchCriteria.Op.EQ);
|
sb.and("vpcId", sb.entity().getVpcId(), SearchCriteria.Op.EQ);
|
||||||
|
|
||||||
if (forLoadBalancing != null && (Boolean) forLoadBalancing) {
|
if (forLoadBalancing != null && forLoadBalancing) {
|
||||||
SearchBuilder<LoadBalancerVO> lbSearch = _loadbalancerDao.createSearchBuilder();
|
SearchBuilder<LoadBalancerVO> lbSearch = _loadbalancerDao.createSearchBuilder();
|
||||||
sb.join("lbSearch", lbSearch, sb.entity().getId(), lbSearch.entity().getSourceIpAddressId(), JoinType.INNER);
|
sb.join("lbSearch", lbSearch, sb.entity().getId(), lbSearch.entity().getSourceIpAddressId(), JoinType.INNER);
|
||||||
sb.groupBy(sb.entity().getId());
|
sb.groupBy(sb.entity().getId());
|
||||||
@ -1770,7 +1733,7 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
|
|
||||||
VlanType vlanType = null;
|
VlanType vlanType = null;
|
||||||
if (forVirtualNetwork != null) {
|
if (forVirtualNetwork != null) {
|
||||||
vlanType = (Boolean) forVirtualNetwork ? VlanType.VirtualNetwork : VlanType.DirectAttached;
|
vlanType = forVirtualNetwork ? VlanType.VirtualNetwork : VlanType.DirectAttached;
|
||||||
} else {
|
} else {
|
||||||
vlanType = VlanType.VirtualNetwork;
|
vlanType = VlanType.VirtualNetwork;
|
||||||
}
|
}
|
||||||
@ -2542,7 +2505,6 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
return _poolDao.searchAndCount(sc, searchFilter);
|
return _poolDao.searchAndCount(sc, searchFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ActionEvent(eventType = EventTypes.EVENT_SSVM_START, eventDescription = "starting secondary storage Vm", async = true)
|
@ActionEvent(eventType = EventTypes.EVENT_SSVM_START, eventDescription = "starting secondary storage Vm", async = true)
|
||||||
public SecondaryStorageVmVO startSecondaryStorageVm(long instanceId) {
|
public SecondaryStorageVmVO startSecondaryStorageVm(long instanceId) {
|
||||||
return _secStorageVmMgr.startSecStorageVm(instanceId);
|
return _secStorageVmMgr.startSecStorageVm(instanceId);
|
||||||
@ -3055,8 +3017,6 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
return _vmGroupDao.findById(groupId);
|
return _vmGroupDao.findById(groupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getVersion() {
|
public String getVersion() {
|
||||||
final Class<?> c = ManagementServer.class;
|
final Class<?> c = ManagementServer.class;
|
||||||
@ -3453,6 +3413,7 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void enableAdminUser(String password) {
|
public void enableAdminUser(String password) {
|
||||||
String encodedPassword = null;
|
String encodedPassword = null;
|
||||||
|
|
||||||
@ -3461,8 +3422,8 @@ public class ManagementServerImpl implements ManagementServer {
|
|||||||
// This means its a new account, set the password using the
|
// This means its a new account, set the password using the
|
||||||
// authenticator
|
// authenticator
|
||||||
|
|
||||||
for (Enumeration<UserAuthenticator> en = _userAuthenticators.enumeration(); en.hasMoreElements();) {
|
for (Iterator<UserAuthenticator> en = _userAuthenticators.iterator(); en.hasNext();) {
|
||||||
UserAuthenticator authenticator = en.nextElement();
|
UserAuthenticator authenticator = en.next();
|
||||||
encodedPassword = authenticator.encode(password);
|
encodedPassword = authenticator.encode(password);
|
||||||
if (encodedPassword != null) {
|
if (encodedPassword != null) {
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -45,11 +45,12 @@ public class CloudStartupServlet extends HttpServlet implements ServletContextLi
|
|||||||
initLog4j();
|
initLog4j();
|
||||||
|
|
||||||
// Save Configuration Values
|
// Save Configuration Values
|
||||||
ConfigurationServer c = (ConfigurationServer)ComponentContext.getCompanent(ConfigurationServer.class);
|
ConfigurationServer c = ComponentContext.getCompanent(ConfigurationServer.class);
|
||||||
try {
|
try {
|
||||||
c.persistDefaultValues();
|
c.persistDefaultValues();
|
||||||
s_locator = ComponentLocator.getLocator(ManagementServer.Name);
|
|
||||||
ManagementServer ms = (ManagementServer)ComponentLocator.getComponent(ManagementServer.Name);
|
ManagementServer ms = ComponentContext.getCompanent(ManagementServer.class);
|
||||||
|
ms.startup();
|
||||||
ms.enableAdminUser("password");
|
ms.enableAdminUser("password");
|
||||||
ApiServer.initApiServer(ms.getPropertiesFiles());
|
ApiServer.initApiServer(ms.getPropertiesFiles());
|
||||||
} catch (InvalidParameterValueException ipve) {
|
} catch (InvalidParameterValueException ipve) {
|
||||||
|
|||||||
@ -20,6 +20,8 @@ import java.util.List;
|
|||||||
|
|
||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.cloud.storage.VolumeHostVO;
|
import com.cloud.storage.VolumeHostVO;
|
||||||
import com.cloud.utils.db.GenericDaoBase;
|
import com.cloud.utils.db.GenericDaoBase;
|
||||||
import com.cloud.utils.db.SearchBuilder;
|
import com.cloud.utils.db.SearchBuilder;
|
||||||
|
|||||||
@ -20,8 +20,8 @@ import java.net.URLEncoder;
|
|||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -39,20 +39,18 @@ import javax.naming.ConfigurationException;
|
|||||||
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity;
|
import org.apache.cloudstack.acl.ControlledEntity;
|
||||||
import org.apache.cloudstack.acl.SecurityChecker;
|
import org.apache.cloudstack.acl.SecurityChecker;
|
||||||
|
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||||
import org.apache.cloudstack.api.command.admin.account.UpdateAccountCmd;
|
import org.apache.cloudstack.api.command.admin.account.UpdateAccountCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.user.DeleteUserCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
|
import org.apache.cloudstack.api.command.admin.user.RegisterCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.user.UpdateUserCmd;
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
|
||||||
import com.cloud.api.ApiDBUtils;
|
import com.cloud.api.ApiDBUtils;
|
||||||
import com.cloud.api.query.dao.UserAccountJoinDao;
|
import com.cloud.api.query.dao.UserAccountJoinDao;
|
||||||
import com.cloud.api.query.vo.ControlledViewEntity;
|
import com.cloud.api.query.vo.ControlledViewEntity;
|
||||||
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.command.admin.user.DeleteUserCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.user.UpdateUserCmd;
|
|
||||||
import com.cloud.configuration.Config;
|
import com.cloud.configuration.Config;
|
||||||
import com.cloud.configuration.ConfigurationManager;
|
import com.cloud.configuration.ConfigurationManager;
|
||||||
import com.cloud.configuration.ResourceLimit;
|
import com.cloud.configuration.ResourceLimit;
|
||||||
@ -115,7 +113,6 @@ import com.cloud.user.dao.UserDao;
|
|||||||
import com.cloud.utils.NumbersUtil;
|
import com.cloud.utils.NumbersUtil;
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.Ternary;
|
import com.cloud.utils.Ternary;
|
||||||
import com.cloud.utils.component.Adapters;
|
|
||||||
import com.cloud.utils.component.ComponentLocator;
|
import com.cloud.utils.component.ComponentLocator;
|
||||||
import com.cloud.utils.component.Manager;
|
import com.cloud.utils.component.Manager;
|
||||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||||
@ -285,6 +282,7 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public AccountVO getSystemAccount() {
|
public AccountVO getSystemAccount() {
|
||||||
if (_systemAccount == null) {
|
if (_systemAccount == null) {
|
||||||
_systemAccount = _accountDao.findById(Account.ACCOUNT_ID_SYSTEM);
|
_systemAccount = _accountDao.findById(Account.ACCOUNT_ID_SYSTEM);
|
||||||
@ -936,8 +934,8 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
|
|||||||
|
|
||||||
if (password != null) {
|
if (password != null) {
|
||||||
String encodedPassword = null;
|
String encodedPassword = null;
|
||||||
for (Enumeration<UserAuthenticator> en = _userAuthenticators.enumeration(); en.hasMoreElements();) {
|
for (Iterator<UserAuthenticator> en = _userAuthenticators.iterator(); en.hasNext();) {
|
||||||
UserAuthenticator authenticator = en.nextElement();
|
UserAuthenticator authenticator = en.next();
|
||||||
encodedPassword = authenticator.encode(password);
|
encodedPassword = authenticator.encode(password);
|
||||||
if (encodedPassword != null) {
|
if (encodedPassword != null) {
|
||||||
break;
|
break;
|
||||||
@ -1697,8 +1695,8 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
|
|||||||
}
|
}
|
||||||
|
|
||||||
String encodedPassword = null;
|
String encodedPassword = null;
|
||||||
for (Enumeration<UserAuthenticator> en = _userAuthenticators.enumeration(); en.hasMoreElements();) {
|
for (Iterator<UserAuthenticator> en = _userAuthenticators.iterator(); en.hasNext();) {
|
||||||
UserAuthenticator authenticator = en.nextElement();
|
UserAuthenticator authenticator = en.next();
|
||||||
encodedPassword = authenticator.encode(password);
|
encodedPassword = authenticator.encode(password);
|
||||||
if (encodedPassword != null) {
|
if (encodedPassword != null) {
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -50,7 +50,6 @@ import com.cloud.storage.DiskOfferingVO;
|
|||||||
import com.cloud.storage.dao.DiskOfferingDao;
|
import com.cloud.storage.dao.DiskOfferingDao;
|
||||||
import com.cloud.user.dao.AccountDao;
|
import com.cloud.user.dao.AccountDao;
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.component.Inject;
|
|
||||||
import com.cloud.utils.component.Manager;
|
import com.cloud.utils.component.Manager;
|
||||||
import com.cloud.utils.db.DB;
|
import com.cloud.utils.db.DB;
|
||||||
import com.cloud.utils.db.Filter;
|
import com.cloud.utils.db.Filter;
|
||||||
|
|||||||
@ -23,7 +23,8 @@ import javax.inject.Inject;
|
|||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.IdentityService;
|
import org.apache.cloudstack.api.IdentityService;
|
||||||
import com.cloud.utils.component.Inject;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.cloud.utils.component.Manager;
|
import com.cloud.utils.component.Manager;
|
||||||
import com.cloud.uuididentity.dao.IdentityDao;
|
import com.cloud.uuididentity.dao.IdentityDao;
|
||||||
|
|
||||||
@ -34,10 +35,12 @@ public class IdentityServiceImpl implements Manager, IdentityService {
|
|||||||
|
|
||||||
@Inject private IdentityDao _identityDao;
|
@Inject private IdentityDao _identityDao;
|
||||||
|
|
||||||
|
@Override
|
||||||
public Long getIdentityId(String tableName, String identityString) {
|
public Long getIdentityId(String tableName, String identityString) {
|
||||||
return _identityDao.getIdentityId(tableName, identityString);
|
return _identityDao.getIdentityId(tableName, identityString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getIdentityUuid(String tableName, String identityString) {
|
public String getIdentityUuid(String tableName, String identityString) {
|
||||||
return _identityDao.getIdentityUuid(tableName, identityString);
|
return _identityDao.getIdentityUuid(tableName, identityString);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,20 +32,45 @@ import javax.ejb.Local;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
||||||
|
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||||
|
import org.apache.cloudstack.api.BaseCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.vm.AssignVMCmd;
|
||||||
|
import org.apache.cloudstack.api.command.admin.vm.RecoverVMCmd;
|
||||||
import org.apache.cloudstack.api.command.user.template.CreateTemplateCmd;
|
import org.apache.cloudstack.api.command.user.template.CreateTemplateCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.*;
|
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.vm.RebootVMCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.vm.ResetVMPasswordCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.vm.RestoreVMCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.vm.StartVMCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.vm.UpdateVMCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vmgroup.CreateVMGroupCmd;
|
import org.apache.cloudstack.api.command.user.vmgroup.CreateVMGroupCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vmgroup.DeleteVMGroupCmd;
|
import org.apache.cloudstack.api.command.user.vmgroup.DeleteVMGroupCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
|
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
|
import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
|
||||||
|
import org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntity;
|
||||||
|
import org.apache.cloudstack.engine.service.api.OrchestrationService;
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
|
||||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
|
||||||
import com.cloud.agent.AgentManager;
|
import com.cloud.agent.AgentManager;
|
||||||
import com.cloud.agent.api.*;
|
import com.cloud.agent.api.Answer;
|
||||||
|
import com.cloud.agent.api.AttachIsoCommand;
|
||||||
|
import com.cloud.agent.api.AttachVolumeAnswer;
|
||||||
|
import com.cloud.agent.api.AttachVolumeCommand;
|
||||||
|
import com.cloud.agent.api.ComputeChecksumCommand;
|
||||||
|
import com.cloud.agent.api.CreatePrivateTemplateFromSnapshotCommand;
|
||||||
|
import com.cloud.agent.api.CreatePrivateTemplateFromVolumeCommand;
|
||||||
|
import com.cloud.agent.api.GetVmStatsAnswer;
|
||||||
|
import com.cloud.agent.api.GetVmStatsCommand;
|
||||||
|
import com.cloud.agent.api.SnapshotCommand;
|
||||||
|
import com.cloud.agent.api.StartAnswer;
|
||||||
|
import com.cloud.agent.api.StopAnswer;
|
||||||
|
import com.cloud.agent.api.UpgradeSnapshotCommand;
|
||||||
|
import com.cloud.agent.api.VmStatsEntry;
|
||||||
import com.cloud.agent.api.storage.CreatePrivateTemplateAnswer;
|
import com.cloud.agent.api.storage.CreatePrivateTemplateAnswer;
|
||||||
import com.cloud.agent.api.to.NicTO;
|
import com.cloud.agent.api.to.NicTO;
|
||||||
import com.cloud.agent.api.to.VirtualMachineTO;
|
import com.cloud.agent.api.to.VirtualMachineTO;
|
||||||
@ -55,17 +80,6 @@ import com.cloud.alert.AlertManager;
|
|||||||
import com.cloud.api.ApiDBUtils;
|
import com.cloud.api.ApiDBUtils;
|
||||||
import com.cloud.api.query.dao.UserVmJoinDao;
|
import com.cloud.api.query.dao.UserVmJoinDao;
|
||||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.BaseCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.vm.AssignVMCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.vm.RebootVMCmd;
|
|
||||||
import org.apache.cloudstack.api.command.admin.vm.RecoverVMCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.vm.ResetVMPasswordCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.vm.RestoreVMCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.vm.UpdateVMCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
|
|
||||||
import com.cloud.async.AsyncJobExecutor;
|
import com.cloud.async.AsyncJobExecutor;
|
||||||
import com.cloud.async.AsyncJobManager;
|
import com.cloud.async.AsyncJobManager;
|
||||||
import com.cloud.async.AsyncJobVO;
|
import com.cloud.async.AsyncJobVO;
|
||||||
@ -90,18 +104,37 @@ import com.cloud.event.ActionEvent;
|
|||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.event.UsageEventVO;
|
import com.cloud.event.UsageEventVO;
|
||||||
import com.cloud.event.dao.UsageEventDao;
|
import com.cloud.event.dao.UsageEventDao;
|
||||||
import com.cloud.exception.*;
|
import com.cloud.exception.ConcurrentOperationException;
|
||||||
|
import com.cloud.exception.InsufficientCapacityException;
|
||||||
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
|
import com.cloud.exception.ManagementServerException;
|
||||||
|
import com.cloud.exception.OperationTimedoutException;
|
||||||
|
import com.cloud.exception.PermissionDeniedException;
|
||||||
|
import com.cloud.exception.ResourceAllocationException;
|
||||||
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
|
import com.cloud.exception.StorageUnavailableException;
|
||||||
|
import com.cloud.exception.VirtualMachineMigrationException;
|
||||||
import com.cloud.ha.HighAvailabilityManager;
|
import com.cloud.ha.HighAvailabilityManager;
|
||||||
import com.cloud.host.Host;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.hypervisor.dao.HypervisorCapabilitiesDao;
|
import com.cloud.hypervisor.dao.HypervisorCapabilitiesDao;
|
||||||
import com.cloud.network.*;
|
import com.cloud.network.IPAddressVO;
|
||||||
|
import com.cloud.network.LoadBalancerVMMapVO;
|
||||||
|
import com.cloud.network.Network;
|
||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
|
import com.cloud.network.NetworkManager;
|
||||||
|
import com.cloud.network.NetworkVO;
|
||||||
import com.cloud.network.Networks.TrafficType;
|
import com.cloud.network.Networks.TrafficType;
|
||||||
import com.cloud.network.dao.*;
|
import com.cloud.network.PhysicalNetwork;
|
||||||
|
import com.cloud.network.dao.FirewallRulesDao;
|
||||||
|
import com.cloud.network.dao.IPAddressDao;
|
||||||
|
import com.cloud.network.dao.LoadBalancerVMMapDao;
|
||||||
|
import com.cloud.network.dao.NetworkDao;
|
||||||
|
import com.cloud.network.dao.NetworkServiceMapDao;
|
||||||
|
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||||
import com.cloud.network.element.UserDataServiceProvider;
|
import com.cloud.network.element.UserDataServiceProvider;
|
||||||
import com.cloud.network.lb.LoadBalancingRulesManager;
|
import com.cloud.network.lb.LoadBalancingRulesManager;
|
||||||
import com.cloud.network.rules.FirewallManager;
|
import com.cloud.network.rules.FirewallManager;
|
||||||
@ -129,18 +162,51 @@ import com.cloud.resource.ResourceState;
|
|||||||
import com.cloud.server.Criteria;
|
import com.cloud.server.Criteria;
|
||||||
import com.cloud.service.ServiceOfferingVO;
|
import com.cloud.service.ServiceOfferingVO;
|
||||||
import com.cloud.service.dao.ServiceOfferingDao;
|
import com.cloud.service.dao.ServiceOfferingDao;
|
||||||
import com.cloud.storage.*;
|
import com.cloud.storage.DiskOfferingVO;
|
||||||
|
import com.cloud.storage.GuestOSCategoryVO;
|
||||||
|
import com.cloud.storage.GuestOSVO;
|
||||||
|
import com.cloud.storage.Snapshot;
|
||||||
|
import com.cloud.storage.SnapshotVO;
|
||||||
|
import com.cloud.storage.Storage;
|
||||||
import com.cloud.storage.Storage.ImageFormat;
|
import com.cloud.storage.Storage.ImageFormat;
|
||||||
import com.cloud.storage.Storage.StoragePoolType;
|
import com.cloud.storage.Storage.StoragePoolType;
|
||||||
import com.cloud.storage.Storage.TemplateType;
|
import com.cloud.storage.Storage.TemplateType;
|
||||||
|
import com.cloud.storage.StorageManager;
|
||||||
|
import com.cloud.storage.StoragePool;
|
||||||
|
import com.cloud.storage.StoragePoolStatus;
|
||||||
|
import com.cloud.storage.StoragePoolVO;
|
||||||
|
import com.cloud.storage.VMTemplateHostVO;
|
||||||
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
||||||
|
import com.cloud.storage.VMTemplateVO;
|
||||||
|
import com.cloud.storage.VMTemplateZoneVO;
|
||||||
|
import com.cloud.storage.Volume;
|
||||||
import com.cloud.storage.Volume.Type;
|
import com.cloud.storage.Volume.Type;
|
||||||
import com.cloud.storage.dao.*;
|
import com.cloud.storage.VolumeHostVO;
|
||||||
|
import com.cloud.storage.VolumeVO;
|
||||||
|
import com.cloud.storage.dao.DiskOfferingDao;
|
||||||
|
import com.cloud.storage.dao.GuestOSCategoryDao;
|
||||||
|
import com.cloud.storage.dao.GuestOSDao;
|
||||||
|
import com.cloud.storage.dao.SnapshotDao;
|
||||||
|
import com.cloud.storage.dao.StoragePoolDao;
|
||||||
|
import com.cloud.storage.dao.VMTemplateDao;
|
||||||
|
import com.cloud.storage.dao.VMTemplateDetailsDao;
|
||||||
|
import com.cloud.storage.dao.VMTemplateHostDao;
|
||||||
|
import com.cloud.storage.dao.VMTemplateZoneDao;
|
||||||
|
import com.cloud.storage.dao.VolumeDao;
|
||||||
|
import com.cloud.storage.dao.VolumeHostDao;
|
||||||
import com.cloud.storage.snapshot.SnapshotManager;
|
import com.cloud.storage.snapshot.SnapshotManager;
|
||||||
import com.cloud.tags.dao.ResourceTagDao;
|
import com.cloud.tags.dao.ResourceTagDao;
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
import com.cloud.template.VirtualMachineTemplate;
|
||||||
import com.cloud.template.VirtualMachineTemplate.BootloaderType;
|
import com.cloud.template.VirtualMachineTemplate.BootloaderType;
|
||||||
import com.cloud.user.*;
|
import com.cloud.user.Account;
|
||||||
|
import com.cloud.user.AccountManager;
|
||||||
|
import com.cloud.user.AccountService;
|
||||||
|
import com.cloud.user.AccountVO;
|
||||||
|
import com.cloud.user.ResourceLimitService;
|
||||||
|
import com.cloud.user.SSHKeyPair;
|
||||||
|
import com.cloud.user.User;
|
||||||
|
import com.cloud.user.UserContext;
|
||||||
|
import com.cloud.user.UserVO;
|
||||||
import com.cloud.user.dao.AccountDao;
|
import com.cloud.user.dao.AccountDao;
|
||||||
import com.cloud.user.dao.SSHKeyPairDao;
|
import com.cloud.user.dao.SSHKeyPairDao;
|
||||||
import com.cloud.user.dao.UserDao;
|
import com.cloud.user.dao.UserDao;
|
||||||
@ -157,14 +223,19 @@ import com.cloud.utils.db.Filter;
|
|||||||
import com.cloud.utils.db.GlobalLock;
|
import com.cloud.utils.db.GlobalLock;
|
||||||
import com.cloud.utils.db.SearchBuilder;
|
import com.cloud.utils.db.SearchBuilder;
|
||||||
import com.cloud.utils.db.SearchCriteria;
|
import com.cloud.utils.db.SearchCriteria;
|
||||||
import com.cloud.utils.db.Transaction;
|
|
||||||
import com.cloud.utils.db.SearchCriteria.Func;
|
import com.cloud.utils.db.SearchCriteria.Func;
|
||||||
|
import com.cloud.utils.db.Transaction;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.utils.exception.ExecutionException;
|
import com.cloud.utils.exception.ExecutionException;
|
||||||
import com.cloud.utils.fsm.NoTransitionException;
|
import com.cloud.utils.fsm.NoTransitionException;
|
||||||
import com.cloud.utils.net.NetUtils;
|
import com.cloud.utils.net.NetUtils;
|
||||||
import com.cloud.vm.VirtualMachine.State;
|
import com.cloud.vm.VirtualMachine.State;
|
||||||
import com.cloud.vm.dao.*;
|
import com.cloud.vm.dao.InstanceGroupDao;
|
||||||
|
import com.cloud.vm.dao.InstanceGroupVMMapDao;
|
||||||
|
import com.cloud.vm.dao.NicDao;
|
||||||
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
|
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||||
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Local(value = { UserVmManager.class, UserVmService.class })
|
@Local(value = { UserVmManager.class, UserVmService.class })
|
||||||
|
|||||||
@ -156,6 +156,7 @@ DROP TABLE IF EXISTS `cloud`.`autoscale_vmprofiles`;
|
|||||||
DROP TABLE IF EXISTS `cloud`.`autoscale_policies`;
|
DROP TABLE IF EXISTS `cloud`.`autoscale_policies`;
|
||||||
DROP TABLE IF EXISTS `cloud`.`counter`;
|
DROP TABLE IF EXISTS `cloud`.`counter`;
|
||||||
DROP TABLE IF EXISTS `cloud`.`conditions`;
|
DROP TABLE IF EXISTS `cloud`.`conditions`;
|
||||||
|
DROP TABLE IF EXISTS `cloud`.`inline_load_balancer_nic_map`;
|
||||||
|
|
||||||
CREATE TABLE `cloud`.`version` (
|
CREATE TABLE `cloud`.`version` (
|
||||||
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT COMMENT 'id',
|
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT COMMENT 'id',
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.utils;
|
package com.cloud.utils;
|
||||||
|
|
||||||
import static java.util.Arrays.*;
|
import static java.util.Arrays.asList;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -151,4 +151,17 @@ public class StringUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static int formatForOutput(String text, int start, int columns, char separator) {
|
||||||
|
if (start >= text.length()) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int end = start + columns;
|
||||||
|
if (end > text.length()) {
|
||||||
|
end = text.length();
|
||||||
|
}
|
||||||
|
String searchable = text.substring(start, end);
|
||||||
|
int found = searchable.lastIndexOf(separator);
|
||||||
|
return found > 0 ? found : end - start;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user