use of com.cloud.utils.db.Filter in project cloudstack by apache.
the class SecurityGroupManagerImpl method listSecurityGroupRulesByVM.
private Pair<List<SecurityGroupJoinVO>, Integer> listSecurityGroupRulesByVM(long vmId, long pageInd, long pageSize) {
Filter sf = new Filter(SecurityGroupVMMapVO.class, null, true, pageInd, pageSize);
Pair<List<SecurityGroupVMMapVO>, Integer> sgVmMappingPair = _securityGroupVMMapDao.listByInstanceId(vmId, sf);
Integer count = sgVmMappingPair.second();
if (count.intValue() == 0) {
// handle empty result cases
return new Pair<List<SecurityGroupJoinVO>, Integer>(new ArrayList<SecurityGroupJoinVO>(), count);
}
List<SecurityGroupVMMapVO> sgVmMappings = sgVmMappingPair.first();
Long[] sgIds = new Long[sgVmMappings.size()];
int i = 0;
for (SecurityGroupVMMapVO sgVm : sgVmMappings) {
sgIds[i++] = sgVm.getSecurityGroupId();
}
List<SecurityGroupJoinVO> sgs = _securityGroupJoinDao.searchByIds(sgIds);
return new Pair<List<SecurityGroupJoinVO>, Integer>(sgs, count);
}
use of com.cloud.utils.db.Filter in project cloudstack by apache.
the class VersionDaoImpl method getCurrentVersion.
@Override
@DB
public String getCurrentVersion() {
try (Connection conn = TransactionLegacy.getStandaloneConnection()) {
s_logger.debug("Checking to see if the database is at a version before it was the version table is created");
try (PreparedStatement pstmt = conn.prepareStatement("SHOW TABLES LIKE 'version'");
ResultSet rs = pstmt.executeQuery()) {
if (!rs.next()) {
try (PreparedStatement pstmt_nics = conn.prepareStatement("SHOW TABLES LIKE 'nics'");
ResultSet rs_nics = pstmt_nics.executeQuery()) {
if (!rs_nics.next()) {
try (PreparedStatement pstmt_domain = conn.prepareStatement("SELECT domain_id FROM account_vlan_map LIMIT 1")) {
pstmt_domain.executeQuery();
return "2.1.8";
} catch (final SQLException e) {
s_logger.debug("Assuming the exception means domain_id is not there.");
s_logger.debug("No version table and no nics table, returning 2.1.7");
return "2.1.7";
}
} else {
try (PreparedStatement pstmt_static_nat = conn.prepareStatement("SELECT is_static_nat from firewall_rules");
ResultSet rs_static_nat = pstmt_static_nat.executeQuery()) {
return "2.2.1";
} catch (final SQLException e) {
s_logger.debug("Assuming the exception means static_nat field doesn't exist in firewall_rules table, returning version 2.2.2");
return "2.2.2";
}
}
}
}
} catch (final SQLException e) {
throw new CloudRuntimeException("Unable to get the current version", e);
}
SearchCriteria<String> sc = CurrentVersionSearch.create();
sc.setParameters("step", Step.Complete);
Filter filter = new Filter(VersionVO.class, "id", false, 0l, 1l);
final List<String> upgradedVersions = customSearch(sc, filter);
if (upgradedVersions.isEmpty()) {
// Check if there are records in Version table
filter = new Filter(VersionVO.class, "id", false, 0l, 1l);
sc = CurrentVersionSearch.create();
final List<String> vers = customSearch(sc, filter);
if (!vers.isEmpty()) {
throw new CloudRuntimeException("Version table contains records for which upgrade wasn't completed");
}
// Use nics table information and is_static_nat field from firewall_rules table to determine version information
s_logger.debug("Version table exists, but it's empty; have to confirm that version is 2.2.2");
try (PreparedStatement pstmt = conn.prepareStatement("SHOW TABLES LIKE 'nics'");
ResultSet rs = pstmt.executeQuery()) {
if (!rs.next()) {
throw new CloudRuntimeException("Unable to determine the current version, version table exists and empty, nics table doesn't exist");
} else {
try (PreparedStatement pstmt_static_nat = conn.prepareStatement("SELECT is_static_nat from firewall_rules")) {
pstmt_static_nat.executeQuery();
throw new CloudRuntimeException("Unable to determine the current version, version table exists and empty, " + "nics table doesn't exist, is_static_nat field exists in firewall_rules table");
} catch (final SQLException e) {
s_logger.debug("Assuming the exception means static_nat field doesn't exist in firewall_rules table, returning version 2.2.2");
return "2.2.2";
}
}
} catch (final SQLException e) {
throw new CloudRuntimeException("Unable to determine the current version, version table exists and empty, query for nics table yields SQL exception", e);
}
} else {
return upgradedVersions.get(0);
}
} catch (final SQLException e) {
throw new CloudRuntimeException("Unable to get the current version", e);
}
}
use of com.cloud.utils.db.Filter in project cloudstack by apache.
the class UsageJobDaoImpl method getLastHeartbeat.
@Override
public Date getLastHeartbeat() {
Filter filter = new Filter(UsageJobVO.class, "heartbeat", false, Long.valueOf(0), Long.valueOf(1));
SearchCriteria<UsageJobVO> sc = createSearchCriteria();
List<UsageJobVO> jobs = search(sc, filter);
if ((jobs == null) || jobs.isEmpty()) {
return null;
}
return jobs.get(0).getHeartbeat();
}
use of com.cloud.utils.db.Filter in project cloudstack by apache.
the class UsageJobDaoImpl method getNextRecurringJob.
private UsageJobVO getNextRecurringJob() {
Filter filter = new Filter(UsageJobVO.class, "id", false, Long.valueOf(0), Long.valueOf(1));
SearchCriteria<UsageJobVO> sc = createSearchCriteria();
sc.addAnd("endMillis", SearchCriteria.Op.EQ, Long.valueOf(0));
sc.addAnd("jobType", SearchCriteria.Op.EQ, Integer.valueOf(UsageJobVO.JOB_TYPE_RECURRING));
List<UsageJobVO> jobs = search(sc, filter);
if ((jobs == null) || jobs.isEmpty()) {
return null;
}
return jobs.get(0);
}
use of com.cloud.utils.db.Filter in project cloudstack by apache.
the class UsageJobDaoImpl method getLastJob.
@Override
public UsageJobVO getLastJob() {
Filter filter = new Filter(UsageJobVO.class, "id", false, Long.valueOf(0), Long.valueOf(1));
SearchCriteria<UsageJobVO> sc = createSearchCriteria();
sc.addAnd("endMillis", SearchCriteria.Op.EQ, Long.valueOf(0));
List<UsageJobVO> jobs = search(sc, filter);
if ((jobs == null) || jobs.isEmpty()) {
return null;
}
return jobs.get(0);
}
Aggregations