- return [node for node in
- super(ComputeNodeDriver, self).list_nodes()
- if node.extra["tags"].get("arvados-class") == self.tags["arvados-class"]]
+ nodes = [node for node in
+ super(ComputeNodeDriver, self).list_nodes(ex_fetch_nic=False, ex_fetch_power_state=False)
+ if node.extra.get("tags", {}).get("arvados-class") == self.tags["arvados-class"]]
+ for n in nodes:
+ # Need to populate Node.size
+ if not n.size:
+ n.size = self.sizes[n.extra["properties"]["hardwareProfile"]["vmSize"]]
+ n.extra['arvados_node_size'] = n.extra.get('tags', {}).get('arvados_node_size')
+ return nodes
+
+ def broken(self, cloud_node):
+ """Return true if libcloud has indicated the node is in a "broken" state."""
+ # UNKNOWN means the node state is unrecognized, which in practice means some combination
+ # of failure that the Azure libcloud driver doesn't know how to interpret.
+ return (cloud_node.state in (cloud_types.NodeState.ERROR, cloud_types.NodeState.UNKNOWN))