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

View File

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

View File

@ -185,11 +185,15 @@ class GeneralConfigAction(workflows.Action):
for param in node_parameters:
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(
required=False,
widget=forms.HiddenInput(),
initial=request.REQUEST.get("guide_template_type"))
initial=req.get("guide_template_type"))
try:
volume_types = cinder.volume_type_list(request)

View File

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

View File

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

View File

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

View File

@ -41,9 +41,9 @@ def populate_anti_affinity_choices(self, request, context):
for process in processes:
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:
selected_processes = request.REQUEST.get("aa_groups", [])
selected_processes = request.GET.get("aa_groups", [])
else:
cluster_template = (
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):
plugin_name = None
hadoop_version = None
if request.REQUEST.get("plugin_name"):
plugin_name = request.REQUEST["plugin_name"]
hadoop_version = request.REQUEST["hadoop_version"]
return (plugin_name, hadoop_version)
# In some cases request contains valuable info in both GET and POST methods
req = request.GET.copy()
req.update(request.POST)
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):