diff --git a/zuul/driver/aws/awsendpoint.py b/zuul/driver/aws/awsendpoint.py index 43df805035..278ded81fb 100644 --- a/zuul/driver/aws/awsendpoint.py +++ b/zuul/driver/aws/awsendpoint.py @@ -648,8 +648,8 @@ class AwsProviderEndpoint(BaseProviderEndpoint): return quota def uploadImage(self, provider_image, image_name, filename, - image_format, metadata, md5, sha256, bucket_name, - timeout): + image_format, metadata, md5, sha256, bucket_name): + timeout = provider_image.import_timeout self.log.debug(f"Uploading image {image_name} " f"via {provider_image.import_method}") diff --git a/zuul/driver/aws/awsprovider.py b/zuul/driver/aws/awsprovider.py index 327b85349d..5d30e9f11b 100644 --- a/zuul/driver/aws/awsprovider.py +++ b/zuul/driver/aws/awsprovider.py @@ -380,13 +380,10 @@ class AwsProvider(BaseProvider, subclass_id='aws'): # TODO this needs to move to the section or connection config # since it's used by endpoints. bucket_name = self.object_storage.get('bucket-name') - # TODO make this configurable - # timeout = self.image_import_timeout - timeout = 300 return self.endpoint.uploadImage( provider_image, image_name, filename, image_format, metadata, md5, sha256, - bucket_name, timeout) + bucket_name) def deleteImage(self, external_id): self.endpoint.deleteImage(external_id) diff --git a/zuul/driver/openstack/openstackendpoint.py b/zuul/driver/openstack/openstackendpoint.py index 4c749a2f18..5e2c4cc548 100644 --- a/zuul/driver/openstack/openstackendpoint.py +++ b/zuul/driver/openstack/openstackendpoint.py @@ -510,7 +510,7 @@ class OpenstackProviderEndpoint(BaseProviderEndpoint): return True def uploadImage(self, provider_image, image_name, filename, - image_format, metadata, md5, sha256, timeout): + image_format, metadata, md5, sha256): # configure glance and upload image. Note the meta flags # are provided as custom glance properties # NOTE: we have wait=True set here. This is not how we normally @@ -521,6 +521,7 @@ class OpenstackProviderEndpoint(BaseProviderEndpoint): # block for our v1 clouds anyway, so we might as well # have the interface be the same and treat faking-out # a openstacksdk-level fake-async interface later + timeout = provider_image.import_timeout if not metadata: metadata = {} if image_format: diff --git a/zuul/driver/openstack/openstackprovider.py b/zuul/driver/openstack/openstackprovider.py index 4f2ca0e0da..f3eed60cb1 100644 --- a/zuul/driver/openstack/openstackprovider.py +++ b/zuul/driver/openstack/openstackprovider.py @@ -246,13 +246,9 @@ class OpenstackProvider(BaseProvider, subclass_id='openstack'): def uploadImage(self, provider_image, image_name, filename, image_format, metadata, md5, sha256): - # TODO make this configurable - # timeout = self.image_import_timeout - timeout = 300 return self.endpoint.uploadImage( provider_image, image_name, - filename, image_format, metadata, md5, sha256, - timeout) + filename, image_format, metadata, md5, sha256) def deleteImage(self, external_id): self.endpoint.deleteImage(external_id) diff --git a/zuul/provider/schema.py b/zuul/provider/schema.py index 51162dd4eb..b8bb7e37c1 100644 --- a/zuul/provider/schema.py +++ b/zuul/provider/schema.py @@ -61,6 +61,7 @@ common_image = vs.Schema({ Optional('connection-port'): Nullable(int), Optional('python-path'): Nullable(str), Optional('shell-type'): Nullable(str), + Optional('import-timeout', default=300): int, }) # Same as above, but only for cloud providers.