Enable E128 check for line indentation
E127/E128 checks helps us to keep code more readable, so these rules should be allowed, when pep8 runs. Enabled check E128 - continuation line under-indented for visual indent. Change-Id: Ic17a7ba47d555183ff26a5dc5f6ec27c0461725a
This commit is contained in:
parent
772aafbce6
commit
e85b19e619
3
tox.ini
3
tox.ini
@ -32,10 +32,9 @@ downloadcache = ~/cache/pip
|
||||
[flake8]
|
||||
builtins = _
|
||||
exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,panel_template,dash_template,local_settings.py
|
||||
# E128 continuation line under-indented for visual indent
|
||||
# F403 'from <smth> import *' used; unable to detect undefined names
|
||||
# F999 syntax error in doctest
|
||||
# H4xx docstrings
|
||||
# H701 empty localization string
|
||||
# H702 Formatting operation should be outside of localization method call
|
||||
ignore = E128,F403,F999,H4,H701,H702
|
||||
ignore = F403,F999,H4,H701,H702
|
||||
|
@ -47,11 +47,13 @@ def tuskarclient(request):
|
||||
|
||||
def baremetalclient(request):
|
||||
def create_remote_nova_client_baremetal():
|
||||
nc = nova.nova_client.Client(REMOTE_NOVA_BAREMETAL_CREDS['user'],
|
||||
nc = nova.nova_client.Client(
|
||||
REMOTE_NOVA_BAREMETAL_CREDS['user'],
|
||||
REMOTE_NOVA_BAREMETAL_CREDS['password'],
|
||||
REMOTE_NOVA_BAREMETAL_CREDS['tenant'],
|
||||
auth_url=REMOTE_NOVA_BAREMETAL_CREDS['auth_url'],
|
||||
bypass_url=REMOTE_NOVA_BAREMETAL_CREDS['bypass_url'])
|
||||
bypass_url=REMOTE_NOVA_BAREMETAL_CREDS['bypass_url'],
|
||||
)
|
||||
return nc
|
||||
|
||||
def create_nova_client_baremetal():
|
||||
@ -739,8 +741,9 @@ class ResourceClass(StringIdAPIResourceWrapper):
|
||||
def aggregated_alerts(self):
|
||||
# FIXME: for now return only list of racks (particular alerts are not
|
||||
# used)
|
||||
return [rack for rack in self.list_racks if (rack.alerts +
|
||||
rack.aggregated_alerts)]
|
||||
return [rack
|
||||
for rack in self.list_racks
|
||||
if rack.alerts + rack.aggregated_alerts]
|
||||
|
||||
@property
|
||||
def has_provisioned_rack(self):
|
||||
|
@ -17,6 +17,7 @@ from django.conf.urls import defaults
|
||||
from tuskar_ui.infrastructure.overview import views
|
||||
|
||||
|
||||
urlpatterns = defaults.patterns('',
|
||||
urlpatterns = defaults.patterns(
|
||||
'',
|
||||
defaults.url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
)
|
||||
|
@ -36,7 +36,8 @@ class FlavorForm(forms.Form):
|
||||
name = forms.RegexField(label=_("Name"),
|
||||
max_length=25,
|
||||
regex=r'^[\w\.\- ]+$',
|
||||
error_messages={'invalid': _('Name may only '
|
||||
error_messages={'invalid': _(
|
||||
'Name may only '
|
||||
'contain letters, numbers, underscores, '
|
||||
'periods and hyphens.')},
|
||||
widget=forms.TextInput(attrs={
|
||||
|
@ -63,6 +63,7 @@ class FlavorsTests(test.BaseAdminViewTests):
|
||||
args=[resource_class.id, flavor.id])
|
||||
res = self.client.get(url)
|
||||
|
||||
self.assertRedirectsNoFollow(res,
|
||||
self.assertRedirectsNoFollow(
|
||||
res,
|
||||
urlresolvers.reverse('horizon:infrastructure:resource_management:'
|
||||
'index'))
|
||||
|
@ -21,7 +21,8 @@ from tuskar_ui.infrastructure.resource_management.flavors import views
|
||||
VIEW_MOD = 'tuskar_ui.infrastructure.' \
|
||||
'resource_management.flavors.views'
|
||||
|
||||
urlpatterns = defaults.patterns(VIEW_MOD,
|
||||
urlpatterns = defaults.patterns(
|
||||
VIEW_MOD,
|
||||
defaults.url(r'^(?P<flavor_id>[^/]+)/$',
|
||||
views.DetailView.as_view(),
|
||||
name='detail')
|
||||
|
@ -19,27 +19,33 @@ import tuskar_ui.forms
|
||||
|
||||
|
||||
class NodeForm(django.forms.Form):
|
||||
id = django.forms.IntegerField(required=False,
|
||||
id = django.forms.IntegerField(
|
||||
required=False,
|
||||
widget=django.forms.HiddenInput())
|
||||
|
||||
service_host = django.forms.CharField(label=_("Service Host"),
|
||||
service_host = django.forms.CharField(
|
||||
label=_("Service Host"),
|
||||
widget=django.forms.TextInput(attrs={'class': 'input input-mini'}),
|
||||
required=True)
|
||||
mac_address = tuskar_ui.forms.MACField(label=_("MAC Address"),
|
||||
mac_address = tuskar_ui.forms.MACField(
|
||||
label=_("MAC Address"),
|
||||
widget=django.forms.TextInput(attrs={'class': 'input input-mini'}),
|
||||
required=True)
|
||||
|
||||
# Hardware Specifications
|
||||
cpus = django.forms.IntegerField(label=_("CPUs"), required=True,
|
||||
cpus = django.forms.IntegerField(
|
||||
label=_("CPUs"), required=True,
|
||||
min_value=1, widget=tuskar_ui.forms.NumberInput(attrs={
|
||||
'class': 'input number_input_slim',
|
||||
}))
|
||||
memory_mb = django.forms.IntegerField(label=_("Memory"),
|
||||
required=True, min_value=1, widget=tuskar_ui.forms.NumberInput(attrs={
|
||||
memory_mb = django.forms.IntegerField(
|
||||
label=_("Memory"), required=True, min_value=1,
|
||||
widget=tuskar_ui.forms.NumberInput(attrs={
|
||||
'class': 'input number_input_slim',
|
||||
}))
|
||||
local_gb = django.forms.IntegerField(label=_("Local Disk (GB)"),
|
||||
min_value=1, widget=tuskar_ui.forms.NumberInput(attrs={
|
||||
local_gb = django.forms.IntegerField(
|
||||
label=_("Local Disk (GB)"), min_value=1,
|
||||
widget=tuskar_ui.forms.NumberInput(attrs={
|
||||
'class': 'input number_input_slim',
|
||||
}), required=True)
|
||||
|
||||
@ -47,15 +53,19 @@ class NodeForm(django.forms.Form):
|
||||
pm_address = django.forms.GenericIPAddressField(
|
||||
widget=django.forms.TextInput(attrs={'class': 'input input-mini'}),
|
||||
label=_("Power Management IP"), required=False)
|
||||
pm_user = django.forms.CharField(label=_("Power Management User"),
|
||||
pm_user = django.forms.CharField(
|
||||
label=_("Power Management User"),
|
||||
widget=django.forms.TextInput(attrs={'class': 'input input-mini'}),
|
||||
required=False)
|
||||
pm_password = django.forms.CharField(label=_("Power Management Password"),
|
||||
required=False, widget=django.forms.PasswordInput(render_value=False,
|
||||
pm_password = django.forms.CharField(
|
||||
label=_("Power Management Password"),
|
||||
required=False, widget=django.forms.PasswordInput(
|
||||
render_value=False,
|
||||
attrs={'class': 'input input-mini'}))
|
||||
|
||||
# Access
|
||||
terminal_port = django.forms.IntegerField(label=_("Terminal Port"),
|
||||
terminal_port = django.forms.IntegerField(
|
||||
label=_("Terminal Port"),
|
||||
required=False, min_value=0, max_value=1024,
|
||||
widget=tuskar_ui.forms.NumberInput(attrs={
|
||||
'class': 'input number_input_slim',
|
||||
@ -84,5 +94,5 @@ class BaseNodeFormSet(django.forms.formsets.BaseFormSet):
|
||||
values[field][value] = form
|
||||
|
||||
|
||||
NodeFormset = django.forms.formsets.formset_factory(NodeForm, extra=1,
|
||||
can_delete=True, formset=BaseNodeFormSet)
|
||||
NodeFormset = django.forms.formsets.formset_factory(
|
||||
NodeForm, extra=1, can_delete=True, formset=BaseNodeFormSet)
|
||||
|
@ -32,7 +32,8 @@ class OverviewTab(tabs.Tab):
|
||||
running_instances = len(node.running_virtual_machines)
|
||||
except requests.exceptions.ConnectionError:
|
||||
running_instances = _("Unknown")
|
||||
messages.warning(request,
|
||||
messages.warning(
|
||||
request,
|
||||
_("Can't retrieve the running instances from the overcloud."))
|
||||
return {
|
||||
'node': node,
|
||||
|
@ -34,7 +34,8 @@ class NodeViewTests(test.BaseAdminViewTests):
|
||||
self.mox.ReplayAll()
|
||||
|
||||
res = self.client.get(self.unracked_page)
|
||||
self.assertTemplateUsed(res,
|
||||
self.assertTemplateUsed(
|
||||
res,
|
||||
'infrastructure/resource_management/nodes/unracked.html')
|
||||
|
||||
unracked_nodes_table = res.context['unracked_nodes_table'].data
|
||||
@ -86,6 +87,7 @@ class NodeViewTests(test.BaseAdminViewTests):
|
||||
args=[node.id])
|
||||
res = self.client.get(url)
|
||||
|
||||
self.assertRedirectsNoFollow(res,
|
||||
self.assertRedirectsNoFollow(
|
||||
res,
|
||||
urlresolvers.reverse('horizon:infrastructure:resource_management:'
|
||||
'index'))
|
||||
|
@ -21,7 +21,8 @@ NODES = r'^(?P<node_id>[^/]+)/%s$'
|
||||
VIEW_MOD = 'tuskar_ui.infrastructure.resource_management.nodes.views'
|
||||
|
||||
|
||||
urlpatterns = defaults.patterns(VIEW_MOD,
|
||||
urlpatterns = defaults.patterns(
|
||||
VIEW_MOD,
|
||||
defaults.url(NODES % 'detail', views.DetailView.as_view(), name='detail'),
|
||||
defaults.url(r'^unracked/$',
|
||||
views.UnrackedView.as_view(),
|
||||
|
@ -232,8 +232,8 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
rack = self.client.get(url)
|
||||
|
||||
self.assertEqual(rack.status_code, 200)
|
||||
self.assertTemplateUsed(rack,
|
||||
'infrastructure/resource_management/racks/upload.html')
|
||||
self.assertTemplateUsed(
|
||||
rack, 'infrastructure/resource_management/racks/upload.html')
|
||||
|
||||
def test_upload_rack_upload(self):
|
||||
csv_data = ('Rack1,rclass1,192.168.111.0/24,regionX,f0:dd:f1:da:f9:b5 '
|
||||
@ -247,8 +247,8 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
url = urlresolvers.reverse('horizon:infrastructure:'
|
||||
'resource_management:racks:upload')
|
||||
resp = self.client.post(url, data)
|
||||
self.assertTemplateUsed(resp,
|
||||
'infrastructure/resource_management/racks/upload.html')
|
||||
self.assertTemplateUsed(
|
||||
resp, 'infrastructure/resource_management/racks/upload.html')
|
||||
self.assertNoFormErrors(resp)
|
||||
self.assertEqual(resp.context['form']['uploaded_data'].value(),
|
||||
base64.b64encode(csv_data))
|
||||
@ -258,8 +258,8 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
url = urlresolvers.reverse('horizon:infrastructure:'
|
||||
'resource_management:racks:upload')
|
||||
resp = self.client.post(url, data)
|
||||
self.assertTemplateUsed(resp,
|
||||
'infrastructure/resource_management/racks/upload.html')
|
||||
self.assertTemplateUsed(
|
||||
resp, 'infrastructure/resource_management/racks/upload.html')
|
||||
self.assertFormErrors(resp, 1)
|
||||
self.assertEqual(resp.context['form']['uploaded_data'].value(),
|
||||
None)
|
||||
@ -392,7 +392,8 @@ class RackViewTests(test.BaseAdminViewTests):
|
||||
tuskar.Rack.update(mox.IsA(http.HttpRequest), rack.id,
|
||||
{'nodes': [{'id': node_id}
|
||||
for node_id in tuskar.Rack.node_ids
|
||||
if node_id != baremetal_node.id]}).AndReturn(rack)
|
||||
if node_id != baremetal_node.id]}
|
||||
).AndReturn(rack)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
url = urlresolvers.reverse(
|
||||
|
@ -20,7 +20,8 @@ RACKS = r'^(?P<rack_id>[^/]+)/%s$'
|
||||
VIEW_MOD = 'tuskar_ui.infrastructure.resource_management.racks.views'
|
||||
|
||||
|
||||
urlpatterns = urls.patterns(VIEW_MOD,
|
||||
urlpatterns = urls.patterns(
|
||||
VIEW_MOD,
|
||||
urls.url(r'^create/$', views.CreateView.as_view(), name='create'),
|
||||
urls.url(r'^upload/$', views.UploadView.as_view(), name='upload'),
|
||||
urls.url(r'^usage_data$',
|
||||
|
@ -33,7 +33,8 @@ class RackCreateInfoAction(workflows.Action):
|
||||
name = forms.RegexField(label=_("Name"),
|
||||
max_length=25,
|
||||
regex=r'^[\w\.\- ]+$',
|
||||
error_messages={'invalid': _('Name may only '
|
||||
error_messages={'invalid': _(
|
||||
'Name may only '
|
||||
'contain letters, numbers, underscores, '
|
||||
'periods and hyphens.')})
|
||||
location = forms.CharField(label=_("Location"))
|
||||
@ -213,7 +214,8 @@ class CreateRack(workflows.Workflow):
|
||||
node_ids.append({'id': node_id})
|
||||
try:
|
||||
# Then, register the Rack, including the nodes
|
||||
tuskar.Rack.create(request, name=data['name'],
|
||||
tuskar.Rack.create(
|
||||
request, name=data['name'],
|
||||
resource_class_id=data['resource_class_id'],
|
||||
location=data['location'], subnet=data['subnet'],
|
||||
nodes=node_ids)
|
||||
|
@ -70,7 +70,8 @@ class ResourcesClassFilterAction(tables.FilterAction):
|
||||
|
||||
|
||||
class ResourceClassesTable(tables.DataTable):
|
||||
name = tables.Column("name", link=("horizon:infrastructure:"
|
||||
name = tables.Column(
|
||||
"name", link=("horizon:infrastructure:"
|
||||
"resource_management:resource_classes:detail"),
|
||||
verbose_name=_("Class Name"))
|
||||
service_type = tables.Column("service_type", verbose_name=_("Class Type"))
|
||||
|
@ -149,7 +149,8 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
'racks-MAX_NUM_FORMS': 1000,
|
||||
}
|
||||
res = self.client.post(url, form_data)
|
||||
self.assertRedirectsNoFollow(res,
|
||||
self.assertRedirectsNoFollow(
|
||||
res,
|
||||
("%s?tab=resource_management_tabs__resource_classes_tab" %
|
||||
urlresolvers.
|
||||
reverse("horizon:infrastructure:resource_management:index")))
|
||||
@ -354,7 +355,8 @@ class ResourceClassViewTests(test.BaseAdminViewTests):
|
||||
self.assertItemsEqual(res.context['flavors_table_table'].data, flavors)
|
||||
self.assertItemsEqual(res.context['racks_table_table'].data, racks)
|
||||
self.assertEqual(res.status_code, 200)
|
||||
self.assertTemplateUsed(res,
|
||||
self.assertTemplateUsed(
|
||||
res,
|
||||
'infrastructure/resource_management/resource_classes/detail.html')
|
||||
|
||||
@test.create_stubs({
|
||||
|
@ -25,7 +25,8 @@ from tuskar_ui.infrastructure.resource_management import views
|
||||
from tuskar_ui.test import urls as test_urls
|
||||
|
||||
|
||||
urlpatterns = defaults.patterns('',
|
||||
urlpatterns = defaults.patterns(
|
||||
'',
|
||||
defaults.url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
defaults.url(r'^provision$', views.ProvisionView.as_view(),
|
||||
name='provision'),
|
||||
@ -39,5 +40,6 @@ urlpatterns = defaults.patterns('',
|
||||
)
|
||||
|
||||
if conf.settings.DEBUG:
|
||||
urlpatterns += defaults.patterns('', defaults.url(r'^qunit$',
|
||||
urlpatterns += defaults.patterns(
|
||||
'', defaults.url(r'^qunit$',
|
||||
defaults.include(test_urls, namespace='tests')))
|
||||
|
@ -17,6 +17,7 @@ from django.conf.urls import defaults
|
||||
from tuskar_ui.infrastructure.service_management import views
|
||||
|
||||
|
||||
urlpatterns = defaults.patterns('',
|
||||
urlpatterns = defaults.patterns(
|
||||
'',
|
||||
defaults.url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
)
|
||||
|
@ -110,8 +110,8 @@ class FormsetCell(BaseCell):
|
||||
self.field = None
|
||||
else:
|
||||
if self.field.errors:
|
||||
self.attrs['class'] = (self.attrs.get('class', '') +
|
||||
' error control-group')
|
||||
self.attrs['class'] = (
|
||||
'%s error control-group' % self.attrs.get('class', ''))
|
||||
self.attrs['title'] = ' '.join(
|
||||
unicode(error) for error in self.field.errors)
|
||||
|
||||
|
@ -58,7 +58,8 @@ class TuskarApiTests(test.APITestCase):
|
||||
node = self.baremetalclient_nodes.first()
|
||||
|
||||
self.mox.StubOutWithMock(baremetal.BareMetalNodeManager, 'create')
|
||||
baremetal.BareMetalNodeManager.create('node', 1, 1024, 10,
|
||||
baremetal.BareMetalNodeManager.create(
|
||||
'node', 1, 1024, 10,
|
||||
'aa:bb:cc:dd:ee', None, None, '', None).AndReturn(node)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
|
@ -16,6 +16,7 @@ from django.conf.urls import defaults
|
||||
from django.views import generic
|
||||
|
||||
|
||||
urlpatterns = defaults.patterns('', defaults.url(r'^$',
|
||||
urlpatterns = defaults.patterns('', defaults.url(
|
||||
r'^$',
|
||||
generic.TemplateView.as_view(template_name="infrastructure/qunit.html"),
|
||||
name='qunit_tests'))
|
||||
|
Loading…
x
Reference in New Issue
Block a user