X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/19a2e9a97939126293ce33d72f576f6f54da574f..907343b7176738987b26b542664578ee0d8b23f1:/services/nodemanager/arvnodeman/computenode/driver/azure.py diff --git a/services/nodemanager/arvnodeman/computenode/driver/azure.py b/services/nodemanager/arvnodeman/computenode/driver/azure.py index f4686b976f..4ef4e10bc9 100644 --- a/services/nodemanager/arvnodeman/computenode/driver/azure.py +++ b/services/nodemanager/arvnodeman/computenode/driver/azure.py @@ -27,6 +27,10 @@ class ComputeNodeDriver(BaseComputeNodeDriver): self.tags = {key[4:]: value for key, value in create_kwargs.iteritems() if key.startswith('tag_')} + # filter out tags from create_kwargs + create_kwargs = {key: value + for key, value in create_kwargs.iteritems() + if not key.startswith('tag_')} super(ComputeNodeDriver, self).__init__( auth_kwargs, list_kwargs, create_kwargs, driver_class) @@ -51,6 +55,20 @@ class ComputeNodeDriver(BaseComputeNodeDriver): def _init_image(self, urn): return "image", self.get_image(urn) + def post_create_node(self, cloud_node): + self.real.ex_run_command(cloud_node, + """bash -c ' + 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 + echo "%s" > /var/tmp/arv-node-data/meta-data/local-ipv4 + '""" % (cloud_node.extra["tags"]["arv-ping-url"], + cloud_node.id, + cloud_node.extra["properties"]["hardwareProfile"]["vmSize"], + cloud_node.private_ips[0]), + timestamp=int(time.time())) + def list_nodes(self): # Azure only supports filtering node lists by resource group. # Do our own filtering based on tag.