projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
12431: Use libcloud fork 2.2.2.dev1
[arvados.git]
/
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 fbae522499651653158463d1e8debc0c34294600..e0f260ab86542252102e28459381505833998d10 100644
(file)
--- a/
services/nodemanager/arvnodeman/computenode/driver/azure.py
+++ b/
services/nodemanager/arvnodeman/computenode/driver/azure.py
@@
-1,4
+1,7
@@
#!/usr/bin/env python
#!/usr/bin/env python
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
from __future__ import absolute_import, print_function
from __future__ import absolute_import, print_function
@@
-17,7
+20,6
@@
class ComputeNodeDriver(BaseComputeNodeDriver):
DEFAULT_DRIVER = cloud_provider.get_driver(cloud_types.Provider.AZURE_ARM)
SEARCH_CACHE = {}
DEFAULT_DRIVER = cloud_provider.get_driver(cloud_types.Provider.AZURE_ARM)
SEARCH_CACHE = {}
- CLOUD_ERRORS = BaseComputeNodeDriver.CLOUD_ERRORS + (BaseHTTPError,)
def __init__(self, auth_kwargs, list_kwargs, create_kwargs,
driver_class=DEFAULT_DRIVER):
def __init__(self, auth_kwargs, list_kwargs, create_kwargs,
driver_class=DEFAULT_DRIVER):
@@
-38,15
+40,18
@@
class ComputeNodeDriver(BaseComputeNodeDriver):
auth_kwargs, list_kwargs, create_kwargs,
driver_class)
auth_kwargs, list_kwargs, create_kwargs,
driver_class)
+ def create_cloud_name(self, arvados_node):
+ uuid_parts = arvados_node['uuid'].split('-', 2)
+ return 'compute-{parts[2]}-{parts[0]}'.format(parts=uuid_parts)
+
def arvados_create_kwargs(self, size, 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 = {
'booted_at': time.strftime(ARVADOS_TIMEFMT, time.gmtime()),
'arv-ping-url': self._make_ping_url(arvados_node)
}
tags.update(self.tags)
tags = {
'booted_at': time.strftime(ARVADOS_TIMEFMT, time.gmtime()),
'arv-ping-url': self._make_ping_url(arvados_node)
}
tags.update(self.tags)
+ name = self.create_cloud_name(arvados_node)
customdata = """#!/bin/sh
mkdir -p /var/tmp/arv-node-data/meta-data
echo %s > /var/tmp/arv-node-data/arv-ping-url
customdata = """#!/bin/sh
mkdir -p /var/tmp/arv-node-data/meta-data
echo %s > /var/tmp/arv-node-data/arv-ping-url
@@
-77,7
+82,7
@@
echo %s > /var/tmp/arv-node-data/meta-data/instance-type
# Azure only supports filtering node lists by resource group.
# Do our own filtering based on tag.
nodes = [node for node in
# 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, ex_fetch_power_state=False
)
if node.extra["tags"].get("arvados-class") == self.tags["arvados-class"]]
for n in nodes:
# Need to populate Node.size
if node.extra["tags"].get("arvados-class") == self.tags["arvados-class"]]
for n in nodes:
# Need to populate Node.size
@@
-98,3
+103,7
@@
echo %s > /var/tmp/arv-node-data/meta-data/instance-type
@classmethod
def node_start_time(cls, node):
return arvados_timestamp(node.extra["tags"].get("booted_at"))
@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