Esempio n. 1
0
    def request_gce_cluster(self, ambari_agent_vm_num, docker_num,
                            service_server_num, with_ambari_server, cluster_name):
        """
        Request a cluster from GCE
        :param ambari_agent_vm_num: number of VMs to hold Docker containers
        :param docker_num: number of Docker containers inside each VM
        :param service_server_num: number of VMs which has Ambari-agent directly installed (not in Docker)
        :param with_ambari_server: True or False, whether to request a VM to hold Ambari-server
        :param cluster_name: the name of the cluster
        :return: None
        """
        ambari_server_fqdn_ip_pairs = []
        if with_ambari_server is True:
            ambari_server_fqdn_ip_pairs = self.request_ambari_server_vm(VM.get_ambari_server_vm_name(cluster_name))
        service_server_fqdn_ip_pairs = self.reqeust_service_server_vm(service_server_num,
                                                                      VM.get_service_server_vm_name(cluster_name))
        ambari_agent_fqdn_ip_pairs = self.request_agent_vm(ambari_agent_vm_num,
                                                           VM.get_ambari_agent_vm_name(cluster_name))

        # prepare all attributes of the cluster, write to a file
        self.generate_cluster_info(cluster_name, ambari_server_fqdn_ip_pairs, service_server_fqdn_ip_pairs,
                                   ambari_agent_fqdn_ip_pairs, docker_num)