mirror of
https://github.com/apache/cloudstack.git
synced 2025-12-15 18:12:35 +01:00
removed import of componentlocator and inject from all files
This commit is contained in:
parent
395de6f2b3
commit
56e5fbdee2
@ -141,7 +141,7 @@ public abstract class BaseCmd {
|
||||
|
||||
public static QueryService _queryService;
|
||||
|
||||
static void setComponents(ResponseGenerator generator) {
|
||||
public static void setComponents(ResponseGenerator generator) {
|
||||
_mgr = ComponentContext.getComponent(ManagementService.class);
|
||||
_accountService = ComponentContext.getComponent(AccountService.class);
|
||||
_configService = ComponentContext.getComponent(ConfigurationService.class);
|
||||
|
||||
@ -21,6 +21,7 @@ import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@ -46,8 +47,6 @@ import com.cloud.storage.resource.SecondaryStorageResource;
|
||||
import com.cloud.storage.template.TemplateUploader.Status;
|
||||
import com.cloud.storage.template.TemplateUploader.UploadCompleteCallback;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.script.Script;
|
||||
|
||||
@ -171,9 +170,9 @@ public class UploadManagerImpl implements UploadManager {
|
||||
private ExecutorService threadPool;
|
||||
private final Map<String, UploadJob> jobs = new ConcurrentHashMap<String, UploadJob>();
|
||||
private String parentDir;
|
||||
private Adapters<Processor> _processors;
|
||||
private List<Processor> _processors;
|
||||
private String publicTemplateRepo;
|
||||
private String extractMountPoint = "/mnt/SecStorage/extractmnt";
|
||||
private final String extractMountPoint = "/mnt/SecStorage/extractmnt";
|
||||
private StorageLayer _storage;
|
||||
private int installTimeoutPerGig;
|
||||
private boolean _sslCopy;
|
||||
@ -457,10 +456,14 @@ public class UploadManagerImpl implements UploadManager {
|
||||
Class<StorageLayer> clazz;
|
||||
try {
|
||||
clazz = (Class<StorageLayer>) Class.forName(value);
|
||||
_storage = clazz.newInstance();
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new ConfigurationException("Unable to instantiate " + value);
|
||||
} catch (InstantiationException e) {
|
||||
throw new ConfigurationException("Unable to instantiate " + value);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new ConfigurationException("Unable to instantiate " + value);
|
||||
}
|
||||
_storage = ComponentLocator.inject(clazz);
|
||||
}
|
||||
String useSsl = (String)params.get("sslcopy");
|
||||
if (useSsl != null) {
|
||||
|
||||
@ -8,7 +8,7 @@ import org.apache.cloudstack.storage.snapshot.SnapshotInfo;
|
||||
import org.apache.cloudstack.storage.volume.ObjectInDataStoreStateMachine.Event;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
|
||||
@Component
|
||||
public class ObjectInDataStoreManagerImpl implements ObjectInDataStoreManager {
|
||||
|
||||
@ -38,7 +38,7 @@ import com.cloud.storage.Storage.ImageFormat;
|
||||
import com.cloud.storage.Volume;
|
||||
import com.cloud.tags.dao.ResourceTagsDaoImpl;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
|
||||
@ -29,7 +29,7 @@ import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.AssociateLunCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "associateLun", description="Associate a LUN with a guest IQN", responseObject = AssociateLunCmdResponse.class)
|
||||
public class AssociateLunCmd extends BaseCmd {
|
||||
|
||||
@ -33,7 +33,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.CreateLunCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "createLunOnFiler", description="Create a LUN from a pool", responseObject = CreateLunCmdResponse.class)
|
||||
public class CreateLunCmd extends BaseCmd {
|
||||
|
||||
@ -32,7 +32,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.CreateVolumeOnFilerCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "createVolumeOnFiler", description="Create a volume", responseObject = CreateVolumeOnFilerCmdResponse.class)
|
||||
public class CreateVolumeOnFilerCmd extends BaseCmd {
|
||||
|
||||
@ -31,7 +31,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.CreateVolumePoolCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "createPool", description="Create a pool", responseObject = CreateVolumePoolCmdResponse.class)
|
||||
public class CreateVolumePoolCmd extends BaseCmd {
|
||||
|
||||
@ -33,7 +33,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.DeleteVolumePoolCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "deletePool", description="Delete a pool", responseObject = DeleteVolumePoolCmdResponse.class)
|
||||
public class DeleteVolumePoolCmd extends BaseCmd {
|
||||
|
||||
@ -33,7 +33,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.DeleteLUNCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "destroyLunOnFiler", description="Destroy a LUN", responseObject = DeleteLUNCmdResponse.class)
|
||||
public class DestroyLunCmd extends BaseCmd {
|
||||
|
||||
@ -31,7 +31,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.DeleteVolumeOnFilerCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "destroyVolumeOnFiler", description="Destroy a Volume", responseObject = DeleteVolumeOnFilerCmdResponse.class)
|
||||
public class DestroyVolumeOnFilerCmd extends BaseCmd {
|
||||
|
||||
@ -30,7 +30,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.DissociateLunCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "dissociateLun", description="Dissociate a LUN", responseObject = DissociateLunCmdResponse.class)
|
||||
public class DissociateLunCmd extends BaseCmd {
|
||||
|
||||
@ -36,7 +36,7 @@ import com.cloud.netapp.LunVO;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.ListLunsCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "listLunsOnFiler", description="List LUN", responseObject = ListLunsCmdResponse.class)
|
||||
public class ListLunsCmd extends BaseCmd
|
||||
|
||||
@ -34,7 +34,7 @@ import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.netapp.PoolVO;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.ListVolumePoolsCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "listPools", description="List Pool", responseObject = ListVolumePoolsCmdResponse.class)
|
||||
public class ListVolumePoolsCmd extends BaseCmd {
|
||||
|
||||
@ -33,7 +33,7 @@ import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.netapp.NetappVolumeVO;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.ListVolumesOnFilerCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "listVolumesOnFiler", description="List Volumes", responseObject = ListVolumesOnFilerCmdResponse.class)
|
||||
public class ListVolumesOnFilerCmd extends BaseCmd {
|
||||
|
||||
@ -31,7 +31,7 @@ import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.netapp.NetappManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.api.response.netapp.ModifyVolumePoolCmdResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "modifyPool", description="Modify pool", responseObject = ModifyVolumePoolCmdResponse.class)
|
||||
public class ModifyVolumePoolCmd extends BaseCmd {
|
||||
|
||||
@ -36,7 +36,6 @@ import com.cloud.host.HostVO;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.resource.ResourceManager;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
|
||||
|
||||
@ -212,7 +212,7 @@ import com.cloud.storage.template.TemplateLocation;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.PropertiesUtil;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.utils.script.OutputInterpreter;
|
||||
|
||||
@ -58,7 +58,7 @@ import com.cloud.simulator.MockVMVO;
|
||||
import com.cloud.simulator.dao.MockHostDao;
|
||||
import com.cloud.simulator.dao.MockVMDao;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
|
||||
@ -77,7 +77,7 @@ import com.cloud.storage.Storage.ImageFormat;
|
||||
import com.cloud.storage.Storage.StoragePoolType;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
||||
import com.cloud.storage.template.TemplateInfo;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.DiskProfile;
|
||||
|
||||
@ -46,7 +46,7 @@ import com.cloud.simulator.dao.MockSecurityRulesDao;
|
||||
import com.cloud.simulator.dao.MockVMDao;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
|
||||
@ -28,7 +28,7 @@ import com.cloud.simulator.MockVMVO;
|
||||
import com.cloud.simulator.dao.MockConfigurationDao;
|
||||
import com.cloud.simulator.dao.MockHostDao;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
import com.cloud.utils.db.ConnectionConcierge;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
|
||||
@ -31,7 +31,7 @@ import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "configureSimulator", description="configure simulator", responseObject=SuccessResponse.class)
|
||||
public class ConfigureSimulator extends BaseCmd {
|
||||
|
||||
@ -43,7 +43,7 @@ import com.cloud.agent.manager.SimulatorManager.AgentType;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.host.Host.Type;
|
||||
import com.cloud.simulator.MockHost;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
public class AgentResourceBase implements ServerResource {
|
||||
private static final Logger s_logger = Logger
|
||||
|
||||
@ -54,7 +54,7 @@ import com.cloud.storage.VMTemplateZoneVO;
|
||||
import com.cloud.storage.dao.VMTemplateDao;
|
||||
import com.cloud.storage.dao.VMTemplateHostDao;
|
||||
import com.cloud.storage.dao.VMTemplateZoneDao;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
|
||||
@Local(value = Discoverer.class)
|
||||
public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, Listener, ResourceStateAdapter {
|
||||
|
||||
@ -38,7 +38,7 @@ import com.cloud.host.Status;
|
||||
import com.cloud.storage.SnapshotVO;
|
||||
import com.cloud.storage.dao.SnapshotDao;
|
||||
import com.cloud.storage.secondary.SecondaryStorageDiscoverer;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ import com.cloud.hypervisor.HypervisorGuruBase;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.storage.GuestOSVO;
|
||||
import com.cloud.storage.dao.GuestOSDao;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.simulator.MockHostVO;
|
||||
import com.cloud.simulator.MockVMVO;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
|
||||
@ -66,7 +66,7 @@ import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.dao.VMTemplateDao;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.utils.UriUtils;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.vmware.vim25.ClusterDasConfigInfo;
|
||||
import com.vmware.vim25.ManagedObjectReference;
|
||||
|
||||
|
||||
@ -86,7 +86,7 @@ import com.cloud.storage.secondary.SecondaryStorageVmManager;
|
||||
import com.cloud.utils.FileUtil;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
|
||||
@ -21,7 +21,7 @@ import org.apache.log4j.Logger;
|
||||
import com.cloud.hypervisor.vmware.manager.VmwareManager;
|
||||
import com.cloud.hypervisor.vmware.util.VmwareContext;
|
||||
import com.cloud.utils.StringUtils;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.vmware.apputils.version.ExtendedAppUtil;
|
||||
|
||||
public class VmwareContextFactory {
|
||||
|
||||
@ -200,7 +200,7 @@ import com.cloud.storage.template.TemplateInfo;
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.StringUtils;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.exception.ExceptionUtil;
|
||||
|
||||
@ -30,7 +30,7 @@ import com.cloud.network.dao.LoadBalancerDao;
|
||||
import com.cloud.network.dao.LoadBalancerDaoImpl;
|
||||
import com.cloud.network.router.VirtualRouter.Role;
|
||||
import com.cloud.network.router.VirtualRouter.Role;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.JoinBuilder.JoinType;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
|
||||
@ -30,7 +30,7 @@ import org.springframework.stereotype.Component;
|
||||
import com.cloud.server.ManagementServer;
|
||||
import com.cloud.user.UserAccount;
|
||||
import com.cloud.user.dao.UserAccountDao;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
/**
|
||||
|
||||
@ -30,7 +30,7 @@ import org.springframework.stereotype.Component;
|
||||
import com.cloud.server.ManagementServer;
|
||||
import com.cloud.user.UserAccount;
|
||||
import com.cloud.user.dao.UserAccountDao;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
|
||||
|
||||
@ -32,8 +32,8 @@ import com.cloud.server.ManagementServer;
|
||||
import com.cloud.servlet.CloudStartupServlet;
|
||||
import com.cloud.user.UserAccount;
|
||||
import com.cloud.user.dao.UserAccountDao;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.component.Inject;
|
||||
|
||||
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
@Local(value={UserAuthenticator.class})
|
||||
|
||||
@ -66,7 +66,6 @@ import com.cloud.agent.transport.Response;
|
||||
import com.cloud.alert.AlertManager;
|
||||
import com.cloud.capacity.dao.CapacityDao;
|
||||
import com.cloud.cluster.ManagementServerNode;
|
||||
import com.cloud.cluster.StackMaid;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.dc.ClusterDetailsDao;
|
||||
@ -977,8 +976,6 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager {
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
s_logger.error("Exception caught while handling disconnect: ", e);
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1150,7 +1147,6 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager {
|
||||
if (actionDelegate != null) {
|
||||
actionDelegate.action(new Long(id));
|
||||
}
|
||||
StackMaid.current().exitCleanup();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1381,7 +1377,6 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager {
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
txn.close();
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,7 +62,6 @@ import com.cloud.cluster.ClusterManagerListener;
|
||||
import com.cloud.cluster.ClusteredAgentRebalanceService;
|
||||
import com.cloud.cluster.ManagementServerHost;
|
||||
import com.cloud.cluster.ManagementServerHostVO;
|
||||
import com.cloud.cluster.StackMaid;
|
||||
import com.cloud.cluster.agentlb.AgentLoadBalancerPlanner;
|
||||
import com.cloud.cluster.agentlb.HostTransferMapVO;
|
||||
import com.cloud.cluster.agentlb.HostTransferMapVO.HostTransferState;
|
||||
@ -1120,8 +1119,6 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust
|
||||
rebalanceHost(hostId, currentOwnerId, futureOwnerId);
|
||||
} catch (Exception e) {
|
||||
s_logger.warn("Unable to rebalance host id=" + hostId, e);
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -104,12 +104,12 @@ import org.apache.http.protocol.ResponseContent;
|
||||
import org.apache.http.protocol.ResponseDate;
|
||||
import org.apache.http.protocol.ResponseServer;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.response.ApiResponseSerializer;
|
||||
import com.cloud.async.AsyncJob;
|
||||
import com.cloud.async.AsyncJobManager;
|
||||
import com.cloud.async.AsyncJobVO;
|
||||
import com.cloud.cluster.StackMaid;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.ConfigurationVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
@ -136,19 +136,20 @@ import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.exception.CSExceptionErrorCode;
|
||||
import com.cloud.uuididentity.dao.IdentityDao;
|
||||
|
||||
@Component
|
||||
public class ApiServer implements HttpRequestHandler {
|
||||
private static final Logger s_logger = Logger.getLogger(ApiServer.class.getName());
|
||||
private static final Logger s_accessLogger = Logger.getLogger("apiserver." + ApiServer.class.getName());
|
||||
|
||||
public static boolean encodeApiResponse = false;
|
||||
public static String jsonContentType = "text/javascript";
|
||||
private ApiDispatcher _dispatcher;
|
||||
@Inject ApiDispatcher _dispatcher;
|
||||
|
||||
@Inject private final AccountManager _accountMgr = null;
|
||||
@Inject private final DomainManager _domainMgr = null;
|
||||
@Inject private final AsyncJobManager _asyncMgr = null;
|
||||
@Inject private ConfigurationDao _configDao;
|
||||
@Inject protected List<APIAccessChecker> _apiAccessCheckers;
|
||||
@Inject AccountManager _accountMgr;
|
||||
@Inject DomainManager _domainMgr;
|
||||
@Inject AsyncJobManager _asyncMgr;
|
||||
@Inject ConfigurationDao _configDao;
|
||||
@Inject List<APIAccessChecker> _apiAccessCheckers;
|
||||
|
||||
@Inject List<PluggableService> _pluggableServices;
|
||||
@Inject IdentityDao _identityDao;
|
||||
@ -190,7 +191,6 @@ public class ApiServer implements HttpRequestHandler {
|
||||
|
||||
_systemAccount = _accountMgr.getSystemAccount();
|
||||
_systemUser = _accountMgr.getSystemUser();
|
||||
_dispatcher = ApiDispatcher.getInstance();
|
||||
|
||||
Integer apiPort = null; // api port, null by default
|
||||
SearchCriteria<ConfigurationVO> sc = _configDao.createSearchCriteria();
|
||||
@ -907,12 +907,8 @@ public class ApiServer implements HttpRequestHandler {
|
||||
HttpContext context = new BasicHttpContext(null);
|
||||
try {
|
||||
while (!Thread.interrupted() && _conn.isOpen()) {
|
||||
try {
|
||||
_httpService.handleRequest(_conn, context);
|
||||
_conn.close();
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
}
|
||||
}
|
||||
} catch (ConnectionClosedException ex) {
|
||||
if (s_logger.isTraceEnabled()) {
|
||||
|
||||
@ -23,6 +23,7 @@ import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@ -32,14 +33,11 @@ import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.cluster.StackMaid;
|
||||
import com.cloud.exception.CloudAuthenticationException;
|
||||
import com.cloud.server.ManagementServer;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountService;
|
||||
import com.cloud.user.UserContext;
|
||||
import com.cloud.utils.StringUtils;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
@ -47,8 +45,8 @@ public class ApiServlet extends HttpServlet {
|
||||
public static final Logger s_logger = Logger.getLogger(ApiServlet.class.getName());
|
||||
private static final Logger s_accessLogger = Logger.getLogger("apiserver." + ApiServer.class.getName());
|
||||
|
||||
private ApiServer _apiServer = null;
|
||||
private AccountService _accountMgr = null;
|
||||
ApiServer _apiServer;
|
||||
@Inject AccountService _accountMgr;
|
||||
|
||||
public ApiServlet() {
|
||||
super();
|
||||
@ -56,26 +54,16 @@ public class ApiServlet extends HttpServlet {
|
||||
if (_apiServer == null) {
|
||||
throw new CloudRuntimeException("ApiServer not initialized");
|
||||
}
|
||||
ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
|
||||
_accountMgr = locator.getManager(AccountService.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
|
||||
try {
|
||||
processRequest(req, resp);
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
|
||||
try {
|
||||
processRequest(req, resp);
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
}
|
||||
}
|
||||
|
||||
private void utf8Fixup(HttpServletRequest req, Map<String, Object[]> params) {
|
||||
|
||||
@ -16,24 +16,28 @@
|
||||
// under the License.
|
||||
package com.cloud.api.commands;
|
||||
|
||||
import org.apache.cloudstack.api.*;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.APICommand;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.response.TrafficMonitorResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.api.APICommand;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.network.NetworkUsageManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import org.apache.cloudstack.api.response.TrafficMonitorResponse;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
@APICommand(name = "addTrafficMonitor", description="Adds Traffic Monitor Host for Direct Network Usage", responseObject = TrafficMonitorResponse.class)
|
||||
public class AddTrafficMonitorCmd extends BaseCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(AddTrafficMonitorCmd.class.getName());
|
||||
private static final String s_name = "addtrafficmonitorresponse";
|
||||
@Inject NetworkUsageManager networkUsageMgr;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
//////////////// API parameters /////////////////////
|
||||
@ -89,8 +93,6 @@ public class AddTrafficMonitorCmd extends BaseCmd {
|
||||
@Override
|
||||
public void execute(){
|
||||
try {
|
||||
ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
|
||||
NetworkUsageManager networkUsageMgr = locator.getManager(NetworkUsageManager.class);
|
||||
Host trafficMonitor = networkUsageMgr.addTrafficMonitor(this);
|
||||
TrafficMonitorResponse response = networkUsageMgr.getApiResponse(trafficMonitor);
|
||||
response.setObjectName("trafficmonitor");
|
||||
|
||||
@ -16,25 +16,26 @@
|
||||
// under the License.
|
||||
package com.cloud.api.commands;
|
||||
|
||||
import org.apache.cloudstack.api.response.HostResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.APICommand;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.APICommand;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.response.HostResponse;
|
||||
import org.apache.cloudstack.api.response.SuccessResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.network.NetworkUsageManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
@APICommand(name = "deleteTrafficMonitor", description="Deletes an traffic monitor host.", responseObject = SuccessResponse.class)
|
||||
public class DeleteTrafficMonitorCmd extends BaseCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(DeleteTrafficMonitorCmd.class.getName());
|
||||
private static final String s_name = "deletetrafficmonitorresponse";
|
||||
@Inject NetworkUsageManager _networkUsageMgr;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
//////////////// API parameters /////////////////////
|
||||
@ -69,8 +70,6 @@ public class DeleteTrafficMonitorCmd extends BaseCmd {
|
||||
@Override
|
||||
public void execute(){
|
||||
try {
|
||||
ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
|
||||
NetworkUsageManager _networkUsageMgr = locator.getManager(NetworkUsageManager.class);
|
||||
boolean result = _networkUsageMgr.deleteTrafficMonitor(this);
|
||||
if (result) {
|
||||
SuccessResponse response = new SuccessResponse(getCommandName());
|
||||
|
||||
@ -32,7 +32,7 @@ import com.cloud.host.Host;
|
||||
import com.cloud.network.NetworkUsageManager;
|
||||
import com.cloud.server.ManagementService;
|
||||
import org.apache.cloudstack.api.response.TrafficMonitorResponse;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
@APICommand(name = "listTrafficMonitors", description="List traffic monitor Hosts.", responseObject = TrafficMonitorResponse.class)
|
||||
public class ListTrafficMonitorsCmd extends BaseListCmd {
|
||||
|
||||
@ -20,21 +20,19 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.response.DomainRouterResponse;
|
||||
import org.apache.cloudstack.api.response.NicResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiResponseHelper;
|
||||
import com.cloud.api.query.vo.DomainRouterJoinVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
|
||||
import org.apache.cloudstack.api.response.DomainRouterResponse;
|
||||
import org.apache.cloudstack.api.response.NicResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.network.Networks.TrafficType;
|
||||
import com.cloud.network.router.VirtualRouter;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
@ -47,9 +45,9 @@ public class DomainRouterJoinDaoImpl extends GenericDaoBase<DomainRouterJoinVO,
|
||||
@Inject
|
||||
private ConfigurationDao _configDao;
|
||||
|
||||
private SearchBuilder<DomainRouterJoinVO> vrSearch;
|
||||
private final SearchBuilder<DomainRouterJoinVO> vrSearch;
|
||||
|
||||
private SearchBuilder<DomainRouterJoinVO> vrIdSearch;
|
||||
private final SearchBuilder<DomainRouterJoinVO> vrIdSearch;
|
||||
|
||||
protected DomainRouterJoinDaoImpl() {
|
||||
|
||||
|
||||
@ -25,21 +25,19 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants.HostDetails;
|
||||
import org.apache.cloudstack.api.response.HostResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.query.vo.HostJoinVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.host.HostStats;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants.HostDetails;
|
||||
import org.apache.cloudstack.api.response.HostResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.storage.StorageStats;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
@ -52,9 +50,9 @@ public class HostJoinDaoImpl extends GenericDaoBase<HostJoinVO, Long> implements
|
||||
@Inject
|
||||
private ConfigurationDao _configDao;
|
||||
|
||||
private SearchBuilder<HostJoinVO> hostSearch;
|
||||
private final SearchBuilder<HostJoinVO> hostSearch;
|
||||
|
||||
private SearchBuilder<HostJoinVO> hostIdSearch;
|
||||
private final SearchBuilder<HostJoinVO> hostIdSearch;
|
||||
|
||||
|
||||
protected HostJoinDaoImpl() {
|
||||
|
||||
@ -20,19 +20,17 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.response.ProjectResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.query.vo.ProjectJoinVO;
|
||||
import com.cloud.api.query.vo.ResourceTagJoinVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
|
||||
import org.apache.cloudstack.api.response.ProjectResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.projects.Project;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
@ -45,9 +43,9 @@ public class ProjectJoinDaoImpl extends GenericDaoBase<ProjectJoinVO, Long> impl
|
||||
@Inject
|
||||
private ConfigurationDao _configDao;
|
||||
|
||||
private SearchBuilder<ProjectJoinVO> prjSearch;
|
||||
private final SearchBuilder<ProjectJoinVO> prjSearch;
|
||||
|
||||
private SearchBuilder<ProjectJoinVO> prjIdSearch;
|
||||
private final SearchBuilder<ProjectJoinVO> prjIdSearch;
|
||||
|
||||
protected ProjectJoinDaoImpl() {
|
||||
|
||||
|
||||
@ -20,18 +20,16 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.response.ResourceTagResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiResponseHelper;
|
||||
import com.cloud.api.query.vo.ResourceTagJoinVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
|
||||
import org.apache.cloudstack.api.response.ResourceTagResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.server.ResourceTag;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
@ -44,9 +42,9 @@ public class ResourceTagJoinDaoImpl extends GenericDaoBase<ResourceTagJoinVO, Lo
|
||||
@Inject
|
||||
private ConfigurationDao _configDao;
|
||||
|
||||
private SearchBuilder<ResourceTagJoinVO> tagSearch;
|
||||
private final SearchBuilder<ResourceTagJoinVO> tagSearch;
|
||||
|
||||
private SearchBuilder<ResourceTagJoinVO> tagIdSearch;
|
||||
private final SearchBuilder<ResourceTagJoinVO> tagIdSearch;
|
||||
|
||||
protected ResourceTagJoinDaoImpl() {
|
||||
|
||||
|
||||
@ -20,23 +20,21 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.response.SecurityGroupResponse;
|
||||
import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.ApiResponseHelper;
|
||||
import com.cloud.api.query.vo.ResourceTagJoinVO;
|
||||
import com.cloud.api.query.vo.SecurityGroupJoinVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
|
||||
import org.apache.cloudstack.api.response.SecurityGroupResponse;
|
||||
import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.network.security.SecurityGroup;
|
||||
import com.cloud.network.security.SecurityRule.SecurityRuleType;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
@ -49,9 +47,9 @@ public class SecurityGroupJoinDaoImpl extends GenericDaoBase<SecurityGroupJoinVO
|
||||
@Inject
|
||||
private ConfigurationDao _configDao;
|
||||
|
||||
private SearchBuilder<SecurityGroupJoinVO> sgSearch;
|
||||
private final SearchBuilder<SecurityGroupJoinVO> sgSearch;
|
||||
|
||||
private SearchBuilder<SecurityGroupJoinVO> sgIdSearch;
|
||||
private final SearchBuilder<SecurityGroupJoinVO> sgIdSearch;
|
||||
|
||||
protected SecurityGroupJoinDaoImpl() {
|
||||
|
||||
|
||||
@ -18,19 +18,19 @@ package com.cloud.api.query.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.ejb.Local;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.response.StoragePoolResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.query.vo.StoragePoolJoinVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import org.apache.cloudstack.api.response.StoragePoolResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.storage.StoragePool;
|
||||
import com.cloud.storage.StorageStats;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
@ -44,9 +44,9 @@ public class StoragePoolJoinDaoImpl extends GenericDaoBase<StoragePoolJoinVO, Lo
|
||||
@Inject
|
||||
private ConfigurationDao _configDao;
|
||||
|
||||
private SearchBuilder<StoragePoolJoinVO> spSearch;
|
||||
private final SearchBuilder<StoragePoolJoinVO> spSearch;
|
||||
|
||||
private SearchBuilder<StoragePoolJoinVO> spIdSearch;
|
||||
private final SearchBuilder<StoragePoolJoinVO> spIdSearch;
|
||||
|
||||
|
||||
protected StoragePoolJoinDaoImpl() {
|
||||
|
||||
@ -24,23 +24,21 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.ejb.Local;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.query.vo.ResourceTagJoinVO;
|
||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants.VMDetails;
|
||||
import org.apache.cloudstack.api.response.NicResponse;
|
||||
import org.apache.cloudstack.api.response.SecurityGroupResponse;
|
||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.query.vo.ResourceTagJoinVO;
|
||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.uservm.UserVm;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
@ -55,7 +53,7 @@ public class UserVmJoinDaoImpl extends GenericDaoBase<UserVmJoinVO, Long> implem
|
||||
@Inject
|
||||
private ConfigurationDao _configDao;
|
||||
|
||||
private SearchBuilder<UserVmJoinVO> VmDetailSearch;
|
||||
private final SearchBuilder<UserVmJoinVO> VmDetailSearch;
|
||||
|
||||
protected UserVmJoinDaoImpl() {
|
||||
|
||||
@ -68,6 +66,7 @@ public class UserVmJoinDaoImpl extends GenericDaoBase<UserVmJoinVO, Long> implem
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserVmResponse newUserVmResponse(String objectName, UserVmJoinVO userVm, EnumSet<VMDetails> details, Account caller) {
|
||||
UserVmResponse userVmResponse = new UserVmResponse();
|
||||
|
||||
@ -218,6 +217,7 @@ public class UserVmJoinDaoImpl extends GenericDaoBase<UserVmJoinVO, Long> implem
|
||||
return userVmResponse;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserVmResponse setUserVmResponse(UserVmResponse userVmData, UserVmJoinVO uvo) {
|
||||
Long securityGroupId = uvo.getSecurityGroupId();
|
||||
if (securityGroupId != null && securityGroupId.longValue() != 0) {
|
||||
|
||||
@ -20,26 +20,24 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.ApiResponseHelper;
|
||||
import com.cloud.api.query.vo.ResourceTagJoinVO;
|
||||
import com.cloud.api.query.vo.VolumeJoinVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
|
||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.storage.VMTemplateHostVO;
|
||||
import com.cloud.storage.Volume;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
||||
import com.cloud.storage.Volume;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.UserContext;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
@ -53,9 +51,9 @@ public class VolumeJoinDaoImpl extends GenericDaoBase<VolumeJoinVO, Long> implem
|
||||
@Inject
|
||||
private ConfigurationDao _configDao;
|
||||
|
||||
private SearchBuilder<VolumeJoinVO> volSearch;
|
||||
private final SearchBuilder<VolumeJoinVO> volSearch;
|
||||
|
||||
private SearchBuilder<VolumeJoinVO> volIdSearch;
|
||||
private final SearchBuilder<VolumeJoinVO> volIdSearch;
|
||||
|
||||
protected VolumeJoinDaoImpl() {
|
||||
|
||||
|
||||
@ -36,7 +36,6 @@ import com.cloud.storage.snapshot.SnapshotManager;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.user.dao.UserDao;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.dao.DomainRouterDao;
|
||||
|
||||
@ -35,7 +35,11 @@ import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.api.BaseAsyncCmd;
|
||||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
|
||||
import org.apache.cloudstack.api.response.ExceptionResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.NDC;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -43,15 +47,10 @@ import org.springframework.stereotype.Component;
|
||||
import com.cloud.api.ApiDispatcher;
|
||||
import com.cloud.api.ApiGsonHelper;
|
||||
import com.cloud.api.ApiSerializerHelper;
|
||||
import org.apache.cloudstack.api.BaseAsyncCmd;
|
||||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.response.ExceptionResponse;
|
||||
import com.cloud.async.dao.AsyncJobDao;
|
||||
import com.cloud.cluster.ClusterManager;
|
||||
import com.cloud.cluster.ClusterManagerListener;
|
||||
import com.cloud.cluster.ManagementServerHostVO;
|
||||
import com.cloud.cluster.StackMaid;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
@ -64,7 +63,6 @@ import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.PropertiesUtil;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
@ -98,7 +96,7 @@ public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListe
|
||||
private long _jobExpireSeconds = 86400; // 1 day
|
||||
private long _jobCancelThresholdSeconds = 3600; // 1 hour (for cancelling the jobs blocking other jobs)
|
||||
|
||||
private ApiDispatcher _dispatcher;
|
||||
@Inject private ApiDispatcher _dispatcher;
|
||||
|
||||
private final ScheduledExecutorService _heartbeatScheduler =
|
||||
Executors.newScheduledThreadPool(1, new NamedThreadFactory("AsyncJobMgr-Heartbeat"));
|
||||
@ -497,7 +495,6 @@ public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListe
|
||||
s_logger.warn("Unable to unregister active job " + job.getId() + " from JMX monitoring");
|
||||
}
|
||||
|
||||
StackMaid.current().exitCleanup();
|
||||
txn.close();
|
||||
NDC.pop();
|
||||
}
|
||||
@ -590,8 +587,6 @@ public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListe
|
||||
}
|
||||
} catch(Throwable e) {
|
||||
s_logger.error("Unexpected exception when trying to execute queue item, ", e);
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -648,8 +643,6 @@ public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListe
|
||||
s_logger.trace("End cleanup expired async-jobs");
|
||||
} catch(Throwable e) {
|
||||
s_logger.error("Unexpected exception when trying to execute queue item, ", e);
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
}
|
||||
}
|
||||
|
||||
@ -707,9 +700,6 @@ public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListe
|
||||
_configDao.getValue(Config.JobCancelThresholdMinutes.key()), 60);
|
||||
_jobCancelThresholdSeconds *= 60;
|
||||
|
||||
_dispatcher = ApiDispatcher.getInstance();
|
||||
|
||||
|
||||
try {
|
||||
final File dbPropsFile = PropertiesUtil.findConfigFile("db.properties");
|
||||
final Properties dbProps = new Properties();
|
||||
|
||||
@ -31,7 +31,6 @@ import org.springframework.stereotype.Component;
|
||||
import com.cloud.async.dao.SyncQueueDao;
|
||||
import com.cloud.async.dao.SyncQueueItemDao;
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
@ -35,10 +35,7 @@ import com.cloud.capacity.CapacityVO;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.storage.StoragePoolVO;
|
||||
import com.cloud.storage.dao.StoragePoolDao;
|
||||
import com.cloud.storage.dao.StoragePoolDaoImpl;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.StringUtils;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.Filter;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
@ -66,7 +63,7 @@ public class CapacityDaoImpl extends GenericDaoBase<CapacityVO, Long> implements
|
||||
private final SearchBuilder<CapacityVO> _hostIdTypeSearch;
|
||||
private final SearchBuilder<CapacityVO> _hostOrPoolIdSearch;
|
||||
protected GenericSearchBuilder<CapacityVO, SummedCapacity> SummedCapacitySearch;
|
||||
private SearchBuilder<CapacityVO> _allFieldsSearch;
|
||||
private final SearchBuilder<CapacityVO> _allFieldsSearch;
|
||||
@Inject protected StoragePoolDao _storagePoolDao;
|
||||
|
||||
|
||||
@ -528,6 +525,7 @@ public class CapacityDaoImpl extends GenericDaoBase<CapacityVO, Long> implements
|
||||
return percentUsed;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public List<SummedCapacity> findByClusterPodZone(Long zoneId, Long podId, Long clusterId){
|
||||
|
||||
SummedCapacitySearch = createSearchBuilder(SummedCapacity.class);
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.cluster;
|
||||
|
||||
|
||||
/**
|
||||
* TaskManager helps business logic deal with clustering failover.
|
||||
* Say you're writing code that introduces an inconsistent state over
|
||||
* of your operation? Who will come back to cleanup this state? TaskManager
|
||||
* with different content during your process. If the server dies, TaskManager
|
||||
* running elsewhere. If there are no clustered servers, then TaskManager will
|
||||
* cleanup when the dead server resumes.
|
||||
*
|
||||
*/
|
||||
public interface CheckPointManager {
|
||||
/**
|
||||
* responsible for cleaning up.
|
||||
*
|
||||
* @param context context information to be stored.
|
||||
* @return Check point id.
|
||||
*/
|
||||
long pushCheckPoint(CleanupMaid context);
|
||||
|
||||
/**
|
||||
* update the task with new context
|
||||
* @param taskId
|
||||
* @param updatedContext new updated context.
|
||||
*/
|
||||
void updateCheckPointState(long taskId, CleanupMaid updatedContext);
|
||||
|
||||
|
||||
/**
|
||||
* removes the task as it is completed.
|
||||
*
|
||||
* @param taskId
|
||||
*/
|
||||
void popCheckPoint(long taskId);
|
||||
}
|
||||
@ -1,247 +0,0 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.cluster;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.cluster.dao.StackMaidDao;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.serializer.SerializerHelper;
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
|
||||
@Component
|
||||
@Local(value=CheckPointManager.class)
|
||||
public class CheckPointManagerImpl implements CheckPointManager, Manager, ClusterManagerListener {
|
||||
private static final Logger s_logger = Logger.getLogger(CheckPointManagerImpl.class);
|
||||
|
||||
private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 3; // 3 seconds
|
||||
private int _cleanupRetryInterval;
|
||||
|
||||
private String _name;
|
||||
|
||||
@Inject
|
||||
private StackMaidDao _maidDao;
|
||||
|
||||
@Inject
|
||||
private ClusterManager _clusterMgr;
|
||||
|
||||
@Inject ConfigurationDao _configDao;
|
||||
|
||||
long _msId;
|
||||
|
||||
private final ScheduledExecutorService _cleanupScheduler = Executors.newScheduledThreadPool(1, new NamedThreadFactory("Task-Cleanup"));
|
||||
|
||||
protected CheckPointManagerImpl() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean configure(String name, Map<String, Object> xmlParams) throws ConfigurationException {
|
||||
_name = name;
|
||||
|
||||
if (s_logger.isInfoEnabled()) {
|
||||
s_logger.info("Start configuring StackMaidManager : " + name);
|
||||
}
|
||||
|
||||
StackMaid.init(ManagementServerNode.getManagementServerId());
|
||||
_msId = ManagementServerNode.getManagementServerId();
|
||||
|
||||
_clusterMgr.registerListener(this);
|
||||
|
||||
Map<String, String> params = _configDao.getConfiguration(xmlParams);
|
||||
|
||||
_cleanupRetryInterval = NumbersUtil.parseInt(params.get(Config.TaskCleanupRetryInterval.key()), 600);
|
||||
_maidDao.takeover(_msId, _msId);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void cleanupLeftovers(List<CheckPointVO> l) {
|
||||
for (CheckPointVO maid : l) {
|
||||
if (StackMaid.doCleanup(maid)) {
|
||||
_maidDao.expunge(maid.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onManagementNodeIsolated() {
|
||||
}
|
||||
|
||||
@DB
|
||||
private Runnable getGCTask() {
|
||||
return new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
GlobalLock scanLock = GlobalLock.getInternLock("StackMaidManagerGC");
|
||||
try {
|
||||
if (scanLock.lock(ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION)) {
|
||||
try {
|
||||
reallyRun();
|
||||
} finally {
|
||||
scanLock.unlock();
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
scanLock.releaseRef();
|
||||
}
|
||||
}
|
||||
|
||||
public void reallyRun() {
|
||||
try {
|
||||
Date cutTime = new Date(DateUtil.currentGMTTime().getTime() - 7200000);
|
||||
List<CheckPointVO> l = _maidDao.listLeftoversByCutTime(cutTime);
|
||||
cleanupLeftovers(l);
|
||||
} catch (Throwable e) {
|
||||
s_logger.error("Unexpected exception when trying to execute queue item, ", e);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean start() {
|
||||
_cleanupScheduler.schedule(new CleanupTask(), _cleanupRetryInterval > 0 ? _cleanupRetryInterval : 600, TimeUnit.SECONDS);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean stop() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return _name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onManagementNodeJoined(List<ManagementServerHostVO> nodeList, long selfNodeId) {
|
||||
// Nothing to do
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onManagementNodeLeft(List<ManagementServerHostVO> nodeList, long selfNodeId) {
|
||||
for (ManagementServerHostVO node : nodeList) {
|
||||
if (_maidDao.takeover(node.getMsid(), selfNodeId)) {
|
||||
s_logger.info("Taking over from " + node.getMsid());
|
||||
_cleanupScheduler.execute(new CleanupTask());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@DB
|
||||
public long pushCheckPoint(CleanupMaid context) {
|
||||
long seq = _maidDao.pushCleanupDelegate(_msId, 0, context.getClass().getName(), context);
|
||||
return seq;
|
||||
}
|
||||
|
||||
@Override
|
||||
@DB
|
||||
public void updateCheckPointState(long taskId, CleanupMaid updatedContext) {
|
||||
CheckPointVO task = _maidDao.createForUpdate();
|
||||
task.setDelegate(updatedContext.getClass().getName());
|
||||
task.setContext(SerializerHelper.toSerializedStringOld(updatedContext));
|
||||
_maidDao.update(taskId, task);
|
||||
}
|
||||
|
||||
@Override
|
||||
@DB
|
||||
public void popCheckPoint(long taskId) {
|
||||
_maidDao.remove(taskId);
|
||||
}
|
||||
|
||||
protected boolean cleanup(CheckPointVO task) {
|
||||
s_logger.info("Cleaning up " + task);
|
||||
CleanupMaid delegate = (CleanupMaid)SerializerHelper.fromSerializedString(task.getContext());
|
||||
assert delegate.getClass().getName().equals(task.getDelegate()) : "Deserializer says " + delegate.getClass().getName() + " but it's suppose to be " + task.getDelegate();
|
||||
|
||||
int result = delegate.cleanup(this);
|
||||
if (result <= 0) {
|
||||
if (result == 0) {
|
||||
s_logger.info("Successfully cleaned up " + task.getId());
|
||||
} else {
|
||||
s_logger.warn("Unsuccessful in cleaning up " + task + ". Procedure to cleanup manaully: " + delegate.getCleanupProcedure());
|
||||
}
|
||||
popCheckPoint(task.getId());
|
||||
return true;
|
||||
} else {
|
||||
s_logger.error("Unable to cleanup " + task.getId());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
class CleanupTask implements Runnable {
|
||||
private Date _curDate;
|
||||
public CleanupTask() {
|
||||
_curDate = new Date();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
List<CheckPointVO> tasks = _maidDao.listLeftoversByCutTime(_curDate, _msId);
|
||||
tasks.addAll(_maidDao.listCleanupTasks(_msId));
|
||||
|
||||
List<CheckPointVO> retries = new ArrayList<CheckPointVO>();
|
||||
|
||||
for (CheckPointVO task : tasks) {
|
||||
try {
|
||||
if (!cleanup(task)) {
|
||||
retries.add(task);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
s_logger.warn("Unable to clean up " + task, e);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (retries.size() > 0) {
|
||||
if (_cleanupRetryInterval > 0) {
|
||||
_cleanupScheduler.schedule(this, _cleanupRetryInterval, TimeUnit.SECONDS);
|
||||
} else {
|
||||
for (CheckPointVO task : retries) {
|
||||
s_logger.warn("Cleanup procedure for " + task + ": " + ((CleanupMaid)SerializerHelper.fromSerializedString(task.getContext())).getCleanupProcedure());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
s_logger.error("Unable to cleanup all of the tasks for " + _msId, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.cluster;
|
||||
|
||||
/**
|
||||
*
|
||||
* task. The state is serialized and stored. When cleanup is required
|
||||
* CleanupMaid is instantiated from the stored data and cleanup() is called.
|
||||
*
|
||||
*/
|
||||
public interface CleanupMaid {
|
||||
/**
|
||||
* cleanup according the state that was stored.
|
||||
*
|
||||
* @return 0 indicates cleanup was successful. Negative number
|
||||
* indicates the cleanup was unsuccessful but don't retry. Positive number
|
||||
* indicates the cleanup was unsuccessful and retry in this many seconds.
|
||||
*/
|
||||
int cleanup(CheckPointManager checkPointMgr);
|
||||
|
||||
|
||||
/**
|
||||
* returned here is recorded.
|
||||
* @return
|
||||
*/
|
||||
String getCleanupProcedure();
|
||||
}
|
||||
@ -29,7 +29,6 @@ import java.sql.SQLException;
|
||||
import java.sql.SQLRecoverableException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@ -75,8 +74,6 @@ import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Profiler;
|
||||
import com.cloud.utils.PropertiesUtil;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.ConnectionConcierge;
|
||||
import com.cloud.utils.db.DB;
|
||||
@ -150,9 +147,9 @@ public class ClusterManagerImpl implements ClusterManager {
|
||||
private double _connectedAgentsThreshold = 0.7;
|
||||
private static boolean _agentLbHappened = false;
|
||||
|
||||
private List<ClusterServicePdu> _clusterPduOutgoingQueue = new ArrayList<ClusterServicePdu>();
|
||||
private List<ClusterServicePdu> _clusterPduIncomingQueue = new ArrayList<ClusterServicePdu>();
|
||||
private Map<Long, ClusterServiceRequestPdu> _outgoingPdusWaitingForAck = new HashMap<Long, ClusterServiceRequestPdu>();
|
||||
private final List<ClusterServicePdu> _clusterPduOutgoingQueue = new ArrayList<ClusterServicePdu>();
|
||||
private final List<ClusterServicePdu> _clusterPduIncomingQueue = new ArrayList<ClusterServicePdu>();
|
||||
private final Map<Long, ClusterServiceRequestPdu> _outgoingPdusWaitingForAck = new HashMap<Long, ClusterServiceRequestPdu>();
|
||||
|
||||
public ClusterManagerImpl() {
|
||||
_clusterPeers = new HashMap<String, ClusterService>();
|
||||
@ -252,6 +249,7 @@ public class ClusterManagerImpl implements ClusterManager {
|
||||
|
||||
private Runnable getClusterPduSendingTask() {
|
||||
return new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
onSendingClusterPdu();
|
||||
}
|
||||
@ -260,6 +258,7 @@ public class ClusterManagerImpl implements ClusterManager {
|
||||
|
||||
private Runnable getClusterPduNotificationTask() {
|
||||
return new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
onNotifyingClusterPdu();
|
||||
}
|
||||
@ -322,6 +321,7 @@ public class ClusterManagerImpl implements ClusterManager {
|
||||
continue;
|
||||
|
||||
_executor.execute(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(pdu.getPduType() == ClusterServicePdu.PDU_TYPE_RESPONSE) {
|
||||
ClusterServiceRequestPdu requestPdu = popRequestPdu(pdu.getAckSequenceId());
|
||||
@ -465,6 +465,7 @@ public class ClusterManagerImpl implements ClusterManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void OnReceiveClusterServicePdu(ClusterServicePdu pdu) {
|
||||
addIncomingClusterPdu(pdu);
|
||||
}
|
||||
|
||||
@ -1,153 +0,0 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
package com.cloud.cluster;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.cluster.dao.StackMaidDao;
|
||||
import com.cloud.cluster.dao.StackMaidDaoImpl;
|
||||
import com.cloud.serializer.SerializerHelper;
|
||||
import com.cloud.utils.CleanupDelegate;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
|
||||
public class StackMaid {
|
||||
protected final static Logger s_logger = Logger.getLogger(StackMaid.class);
|
||||
|
||||
private static ThreadLocal<StackMaid> threadMaid = new ThreadLocal<StackMaid>();
|
||||
|
||||
private static long msid_setby_manager = 0;
|
||||
|
||||
private StackMaidDao maidDao = new StackMaidDaoImpl();
|
||||
private int currentSeq = 0;
|
||||
private Map<String, Object> context = new HashMap<String, Object>();
|
||||
|
||||
public static void init(long msid) {
|
||||
msid_setby_manager = msid;
|
||||
}
|
||||
|
||||
public static StackMaid current() {
|
||||
StackMaid maid = threadMaid.get();
|
||||
if(maid == null) {
|
||||
maid = new StackMaid();
|
||||
threadMaid.set(maid);
|
||||
}
|
||||
return maid;
|
||||
}
|
||||
|
||||
public void registerContext(String key, Object contextObject) {
|
||||
assert(!context.containsKey(key)) : "Context key has already been registered";
|
||||
context.put(key, contextObject);
|
||||
}
|
||||
|
||||
public Object getContext(String key) {
|
||||
return context.get(key);
|
||||
}
|
||||
|
||||
public void expungeMaidItem(long maidId) {
|
||||
// this is a bit ugly, but when it is not loaded by component locator, this is just a workable way for now
|
||||
Transaction txn = Transaction.open(Transaction.CLOUD_DB);
|
||||
try {
|
||||
maidDao.expunge(maidId);
|
||||
} finally {
|
||||
txn.close();
|
||||
}
|
||||
}
|
||||
|
||||
public int push(String delegateClzName, Object context) {
|
||||
assert(msid_setby_manager != 0) : "Fatal, make sure StackMaidManager is loaded";
|
||||
if(msid_setby_manager == 0)
|
||||
s_logger.error("Fatal, make sure StackMaidManager is loaded");
|
||||
|
||||
return push(msid_setby_manager, delegateClzName, context);
|
||||
}
|
||||
|
||||
public int push(long currentMsid, String delegateClzName, Object context) {
|
||||
int savePoint = currentSeq;
|
||||
maidDao.pushCleanupDelegate(currentMsid, currentSeq++, delegateClzName, context);
|
||||
return savePoint;
|
||||
}
|
||||
|
||||
public void pop(int savePoint) {
|
||||
assert(msid_setby_manager != 0) : "Fatal, make sure StackMaidManager is loaded";
|
||||
if(msid_setby_manager == 0)
|
||||
s_logger.error("Fatal, make sure StackMaidManager is loaded");
|
||||
|
||||
pop(msid_setby_manager, savePoint);
|
||||
}
|
||||
|
||||
public void pop() {
|
||||
if(currentSeq > 0)
|
||||
pop(currentSeq -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* must be called within thread context
|
||||
* @param currentMsid
|
||||
*/
|
||||
public void pop(long currentMsid, int savePoint) {
|
||||
while(currentSeq > savePoint) {
|
||||
maidDao.popCleanupDelegate(currentMsid);
|
||||
currentSeq--;
|
||||
}
|
||||
}
|
||||
|
||||
public void exitCleanup() {
|
||||
exitCleanup(msid_setby_manager);
|
||||
}
|
||||
|
||||
public void exitCleanup(long currentMsid) {
|
||||
if(currentSeq > 0) {
|
||||
CheckPointVO maid = null;
|
||||
while((maid = maidDao.popCleanupDelegate(currentMsid)) != null) {
|
||||
doCleanup(maid);
|
||||
}
|
||||
currentSeq = 0;
|
||||
}
|
||||
|
||||
context.clear();
|
||||
}
|
||||
|
||||
public static boolean doCleanup(CheckPointVO maid) {
|
||||
if(maid.getDelegate() != null) {
|
||||
try {
|
||||
Class<?> clz = Class.forName(maid.getDelegate());
|
||||
Object delegate = clz.newInstance();
|
||||
if(delegate instanceof CleanupDelegate) {
|
||||
return ((CleanupDelegate)delegate).cleanup(SerializerHelper.fromSerializedString(maid.getContext()), maid);
|
||||
} else {
|
||||
assert(false);
|
||||
}
|
||||
} catch (final ClassNotFoundException e) {
|
||||
s_logger.error("Unable to load StackMaid delegate class: " + maid.getDelegate(), e);
|
||||
} catch (final SecurityException e) {
|
||||
s_logger.error("Security excetion when loading resource: " + maid.getDelegate());
|
||||
} catch (final IllegalArgumentException e) {
|
||||
s_logger.error("Illegal argument excetion when loading resource: " + maid.getDelegate());
|
||||
} catch (final InstantiationException e) {
|
||||
s_logger.error("Instantiation excetion when loading resource: " + maid.getDelegate());
|
||||
} catch (final IllegalAccessException e) {
|
||||
s_logger.error("Illegal access exception when loading resource: " + maid.getDelegate());
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -34,7 +34,6 @@ import com.cloud.configuration.ResourceLimit;
|
||||
import com.cloud.domain.dao.DomainDaoImpl;
|
||||
import com.cloud.exception.UnsupportedServiceException;
|
||||
import com.cloud.user.dao.AccountDaoImpl;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
@ -44,10 +43,10 @@ import com.cloud.utils.db.Transaction;
|
||||
@Component
|
||||
@Local(value={ResourceCountDao.class})
|
||||
public class ResourceCountDaoImpl extends GenericDaoBase<ResourceCountVO, Long> implements ResourceCountDao {
|
||||
private SearchBuilder<ResourceCountVO> TypeSearch;
|
||||
private final SearchBuilder<ResourceCountVO> TypeSearch;
|
||||
|
||||
private SearchBuilder<ResourceCountVO> AccountSearch;
|
||||
private SearchBuilder<ResourceCountVO> DomainSearch;
|
||||
private final SearchBuilder<ResourceCountVO> AccountSearch;
|
||||
private final SearchBuilder<ResourceCountVO> DomainSearch;
|
||||
|
||||
//protected final DomainDaoImpl _domainDao = ComponentLocator.inject(DomainDaoImpl.class);
|
||||
//protected final AccountDaoImpl _accountDao = ComponentLocator.inject(AccountDaoImpl.class);
|
||||
|
||||
@ -49,7 +49,6 @@ import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.info.ConsoleProxyInfo;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.vm.ConsoleProxyVO;
|
||||
import com.cloud.vm.ReservationContext;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
|
||||
@ -27,9 +27,6 @@ import javax.naming.ConfigurationException;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.vm.ConsoleProxyVO;
|
||||
|
||||
import edu.emory.mathcs.backport.java.util.Collections;
|
||||
|
||||
@ -19,7 +19,6 @@ package com.cloud.consoleproxy;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@ -32,6 +31,7 @@ import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -55,7 +55,6 @@ import com.cloud.agent.api.proxy.StartConsoleProxyAgentHttpHandlerCommand;
|
||||
import com.cloud.agent.api.to.NicTO;
|
||||
import com.cloud.agent.api.to.VirtualMachineTO;
|
||||
import com.cloud.agent.manager.Commands;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import com.cloud.api.commands.DestroyConsoleProxyCmd;
|
||||
import com.cloud.certificate.dao.CertificateDao;
|
||||
import com.cloud.cluster.ClusterManager;
|
||||
@ -128,8 +127,6 @@ import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
|
||||
@ -30,7 +30,6 @@ import com.cloud.host.Host.Type;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.info.ConsoleProxyInfo;
|
||||
import com.cloud.resource.ResourceManager;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.dao.ConsoleProxyDao;
|
||||
|
||||
|
||||
@ -33,7 +33,6 @@ import com.cloud.dc.ClusterVO;
|
||||
import com.cloud.dc.HostPodVO;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.org.Grouping;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
|
||||
@ -24,6 +24,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
@ -37,7 +38,6 @@ import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.SearchCriteria.Op;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
||||
@ -46,6 +46,7 @@ import com.cloud.vm.dao.VMInstanceDaoImpl;
|
||||
@Local(value={HostPodDao.class})
|
||||
public class HostPodDaoImpl extends GenericDaoBase<HostPodVO, Long> implements HostPodDao {
|
||||
private static final Logger s_logger = Logger.getLogger(HostPodDaoImpl.class);
|
||||
@Inject VMInstanceDaoImpl _vmDao;
|
||||
|
||||
protected SearchBuilder<HostPodVO> DataCenterAndNameSearch;
|
||||
protected SearchBuilder<HostPodVO> DataCenterIdSearch;
|
||||
@ -71,7 +72,6 @@ public class HostPodDaoImpl extends GenericDaoBase<HostPodVO, Long> implements H
|
||||
|
||||
@Override
|
||||
public List<HostPodVO> listByDataCenterIdVMTypeAndStates(long id, VirtualMachine.Type type, VirtualMachine.State... states) {
|
||||
final VMInstanceDaoImpl _vmDao = ComponentLocator.inject(VMInstanceDaoImpl.class);
|
||||
SearchBuilder<VMInstanceVO> vmInstanceSearch = _vmDao.createSearchBuilder();
|
||||
vmInstanceSearch.and("type", vmInstanceSearch.entity().getType(), SearchCriteria.Op.EQ);
|
||||
vmInstanceSearch.and("states", vmInstanceSearch.entity().getState(), SearchCriteria.Op.IN);
|
||||
|
||||
@ -36,7 +36,6 @@ import com.cloud.dc.Vlan.VlanType;
|
||||
import com.cloud.dc.VlanVO;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
|
||||
@ -18,7 +18,6 @@ package com.cloud.deploy;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -74,7 +73,6 @@ import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.vm.DiskProfile;
|
||||
import com.cloud.vm.ReservationContext;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
|
||||
@ -37,7 +37,6 @@ import com.cloud.agent.AgentManager;
|
||||
import com.cloud.alert.AlertManager;
|
||||
import com.cloud.cluster.ClusterManagerListener;
|
||||
import com.cloud.cluster.ManagementServerHostVO;
|
||||
import com.cloud.cluster.StackMaid;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.dc.ClusterDetailsDao;
|
||||
@ -785,8 +784,6 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager, Clu
|
||||
_haDao.cleanup(System.currentTimeMillis() - _timeBetweenFailures);
|
||||
} catch (Exception e) {
|
||||
s_logger.warn("Error while cleaning up", e);
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -852,7 +849,6 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager, Clu
|
||||
} catch (final Throwable th) {
|
||||
s_logger.error("Caught this throwable, ", th);
|
||||
} finally {
|
||||
StackMaid.current().exitCleanup();
|
||||
if (work != null) {
|
||||
NDC.pop();
|
||||
}
|
||||
|
||||
@ -47,7 +47,6 @@ import com.cloud.info.RunningHostCountInfo;
|
||||
import com.cloud.org.Managed;
|
||||
import com.cloud.resource.ResourceState;
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.Attribute;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
|
||||
@ -33,8 +33,6 @@ import com.cloud.host.Host;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
@Component
|
||||
@Local(value = { HypervisorGuruManager.class } )
|
||||
@ -76,10 +74,12 @@ public class HypervisorGuruManagerImpl implements HypervisorGuruManager {
|
||||
return _name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HypervisorGuru getGuru(HypervisorType hypervisorType) {
|
||||
return _hvGurus.get(hypervisorType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getGuruProcessedCommandTargetHost(long hostId, Command cmd) {
|
||||
HostVO hostVo = _hostDao.findById(hostId);
|
||||
HypervisorGuru hvGuru = null;
|
||||
|
||||
@ -36,15 +36,14 @@ import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.commons.httpclient.HttpClient;
|
||||
import org.apache.commons.httpclient.HttpException;
|
||||
import org.apache.commons.httpclient.methods.GetMethod;
|
||||
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
|
||||
import org.apache.commons.httpclient.methods.GetMethod;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.maint.dao.AgentUpgradeDao;
|
||||
import com.cloud.utils.PropertiesUtil;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@ -19,9 +19,7 @@ package com.cloud.migration;
|
||||
import java.io.File;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Queue;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
@ -32,21 +30,17 @@ import com.cloud.configuration.Resource.ResourceType;
|
||||
import com.cloud.configuration.ResourceCountVO;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.configuration.dao.ResourceCountDao;
|
||||
import com.cloud.dc.ClusterVO;
|
||||
import com.cloud.dc.DataCenter.NetworkType;
|
||||
import com.cloud.dc.DataCenterVO;
|
||||
import com.cloud.dc.dao.ClusterDao;
|
||||
import com.cloud.dc.dao.DataCenterDao;
|
||||
import com.cloud.domain.DomainVO;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.resource.ResourceManager;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.PropertiesUtil;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
|
||||
@ -19,7 +19,6 @@ package com.cloud.network;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
@ -33,10 +32,8 @@ import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
|
||||
import com.cloud.dc.dao.VlanDao;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
|
||||
@Component
|
||||
@ -138,6 +135,7 @@ public class ExteralIpAddressAllocator implements IpAddrAllocator{
|
||||
return releasePrivateIpAddress(ip, dcId, podId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exteralIpAddressAllocatorEnabled() {
|
||||
return _isExternalIpAllocatorEnabled;
|
||||
}
|
||||
|
||||
@ -27,22 +27,21 @@ import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.command.admin.network.AddNetworkDeviceCmd;
|
||||
import org.apache.cloudstack.api.command.admin.network.DeleteNetworkDeviceCmd;
|
||||
import org.apache.cloudstack.api.command.admin.network.ListNetworkDeviceCmd;
|
||||
import org.apache.cloudstack.api.response.NetworkDeviceResponse;
|
||||
import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.agent.AgentManager;
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.IdentityService;
|
||||
import org.apache.cloudstack.api.command.admin.network.DeleteNetworkDeviceCmd;
|
||||
import com.cloud.baremetal.ExternalDhcpManager;
|
||||
import com.cloud.baremetal.PxeServerManager;
|
||||
import com.cloud.baremetal.PxeServerProfile;
|
||||
import com.cloud.baremetal.PxeServerManager.PxeServerType;
|
||||
import com.cloud.baremetal.PxeServerProfile;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
import com.cloud.dc.DataCenter;
|
||||
import com.cloud.dc.Pod;
|
||||
@ -64,14 +63,11 @@ import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
|
||||
import com.cloud.network.dao.VpnUserDao;
|
||||
import com.cloud.network.rules.dao.PortForwardingRulesDao;
|
||||
import com.cloud.offerings.dao.NetworkOfferingDao;
|
||||
import com.cloud.server.ManagementServer;
|
||||
import org.apache.cloudstack.api.response.NetworkDeviceResponse;
|
||||
import com.cloud.server.api.response.NwDeviceDhcpResponse;
|
||||
import com.cloud.server.api.response.PxePingResponse;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.user.dao.UserStatisticsDao;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.dao.DomainRouterDao;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
|
||||
@ -23,27 +23,31 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.acl.ControlledEntity;
|
||||
import org.apache.cloudstack.api.command.admin.autoscale.CreateCounterCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.*;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.ApiDispatcher;
|
||||
import org.apache.cloudstack.api.BaseListAccountResourcesCmd;
|
||||
import org.apache.cloudstack.api.command.admin.autoscale.CreateCounterCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.CreateAutoScalePolicyCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.CreateAutoScaleVmGroupCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.CreateAutoScaleVmProfileCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.CreateConditionCmd;
|
||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.ListAutoScalePoliciesCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.ListAutoScaleVmGroupsCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.ListAutoScaleVmProfilesCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.ListConditionsCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.ListCountersCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScalePolicyCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmGroupCmd;
|
||||
import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmProfileCmd;
|
||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.ApiDispatcher;
|
||||
import com.cloud.configuration.Config;
|
||||
import com.cloud.configuration.ConfigurationManager;
|
||||
import com.cloud.configuration.dao.ConfigurationDao;
|
||||
@ -81,7 +85,6 @@ import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.user.dao.UserDao;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.Inject;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
|
||||
@ -32,7 +32,6 @@ import com.cloud.network.rules.FirewallRule.TrafficType;
|
||||
import com.cloud.network.rules.FirewallRuleVO;
|
||||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||
import com.cloud.tags.dao.ResourceTagsDaoImpl;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
@ -291,6 +290,7 @@ public class FirewallRulesDaoImpl extends GenericDaoBase<FirewallRuleVO, Long> i
|
||||
|
||||
return listBy(sc);
|
||||
}
|
||||
@Override
|
||||
@DB
|
||||
public boolean remove(Long id) {
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
|
||||
@ -35,7 +35,6 @@ import com.cloud.network.IPAddressVO;
|
||||
import com.cloud.network.IpAddress.State;
|
||||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||
import com.cloud.tags.dao.ResourceTagsDaoImpl;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
@ -329,6 +328,7 @@ public class IPAddressDaoImpl extends GenericDaoBase<IPAddressVO, Long> implemen
|
||||
return listBy(sc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long countFreeIPsInNetwork(long networkId) {
|
||||
SearchCriteria<Long> sc = CountFreePublicIps.create();
|
||||
sc.setParameters("state", State.Free);
|
||||
|
||||
@ -29,7 +29,6 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.network.LoadBalancerVO;
|
||||
import com.cloud.network.rules.FirewallRule.State;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
|
||||
@ -45,7 +45,6 @@ import com.cloud.offerings.NetworkOfferingVO;
|
||||
import com.cloud.offerings.dao.NetworkOfferingDaoImpl;
|
||||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||
import com.cloud.tags.dao.ResourceTagsDaoImpl;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
|
||||
@ -25,14 +25,11 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.network.Networks.TrafficType;
|
||||
import com.cloud.network.PhysicalNetworkVO;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
import com.cloud.utils.db.JoinBuilder;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.db.SearchCriteria.Func;
|
||||
import com.cloud.utils.db.SearchCriteria.Op;
|
||||
|
||||
@Component
|
||||
|
||||
@ -25,10 +25,8 @@ import javax.inject.Inject;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.network.IPAddressVO;
|
||||
import com.cloud.network.Site2SiteVpnConnectionVO;
|
||||
import com.cloud.network.Site2SiteVpnGatewayVO;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.JoinBuilder.JoinType;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
|
||||
@ -23,7 +23,6 @@ import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.network.Site2SiteVpnGatewayVO;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
|
||||
@ -46,7 +46,7 @@ import com.cloud.network.Networks.Mode;
|
||||
import com.cloud.network.Networks.TrafficType;
|
||||
import com.cloud.offering.NetworkOffering;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.vm.Nic;
|
||||
|
||||
@ -206,7 +206,7 @@ import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.PasswordGenerator;
|
||||
import com.cloud.utils.StringUtils;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
|
||||
@ -27,7 +27,7 @@ import com.cloud.network.dao.FirewallRulesCidrsDaoImpl;
|
||||
import com.cloud.network.rules.FirewallRule.Purpose;
|
||||
import com.cloud.network.rules.FirewallRule.State;
|
||||
import com.cloud.network.rules.PortForwardingRuleVO;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
|
||||
@ -87,7 +87,7 @@ import com.cloud.uservm.UserVm;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
|
||||
@ -26,7 +26,7 @@ import org.springframework.stereotype.Component;
|
||||
import com.cloud.network.security.SecurityGroupVO;
|
||||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||
import com.cloud.tags.dao.ResourceTagsDaoImpl;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
|
||||
@ -99,7 +99,7 @@ import com.cloud.user.UserContext;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
|
||||
@ -27,7 +27,7 @@ import com.cloud.network.vpc.StaticRoute;
|
||||
import com.cloud.network.vpc.StaticRouteVO;
|
||||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||
import com.cloud.tags.dao.ResourceTagsDaoImpl;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
|
||||
@ -27,7 +27,7 @@ import com.cloud.network.vpc.Vpc;
|
||||
import com.cloud.network.vpc.VpcVO;
|
||||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||
import com.cloud.tags.dao.ResourceTagsDaoImpl;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
|
||||
@ -70,7 +70,7 @@ import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.PasswordGenerator;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
|
||||
@ -70,7 +70,7 @@ import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Filter;
|
||||
|
||||
@ -28,7 +28,7 @@ import com.cloud.projects.Project;
|
||||
import com.cloud.projects.ProjectVO;
|
||||
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||
import com.cloud.tags.dao.ResourceTagsDaoImpl;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
import com.cloud.utils.db.GenericSearchBuilder;
|
||||
|
||||
@ -34,7 +34,7 @@ import com.cloud.dc.dao.ClusterDao;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.network.NetworkManager;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.net.UrlUtil;
|
||||
|
||||
public abstract class DiscovererBase implements Discoverer {
|
||||
|
||||
@ -46,7 +46,7 @@ import com.cloud.user.User;
|
||||
import com.cloud.uservm.UserVm;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
|
||||
@ -37,7 +37,7 @@ import com.cloud.user.User;
|
||||
import com.cloud.user.UserVO;
|
||||
import com.cloud.user.dao.UserDao;
|
||||
import com.cloud.utils.SerialVersionUID;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
|
||||
public class RegisterCompleteServlet extends HttpServlet implements ServletContextListener {
|
||||
public static final Logger s_logger = Logger.getLogger(RegisterCompleteServlet.class.getName());
|
||||
|
||||
@ -173,7 +173,7 @@ import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.UriUtils;
|
||||
import com.cloud.utils.component.Adapters;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
|
||||
@ -25,7 +25,7 @@ import com.cloud.cluster.CheckPointManager;
|
||||
import com.cloud.cluster.CleanupMaid;
|
||||
import com.cloud.server.ManagementServer;
|
||||
import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.fsm.NoTransitionException;
|
||||
import com.cloud.utils.fsm.StateMachine2;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user