from __future__ import absolute_import, print_function
+import pipes
import time
import libcloud.compute.base as cloud_base
auth_kwargs, list_kwargs, create_kwargs,
driver_class)
- def arvados_create_kwargs(self, arvados_node):
+ def arvados_create_kwargs(self, size, arvados_node):
cluster_id, _, node_id = arvados_node['uuid'].split('-')
name = 'compute-{}-{}'.format(node_id, cluster_id)
tags = {
tags.update(self.tags)
customdata = """#!/bin/sh
-mkdir -p /var/tmp/arv-node-data/meta-data
-echo "%s" > /var/tmp/arv-node-data/arv-ping-url
-""" % (tags['arv-ping-url'])
+mkdir -p /var/tmp/arv-node-data/meta-data
+echo %s > /var/tmp/arv-node-data/arv-ping-url
+echo %s > /var/tmp/arv-node-data/meta-data/instance-id
+echo %s > /var/tmp/arv-node-data/meta-data/instance-type
+""" % (pipes.quote(tags['arv-ping-url']),
+ pipes.quote(name),
+ pipes.quote(size.id))
return {
'name': name,
# Azure only supports filtering node lists by resource group.
# Do our own filtering based on tag.
nodes = [node for node in
- super(ComputeNodeDriver, self).list_nodes()
+ super(ComputeNodeDriver, self).list_nodes(ex_fetch_nic=False)
if node.extra["tags"].get("arvados-class") == self.tags["arvados-class"]]
for n in nodes:
# Need to populate Node.size
@classmethod
def node_start_time(cls, node):
return arvados_timestamp(node.extra["tags"].get("booted_at"))
+
+ @classmethod
+ def node_id(cls, node):
+ return node.name