09d63aefbc
The ugettext_lazy method and the ungettext_lazy method are both deprecated since Django 3.0[1]. These were already replaced in Horizon repo by [2]. [1] https://docs.djangoproject.com/en/3.0/releases/3.0/#id3 [2] cd7c1b5110fe1f64cd9dfbeb1072b37912d0efee Change-Id: I6697e4c006e7b8ec94a08ad4625a1980582b4d6d
103 lines
3.5 KiB
Python
103 lines
3.5 KiB
Python
# Copyright 2016 - Nokia.
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from horizon import forms
|
|
|
|
from mistraldashboard import api
|
|
from mistraldashboard.handle_errors import handle_errors
|
|
|
|
|
|
class UpdateForm(forms.SelfHandlingForm):
|
|
action_execution_id = forms.CharField(label=_("Action Execution ID"),
|
|
widget=forms.HiddenInput(),
|
|
required=False)
|
|
output_source = forms.ChoiceField(
|
|
label=_('Output'),
|
|
help_text=_('Content for output. '
|
|
'Select either file, raw content or Null value.'),
|
|
choices=[('null', _('<null> (sends empty value)')),
|
|
('file', _('File')),
|
|
('raw', _('Direct Input'))],
|
|
widget=forms.Select(
|
|
attrs={'class': 'switchable',
|
|
'data-slug': 'outputsource'}
|
|
),
|
|
required=False
|
|
)
|
|
output_upload = forms.FileField(
|
|
label=_('Output File'),
|
|
help_text=_('A local output to upload'),
|
|
widget=forms.FileInput(
|
|
attrs={'class': 'switched',
|
|
'data-switch-on': 'outputsource',
|
|
'data-outputsource-file': _('Output File')}
|
|
),
|
|
required=False
|
|
)
|
|
output_data = forms.CharField(
|
|
label=_('Output Data'),
|
|
help_text=_('The raw content for output'),
|
|
widget=forms.widgets.Textarea(
|
|
attrs={'class': 'switched',
|
|
'data-switch-on': 'outputsource',
|
|
'data-outputsource-raw': _('Output Data'),
|
|
'rows': 4}
|
|
),
|
|
required=False
|
|
)
|
|
|
|
state = forms.ChoiceField(
|
|
label=_('State'),
|
|
help_text=_('Select state to update'),
|
|
choices=[('null', _('<null> (sends empty value)')),
|
|
('SUCCESS', _('Success')),
|
|
('ERROR', _('Error'))],
|
|
widget=forms.Select(
|
|
attrs={'class': 'switchable'}
|
|
),
|
|
required=False
|
|
|
|
)
|
|
|
|
def clean(self):
|
|
cleaned_data = super(UpdateForm, self).clean()
|
|
cleaned_data['output'] = None
|
|
|
|
if cleaned_data.get('output_upload'):
|
|
files = self.request.FILES
|
|
cleaned_data['output'] = files['output_upload'].read()
|
|
elif cleaned_data.get('output_data'):
|
|
cleaned_data['output'] = cleaned_data['output_data']
|
|
elif cleaned_data.get('output_source') == 'null':
|
|
cleaned_data['output'] = None
|
|
|
|
del cleaned_data['output_upload']
|
|
del cleaned_data['output_data']
|
|
del cleaned_data['output_source']
|
|
|
|
if cleaned_data['state'] == 'null':
|
|
cleaned_data['state'] = None
|
|
|
|
return cleaned_data
|
|
|
|
@handle_errors(_("Unable to update Action Execution"), [])
|
|
def handle(self, request, data):
|
|
return api.action_execution_update(
|
|
request,
|
|
data['action_execution_id'],
|
|
data['state'],
|
|
data['output'],
|
|
)
|