X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/319503f1a8eda9fb9cea0bff038ad437e88ebeac..149957a7a86cd9fae98edfdc9c797d16656b3684:/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 9db3d89cb6..8deabbd50a 100644 --- a/services/nodemanager/arvnodeman/computenode/driver/ec2.py +++ b/services/nodemanager/arvnodeman/computenode/driver/ec2.py @@ -64,13 +64,10 @@ class ComputeNodeDriver(BaseComputeNodeDriver): def _init_subnet_id(self, subnet_id): return 'ex_subnet', self.search_for(subnet_id, 'ex_list_subnets') - def _init_ssh_key(self, filename): - with open(filename) as ssh_file: - key = cloud_base.NodeAuthSSHKey(ssh_file.read()) - return 'auth', key + create_cloud_name = staticmethod(arvados_node_fqdn) - def arvados_create_kwargs(self, arvados_node): - return {'name': arvados_node_fqdn(arvados_node), + def arvados_create_kwargs(self, size, arvados_node): + return {'name': self.create_cloud_name(arvados_node), 'ex_userdata': self._make_ping_url(arvados_node)} def post_create_node(self, cloud_node): @@ -80,8 +77,24 @@ class ComputeNodeDriver(BaseComputeNodeDriver): self.real.ex_create_tags(cloud_node, {'Name': arvados_node_fqdn(arvados_node)}) + def list_nodes(self): + # Need to populate Node.size + nodes = super(ComputeNodeDriver, self).list_nodes() + for n in nodes: + if not n.size: + n.size = self.sizes[n.extra["instance_type"]] + return nodes + + @classmethod + def node_fqdn(cls, node): + return node.name + @classmethod def node_start_time(cls, node): time_str = node.extra['launch_time'].split('.', 2)[0] + 'UTC' return time.mktime(time.strptime( time_str,'%Y-%m-%dT%H:%M:%S%Z')) - time.timezone + + @classmethod + def node_id(cls, node): + return node.id