use of org.candlepin.model.SourceStack in project candlepin by candlepin.
the class PoolHelper method createPool.
private static Pool createPool(Product product, Owner owner, String quantity, Date startDate, Date endDate, String contractNumber, String accountNumber, String orderNumber, Set<Product> providedProducts, Entitlement sourceEntitlement, Boolean hasSharedAncestor) {
Long q = Pool.parseQuantity(quantity);
Pool pool = new Pool(owner, product, new HashSet<>(), q, startDate, endDate, contractNumber, accountNumber, orderNumber);
// Must be sure to copy the provided products, not try to re-use them directly:
pool.setProvidedProducts(providedProducts);
if (sourceEntitlement != null && sourceEntitlement.getPool() != null) {
if (sourceEntitlement.getPool().isStacked()) {
pool.setSourceStack(new SourceStack(sourceEntitlement.getConsumer(), sourceEntitlement.getPool().getStackId()));
} else {
pool.setSourceEntitlement(sourceEntitlement);
}
}
// temp - we need a way to specify this on the product
pool.setAttribute(Pool.Attributes.REQUIRES_CONSUMER_TYPE, "system");
pool.setHasSharedAncestor(hasSharedAncestor);
return pool;
}
use of org.candlepin.model.SourceStack in project candlepin by candlepin.
the class PoolManagerTest method testRefreshPoolsSkipsOrphanedStackDerivedPools.
@Test
public void testRefreshPoolsSkipsOrphanedStackDerivedPools() {
List<Subscription> subscriptions = new ArrayList<>();
List<Pool> pools = new ArrayList<>();
Product product = TestUtil.createProduct();
Pool p = TestUtil.createPool(product);
p.setSourceSubscription(new SourceSubscription("112", "master"));
// Mock a pool with a source stack ID:
p.setAttribute(Pool.Attributes.DERIVED_POOL, "true");
p.setSourceStack(new SourceStack(new Consumer(), "blah"));
p.setSourceEntitlement(null);
pools.add(p);
mockSubsList(subscriptions);
mockPoolsList(pools);
this.mockProductImport(owner, product);
this.mockContentImport(owner, new Content[] {});
CandlepinQuery<Pool> cqmock = mock(CandlepinQuery.class);
when(cqmock.list()).thenReturn(pools);
when(cqmock.iterator()).thenReturn(pools.iterator());
when(mockPoolCurator.listByOwnerAndType(eq(owner), any(PoolType.class))).thenReturn(cqmock);
Owner owner = getOwner();
when(mockOwnerCurator.lookupByKey(owner.getKey())).thenReturn(owner);
this.manager.getRefresher(mockSubAdapter, mockOwnerAdapter).add(owner).run();
verify(this.manager, never()).deletePool(same(p));
}
use of org.candlepin.model.SourceStack in project candlepin by candlepin.
the class EntitlementImporter method populateEntity.
/**
* Populates the specified entity with data from the provided DTO.
*
* @param entity
* The entity instance to populate
*
* @param dto
* The DTO containing the data with which to populate the entity
*
* @throws IllegalArgumentException
* if either entity or dto are null
*/
@SuppressWarnings("checkstyle:methodlength")
private void populateEntity(Entitlement entity, EntitlementDTO dto) {
if (entity == null) {
throw new IllegalArgumentException("the entitlement model entity is null");
}
if (dto == null) {
throw new IllegalArgumentException("the entitlement dto is null");
}
if (dto.getId() != null) {
entity.setId(dto.getId());
}
if (dto.getQuantity() != null) {
entity.setQuantity(dto.getQuantity());
}
if (dto.getUpdated() != null) {
entity.setUpdated(dto.getUpdated());
}
if (dto.getCreated() != null) {
entity.setCreated(dto.getCreated());
}
if (dto.getStartDate() != null) {
entity.setStartDate(dto.getStartDate());
}
if (dto.getEndDate() != null) {
entity.setEndDate(dto.getEndDate());
}
if (dto.getPool() != null) {
PoolDTO poolDTO = dto.getPool();
Pool poolEntity = new Pool();
if (poolDTO.getId() != null) {
poolEntity.setId(poolDTO.getId());
}
if (poolDTO.getQuantity() != null) {
poolEntity.setQuantity(poolDTO.getQuantity());
}
if (poolDTO.isActiveSubscription() != null) {
poolEntity.setActiveSubscription(poolDTO.isActiveSubscription());
}
if (poolDTO.isCreatedByShare() != null) {
poolEntity.setCreatedByShare(poolDTO.isCreatedByShare());
}
if (poolDTO.hasSharedAncestor() != null) {
poolEntity.setHasSharedAncestor(poolDTO.hasSharedAncestor());
}
if (poolDTO.getRestrictedToUsername() != null) {
poolEntity.setRestrictedToUsername(poolDTO.getRestrictedToUsername());
}
if (poolDTO.getConsumed() != null) {
poolEntity.setConsumed(poolDTO.getConsumed());
}
if (poolDTO.getExported() != null) {
poolEntity.setExported(poolDTO.getExported());
}
if (poolDTO.getShared() != null) {
poolEntity.setShared(poolDTO.getShared());
}
if (poolDTO.getStackId() != null && poolDTO.getSourceStackId() != null) {
SourceStack sourceStack = new SourceStack();
sourceStack.setId(poolDTO.getStackId());
sourceStack.setSourceStackId(poolDTO.getSourceStackId());
poolEntity.setSourceStack(sourceStack);
}
if (poolDTO.getProductId() != null) {
poolEntity.setProductId(poolDTO.getProductId());
}
if (poolDTO.getDerivedProductId() != null) {
poolEntity.setDerivedProductId(poolDTO.getDerivedProductId());
}
if (poolDTO.getStartDate() != null) {
poolEntity.setStartDate(poolDTO.getStartDate());
}
if (poolDTO.getEndDate() != null) {
poolEntity.setEndDate(poolDTO.getEndDate());
}
if (poolDTO.getCreated() != null) {
poolEntity.setCreated(poolDTO.getCreated());
}
if (poolDTO.getUpdated() != null) {
poolEntity.setUpdated(poolDTO.getUpdated());
}
if (poolDTO.getAccountNumber() != null) {
poolEntity.setAccountNumber(poolDTO.getAccountNumber());
}
if (poolDTO.getOrderNumber() != null) {
poolEntity.setOrderNumber(poolDTO.getOrderNumber());
}
if (poolDTO.getContractNumber() != null) {
poolEntity.setContractNumber(poolDTO.getContractNumber());
}
if (poolDTO.getOwner() != null) {
Owner ownerEntity = new Owner();
populateEntity(ownerEntity, poolDTO.getOwner());
poolEntity.setOwner(ownerEntity);
}
if (poolDTO.getUpstreamPoolId() != null) {
poolEntity.setUpstreamPoolId(poolDTO.getUpstreamPoolId());
}
if (poolDTO.getUpstreamConsumerId() != null) {
poolEntity.setUpstreamConsumerId(poolDTO.getUpstreamConsumerId());
}
if (poolDTO.getUpstreamEntitlementId() != null) {
poolEntity.setUpstreamEntitlementId(poolDTO.getUpstreamEntitlementId());
}
if (poolDTO.getSourceEntitlement() != null) {
EntitlementDTO sourceEntitlementDTO = poolDTO.getSourceEntitlement();
poolEntity.setSourceEntitlement(findEntitlement(sourceEntitlementDTO.getId()));
}
if (poolDTO.getSubscriptionSubKey() != null) {
poolEntity.setSubscriptionSubKey(poolDTO.getSubscriptionSubKey());
}
if (poolDTO.getSubscriptionId() != null) {
poolEntity.setSubscriptionId(poolDTO.getSubscriptionId());
}
if (poolDTO.getAttributes() != null) {
if (poolDTO.getAttributes().isEmpty()) {
poolEntity.setAttributes(Collections.emptyMap());
} else {
poolEntity.setAttributes(poolDTO.getAttributes());
}
}
if (poolDTO.getCalculatedAttributes() != null) {
if (poolDTO.getCalculatedAttributes().isEmpty()) {
poolEntity.setCalculatedAttributes(Collections.emptyMap());
} else {
poolEntity.setCalculatedAttributes(poolDTO.getCalculatedAttributes());
}
}
if (poolDTO.getProductAttributes() != null) {
if (poolDTO.getProductAttributes().isEmpty()) {
poolEntity.setProductAttributes(Collections.emptyMap());
} else {
poolEntity.setProductAttributes(poolDTO.getProductAttributes());
}
}
if (poolDTO.getDerivedProductAttributes() != null) {
if (poolDTO.getDerivedProductAttributes().isEmpty()) {
poolEntity.setDerivedProductAttributes(Collections.emptyMap());
} else {
poolEntity.setDerivedProductAttributes(poolDTO.getDerivedProductAttributes());
}
}
if (poolDTO.getBranding() != null) {
if (poolDTO.getBranding().isEmpty()) {
poolEntity.setBranding(Collections.emptySet());
} else {
Set<Branding> branding = new HashSet<>();
for (BrandingDTO brandingDTO : poolDTO.getBranding()) {
if (brandingDTO != null) {
Branding brandingEntity = new Branding(brandingDTO.getProductId(), brandingDTO.getType(), brandingDTO.getName());
brandingEntity.setId(brandingDTO.getId());
brandingEntity.setCreated(brandingDTO.getCreated());
brandingEntity.setUpdated(brandingDTO.getUpdated());
branding.add(brandingEntity);
}
}
poolEntity.setBranding(branding);
}
}
if (poolDTO.getProvidedProducts() != null) {
if (poolDTO.getProvidedProducts().isEmpty()) {
poolEntity.setProvidedProductDtos(Collections.emptySet());
} else {
Set<ProvidedProduct> providedProducts = new HashSet<>();
for (PoolDTO.ProvidedProductDTO ppDTO : poolDTO.getProvidedProducts()) {
if (ppDTO != null) {
ProvidedProduct providedProduct = new ProvidedProduct();
providedProduct.setProductId(ppDTO.getProductId());
providedProduct.setProductName(ppDTO.getProductName());
providedProducts.add(providedProduct);
}
}
poolEntity.setProvidedProductDtos(providedProducts);
}
}
if (poolDTO.getDerivedProvidedProducts() != null) {
if (poolDTO.getDerivedProvidedProducts().isEmpty()) {
poolEntity.setDerivedProvidedProductDtos(Collections.emptySet());
} else {
Set<ProvidedProduct> derivedProvidedProducts = new HashSet<>();
for (PoolDTO.ProvidedProductDTO dppDTO : poolDTO.getDerivedProvidedProducts()) {
if (dppDTO != null) {
ProvidedProduct derivedProvidedProduct = new ProvidedProduct();
derivedProvidedProduct.setProductId(dppDTO.getProductId());
derivedProvidedProduct.setProductName(dppDTO.getProductName());
derivedProvidedProducts.add(derivedProvidedProduct);
}
}
poolEntity.setDerivedProvidedProductDtos(derivedProvidedProducts);
}
}
entity.setPool(poolEntity);
}
if (dto.getCertificates() != null) {
if (dto.getCertificates().isEmpty()) {
entity.setCertificates(Collections.emptySet());
} else {
Set<EntitlementCertificate> entityCerts = new HashSet<>();
for (CertificateDTO dtoCert : dto.getCertificates()) {
if (dtoCert != null) {
EntitlementCertificate entityCert = new EntitlementCertificate();
entityCert.setId(dtoCert.getId());
entityCert.setKey(dtoCert.getKey());
entityCert.setCert(dtoCert.getCert());
entityCert.setCreated(dtoCert.getCreated());
entityCert.setUpdated(dtoCert.getUpdated());
if (dtoCert.getSerial() != null) {
CertificateSerialDTO dtoSerial = dtoCert.getSerial();
CertificateSerial entitySerial = new CertificateSerial();
entitySerial.setId(dtoSerial.getId());
entitySerial.setCollected(dtoSerial.isCollected());
entitySerial.setExpiration(dtoSerial.getExpiration());
entitySerial.setRevoked(dtoSerial.isRevoked());
entitySerial.setSerial(dtoSerial.getSerial() != null ? dtoSerial.getSerial().longValueExact() : null);
entitySerial.setCreated(dtoSerial.getCreated());
entitySerial.setUpdated(dtoSerial.getUpdated());
entityCert.setSerial(entitySerial);
}
entityCerts.add(entityCert);
}
}
entity.setCertificates(entityCerts);
}
}
}
use of org.candlepin.model.SourceStack in project candlepin by candlepin.
the class EntitlementResourceTest method getUpstreamCertStackSubPoolNothingFound.
@Test(expected = NotFoundException.class)
public void getUpstreamCertStackSubPoolNothingFound() {
when(entitlementCurator.findUpstreamEntitlementForStack(consumer, "mystack")).thenReturn(null);
// Entitlement from stack sub-pool:
Entitlement e = TestUtil.createEntitlement();
e.setId("entitlementID");
e.getPool().setSourceStack(new SourceStack(consumer, "mystack"));
when(entitlementCurator.find(eq(e.getId()))).thenReturn(e);
entResource.getUpstreamCert(e.getId());
}
Aggregations