Esempio n. 1
0
 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
     ]
Esempio n. 2
0
    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