Bug 1403160 - Unable to override the content at SKU level
Summary: Unable to override the content at SKU level
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Candlepin
Classification: Community
Component: candlepin
Version: 2.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 2.0
Assignee: vritant
QA Contact: Katello QA List
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-12-09 10:14 UTC by Shwetha Kallesh
Modified: 2017-01-20 12:24 UTC (History)
4 users (show)

Fixed In Version: candlepin-2.0.22-1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-01-20 12:24:43 UTC


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github candlepin candlepin pull 1414 0 None closed 1403160: update product without id in the body 2020-10-23 16:04:41 UTC

Description Shwetha Kallesh 2016-12-09 10:14:50 UTC
Description of problem:
Unable to override the content at SKU level

Version-Release number of selected component (if applicable):
subscription management server: 2.0.21-1


How reproducible:


Steps to Reproduce:
[root@dhcp35-71 ~]# subscription-manager repos --list
+----------------------------------------------------------+
    Available Repositories in /etc/yum.repos.d/redhat.repo
+----------------------------------------------------------+
Repo ID:   content-label-empty-gpg
Repo Name: content-emptygpg
Repo URL:  https://cdn.redhat.com/foo/path
Enabled:   0

Repo ID:   never-enabled-content
Repo Name: never-enabled-content
Repo URL:  https://cdn.redhat.com/foo/path/never
Enabled:   0

Repo ID:   content-label-no-gpg
Repo Name: content-nogpg
Repo URL:  https://cdn.redhat.com/foo/path
Enabled:   0

Repo ID:   content-label
Repo Name: content
Repo URL:  https://cdn.redhat.com/foo/path
Enabled:   0

Repo ID:   admin-content-label
Repo Name: admin-content
Repo URL:  https://cdn.redhat.com/admin/foo/path
Enabled:   0

[root@dhcp35-71 ~]# curl --stderr /dev/null --insecure --user admin:admin --request GET https://shwetha-workstation.usersys.redhat.com:8443/candlepin/content/ | python -mjson.tool | grep "admin-content-label" -B1
        "id": "5000", 
        "label": "admin-content-label", 

