Hi Rohit/Hugo, If I am not mistaken the issue, an easy fix for this is to change the following parameter annotation
@Parameter(name=ApiConstants.SERVICE_OFFERING_ID, type=CommandType.UUID, entityType=DiskOfferingResponse.class, description="the service offering ID used by virtual router provider") private Long serviceOfferingId; To @Parameter(name=ApiConstants.SERVICE_OFFERING_ID, type=CommandType.UUID, entityType=ServiceOfferingResponse.class, description="the service offering ID used by virtual router provider") private Long serviceOfferingId; Since this parameter is actually referring to service offerings, not disk offering. Thanks -min On 1/23/13 9:17 AM, "Rohit Yadav" <bhais...@apache.org> wrote: >Hi Hugo, > >I'll see this today. I'm not sure about the impact of fixing it in >disk offering dao impl as well. >Both disk and service offering dao and tables are tightly coupled. >Must be something I missed. >Will keep you posted. > >Regards. > >On Wed, Jan 23, 2013 at 6:28 AM, Hugo Trippaers ><htrippa...@schubergphilis.com> wrote: >> Hey guys, >> >> I was working on some stuff when I needed to create a new network >>service offering using the lastest build from master (and a clean >>database). The call failed with the following message "Unable to execute >>API command createnetworkoffering due to invalid value. Invalid >>parameter value=29bf1bb4-9e0a-4908-9de9-0065ca6cc20c due to incorrect >>long value, entity not found, or an annotation bug." I needed a systemvm >>offering in the network offering from the list, the uuid mentioned in >>the error is the uuid of the system offering. However the system >>offering is in the database, it is one of the default system offerings. >> >> mysql> select id, unique_name,name from disk_offering where uuid = >>'29bf1bb4-9e0a-4908-9de9-0065ca6cc20c'; >> +----+--------------------------+-------------------------------------+ >> | id | unique_name | name | >> +----+--------------------------+-------------------------------------+ >> | 9 | Cloud.Com-SoftwareRouter | System Offering For Software Router | >> +----+--------------------------+-------------------------------------+ >> >> It took some digging, but I found the problem. The api framework issues >>a findByUuid for any uuid's received with the command. So in this case >>the api dispatcher issued the findByUuid call on the DiskOfferingDao. >>This call is part of the GenericDaoBase (line 918) and eventually >>becomes a call to searchIncludingRemoved with a single clause stating >>the uuid must match. However this call is overridden in >>DiskOfferingDaoImpl (line 85) and the new function adds a clause stating >>that the type must be 'Disk'. The service offering we are looking for >>has type 'Service' so the query yields no results and the call fails. >> >> The easy way out would be to remove the check for type equals Disk, >>which fixes the obvious problem, but I have no idea what else this might >>cause. Could someone with more clue than me have a look at this? >> >> >> Below the lines from the log for those interested. >> >> Cheers, >> >> Hugo >> >> >> 2013-01-23 14:52:16,367 DEBUG [cloud.api.ApiServlet] >>(649447027@qtp-2088502955-10:null) ===START=== 127.0.0.1 -- GET >>command=createNetworkOffering&response=json&sessionkey=43rxXRv2MDoaxA83zI >>xgKwtNWCQ%3D&name=test&displayText=test&guestIpType=Isolated&useVpc=on&se >>rviceOfferingId=29bf1bb4-9e0a-4908-9de9-0065ca6cc20c&servicecapabilitylis >>t%5B0%5D.service=SourceNat&servicecapabilitylist%5B0%5D.capabilitytype=Su >>pportedSourceNatTypes&servicecapabilitylist5B05D.capabilityvalue=peraccou >>nt&servicecapabilitylist%5B1%5D.service=lb&servicecapabilitylist%5B1%5D.c >>apabilitytype=SupportedLbIsolation&servicecapabilitylist%5B1%5D.capabilit >>yvalue=dedicated&availability=Optional&state=Creating&status=Creating&all >>ocationstate=Creating&supportedServices=Dhcp%2CDns%2CFirewall%2CLb%2CUser >>Data%2CSourceNat%2CStaticNat%2CPortForwarding%2CConnectivity&specifyVlan= >>false&specifyIpRanges=false&conservemode=false&serviceProviderList%5B0%5D >>.service=Dhcp&serviceProviderList%5B0%5D.provider=VpcVirtualRouter&servic >>eProviderList%5B1%5D.service=Dns&serviceProviderList%5B1%5D.provider=VpcV >>irtualRouter&serviceProviderList%5B2%5D.service=Firewall&serviceProviderL >>ist%5B2%5D.provider=VirtualRouter&serviceProviderList%5B3%5D.service=Lb&s >>erviceProviderList%5B3%5D.provider=VpcVirtualRouter&serviceProviderList%5 >>B4%5D.service=UserData&serviceProviderList%5B4%5D.provider=VpcVirtualRout >>er&serviceProviderList%5B5%5D.service=SourceNat&serviceProviderList%5B5%5 >>D.provider=VpcVirtualRouter&serviceProviderList%5B6%5D.service=StaticNat& >>serviceProviderList%5B6%5D.provider=VpcVirtualRouter&serviceProviderList% >>5B7%5D.service=PortForwarding&serviceProviderList%5B7%5D.provider=VpcVirt >>ualRouter&serviceProviderList%5B8%5D.service=Connectivity&serviceProvider >>List%5B8%5D.provider=NiciraNvp&traffictype=GUEST&_=1358949136255 >> 2013-01-23 14:56:45,974 DEBUG [cloud.api.ApiDispatcher] >>(649447027@qtp-2088502955-10:null) Object entity with >>uuid=29bf1bb4-9e0a-4908-9de9-0065ca6cc20c does not exist in the database. >> 2013-01-23 14:56:45,975 INFO [cloud.api.ApiServer] >>(649447027@qtp-2088502955-10:null) Unable to execute API command >>createnetworkoffering due to invalid value. Invalid parameter >>value=29bf1bb4-9e0a-4908-9de9-0065ca6cc20c due to incorrect long value, >>entity not found, or an annotation bug.