Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Backport #9888 to 4.19: Fix Usage inconsistencies #10712

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: 4.19
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,6 @@ public interface UsageNetworksDao extends GenericDao<UsageNetworksVO, Long> {
void remove(long networkId, Date removed);

List<UsageNetworksVO> getUsageRecords(Long accountId, Date startDate, Date endDate);

List<UsageNetworksVO> listAll(long networkId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,16 @@
// under the License.
package com.cloud.usage.dao;

import com.cloud.network.Network;
import com.cloud.usage.UsageNetworksVO;
import com.cloud.utils.DateUtil;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.TransactionLegacy;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
Expand All @@ -39,6 +40,14 @@
" account_id = ? AND ((removed IS NULL AND created <= ?) OR (created BETWEEN ? AND ?) OR (removed BETWEEN ? AND ?) " +
" OR ((created <= ?) AND (removed >= ?)))";

private SearchBuilder<UsageNetworksVO> usageNetworksSearch;

@PostConstruct
public void init() {
usageNetworksSearch = createSearchBuilder();
usageNetworksSearch.and("networkId", usageNetworksSearch.entity().getNetworkId(), SearchCriteria.Op.EQ);
usageNetworksSearch.done();
}

Check warning on line 50 in engine/schema/src/main/java/com/cloud/usage/dao/UsageNetworksDaoImpl.java

View check run for this annotation

Codecov / codecov/patch

engine/schema/src/main/java/com/cloud/usage/dao/UsageNetworksDaoImpl.java#L46-L50

Added lines #L46 - L50 were not covered by tests

@Override
public void update(long networkId, long newNetworkOffering, String state) {
Expand Down Expand Up @@ -68,11 +77,10 @@
SearchCriteria<UsageNetworksVO> sc = this.createSearchCriteria();
sc.addAnd("networkId", SearchCriteria.Op.EQ, networkId);
sc.addAnd("removed", SearchCriteria.Op.NULL);
UsageNetworksVO vo = findOneBy(sc);
if (vo != null) {
vo.setRemoved(removed);
vo.setState(Network.State.Destroy.name());
update(vo.getId(), vo);
List<UsageNetworksVO> usageNetworksVOs = listBy(sc);

Check warning on line 80 in engine/schema/src/main/java/com/cloud/usage/dao/UsageNetworksDaoImpl.java

View check run for this annotation

Codecov / codecov/patch

engine/schema/src/main/java/com/cloud/usage/dao/UsageNetworksDaoImpl.java#L80

Added line #L80 was not covered by tests
for (UsageNetworksVO entry : usageNetworksVOs) {
entry.setRemoved(removed);
update(entry.getId(), entry);

Check warning on line 83 in engine/schema/src/main/java/com/cloud/usage/dao/UsageNetworksDaoImpl.java

View check run for this annotation

Codecov / codecov/patch

engine/schema/src/main/java/com/cloud/usage/dao/UsageNetworksDaoImpl.java#L82-L83

Added lines #L82 - L83 were not covered by tests
}
} catch (final Exception e) {
txn.rollback();
Expand Down Expand Up @@ -131,4 +139,11 @@

return usageRecords;
}

@Override
public List<UsageNetworksVO> listAll(long networkId) {
SearchCriteria<UsageNetworksVO> sc = usageNetworksSearch.create();
sc.setParameters("networkId", networkId);
return listBy(sc);
}

Check warning on line 148 in engine/schema/src/main/java/com/cloud/usage/dao/UsageNetworksDaoImpl.java

View check run for this annotation

Codecov / codecov/patch

engine/schema/src/main/java/com/cloud/usage/dao/UsageNetworksDaoImpl.java#L144-L148

Added lines #L144 - L148 were not covered by tests
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@

public interface UsageVpcDao extends GenericDao<UsageVpcVO, Long> {
void update(UsageVpcVO usage);

void remove(long vpcId, Date removed);

List<UsageVpcVO> getUsageRecords(Long accountId, Date startDate, Date endDate);

List<UsageVpcVO> listAll(long vpcId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,16 @@
// under the License.
package com.cloud.usage.dao;

import com.cloud.network.vpc.Vpc;
import com.cloud.usage.UsageVpcVO;
import com.cloud.utils.DateUtil;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.TransactionLegacy;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
Expand All @@ -39,6 +40,15 @@
" account_id = ? AND ((removed IS NULL AND created <= ?) OR (created BETWEEN ? AND ?) OR (removed BETWEEN ? AND ?) " +
" OR ((created <= ?) AND (removed >= ?)))";

private SearchBuilder<UsageVpcVO> usageVpcSearch;

@PostConstruct
public void init() {
usageVpcSearch = createSearchBuilder();
usageVpcSearch.and("vpcId", usageVpcSearch.entity().getVpcId(), SearchCriteria.Op.EQ);
usageVpcSearch.done();
}

Check warning on line 50 in engine/schema/src/main/java/com/cloud/usage/dao/UsageVpcDaoImpl.java

View check run for this annotation

Codecov / codecov/patch

engine/schema/src/main/java/com/cloud/usage/dao/UsageVpcDaoImpl.java#L46-L50

Added lines #L46 - L50 were not covered by tests

@Override
public void update(UsageVpcVO usage) {
TransactionLegacy txn = TransactionLegacy.open(TransactionLegacy.USAGE_DB);
Expand Down Expand Up @@ -66,11 +76,10 @@
SearchCriteria<UsageVpcVO> sc = this.createSearchCriteria();
sc.addAnd("vpcId", SearchCriteria.Op.EQ, vpcId);
sc.addAnd("removed", SearchCriteria.Op.NULL);
UsageVpcVO vo = findOneBy(sc);
if (vo != null) {
vo.setRemoved(removed);
vo.setState(Vpc.State.Inactive.name());
update(vo.getId(), vo);
List<UsageVpcVO> usageVpcVOs = listBy(sc);

Check warning on line 79 in engine/schema/src/main/java/com/cloud/usage/dao/UsageVpcDaoImpl.java

View check run for this annotation

Codecov / codecov/patch

engine/schema/src/main/java/com/cloud/usage/dao/UsageVpcDaoImpl.java#L79

Added line #L79 was not covered by tests
for (UsageVpcVO entry : usageVpcVOs) {
entry.setRemoved(removed);
update(entry.getId(), entry);

Check warning on line 82 in engine/schema/src/main/java/com/cloud/usage/dao/UsageVpcDaoImpl.java

View check run for this annotation

Codecov / codecov/patch

engine/schema/src/main/java/com/cloud/usage/dao/UsageVpcDaoImpl.java#L81-L82

Added lines #L81 - L82 were not covered by tests
}
} catch (final Exception e) {
txn.rollback();
Expand Down Expand Up @@ -128,4 +137,11 @@

return usageRecords;
}

@Override
public List<UsageVpcVO> listAll(long vpcId) {
SearchCriteria<UsageVpcVO> sc = usageVpcSearch.create();
sc.setParameters("vpcId", vpcId);
return listBy(sc);
}

Check warning on line 146 in engine/schema/src/main/java/com/cloud/usage/dao/UsageVpcDaoImpl.java

View check run for this annotation

Codecov / codecov/patch

engine/schema/src/main/java/com/cloud/usage/dao/UsageVpcDaoImpl.java#L142-L146

Added lines #L142 - L146 were not covered by tests
}
100 changes: 79 additions & 21 deletions usage/src/main/java/com/cloud/usage/UsageManagerImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -1540,7 +1540,7 @@
//For volumes which are 'attached' successfully, set the 'deleted' column in the usage_storage table,
//so that the secondary storage should stop accounting and only primary will be accounted.
SearchCriteria<UsageStorageVO> sc = _usageStorageDao.createSearchCriteria();
sc.addAnd("id", SearchCriteria.Op.EQ, volId);
sc.addAnd("entityId", SearchCriteria.Op.EQ, volId);

Check warning on line 1543 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L1543

Added line #L1543 was not covered by tests
sc.addAnd("storageType", SearchCriteria.Op.EQ, StorageTypes.VOLUME);
List<UsageStorageVO> volumesVOs = _usageStorageDao.search(sc, null);
if (volumesVOs != null) {
Expand Down Expand Up @@ -1595,7 +1595,8 @@
//For Upload event add an entry to the usage_storage table.
SearchCriteria<UsageStorageVO> sc = _usageStorageDao.createSearchCriteria();
sc.addAnd("accountId", SearchCriteria.Op.EQ, event.getAccountId());
sc.addAnd("id", SearchCriteria.Op.EQ, volId);
sc.addAnd("entityId", SearchCriteria.Op.EQ, volId);
sc.addAnd("storageType", SearchCriteria.Op.EQ, StorageTypes.VOLUME);

Check warning on line 1599 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L1598-L1599

Added lines #L1598 - L1599 were not covered by tests
sc.addAnd("deleted", SearchCriteria.Op.NULL);
List<UsageStorageVO> volumesVOs = _usageStorageDao.search(sc, null);

Expand Down Expand Up @@ -1772,7 +1773,7 @@
} else if (EventTypes.EVENT_LOAD_BALANCER_DELETE.equals(event.getType())) {
SearchCriteria<UsageLoadBalancerPolicyVO> sc = _usageLoadBalancerPolicyDao.createSearchCriteria();
sc.addAnd("accountId", SearchCriteria.Op.EQ, event.getAccountId());
sc.addAnd("id", SearchCriteria.Op.EQ, id);
sc.addAnd("lbId", SearchCriteria.Op.EQ, id);

Check warning on line 1776 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L1776

Added line #L1776 was not covered by tests
sc.addAnd("deleted", SearchCriteria.Op.NULL);
List<UsageLoadBalancerPolicyVO> lbVOs = _usageLoadBalancerPolicyDao.search(sc, null);
if (lbVOs.size() > 1) {
Expand Down Expand Up @@ -1806,7 +1807,7 @@
} else if (EventTypes.EVENT_NET_RULE_DELETE.equals(event.getType())) {
SearchCriteria<UsagePortForwardingRuleVO> sc = _usagePortForwardingRuleDao.createSearchCriteria();
sc.addAnd("accountId", SearchCriteria.Op.EQ, event.getAccountId());
sc.addAnd("id", SearchCriteria.Op.EQ, id);
sc.addAnd("pfId", SearchCriteria.Op.EQ, id);

Check warning on line 1810 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L1810

Added line #L1810 was not covered by tests
sc.addAnd("deleted", SearchCriteria.Op.NULL);
List<UsagePortForwardingRuleVO> pfVOs = _usagePortForwardingRuleDao.search(sc, null);
if (pfVOs.size() > 1) {
Expand Down Expand Up @@ -2104,7 +2105,7 @@
} else if (EventTypes.EVENT_VM_SNAPSHOT_OFF_PRIMARY.equals(event.getType())) {
QueryBuilder<UsageSnapshotOnPrimaryVO> sc = QueryBuilder.create(UsageSnapshotOnPrimaryVO.class);
sc.and(sc.entity().getAccountId(), SearchCriteria.Op.EQ, event.getAccountId());
sc.and(sc.entity().getId(), SearchCriteria.Op.EQ, vmId);
sc.and(sc.entity().getVmId(), SearchCriteria.Op.EQ, vmId);

Check warning on line 2108 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2108

Added line #L2108 was not covered by tests
sc.and(sc.entity().getName(), SearchCriteria.Op.EQ, name);
sc.and(sc.entity().getDeleted(), SearchCriteria.Op.NULL);
List<UsageSnapshotOnPrimaryVO> vmsnaps = sc.list();
Expand Down Expand Up @@ -2142,33 +2143,90 @@
}

private void handleNetworkEvent(UsageEventVO event) {
String eventType = event.getType();

Check warning on line 2146 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2146

Added line #L2146 was not covered by tests
if (EventTypes.EVENT_NETWORK_DELETE.equals(eventType)) {
removeNetworkHelperEntry(event);

Check warning on line 2148 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2148

Added line #L2148 was not covered by tests
} else if (EventTypes.EVENT_NETWORK_CREATE.equals(eventType)) {
createNetworkHelperEntry(event);

Check warning on line 2150 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2150

Added line #L2150 was not covered by tests
} else if (EventTypes.EVENT_NETWORK_UPDATE.equals(eventType)) {
updateNetworkHelperEntry(event);

Check warning on line 2152 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2152

Added line #L2152 was not covered by tests
} else {
s_logger.error(String.format("Unknown event type [%s] in Networks event parser. Skipping it.", eventType));

Check warning on line 2154 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2154

Added line #L2154 was not covered by tests
}
}

Check warning on line 2156 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2156

Added line #L2156 was not covered by tests

private void removeNetworkHelperEntry(UsageEventVO event) {
long networkId = event.getResourceId();
s_logger.debug(String.format("Removing helper entries of network [%s].", networkId));
usageNetworksDao.remove(networkId, event.getCreateDate());
}

Check warning on line 2162 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2158-L2162

Added lines #L2158 - L2162 were not covered by tests

private void createNetworkHelperEntry(UsageEventVO event) {
long networkId = event.getResourceId();

Check warning on line 2165 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2164-L2165

Added lines #L2164 - L2165 were not covered by tests
Account account = _accountDao.findByIdIncludingRemoved(event.getAccountId());
long domainId = account.getDomainId();
if (EventTypes.EVENT_NETWORK_DELETE.equals(event.getType())) {
usageNetworksDao.remove(event.getResourceId(), event.getCreateDate());
} else if (EventTypes.EVENT_NETWORK_CREATE.equals(event.getType())) {
UsageNetworksVO usageNetworksVO = new UsageNetworksVO(event.getResourceId(), event.getOfferingId(), event.getZoneId(), event.getAccountId(), domainId, Network.State.Allocated.name(), event.getCreateDate(), null);
usageNetworksDao.persist(usageNetworksVO);
} else if (EventTypes.EVENT_NETWORK_UPDATE.equals(event.getType())) {
usageNetworksDao.update(event.getResourceId(), event.getOfferingId(), event.getResourceType());
} else {
s_logger.error(String.format("Unknown event type [%s] in Networks event parser. Skipping it.", event.getType()));

List<UsageNetworksVO> entries = usageNetworksDao.listAll(networkId);

Check warning on line 2169 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2169

Added line #L2169 was not covered by tests
if (!entries.isEmpty()) {
s_logger.warn(String.format("Received a NETWORK.CREATE event for a network [%s] that already has helper entries; " +
"therefore, we will not create a new one.", networkId));
return;

Check warning on line 2173 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2171-L2173

Added lines #L2171 - L2173 were not covered by tests
}

s_logger.debug(String.format("Creating a helper entry for network [%s].", networkId));
UsageNetworksVO usageNetworksVO = new UsageNetworksVO(networkId, event.getOfferingId(), event.getZoneId(),
event.getAccountId(), domainId, Network.State.Allocated.name(), event.getCreateDate(), null);
usageNetworksDao.persist(usageNetworksVO);

Check warning on line 2179 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2176-L2179

Added lines #L2176 - L2179 were not covered by tests
}

private void handleVpcEvent(UsageEventVO event) {
private void updateNetworkHelperEntry(UsageEventVO event) {
long networkId = event.getResourceId();

Check warning on line 2183 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2182-L2183

Added lines #L2182 - L2183 were not covered by tests
Account account = _accountDao.findByIdIncludingRemoved(event.getAccountId());
long domainId = account.getDomainId();
if (EventTypes.EVENT_VPC_DELETE.equals(event.getType())) {
usageVpcDao.remove(event.getResourceId(), event.getCreateDate());
} else if (EventTypes.EVENT_VPC_CREATE.equals(event.getType())) {
UsageVpcVO usageVPCVO = new UsageVpcVO(event.getResourceId(), event.getZoneId(), event.getAccountId(), domainId, Vpc.State.Enabled.name(), event.getCreateDate(), null);
usageVpcDao.persist(usageVPCVO);

s_logger.debug(String.format("Marking previous helper entries of network [%s] as removed.", networkId));
usageNetworksDao.remove(networkId, event.getCreateDate());

Check warning on line 2188 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2187-L2188

Added lines #L2187 - L2188 were not covered by tests

s_logger.debug(String.format("Creating an updated helper entry for network [%s].", networkId));
UsageNetworksVO usageNetworksVO = new UsageNetworksVO(networkId, event.getOfferingId(), event.getZoneId(),
event.getAccountId(), domainId, event.getResourceType(), event.getCreateDate(), null);
usageNetworksDao.persist(usageNetworksVO);
}

Check warning on line 2194 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2190-L2194

Added lines #L2190 - L2194 were not covered by tests

private void handleVpcEvent(UsageEventVO event) {
String eventType = event.getType();

Check warning on line 2197 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2196-L2197

Added lines #L2196 - L2197 were not covered by tests
if (EventTypes.EVENT_VPC_DELETE.equals(eventType)) {
removeVpcHelperEntry(event);

Check warning on line 2199 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2199

Added line #L2199 was not covered by tests
} else if (EventTypes.EVENT_VPC_CREATE.equals(eventType)) {
createVpcHelperEntry(event);

Check warning on line 2201 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2201

Added line #L2201 was not covered by tests
} else {
s_logger.error(String.format("Unknown event type [%s] in VPC event parser. Skipping it.", event.getType()));
s_logger.error(String.format("Unknown event type [%s] in VPC event parser. Skipping it.", eventType));

Check warning on line 2203 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2203

Added line #L2203 was not covered by tests
}
}

private void removeVpcHelperEntry(UsageEventVO event) {
long vpcId = event.getResourceId();
s_logger.debug(String.format("Removing helper entries of VPC [%s].", vpcId));
usageVpcDao.remove(vpcId, event.getCreateDate());
}

Check warning on line 2211 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2207-L2211

Added lines #L2207 - L2211 were not covered by tests

private void createVpcHelperEntry(UsageEventVO event) {
long vpcId = event.getResourceId();
Account account = _accountDao.findByIdIncludingRemoved(event.getAccountId());
long domainId = account.getDomainId();

Check warning on line 2216 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2213-L2216

Added lines #L2213 - L2216 were not covered by tests

List<UsageVpcVO> entries = usageVpcDao.listAll(vpcId);

Check warning on line 2218 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2218

Added line #L2218 was not covered by tests
if (!entries.isEmpty()) {
s_logger.warn(String.format("Active helper entries already exist for VPC [%s]; therefore, we will not create a new one.",
vpcId));
return;

Check warning on line 2222 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2220-L2222

Added lines #L2220 - L2222 were not covered by tests
}

s_logger.debug(String.format("Creating a helper entry for VPC [%s].", vpcId));
UsageVpcVO usageVPCVO = new UsageVpcVO(vpcId, event.getZoneId(), event.getAccountId(), domainId, Vpc.State.Enabled.name(), event.getCreateDate(), null);
usageVpcDao.persist(usageVPCVO);
}

Check warning on line 2228 in usage/src/main/java/com/cloud/usage/UsageManagerImpl.java

View check run for this annotation

Codecov / codecov/patch

usage/src/main/java/com/cloud/usage/UsageManagerImpl.java#L2225-L2228

Added lines #L2225 - L2228 were not covered by tests

private class Heartbeat extends ManagedContextRunnable {
@Override
protected void runInContext() {
Expand Down
Loading