[root@dhcp35-71 ~]# curl --stderr /dev/null --insecure --user admin:admin --request GET 'https://shwetha-workstation.usersys.redhat.com:8443/candlepin/owners/admin/products/adminos-onesocketib?exclude=id&exclude=name&exclude=multiplier&exclude=productContent&exclude=dependentProductIds&exclude=href&exclude=created&exclude=updated&exclude=attributes.created&exclude=attributes.updated' | python -mjson.tool
{
    "attributes": [
        {
            "name": "instance_multiplier", 
            "value": "2"
        }, 
        {
            "name": "sockets", 
            "value": "1"
        }, 
        {
            "name": "virt_limit", 
            "value": "1"
        }, 
        {
            "name": "host_limited", 
            "value": "true"
        }, 
        {
            "name": "stacking_id", 
            "value": "15"
        }, 
        {
            "name": "multi-entitlement", 
            "value": "yes"
        }, 
        {
            "name": "support_level", 
            "value": "Standard"
        }, 
        {
            "name": "support_type", 
            "value": "L1-L3"
        }, 
        {
            "name": "version", 
            "value": "1.0"
        }, 
        {
            "name": "variant", 
            "value": "ALL"
        }, 
        {
            "name": "arch", 
            "value": "ALL"
        }, 
        {
            "name": "type", 
            "value": "MKT"
        }
    ], 
    "uuid": "8ac6a39f58e2d0e60158e2d12a1602bc"
}

 
[root@dhcp35-71 ~]# curl --stderr /dev/null --insecure --user admin:admin --request PUT --data '{"attributes":[{"name": "instance_multiplier","value": "2"},{"name":"sockets","value": "1"},{"name": "virt_limit","value": "1"},{"name": "host_limited","value": "true"},{"name": "stacking_id","value": "15"},{"name": "multi-entitlement","value": "yes"},{"name": "support_level","value": "Standard"},{"name": "support_type","value": "L1-L3"},{"name": "version","value": "1.0"},{"name": "variant","value": "ALL"},{"name": "arch","value": "ALL"},{"name": "type","value": "MKT"},{"name":"content_override_enabled","value":"5000"}]}' --header 'accept:application/json' --header 'content-type: application/json' https://shwetha-workstation.usersys.redhat.com:8443/candlepin/owners/admin/products/adminos-onesocketib
{
  "displayMessage" : "Runtime Error update is incomplete at org.candlepin.controller.ProductManager.updateProduct:167",
  "requestUuid" : "16d891d4-0bb5-4136-8354-311fa36a9e63"


Actual results:


Expected results:


Additional info:

-bash-4.2# tail -f /var/log/candlepin/candlepin.log
2016-12-09 15:07:32,247 [thread=http-bio-8443-exec-10] [req=16d891d4-0bb5-4136-8354-311fa36a9e63, org=] INFO  org.candlepin.common.filter.LoggingFilter - Request: verb=PUT, uri=/candlepin/owners/admin/products/adminos-onesocketib
2016-12-09 15:07:32,256 [thread=http-bio-8443-exec-10] [req=16d891d4-0bb5-4136-8354-311fa36a9e63, org=] ERROR org.candlepin.common.exceptions.mappers.CandlepinExceptionMapper - Runtime Error update is incomplete at org.candlepin.controller.ProductManager.updateProduct:167
java.lang.IllegalArgumentException: update is incomplete
        at org.candlepin.controller.ProductManager.updateProduct(ProductManager.java:167) ~[ProductManager.class:na]
        at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:58) ~[guice-persist-3.0.jar:na]
        at org.candlepin.resource.OwnerProductResource.updateProduct(OwnerProductResource.java:283) ~[OwnerProductResource.class:na]
        at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66) ~[guice-persist-3.0.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111]
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137) ~[resteasy-jaxrs-3.0.10.Final.jar:na]
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296) ~[resteasy-jaxrs-3.0.10.Final.jar:na]
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250) ~[resteasy-jaxrs-3.0.10.Final.jar:na]
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237) ~[resteasy-jaxrs-3.0.10.Final.jar:na]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356) [resteasy-jaxrs-3.0.10.Final.jar:na]
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179) [resteasy-jaxrs-3.0.10.Final.jar:na]
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) [resteasy-jaxrs-3.0.10.Final.jar:na]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) [resteasy-jaxrs-3.0.10.Final.jar:na]
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) [resteasy-jaxrs-3.0.10.Final.jar:na]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) [tomcat-servlet-3.0-api.jar:na]
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) [guice-servlet-3.0.jar:na]
        at org.candlepin.servlet.filter.EventFilter.doFilter(EventFilter.java:61) [EventFilter.class:na]
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) [guice-servlet-3.0.jar:na]
        at org.candlepin.servlet.filter.ContentTypeHackFilter.doFilter(ContentTypeHackFilter.java:58) [ContentTypeHackFilter.class:na]
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) [guice-servlet-3.0.jar:na]
        at org.candlepin.common.filter.LoggingFilter.doFilter(LoggingFilter.java:90) [candlepin-common-2.0.3.jar:]
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) [guice-servlet-3.0.jar:na]
        at org.candlepin.servlet.filter.CandlepinPersistFilter.doFilter(CandlepinPersistFilter.java:48) [CandlepinPersistFilter.class:na]
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) [guice-servlet-3.0.jar:na]
        at org.candlepin.servlet.filter.CandlepinScopeFilter.doFilter(CandlepinScopeFilter.java:68) [CandlepinScopeFilter.class:na]
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) [guice-servlet-3.0.jar:na]
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) [guice-servlet-3.0.jar:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.69]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.69]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) [catalina.jar:7.0.69]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [catalina.jar:7.0.69]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) [catalina.jar:7.0.69]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) [catalina.jar:7.0.69]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [catalina.jar:7.0.69]
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) [catalina.jar:7.0.69]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [catalina.jar:7.0.69]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) [catalina.jar:7.0.69]
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) [tomcat-coyote.jar:7.0.69]
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) [tomcat-coyote.jar:7.0.69]
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) [tomcat-coyote.jar:7.0.69]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_111]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_111]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-coyote.jar:7.0.69]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111]
2016-12-09 15:07:32,256 [thread=http-bio-8443-exec-10] [req=16d891d4-0bb5-4136-8354-311fa36a9e63, org=] WARN  org.candlepin.common.resteasy.filter.LinkHeaderResponseFilter - Method marked for pagination, but no page exists in the context.
2016-12-09 15:07:32,256 [thread=http-bio-8443-exec-10] [req=16d891d4-0bb5-4136-8354-311fa36a9e63, org=] WARN  org.candlepin.audit.EventSinkImpl - Rolling back hornetq transaction.
2016-12-09 15:07:32,257 [thread=http-bio-8443-exec-10] [req=16d891d4-0bb5-4136-8354-311fa36a9e63, org=] INFO  org.candlepin.common.filter.LoggingFilter - Response: status=500, content-type="application/json", time=10


Note You need to log in before you can comment on or make changes to this bug.