X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/74e03b2190fea52b3ea5800c50eca55b6e50b220..3950ffc9481c25262f2db2b08a0f74664c433734:/services/nodemanager/arvnodeman/computenode/driver/ec2.py diff --git a/services/nodemanager/arvnodeman/computenode/driver/ec2.py b/services/nodemanager/arvnodeman/computenode/driver/ec2.py index 846aa6c211..1442a1245b 100644 --- a/services/nodemanager/arvnodeman/computenode/driver/ec2.py +++ b/services/nodemanager/arvnodeman/computenode/driver/ec2.py @@ -53,15 +53,14 @@ class ComputeNodeDriver(BaseComputeNodeDriver): for key, value in list_kwargs.iteritems() if key.startswith('tag:')} # Tags are assigned at instance creation time - if not 'ex_metadata' in create_kwargs: - create_kwargs['ex_metadata'] = {} + create_kwargs.setdefault('ex_metadata', {}) create_kwargs['ex_metadata'].update(self.tags) super(ComputeNodeDriver, self).__init__( auth_kwargs, {'ex_filters': list_kwargs}, create_kwargs, driver_class) def _init_image_id(self, image_id): - return 'image', self.search_for(image_id, 'list_images') + return 'image', self.search_for(image_id, 'list_images', ex_owner='self') def _init_security_groups(self, group_names): return 'ex_security_groups', [ @@ -92,6 +91,9 @@ class ComputeNodeDriver(BaseComputeNodeDriver): "VolumeSize": volsize, "VolumeType": "gp2" }}] + if size.preemptable: + # Request a Spot instance for this node + kw['ex_spot_market'] = True return kw def sync_node(self, cloud_node, arvados_node):