[Django 1.9] request.REQUEST is gone

This patch replaces request.REQUEST by request.GET, request.POST or by
their merge (merge is needed because in some cases the request
contains valuable information in both GET and POST methods
simultaneously), as the former doesn't exist anymore in Django 1.9.
This fixes numerous unit test issues in Debian Sid: from 21 errors
1 failure, to 3 errors and 3 failures.

Co-Authored-By: Michael Ionkin <mionkin@mirantis.com>
Closes-Bug: #1560270
Change-Id: Ie0784379895350f6dbfc03949b3473d5171df33b
This commit is contained in:
Thomas Goirand 2016-03-21 23:02:46 +01:00 committed by Michael Ionkin
parent 287840a37c
commit 55d1f00aa5
8 changed files with 55 additions and 50 deletions

View File

@ -180,12 +180,15 @@ class ConfigureNodegroupsAction(workflows.Action):
def __init__(self, request, *args, **kwargs): def __init__(self, request, *args, **kwargs):
super(ConfigureNodegroupsAction, self). \ super(ConfigureNodegroupsAction, self). \
__init__(request, *args, **kwargs) __init__(request, *args, **kwargs)
# when we copy or edit a cluster template then
plugin = request.REQUEST.get("plugin_name") # request contains valuable info in both GET and POST methods
version = request.REQUEST.get("hadoop_version") req = request.GET.copy()
req.update(request.POST)
plugin = req.get("plugin_name")
version = req.get("hadoop_version")
if plugin and not version: if plugin and not version:
version_name = plugin + "_version" version_name = plugin + "_version"
version = request.REQUEST.get(version_name) version = req.get(version_name)
if not plugin or not version: if not plugin or not version:
self.templates = saharaclient.nodegroup_template_find(request) self.templates = saharaclient.nodegroup_template_find(request)
@ -193,27 +196,22 @@ class ConfigureNodegroupsAction(workflows.Action):
self.templates = saharaclient.nodegroup_template_find( self.templates = saharaclient.nodegroup_template_find(
request, plugin_name=plugin, hadoop_version=version) request, plugin_name=plugin, hadoop_version=version)
deletable = request.REQUEST.get("deletable", dict()) deletable = req.get("deletable", dict())
request_source = None if 'forms_ids' in req:
if 'forms_ids' in request.POST:
request_source = request.POST
elif 'forms_ids' in request.REQUEST:
request_source = request.REQUEST
if request_source:
self.groups = [] self.groups = []
for id in json.loads(request_source['forms_ids']): for id in json.loads(req['forms_ids']):
group_name = "group_name_" + str(id) group_name = "group_name_" + str(id)
template_id = "template_id_" + str(id) template_id = "template_id_" + str(id)
count = "count_" + str(id) count = "count_" + str(id)
serialized = "serialized_" + str(id) serialized = "serialized_" + str(id)
self.groups.append({"name": request_source[group_name], self.groups.append({"name": req[group_name],
"template_id": request_source[template_id], "template_id": req[template_id],
"count": request_source[count], "count": req[count],
"id": id, "id": id,
"deletable": deletable.get( "deletable": deletable.get(
request_source[group_name], "true"), req[group_name], "true"),
"serialized": request_source[serialized]}) "serialized": req[serialized]})
whelpers.build_node_group_fields(self, whelpers.build_node_group_fields(self,
group_name, group_name,

View File

@ -148,9 +148,10 @@ class GeneralConfigAction(workflows.Action):
# cluster_template_id comes from cluster templates table, when # cluster_template_id comes from cluster templates table, when
# Create Cluster from template is clicked there # Create Cluster from template is clicked there
selected_template_name = None selected_template_name = None
if request.REQUEST.get("cluster_template_name"): req = request.GET or request.POST
if req.get("cluster_template_name"):
selected_template_name = ( selected_template_name = (
request.REQUEST.get("cluster_template_name")) req.get("cluster_template_name"))
if selected_template_name: if selected_template_name:
for template in templates: for template in templates:
if template.name == selected_template_name: if template.name == selected_template_name:
@ -158,7 +159,7 @@ class GeneralConfigAction(workflows.Action):
break break
else: else:
selected_template_id = ( selected_template_id = (
request.REQUEST.get("cluster_template_id", None)) req.get("cluster_template_id", None))
for template in templates: for template in templates:
if template.id == selected_template_id: if template.id == selected_template_id:

View File

@ -185,11 +185,15 @@ class GeneralConfigAction(workflows.Action):
for param in node_parameters: for param in node_parameters:
self.fields[param.name] = workflow_helpers.build_control(param) self.fields[param.name] = workflow_helpers.build_control(param)
if request.REQUEST.get("guide_template_type"): # when we copy or edit a node group template then
# request contains valuable info in both GET and POST methods
req = request.GET.copy()
req.update(request.POST)
if req.get("guide_template_type"):
self.fields["guide_template_type"] = forms.CharField( self.fields["guide_template_type"] = forms.CharField(
required=False, required=False,
widget=forms.HiddenInput(), widget=forms.HiddenInput(),
initial=request.REQUEST.get("guide_template_type")) initial=req.get("guide_template_type"))
try: try:
volume_types = cinder.volume_type_list(request) volume_types = cinder.volume_type_list(request)

View File

@ -83,8 +83,8 @@ class LaunchJobView(workflows.WorkflowView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
if request.is_ajax(): if request.is_ajax():
if request.REQUEST.get("json", None): if request.GET.get("json", None):
job_id = request.REQUEST.get("job_id") job_id = request.GET.get("job_id")
job_type = saharaclient.job_get(request, job_id).type job_type = saharaclient.job_get(request, job_id).type
return http.HttpResponse(json.dumps({"job_type": job_type}), return http.HttpResponse(json.dumps({"job_type": job_type}),
content_type='application/json') content_type='application/json')

View File

@ -106,9 +106,10 @@ class GeneralConfigAction(workflows.Action):
def __init__(self, request, context, *args, **kwargs): def __init__(self, request, context, *args, **kwargs):
super(GeneralConfigAction, super(GeneralConfigAction,
self).__init__(request, context, *args, **kwargs) self).__init__(request, context, *args, **kwargs)
if request.REQUEST.get("guide_job_type"): req = request.GET or request.POST
if req.get("guide_job_type"):
self.fields["job_type"].initial = ( self.fields["job_type"].initial = (
request.REQUEST.get("guide_job_type").lower()) req.get("guide_job_type").lower())
def populate_job_type_choices(self, request, context): def populate_job_type_choices(self, request, context):
choices = [] choices = []
@ -153,14 +154,10 @@ class ConfigureInterfaceArgumentsAction(workflows.Action):
def __init__(self, request, *args, **kwargs): def __init__(self, request, *args, **kwargs):
super(ConfigureInterfaceArgumentsAction, self).__init__( super(ConfigureInterfaceArgumentsAction, self).__init__(
request, *args, **kwargs) request, *args, **kwargs)
request_source = None req = request.GET or request.POST
if 'argument_ids' in request.POST: if 'argument_ids' in req:
request_source = request.POST
elif 'argument_ids' in request.REQUEST:
request_source = request.REQUEST
if request_source:
self.arguments = [] self.arguments = []
for id in json.loads(request_source['argument_ids']): for id in json.loads(req['argument_ids']):
fields = { fields = {
"name": "argument_name_" + str(id), "name": "argument_name_" + str(id),
"description": "argument_description_" + str(id), "description": "argument_description_" + str(id),
@ -168,12 +165,12 @@ class ConfigureInterfaceArgumentsAction(workflows.Action):
"location": "argument_location_" + str(id), "location": "argument_location_" + str(id),
"value_type": "argument_value_type_" + str(id), "value_type": "argument_value_type_" + str(id),
"default_value": "argument_default_value_" + str(id)} "default_value": "argument_default_value_" + str(id)}
argument = {k: request_source[v] argument = {k: req[v]
for k, v in fields.items()} for k, v in fields.items()}
required_field = "argument_required_" + str(id) required_field = "argument_required_" + str(id)
fields.update({"required": required_field}) fields.update({"required": required_field})
argument.update( argument.update(
{"required": required_field in request_source}) {"required": required_field in req})
self.arguments.append(argument) self.arguments.append(argument)
whelpers.build_interface_argument_fields(self, **fields) whelpers.build_interface_argument_fields(self, **fields)

View File

@ -55,15 +55,15 @@ class JobExecutionGeneralConfigAction(workflows.Action):
super(JobExecutionGeneralConfigAction, self).__init__(request, super(JobExecutionGeneralConfigAction, self).__init__(request,
*args, *args,
**kwargs) **kwargs)
req = request.GET or request.POST
if request.REQUEST.get("job_id", None) is None: if req.get("job_id", None) is None:
self.fields["job"] = forms.ChoiceField( self.fields["job"] = forms.ChoiceField(
label=_("Job")) label=_("Job"))
self.fields["job"].choices = self.populate_job_choices(request) self.fields["job"].choices = self.populate_job_choices(request)
else: else:
self.fields["job"] = forms.CharField( self.fields["job"] = forms.CharField(
widget=forms.HiddenInput(), widget=forms.HiddenInput(),
initial=request.REQUEST.get("job_id", None)) initial=req.get("job_id", None))
def populate_job_input_choices(self, request, context): def populate_job_input_choices(self, request, context):
return self.get_data_source_choices(request, context) return self.get_data_source_choices(request, context)
@ -225,7 +225,8 @@ class JobConfigAction(workflows.Action):
def __init__(self, request, *args, **kwargs): def __init__(self, request, *args, **kwargs):
super(JobConfigAction, self).__init__(request, *args, **kwargs) super(JobConfigAction, self).__init__(request, *args, **kwargs)
job_ex_id = request.REQUEST.get("job_execution_id") req = request.GET or request.POST
job_ex_id = req.get("job_execution_id")
if job_ex_id is not None: if job_ex_id is not None:
job_ex = saharaclient.job_execution_get(request, job_ex_id) job_ex = saharaclient.job_execution_get(request, job_ex_id)
job = saharaclient.job_get(request, job_ex.job_id) job = saharaclient.job_get(request, job_ex.job_id)
@ -289,7 +290,8 @@ class JobConfigAction(workflows.Action):
return cleaned_data return cleaned_data
def populate_property_name_choices(self, request, context): def populate_property_name_choices(self, request, context):
job_id = request.REQUEST.get("job_id") or request.REQUEST.get("job") req = request.GET or request.POST
job_id = req.get("job_id") or req.get("job")
job_type = saharaclient.job_get(request, job_id).type job_type = saharaclient.job_get(request, job_id).type
job_configs = ( job_configs = (
saharaclient.job_get_configs(request, job_type).job_config) saharaclient.job_get_configs(request, job_type).job_config)
@ -442,8 +444,8 @@ class JobExecutionInterfaceConfigAction(workflows.Action):
job = saharaclient.job_get(request, job_id) job = saharaclient.job_get(request, job_id)
interface = job.interface or [] interface = job.interface or []
interface_args = {} interface_args = {}
req = request.GET or request.POST
job_ex_id = request.REQUEST.get("job_execution_id") job_ex_id = req.get("job_execution_id")
if job_ex_id is not None: if job_ex_id is not None:
job_ex = saharaclient.job_execution_get(request, job_ex_id) job_ex = saharaclient.job_execution_get(request, job_ex_id)
job = saharaclient.job_get(request, job_ex.job_id) job = saharaclient.job_get(request, job_ex.job_id)
@ -533,8 +535,8 @@ class SelectHadoopPluginAction(t_flows.SelectPluginAction):
self.fields["job_params"] = forms.ChoiceField( self.fields["job_params"] = forms.ChoiceField(
label=_("Job params"), label=_("Job params"),
widget=forms.HiddenInput(attrs={"class": "hidden_create_field"})) widget=forms.HiddenInput(attrs={"class": "hidden_create_field"}))
req = request.GET or request.POST
job_ex_id = request.REQUEST.get("job_execution_id") job_ex_id = req.get("job_execution_id")
if job_ex_id is not None: if job_ex_id is not None:
self.fields["job_execution_id"] = forms.ChoiceField( self.fields["job_execution_id"] = forms.ChoiceField(
label=_("Job Execution ID"), label=_("Job Execution ID"),

View File

@ -41,9 +41,9 @@ def populate_anti_affinity_choices(self, request, context):
for process in processes: for process in processes:
process_choices.append((process, process)) process_choices.append((process, process))
cluster_template_id = request.REQUEST.get("cluster_template_id", None) cluster_template_id = request.GET.get("cluster_template_id", None)
if cluster_template_id is None: if cluster_template_id is None:
selected_processes = request.REQUEST.get("aa_groups", []) selected_processes = request.GET.get("aa_groups", [])
else: else:
cluster_template = ( cluster_template = (
sahara.cluster_templates.get(cluster_template_id)) sahara.cluster_templates.get(cluster_template_id))

View File

@ -202,10 +202,13 @@ def get_security_groups(request, security_group_ids):
def get_plugin_and_hadoop_version(request): def get_plugin_and_hadoop_version(request):
plugin_name = None plugin_name = None
hadoop_version = None hadoop_version = None
if request.REQUEST.get("plugin_name"): # In some cases request contains valuable info in both GET and POST methods
plugin_name = request.REQUEST["plugin_name"] req = request.GET.copy()
hadoop_version = request.REQUEST["hadoop_version"] req.update(request.POST)
return (plugin_name, hadoop_version) if req.get("plugin_name"):
plugin_name = req["plugin_name"]
hadoop_version = req["hadoop_version"]
return plugin_name, hadoop_version
def clean_node_group(node_group): def clean_node_group(node_group):