Search in sources :

Example 1 with SubscriptionsCertificate

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;
}
Also used : Owner(org.candlepin.model.Owner) SubscriptionsCertificate(org.candlepin.model.SubscriptionsCertificate) Product(org.candlepin.model.Product) Entitlement(org.candlepin.model.Entitlement) Branding(org.candlepin.model.Branding)

Example 2 with SubscriptionsCertificate

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;
}
Also used : HashMap(java.util.HashMap) CertificateSerial(org.candlepin.model.CertificateSerial) ProvidedProduct(org.candlepin.model.ProvidedProduct) Product(org.candlepin.model.Product) Branding(org.candlepin.model.Branding) ProvidedProduct(org.candlepin.model.ProvidedProduct) Date(java.util.Date) SourceSubscription(org.candlepin.model.SourceSubscription) Consumer(org.candlepin.model.Consumer) SubscriptionsCertificate(org.candlepin.model.SubscriptionsCertificate) SourceStack(org.candlepin.model.SourceStack) Pool(org.candlepin.model.Pool) Entitlement(org.candlepin.model.Entitlement) HashSet(java.util.HashSet)

Example 3 with SubscriptionsCertificate

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;
}
Also used : HashMap(java.util.HashMap) CertificateSerial(org.candlepin.model.CertificateSerial) Branding(org.candlepin.model.Branding) ProvidedProduct(org.candlepin.model.ProvidedProduct) Date(java.util.Date) SourceSubscription(org.candlepin.model.SourceSubscription) Consumer(org.candlepin.model.Consumer) SubscriptionsCertificate(org.candlepin.model.SubscriptionsCertificate) SourceStack(org.candlepin.model.SourceStack) Pool(org.candlepin.model.Pool) Entitlement(org.candlepin.model.Entitlement) HashSet(java.util.HashSet)

Example 4 with SubscriptionsCertificate

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);
}
Also used : SubscriptionsCertificate(org.candlepin.model.SubscriptionsCertificate) SourceStack(org.candlepin.model.SourceStack) Mockito.anyString(org.mockito.Mockito.anyString) Entitlement(org.candlepin.model.Entitlement) Test(org.junit.Test)

Example 5 with SubscriptionsCertificate

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();
}
Also used : SubscriptionsCertificate(org.candlepin.model.SubscriptionsCertificate) NotFoundException(org.candlepin.common.exceptions.NotFoundException) Pool(org.candlepin.model.Pool) Entitlement(org.candlepin.model.Entitlement) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses)

Aggregations

Entitlement (org.candlepin.model.Entitlement)8 SubscriptionsCertificate (org.candlepin.model.SubscriptionsCertificate)8 Branding (org.candlepin.model.Branding)5 CertificateSerial (org.candlepin.model.CertificateSerial)3 Pool (org.candlepin.model.Pool)3 Product (org.candlepin.model.Product)3 SourceStack (org.candlepin.model.SourceStack)3 Date (java.util.Date)2 HashMap (java.util.HashMap)2 HashSet (java.util.HashSet)2 Consumer (org.candlepin.model.Consumer)2 Owner (org.candlepin.model.Owner)2 ProvidedProduct (org.candlepin.model.ProvidedProduct)2 SourceSubscription (org.candlepin.model.SourceSubscription)2 Test (org.junit.Test)2 Mockito.anyString (org.mockito.Mockito.anyString)2 ApiOperation (io.swagger.annotations.ApiOperation)1 ApiResponses (io.swagger.annotations.ApiResponses)1 GET (javax.ws.rs.GET)1 Path (javax.ws.rs.Path)1