use of org.candlepin.model.SubscriptionsCertificate in project candlepin by candlepin.
the class PoolTranslator method populate.
/**
* {@inheritDoc}
*/
@Override
@SuppressWarnings("checkstyle:methodlength")
public PoolDTO populate(ModelTranslator modelTranslator, Pool source, PoolDTO dest) {
dest = super.populate(modelTranslator, source, dest);
dest.setId(source.getId());
dest.setType(source.getType().toString());
dest.setActiveSubscription(source.getActiveSubscription());
dest.setCreatedByShare(source.isCreatedByShare());
dest.setHasSharedAncestor(source.hasSharedAncestor());
dest.setQuantity(source.getQuantity());
dest.setStartDate(source.getStartDate());
dest.setEndDate(source.getEndDate());
dest.setAttributes(source.getAttributes());
dest.setRestrictedToUsername(source.getRestrictedToUsername());
dest.setContractNumber(source.getContractNumber());
dest.setAccountNumber(source.getAccountNumber());
dest.setOrderNumber(source.getOrderNumber());
dest.setConsumed(source.getConsumed());
dest.setExported(source.getExported());
dest.setShared(source.getShared());
dest.setCalculatedAttributes(source.getCalculatedAttributes());
dest.setUpstreamPoolId(source.getUpstreamPoolId());
dest.setUpstreamEntitlementId(source.getUpstreamEntitlementId());
dest.setUpstreamConsumerId(source.getUpstreamConsumerId());
dest.setProductName(source.getProductName());
dest.setProductId(source.getProductId());
dest.setProductAttributes(source.getProductAttributes());
dest.setStackId(source.getStackId());
dest.setStacked(source.isStacked());
dest.setDevelopmentPool(source.isDevelopmentPool());
dest.setDerivedProductAttributes(source.getDerivedProductAttributes());
dest.setDerivedProductId(source.getDerivedProductId());
dest.setDerivedProductName(source.getDerivedProductName());
dest.setSourceStackId(source.getSourceStackId());
dest.setSubscriptionSubKey(source.getSubscriptionSubKey());
dest.setSubscriptionId(source.getSubscriptionId());
// Process nested objects if we have a model translator to use to the translation...
if (modelTranslator != null) {
Owner owner = source.getOwner();
dest.setOwner(owner != null ? modelTranslator.translate(owner, OwnerDTO.class) : null);
SubscriptionsCertificate subCertificate = source.getCertificate();
dest.setCertificate(subCertificate != null ? modelTranslator.translate(subCertificate, CertificateDTO.class) : null);
Entitlement sourceEntitlement = source.getSourceEntitlement();
dest.setSourceEntitlement(sourceEntitlement != null ? modelTranslator.translate(sourceEntitlement, EntitlementDTO.class) : null);
Set<Branding> branding = source.getBranding();
if (branding != null && !branding.isEmpty()) {
for (Branding brand : branding) {
if (brand != null) {
dest.addBranding(modelTranslator.translate(brand, BrandingDTO.class));
}
}
} else {
dest.setBranding(Collections.<BrandingDTO>emptySet());
}
Set<Product> products = source.getProvidedProducts();
if (products != null && !products.isEmpty()) {
for (Product prod : products) {
if (prod != null) {
dest.addProvidedProduct(new PoolDTO.ProvidedProductDTO(prod.getId(), prod.getName()));
}
}
} else {
dest.setProvidedProducts(Collections.<PoolDTO.ProvidedProductDTO>emptySet());
}
Set<Product> derivedProducts = source.getDerivedProvidedProducts();
if (derivedProducts != null && !derivedProducts.isEmpty()) {
for (Product derivedProd : derivedProducts) {
if (derivedProd != null) {
dest.addDerivedProvidedProduct(new PoolDTO.ProvidedProductDTO(derivedProd.getId(), derivedProd.getName()));
}
}
} else {
dest.setDerivedProvidedProducts(Collections.<PoolDTO.ProvidedProductDTO>emptySet());
}
}
return dest;
}
use of org.candlepin.model.SubscriptionsCertificate in project candlepin by candlepin.
the class PoolTranslatorTest method initSourceObject.
@Override
protected Pool initSourceObject() {
Pool source = new Pool();
source.setId("pool-id");
source.setOwner(this.ownerTranslatorTest.initSourceObject());
source.setProduct(this.productTranslatorTest.initSourceObject());
source.setDerivedProduct(this.productTranslatorTest.initSourceObject());
Set<Branding> brandingSet = new HashSet<>();
brandingSet.add(this.brandingTranslatorTest.initSourceObject());
source.setBranding(brandingSet);
Entitlement entitlement = new Entitlement();
entitlement.setId("ent-id");
source.setSourceEntitlement(entitlement);
SubscriptionsCertificate subCert = new SubscriptionsCertificate();
subCert.setId("cert-id");
subCert.setKey("cert-key");
subCert.setCert("cert-cert");
subCert.setSerial(new CertificateSerial());
source.setCertificate(subCert);
SourceSubscription sourceSubscription = new SourceSubscription();
sourceSubscription.setId("source-sub-id-1");
sourceSubscription.setSubscriptionId("source-sub-subscription-id-1");
sourceSubscription.setSubscriptionSubKey("source-sub-subscription-sub-key-1");
source.setSourceSubscription(sourceSubscription);
source.setActiveSubscription(true);
source.setCreatedByShare(false);
source.setHasSharedAncestor(true);
source.setQuantity(1L);
source.setStartDate(new Date());
source.setEndDate(new Date());
Map<String, String> attributes = new HashMap<>();
attributes.put(Pool.Attributes.SOURCE_POOL_ID, "true");
source.setAttributes(attributes);
source.setRestrictedToUsername("restricted-to-username-value");
source.setContractNumber("333");
source.setAccountNumber("444");
source.setOrderNumber("555");
source.setConsumed(6L);
source.setExported(7L);
source.setShared(8L);
Map<String, String> calculatedAttributes = new HashMap<>();
calculatedAttributes.put("calc-attribute-key-3", "calc-attribute-value-3");
calculatedAttributes.put("calc-attribute-key-4", "calc-attribute-value-4");
source.setCalculatedAttributes(calculatedAttributes);
source.setUpstreamPoolId("upstream-pool-id-2");
source.setUpstreamEntitlementId("upstream-entitlement-id-2");
source.setUpstreamConsumerId("upstream-consumer-id-2");
source.setAttribute(Pool.Attributes.DEVELOPMENT_POOL, "true");
Product derivedProduct = new Product();
derivedProduct.setId("derived-product-id-2");
derivedProduct.setName("derived-product-name-2");
derivedProduct.setAttributes(new HashMap<>());
derivedProduct.setAttribute(Product.Attributes.ARCHITECTURE, "POWER");
derivedProduct.setAttribute(Product.Attributes.STACKING_ID, "2221");
source.setDerivedProduct(derivedProduct);
ProvidedProduct providedProd = new ProvidedProduct();
providedProd.setProductId("provided-product-id-1");
providedProd.setProductName("provided-product-name-1");
Set<ProvidedProduct> providedProducts = new HashSet<>();
providedProducts.add(providedProd);
source.setProvidedProductDtos(providedProducts);
ProvidedProduct derivedProvidedProd = new ProvidedProduct();
derivedProvidedProd.setProductId("derived-provided-product-id-1");
derivedProvidedProd.setProductName("derived-provided-product-name-1");
Set<ProvidedProduct> derivedProvidedProducts = new HashSet<>();
derivedProvidedProducts.add(derivedProvidedProd);
source.setDerivedProvidedProductDtos(derivedProvidedProducts);
Consumer sourceConsumer = new Consumer();
sourceConsumer.setUuid("source-consumer-uuid");
SourceStack sourceStack = new SourceStack();
sourceStack.setSourceStackId("source-stack-source-stack-id-1");
sourceStack.setId("source-stack-id-1");
sourceStack.setSourceConsumer(sourceConsumer);
source.setSourceStack(sourceStack);
return source;
}
use of org.candlepin.model.SubscriptionsCertificate in project candlepin by candlepin.
the class PoolTranslatorTest method initSourceObject.
@Override
protected Pool initSourceObject() {
Pool source = new Pool();
source.setId("pool-id");
source.setOwner(this.ownerTranslatorTest.initSourceObject());
source.setProduct(this.productTranslatorTest.initSourceObject());
source.setDerivedProduct(this.productTranslatorTest.initSourceObject());
Set<Branding> brandingSet = new HashSet<>();
brandingSet.add(this.brandingTranslatorTest.initSourceObject());
source.setBranding(brandingSet);
Entitlement entitlement = new Entitlement();
entitlement.setId("ent-id");
source.setSourceEntitlement(entitlement);
SubscriptionsCertificate subCert = new SubscriptionsCertificate();
subCert.setId("cert-id");
subCert.setKey("cert-key");
subCert.setCert("cert-cert");
subCert.setSerial(new CertificateSerial());
source.setCertificate(subCert);
SourceSubscription sourceSubscription = new SourceSubscription();
sourceSubscription.setId("source-sub-id-1");
sourceSubscription.setSubscriptionId("source-sub-subscription-id-1");
sourceSubscription.setSubscriptionSubKey("source-sub-subscription-sub-key-1");
source.setSourceSubscription(sourceSubscription);
source.setActiveSubscription(true);
source.setCreatedByShare(false);
source.setHasSharedAncestor(true);
source.setQuantity(1L);
source.setStartDate(new Date());
source.setEndDate(new Date());
Map<String, String> attributes = new HashMap<>();
attributes.put(Pool.Attributes.SOURCE_POOL_ID, "true");
source.setAttributes(attributes);
source.setRestrictedToUsername("restricted-to-username-value");
source.setContractNumber("333");
source.setAccountNumber("444");
source.setOrderNumber("555");
source.setConsumed(6L);
source.setExported(7L);
source.setShared(8L);
Map<String, String> calculatedAttributes = new HashMap<>();
calculatedAttributes.put("calc-attribute-key-3", "calc-attribute-value-3");
calculatedAttributes.put("calc-attribute-key-4", "calc-attribute-value-4");
source.setCalculatedAttributes(calculatedAttributes);
source.setUpstreamPoolId("upstream-pool-id-2");
source.setUpstreamEntitlementId("upstream-entitlement-id-2");
source.setUpstreamConsumerId("upstream-consumer-id-2");
source.setAttribute(Pool.Attributes.DEVELOPMENT_POOL, "true");
ProvidedProduct providedProd = new ProvidedProduct();
providedProd.setProductId("provided-product-id-1");
providedProd.setProductName("provided-product-name-1");
Set<ProvidedProduct> providedProducts = new HashSet<>();
providedProducts.add(providedProd);
source.setProvidedProductDtos(providedProducts);
ProvidedProduct derivedProvidedProd = new ProvidedProduct();
derivedProvidedProd.setProductId("derived-provided-product-id-1");
derivedProvidedProd.setProductName("derived-provided-product-name-1");
Set<ProvidedProduct> derivedProvidedProducts = new HashSet<>();
derivedProvidedProducts.add(derivedProvidedProd);
source.setDerivedProvidedProductDtos(derivedProvidedProducts);
Consumer sourceConsumer = new Consumer();
sourceConsumer.setUuid("source-consumer-uuid");
SourceStack sourceStack = new SourceStack();
sourceStack.setSourceStackId("source-stack-source-stack-id-1");
sourceStack.setId("source-stack-id-1");
sourceStack.setSourceConsumer(sourceConsumer);
source.setSourceStack(sourceStack);
return source;
}
use of org.candlepin.model.SubscriptionsCertificate in project candlepin by candlepin.
the class EntitlementResourceTest method getUpstreamCertStackSubPool.
@Test
public void getUpstreamCertStackSubPool() {
Entitlement parentEnt = TestUtil.createEntitlement();
parentEnt.setId("parentEnt");
SubscriptionsCertificate subcert = new SubscriptionsCertificate();
subcert.setCert("HELLO");
subcert.setKey("CERT");
parentEnt.getPool().setCertificate(subcert);
when(entitlementCurator.findUpstreamEntitlementForStack(consumer, "mystack")).thenReturn(parentEnt);
String expected = "HELLOCERT";
// 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);
String result = entResource.getUpstreamCert(e.getId());
assertEquals(expected, result);
}
use of org.candlepin.model.SubscriptionsCertificate in project candlepin by candlepin.
the class EntitlementResource method getUpstreamCert.
@ApiOperation(notes = "Retrieves a Subscription Certificate. We can't return CdnInfo " + "at this time, but when the time comes this is the implementation we want to start" + " from. It will require changes to thumbslug. will also" + " @Produces(MediaType.APPLICATION_JSON)", value = "getUpstreamCert")
@ApiResponses({ @ApiResponse(code = 404, message = "") })
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("{dbid}/upstream_cert")
public String getUpstreamCert(@PathParam("dbid") String entitlementId) {
Entitlement ent = entitlementCurator.find(entitlementId);
if (ent == null) {
throw new NotFoundException(i18n.tr("Entitlement with ID \"{0}\" could not be found.", entitlementId));
}
Pool entPool = ent.getPool();
if (!StringUtils.isBlank(entPool.getSourceStackId())) {
/*
* A derived pool originating from a stacked parent pool will have no subscription
* ID as the pool is technically from many subscriptions. (i.e. all the
* entitlements in the stack) In this case we must look up an active entitlement
* in the hosts stack, and use this as our upstream certificate.
*/
log.debug("Entitlement is from a stack derived pool, searching for oldest " + "active entitlements in source stack.");
ent = entitlementCurator.findUpstreamEntitlementForStack(entPool.getSourceStack().getSourceConsumer(), entPool.getSourceStackId());
}
if (ent == null || ent.getPool() == null || ent.getPool().getCertificate() == null) {
throw new NotFoundException(i18n.tr("Unable to find upstream certificate for entitlement: {0}", entitlementId));
}
SubscriptionsCertificate cert = ent.getPool().getCertificate();
return cert.getCert() + cert.getKey();
}
Aggregations