def handle(self, request, context): try: savanna = savannaclient.Client(request) node_groups = [] configs_dict = whelpers.parse_configs_from_context(context, self.defaults) ids = json.loads(context["ng_forms_ids"]) for id in ids: name = context["ng_group_name_" + str(id)] template_id = context["ng_template_id_" + str(id)] count = context["ng_count_" + str(id)] ng = api_objects.NodeGroup(name, template_id, count=count) node_groups.append(ng) plugin, hadoop_version = whelpers.get_plugin_and_hadoop_version(request) # TODO(nkonovalov): Fix client to support default_image_id savanna.cluster_templates.create( context["general_cluster_template_name"], plugin, hadoop_version, context["general_description"], configs_dict, node_groups, context["anti_affinity_info"], ) return True except api_base.APIException as e: self.error_description = str(e) return False except Exception: exceptions.handle(request)
def handle(self, request, context): try: savanna = savannaclient.client(request) processes = [] for service_process in context["general_processes"]: processes.append(str(service_process).split(":")[1]) configs_dict = whelpers.parse_configs_from_context(context, self.defaults) plugin, hadoop_version = whelpers.\ get_plugin_and_hadoop_version(request) volumes_per_node = None volumes_size = None if context["general_storage"] == "cinder_volume": volumes_per_node = context["general_volumes_per_node"] volumes_size = context["general_volumes_size"] savanna.node_group_templates.create( name=context["general_nodegroup_name"], plugin_name=plugin, hadoop_version=hadoop_version, description=context["general_description"], flavor_id=context["general_flavor"], volumes_per_node=volumes_per_node, volumes_size=volumes_size, node_processes=processes, node_configs=configs_dict, floating_ip_pool=context.get("general_floating_ip_pool", None)) return True except api_base.APIException as e: self.error_description = str(e) return False except Exception: exceptions.handle(request)