def getProvisionedWorkers(self, preemptable): entireCluster = self._getNodesInCluster(ctx=self.ctx, clusterName=self.clusterName, both=True) logger.debug('All nodes in cluster: %s', entireCluster) workerInstances = [ i for i in entireCluster if i.private_ip_address != self.leaderIP ] logger.debug('All workers found in cluster: %s', workerInstances) workerInstances = [ i for i in workerInstances if preemptable != (i.spot_instance_request_id is None) ] logger.debug('%spreemptable workers found in cluster: %s', 'non-' if not preemptable else '', workerInstances) workerInstances = awsFilterImpairedNodes(workerInstances, self.ctx.ec2) return [ Node(publicIP=i.ip_address, privateIP=i.private_ip_address, name=i.id, launchTime=i.launch_time) for i in workerInstances ]
def _getNodes(self, role, nodeType=None): allNodes = self._azureComputeClient.virtual_machines.list( self.clusterName) rv = [] allNodeNames = [] workerNames = [] for node in allNodes: allNodeNames.append(node.name) nodeRole = node.tags.get('role', None) if node.provisioning_state != 'Succeeded' or nodeRole != role: continue if nodeType and node.hardware_profile.vm_size != nodeType: continue network_interface = self._azureNetworkClient.network_interfaces.get( self.clusterName, node.name) if not network_interface.ip_configurations: continue # no networks assigned to this node publicIP = self._azureNetworkClient.public_ip_addresses.get( self.clusterName, node.name) workerNames.append(node.name) rv.append( Node( publicIP=publicIP.ip_address, privateIP=network_interface.ip_configurations[0]. private_ip_address, name=node.name, launchTime=None, # Not used with Azure. nodeType=node.hardware_profile.vm_size, preemptable=False) # Azure doesn't have preemptable nodes ) logger.debug('All nodes in cluster: ' + ', '.join(allNodeNames)) typeStr = ' of type ' + nodeType if nodeType else '' logger.debug('All %s nodes%s: %s' % (role, typeStr, ', '.join(workerNames))) return rv