From a59ee03fd79806dcb3a8842c318e2cd06895183f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Aur=C3=A8le=20Brothier?= Date: Fri, 27 May 2016 08:16:05 +0200 Subject: [PATCH 1/3] Fix URL length to 2048 for all url fields in VO --- .../engine/datacenter/entity/api/db/EngineHostVO.java | 2 +- engine/schema/src/com/cloud/host/HostVO.java | 2 +- engine/schema/src/com/cloud/storage/UploadVO.java | 2 +- engine/schema/src/com/cloud/storage/VMTemplateHostVO.java | 2 +- engine/schema/src/com/cloud/storage/VMTemplateVO.java | 2 +- engine/schema/src/com/cloud/storage/VolumeHostVO.java | 2 +- .../apache/cloudstack/storage/datastore/db/ImageStoreVO.java | 2 +- .../cloudstack/storage/datastore/db/TemplateDataStoreVO.java | 4 ++-- .../cloudstack/storage/datastore/db/VolumeDataStoreVO.java | 4 ++-- .../org/apache/cloudstack/storage/db/ObjectInDataStoreVO.java | 2 +- server/src/com/cloud/api/query/vo/ImageStoreJoinVO.java | 2 +- setup/db/db/schema-471to480.sql | 2 ++ 12 files changed, 15 insertions(+), 13 deletions(-) diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/db/EngineHostVO.java b/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/db/EngineHostVO.java index efa34dfec98..eece93a867d 100644 --- a/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/db/EngineHostVO.java +++ b/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/db/EngineHostVO.java @@ -329,7 +329,7 @@ public class EngineHostVO implements EngineHost, Identity { @Column(name = "cpus") private Integer cpus; - @Column(name = "url") + @Column(name = "url", length = 2048) private String storageUrl; @Column(name = "speed") diff --git a/engine/schema/src/com/cloud/host/HostVO.java b/engine/schema/src/com/cloud/host/HostVO.java index c5938d65220..4d1896ce796 100644 --- a/engine/schema/src/com/cloud/host/HostVO.java +++ b/engine/schema/src/com/cloud/host/HostVO.java @@ -337,7 +337,7 @@ public class HostVO implements Host { @Column(name = "cpus") private Integer cpus; - @Column(name = "url") + @Column(name = "url", length = 2048) private String storageUrl; @Column(name = "speed") diff --git a/engine/schema/src/com/cloud/storage/UploadVO.java b/engine/schema/src/com/cloud/storage/UploadVO.java index c49b28b6793..dda5c38b596 100644 --- a/engine/schema/src/com/cloud/storage/UploadVO.java +++ b/engine/schema/src/com/cloud/storage/UploadVO.java @@ -77,7 +77,7 @@ public class UploadVO implements Upload { @Column(name = "job_id") private String jobId; - @Column(name = "url") + @Column(name = "url", length = 2048) private String uploadUrl; @Column(name = "install_path") diff --git a/engine/schema/src/com/cloud/storage/VMTemplateHostVO.java b/engine/schema/src/com/cloud/storage/VMTemplateHostVO.java index 4ba50885834..fc4d9c1599e 100644 --- a/engine/schema/src/com/cloud/storage/VMTemplateHostVO.java +++ b/engine/schema/src/com/cloud/storage/VMTemplateHostVO.java @@ -84,7 +84,7 @@ public class VMTemplateHostVO implements VMTemplateStorageResourceAssoc, DataObj @Column(name = "install_path") private String installPath; - @Column(name = "url") + @Column(name = "url", length = 2048) private String downloadUrl; @Column(name = "is_copy") diff --git a/engine/schema/src/com/cloud/storage/VMTemplateVO.java b/engine/schema/src/com/cloud/storage/VMTemplateVO.java index dd2b35aef98..d28c23b1a50 100644 --- a/engine/schema/src/com/cloud/storage/VMTemplateVO.java +++ b/engine/schema/src/com/cloud/storage/VMTemplateVO.java @@ -63,7 +63,7 @@ public class VMTemplateVO implements VirtualMachineTemplate { @Column(name = "type") private Storage.TemplateType templateType; - @Column(name = "url") + @Column(name = "url", length = 2048) private String url = null; @Column(name = "hvm") diff --git a/engine/schema/src/com/cloud/storage/VolumeHostVO.java b/engine/schema/src/com/cloud/storage/VolumeHostVO.java index 56a9a9285cd..d086f2dd0aa 100644 --- a/engine/schema/src/com/cloud/storage/VolumeHostVO.java +++ b/engine/schema/src/com/cloud/storage/VolumeHostVO.java @@ -93,7 +93,7 @@ public class VolumeHostVO implements InternalIdentity, DataObjectInStore { @Column(name = "install_path") private String installPath; - @Column(name = "url") + @Column(name = "url", length = 2048) private String downloadUrl; @Column(name = "format") diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreVO.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreVO.java index 2d1a3eddd69..2c706774a4d 100644 --- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreVO.java +++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/ImageStoreVO.java @@ -51,7 +51,7 @@ public class ImageStoreVO implements ImageStore { @Column(name = "protocol", nullable = false) private String protocol; - @Column(name = "url", nullable = false) + @Column(name = "url", nullable = false, length = 2048) private String url; @Column(name = "image_provider_name", nullable = false) diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/TemplateDataStoreVO.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/TemplateDataStoreVO.java index bb05300e21e..024f05604c9 100644 --- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/TemplateDataStoreVO.java +++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/TemplateDataStoreVO.java @@ -95,10 +95,10 @@ public class TemplateDataStoreVO implements StateObject Date: Fri, 27 May 2016 08:26:09 +0200 Subject: [PATCH 2/3] not needed on host table --- .../engine/datacenter/entity/api/db/EngineHostVO.java | 2 +- engine/schema/src/com/cloud/host/HostVO.java | 2 +- setup/db/db/schema-471to480.sql | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/db/EngineHostVO.java b/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/db/EngineHostVO.java index eece93a867d..efa34dfec98 100644 --- a/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/db/EngineHostVO.java +++ b/engine/orchestration/src/org/apache/cloudstack/engine/datacenter/entity/api/db/EngineHostVO.java @@ -329,7 +329,7 @@ public class EngineHostVO implements EngineHost, Identity { @Column(name = "cpus") private Integer cpus; - @Column(name = "url", length = 2048) + @Column(name = "url") private String storageUrl; @Column(name = "speed") diff --git a/engine/schema/src/com/cloud/host/HostVO.java b/engine/schema/src/com/cloud/host/HostVO.java index 4d1896ce796..c5938d65220 100644 --- a/engine/schema/src/com/cloud/host/HostVO.java +++ b/engine/schema/src/com/cloud/host/HostVO.java @@ -337,7 +337,7 @@ public class HostVO implements Host { @Column(name = "cpus") private Integer cpus; - @Column(name = "url", length = 2048) + @Column(name = "url") private String storageUrl; @Column(name = "speed") diff --git a/setup/db/db/schema-471to480.sql b/setup/db/db/schema-471to480.sql index 4eb924d988b..5db5ac642a9 100644 --- a/setup/db/db/schema-471to480.sql +++ b/setup/db/db/schema-471to480.sql @@ -28,4 +28,3 @@ ALTER TABLE `cloud`.`template_store_ref` MODIFY COLUMN `url` varchar(2048); ALTER TABLE `cloud`.`volume_store_ref` MODIFY COLUMN `url` varchar(2048); ALTER TABLE `cloud`.`volume_store_ref` MODIFY COLUMN `download_url` varchar(2048); ALTER TABLE `cloud`.`upload` MODIFY COLUMN `url` varchar(2048); -ALTER TABLE `cloud`.`host` MODIFY COLUMN `url` varchar(2048); From bded5e98ec14dec18545c6dffa81b36dee37235a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Aur=C3=A8le=20Brothier?= Date: Fri, 27 May 2016 08:38:24 +0200 Subject: [PATCH 3/3] API: update url field max length --- .../cloudstack/api/command/admin/storage/AddImageStoreCmd.java | 2 +- .../command/admin/storage/CreateSecondaryStagingStoreCmd.java | 2 +- .../apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java | 2 +- .../apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java | 2 +- .../cloudstack/api/command/user/template/CreateTemplateCmd.java | 1 + .../api/command/user/template/ExtractTemplateCmd.java | 2 +- .../api/command/user/template/RegisterTemplateCmd.java | 1 + .../cloudstack/api/command/user/volume/ExtractVolumeCmd.java | 2 +- .../cloudstack/api/command/user/volume/UploadVolumeCmd.java | 1 + 9 files changed, 9 insertions(+), 6 deletions(-) diff --git a/api/src/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java b/api/src/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java index 6b673cf6322..839d64dcf9d 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java @@ -49,7 +49,7 @@ public class AddImageStoreCmd extends BaseCmd { @Parameter(name = ApiConstants.NAME, type = CommandType.STRING, description = "the name for the image store") private String name; - @Parameter(name = ApiConstants.URL, type = CommandType.STRING, description = "the URL for the image store") + @Parameter(name = ApiConstants.URL, type = CommandType.STRING, length = 2048, description = "the URL for the image store") private String url; @Parameter(name = ApiConstants.ZONE_ID, type = CommandType.UUID, entityType = ZoneResponse.class, description = "the Zone ID for the image store") diff --git a/api/src/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmd.java b/api/src/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmd.java index cfe4383578d..194179d7697 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/storage/CreateSecondaryStagingStoreCmd.java @@ -45,7 +45,7 @@ public class CreateSecondaryStagingStoreCmd extends BaseCmd { //////////////// API parameters ///////////////////// ///////////////////////////////////////////////////// - @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = true, description = "the URL for the staging store") + @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = true, length = 2048, description = "the URL for the staging store") private String url; @Parameter(name = ApiConstants.ZONE_ID, type = CommandType.UUID, entityType = ZoneResponse.class, description = "the Zone ID for the staging store") diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java index 85f60085989..a400a014b6b 100644 --- a/api/src/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/iso/ExtractIsoCmd.java @@ -49,7 +49,7 @@ public class ExtractIsoCmd extends BaseAsyncCmd { @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = TemplateResponse.class, required = true, description = "the ID of the ISO file") private Long id; - @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = false, description = "the URL to which the ISO would be extracted") + @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = false, length = 2048, description = "the URL to which the ISO would be extracted") private String url; @Parameter(name = ApiConstants.ZONE_ID, diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java index a1cb4780c73..599aac1fd03 100644 --- a/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java @@ -78,7 +78,7 @@ public class RegisterIsoCmd extends BaseCmd { 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, length = 2048, description = "the URL to where the ISO is currently being hosted") private String url; @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.UUID, entityType = ZoneResponse.class, diff --git a/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java index c8d6ce338c2..59c4abe0028 100644 --- a/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java @@ -113,6 +113,7 @@ public class CreateTemplateCmd extends BaseAsyncCreateCmd { @Parameter(name = ApiConstants.URL, type = CommandType.STRING, + length = 2048, description = "Optional, only for baremetal hypervisor. The directory name where template stored on CIFS server") private String url; diff --git a/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java index c88b5e334b6..48d3e1405a4 100644 --- a/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java @@ -49,7 +49,7 @@ public class ExtractTemplateCmd extends BaseAsyncCmd { @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = TemplateResponse.class, required = true, description = "the ID of the template") private Long id; - @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = false, description = "the url to which the ISO would be extracted") + @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = false, length = 2048, description = "the url to which the ISO would be extracted") private String url; @Parameter(name = ApiConstants.ZONE_ID, diff --git a/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java index 8de30f690e4..8ff0b6b449e 100644 --- a/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/template/RegisterTemplateCmd.java @@ -104,6 +104,7 @@ public class RegisterTemplateCmd extends BaseCmd { @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = true, + length = 2048, description = "the URL of where the template is hosted. Possible URL include http:// and https://") private String url; diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java index 049396c3700..fc536d3f036 100644 --- a/api/src/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/volume/ExtractVolumeCmd.java @@ -54,7 +54,7 @@ public class ExtractVolumeCmd extends BaseAsyncCmd { required=true, description="the ID of the volume") private Long id; - @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = false, description = "the url to which the volume would be extracted") + @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = false, length = 2048, description = "the url to which the volume would be extracted") private String url; @Parameter(name = ApiConstants.ZONE_ID, diff --git a/api/src/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java b/api/src/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java index c360c146d60..21749616753 100644 --- a/api/src/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/volume/UploadVolumeCmd.java @@ -62,6 +62,7 @@ public class UploadVolumeCmd extends BaseAsyncCmd { @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = true, + length = 2048, description = "the URL of where the volume is hosted. Possible URL include http:// and https://") private String url;