Hi Aurélien, Check the database schema as the URL is stored there. My guess is that the column size is 255.
Marco > On 25 May 2016, at 15:08, Aurélien <footp...@gmail.com> wrote: > > Hello, > > I’m investigating an issue on CS 4.8.0 when registering an ISO with a > long URL (>255 chars). The only issue related to it that I could find > is https://issues.apache.org/jira/browse/CLOUDSTACK-9238. > > Basically, the problem could be reproduced by entering an URL with > more that 255 chars in the ISO URL. The API fails with a parameter > error. > > Since the database schema seems fine according to CLOUDSTACK-9238 - my > current database matches that at least - I tried to change the > Parameter annotation to length 2048 (see first patch below); Then the > API request is accepted, but the URL appears truncated in the SSVM > logs: > > URL was: > https://github-cloud.s3.amazonaws.com/releases/28796010/774188bc-18fc-11e6-8140-4cf8a5632e15.iso?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160525%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160525T125103Z&X-Amz-Expires=300&X-Amz-Signature=d40de63959eed194d0bbb7c702cf71d65a7aa91f427e33714fde64b76aebf6d8&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Drancheros.iso&response-content-type=application%2Foctet-stream > > SSVM gets a 255-char truncated URL (the management server logs shows > that it sends only 255 chars also). > > 2016-05-25 12:51:16,961 DEBUG [cloud.agent.Agent] > (agentRequest-Handler-1:null) Request:Seq 57-4400016835940974604: { > Cmd , MgmtId: 345049980494, via: 57, Ver: v1, Flags: 100011, > [{"org.apache.cloudstack.storage.command.DownloadCommand":{"hvm":true,"description":"ros","maxDownloadSizeInBytes":53687091200,"id":353,"resourceType":"TEMPLATE","installPath":"template/tmpl/2/353","_store":{"com.cloud.agent.api.to.NfsTO":{"_url":"nfs://10.87.80.250/cloudstack_secondary_z1","_role":"Image"}},"url":"https://github-cloud.s3.amazonaws.com/releases/28796010/774188bc-18fc-11e6-8140-4cf8a5632e15.iso?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160525%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160525T125103Z&X-Amz-Expires=30","format":"ISO","accountId":2,"name":"353-2-34ec5c80-b6ff-3d3d-8c09-7ac1f3755d3d","secUrl":"nfs://10.87.80.250/cloudstack_secondary_z1","wait":0}}] > } > > > I also tried setting the length of the fields in the *VO objects (see > second patch below), but I’m not exactly sure of what i’m doing there. > > Does anyone have a hint at where to look to find where the string is > truncated and why ? > > > — Patch for API > > diff -ru > a/apache-cloudstack-4.8.0-src/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java > b/apache-cloudstack-4.8.0-src/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java > --- > a/apache-cloudstack-4.8.0-src/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java > 2016-01-20 23:43:35.000000000 +0100 > +++ > b/apache-cloudstack-4.8.0-src/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java > 2016-05-25 09:40:25.000000000 +0200 > @@ -78,7 +78,11 @@ > description = "the ID of the OS type that best > represents the OS of this ISO. If the ISO is bootable this parameter > needs to be passed") > private Long osTypeId; > > - @Parameter(name = ApiConstants.URL, type = CommandType.STRING, > required = true, description = "the URL to where the ISO is currently > being hosted") > + @Parameter(name = ApiConstants.URL, > + type = CommandType.STRING, > + required = true, > + description = "the URL to where the ISO is currently > being hosted", > + length = 2048) > private String url; > > @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.UUID, > entityType = ZoneResponse.class, > > > — Patch for columns > > diff -ru > a/apache-cloudstack-4.8.0-src/engine/schema/src/org/apache/cloudstack/storage/datastore/db/TemplateDataStoreVO.java > b/apache-cloudstack-4.8.0-src/engine/schema/src/org/apache/cloudstack/storage/datastore/db/TemplateDataStoreVO.java > --- > a/apache-cloudstack-4.8.0-src/engine/schema/src/org/apache/cloudstack/storage/datastore/db/TemplateDataStoreVO.java > 2016-01-20 23:43:35.000000000 +0100 > +++ > b/apache-cloudstack-4.8.0-src/engine/schema/src/org/apache/cloudstack/storage/datastore/db/TemplateDataStoreVO.java > 2016-05-25 14:12:18.000000000 +0200 > @@ -95,7 +95,7 @@ > @Column(name = "install_path") > private String installPath; > > - @Column(name = "url") > + @Column(name = "url", length = 2048) > private String downloadUrl; > > @Column(name = "download_url") > > Thanks, > Best regards, > -- > Aurélien Guillaume >