Update pep8 checks

* set the maximum line length to 100
* cleaned up the codes for pep8
* removed pep8 check ignores

Change-Id: I5d3e2f13117638b0a8af051b9faa64ce1a2dd04e
Signed-off-by: Amir Mofakhar <amofakhar@op5.com>
This commit is contained in:
Amir Mofakhar 2018-04-11 11:41:39 +02:00
parent 78d764718a
commit e609bd46b0
21 changed files with 72 additions and 70 deletions

1
.gitignore vendored
View File

@ -28,3 +28,4 @@ AUTHORS
ChangeLog ChangeLog
tags tags
openstack_dashboard/dummydb.sqlite openstack_dashboard/dummydb.sqlite
.idea

View File

@ -13,8 +13,8 @@
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import json
from itertools import chain from itertools import chain
import json
from django.template.loader import get_template from django.template.loader import get_template
from django.utils.translation import ugettext as _ # noqa from django.utils.translation import ugettext as _ # noqa
@ -23,8 +23,8 @@ from horizon import exceptions
from horizon import forms from horizon import forms
from horizon import messages from horizon import messages
from monitoring import api
from monitoring.alarmdefs import constants from monitoring.alarmdefs import constants
from monitoring import api
def _get_metrics(request): def _get_metrics(request):
@ -228,7 +228,8 @@ class EditAlarmForm(forms.SelfHandlingForm):
notifications = [] notifications = []
exceptions.handle(request, exceptions.handle(request,
_('Unable to retrieve notifications: %s') % e) _('Unable to retrieve notifications: %s') % e)
notification_choices = [(notification['id'], notification) for notification in notifications] notification_choices = [
(notification['id'], notification) for notification in notifications]
self.fields['notifications'].choices = notification_choices self.fields['notifications'].choices = notification_choices

View File

@ -100,7 +100,7 @@ class AlarmsTable(tables.DataTable):
def get_object_display(self, obj): def get_object_display(self, obj):
return obj['name'] return obj['name']
class Meta: class Meta(object):
name = "alarms" name = "alarms"
verbose_name = _("Alarm Definitions") verbose_name = _("Alarm Definitions")
row_actions = (EditAlarm, row_actions = (EditAlarm,

View File

@ -14,12 +14,12 @@
# under the License. # under the License.
from django.core import urlresolvers from django.core import urlresolvers
from mock import patch, call # noqa from mock import patch
from monitoring.test import helpers
from monitoring.alarmdefs import constants from monitoring.alarmdefs import constants
from monitoring.alarmdefs import views from monitoring.alarmdefs import views
from monitoring.alarmdefs import workflows from monitoring.alarmdefs import workflows
from monitoring.test import helpers
INDEX_URL = urlresolvers.reverse( INDEX_URL = urlresolvers.reverse(

View File

@ -15,10 +15,12 @@
import logging import logging
from django.contrib import messages from django.contrib import messages
from django.core.paginator import Paginator, EmptyPage from django.core.paginator import EmptyPage
from django.core.urlresolvers import reverse_lazy, reverse # noqa from django.core.paginator import Paginator
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse_lazy
from django.utils.translation import ugettext as _ # noqa from django.utils.translation import ugettext as _ # noqa
from django.views.generic import TemplateView # noqa from django.views.generic import TemplateView
import six import six
from horizon import exceptions from horizon import exceptions

View File

@ -13,16 +13,16 @@
# under the License. # under the License.
from django.utils.translation import ugettext_lazy as _ # noqa from django.utils.translation import ugettext_lazy as _ # noqa
from django.views.decorators.debug import sensitive_variables # noqa from django.views.decorators.debug import sensitive_variables
from horizon import exceptions from horizon import exceptions
from horizon import forms from horizon import forms
from horizon import workflows
from horizon.utils import memoized from horizon.utils import memoized
from horizon import workflows
from monitoring import api
from monitoring.alarmdefs import constants from monitoring.alarmdefs import constants
from monitoring.alarmdefs import forms as ad_forms from monitoring.alarmdefs import forms as ad_forms
from monitoring import api
class SetAlarmNotificationsAction(workflows.Action): class SetAlarmNotificationsAction(workflows.Action):

View File

@ -25,8 +25,8 @@ from horizon import exceptions
from horizon import forms from horizon import forms
from horizon import messages from horizon import messages
from monitoring import api
from monitoring.alarms import constants from monitoring.alarms import constants
from monitoring import api
class ExpressionWidget(forms.Widget): class ExpressionWidget(forms.Widget):

View File

@ -24,9 +24,9 @@ from django.utils.translation import ungettext_lazy
from horizon import tables from horizon import tables
from monitoring.alarms import constants from monitoring.alarms import constants
from monitoring import api
from monitoring.config import local_settings from monitoring.config import local_settings
from monitoring.overview import constants as ov_constants from monitoring.overview import constants as ov_constants
from monitoring import api
STATUS = ["OK", "WARNING", "CRITICAL", "UNKNOWN"] STATUS = ["OK", "WARNING", "CRITICAL", "UNKNOWN"]
@ -254,7 +254,7 @@ class AlarmsTable(tables.DataTable):
def get_object_display(self, obj): def get_object_display(self, obj):
return obj['id'] return obj['id']
class Meta: class Meta(object):
name = "alarms" name = "alarms"
verbose_name = _("Alarms") verbose_name = _("Alarms")
row_actions = (GraphMetric, row_actions = (GraphMetric,
@ -285,6 +285,6 @@ class AlarmHistoryTable(tables.DataTable):
def get_object_id(self, obj): def get_object_id(self, obj):
return obj['alarm_id'] + obj['timestamp'] return obj['alarm_id'] + obj['timestamp']
class Meta: class Meta(object):
name = "history" name = "history"
verbose_name = _("Alarm History") verbose_name = _("Alarm History")

View File

@ -11,11 +11,11 @@
# under the License. # under the License.
from django.core import urlresolvers from django.core import urlresolvers
from mock import patch, call # noqa from mock import patch
from monitoring.test import helpers
from monitoring.alarms import constants from monitoring.alarms import constants
from monitoring.alarms import tables from monitoring.alarms import tables
from monitoring.test import helpers
INDEX_URL = urlresolvers.reverse( INDEX_URL = urlresolvers.reverse(
@ -56,7 +56,7 @@ class AlarmsTest(helpers.TestCase):
def test_metric_conversion_multiple(self): def test_metric_conversion_multiple(self):
res = tables.show_metric_names({"metrics": [{"name": "mem.used_bytes"}, res = tables.show_metric_names({"metrics": [{"name": "mem.used_bytes"},
{"name": "mem.total_bytes"}]}) {"name": "mem.total_bytes"}]})
table_res = res.split(', ') table_res = res.split(', ')
self.assertEqual(len(table_res), 2) self.assertEqual(len(table_res), 2)
self.assertTrue("mem.used_bytes" in table_res) self.assertTrue("mem.used_bytes" in table_res)
@ -64,5 +64,5 @@ class AlarmsTest(helpers.TestCase):
def test_metric_conversion_unique(self): def test_metric_conversion_unique(self):
res = tables.show_metric_names({"metrics": [{"name": "mem.used_bytes"}, res = tables.show_metric_names({"metrics": [{"name": "mem.used_bytes"},
{"name": "mem.used_bytes"}]}) {"name": "mem.used_bytes"}]})
self.assertEqual(res, "mem.used_bytes") self.assertEqual(res, "mem.used_bytes")

View File

@ -16,15 +16,17 @@ import base64
from datetime import timedelta from datetime import timedelta
import logging import logging
from django.conf import settings # noqa from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.core.paginator import Paginator, EmptyPage from django.core.paginator import EmptyPage
from django.core.urlresolvers import reverse_lazy, reverse # noqa from django.core.paginator import Paginator
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse_lazy
from django.shortcuts import redirect from django.shortcuts import redirect
from django.utils.dateparse import parse_datetime from django.utils.dateparse import parse_datetime
from django.utils.translation import ugettext as _ # noqa from django.utils.translation import ugettext as _ # noqa
from django.utils.translation import ugettext_lazy from django.utils.translation import ugettext_lazy
from django.views.generic import View # noqa from django.views.generic import View
import six import six
from horizon import exceptions from horizon import exceptions
@ -297,10 +299,7 @@ class AlarmHistoryView(tables.DataTableView):
page_offset = 0 page_offset = 0
limit = utils.get_page_size(self.request) limit = utils.get_page_size(self.request)
try: try:
results = api.monitor.alarm_history(self.request, results = api.monitor.alarm_history(self.request, object_id, page_offset, limit)
object_id,
page_offset,
limit)
paginator = Paginator(results, limit) paginator = Paginator(results, limit)
contacts = paginator.page(1) contacts = paginator.page(1)
except EmptyPage: except EmptyPage:

View File

@ -53,9 +53,11 @@ def _get_endpoint(request):
def _get_auth_params_from_request(request): def _get_auth_params_from_request(request):
"""Extracts the properties from the request object needed by the monascaclient """Extracts the properties from the request object needed by the monascaclient call below.
call below. These will be used to memoize the calls to monascaclient
These will be used to memoize the calls to monascaclient
""" """
LOG.debug('Extracting intel from request') LOG.debug('Extracting intel from request')
return ( return (
request.user.user_domain_id, request.user.user_domain_id,

View File

@ -43,13 +43,13 @@ def alarm_list_by_dimension(request, dimensions, offset=0, limit=10000,
dim_dict[item] = None dim_dict[item] = None
if metric: if metric:
result = client.monascaclient(request).alarms.list(offset=offset, result = client.monascaclient(request).alarms.list(offset=offset,
limit=limit, limit=limit,
metric_dimensions=dim_dict, metric_dimensions=dim_dict,
metric_name=metric) metric_name=metric)
else: else:
result = client.monascaclient(request).alarms.list(offset=offset, result = client.monascaclient(request).alarms.list(offset=offset,
limit=limit, limit=limit,
metric_dimensions=dim_dict) metric_dimensions=dim_dict)
return result['elements'] if type(result) is dict else result return result['elements'] if type(result) is dict else result
@ -67,8 +67,8 @@ def alarm_delete(request, alarm_id):
@profiler.trace @profiler.trace
def alarm_history(request, alarm_id, offset=0, limit=10000): def alarm_history(request, alarm_id, offset=0, limit=10000):
result = client.monascaclient(request).alarms.history(alarm_id=alarm_id, result = client.monascaclient(request).alarms.history(alarm_id=alarm_id,
offset=offset, offset=offset,
limit=limit) limit=limit)
return result['elements'] if type(result) is dict else result return result['elements'] if type(result) is dict else result

View File

@ -72,6 +72,7 @@ class BaseNotificationMethodForm(forms.SelfHandlingForm):
def clean_period(self): def clean_period(self):
'''Check to make sure period is zero unless type is WEBHOOK. '''Check to make sure period is zero unless type is WEBHOOK.
For WEBHOOK period must be set to 0 or 60. For WEBHOOK period must be set to 0 or 60.
''' '''
data = self.cleaned_data data = self.cleaned_data
@ -85,8 +86,8 @@ class BaseNotificationMethodForm(forms.SelfHandlingForm):
return data['period'] return data['period']
def clean_address(self): def clean_address(self):
'''Check to make sure address is the correct format depending on the '''Check to make sure address is the correct format depending on the type of notification.
type of notification.
''' '''
data = self.cleaned_data data = self.cleaned_data
if data['type'] == constants.NotificationType.EMAIL: if data['type'] == constants.NotificationType.EMAIL:

View File

@ -105,7 +105,7 @@ class NotificationsTable(tables.DataTable):
def get_object_display(self, obj): def get_object_display(self, obj):
return obj['name'] return obj['name']
class Meta: class Meta(object):
name = "notifications" name = "notifications"
verbose_name = _("Notifications") verbose_name = _("Notifications")
row_actions = (EditNotification, DeleteNotification, ) row_actions = (EditNotification, DeleteNotification, )

View File

@ -11,10 +11,10 @@
# under the License. # under the License.
from django.core import urlresolvers from django.core import urlresolvers
from mock import patch, call # noqa from mock import patch
from monitoring.test import helpers
from monitoring.notifications import constants from monitoring.notifications import constants
from monitoring.test import helpers
INDEX_URL = urlresolvers.reverse( INDEX_URL = urlresolvers.reverse(

View File

@ -13,8 +13,10 @@
# under the License. # under the License.
from django.contrib import messages from django.contrib import messages
from django.core.paginator import Paginator, EmptyPage from django.core.paginator import EmptyPage
from django.core.urlresolvers import reverse_lazy, reverse # noqa from django.core.paginator import Paginator
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse_lazy
from django.utils.translation import ugettext as _ # noqa from django.utils.translation import ugettext as _ # noqa
from horizon import exceptions from horizon import exceptions
@ -22,10 +24,10 @@ from horizon import forms
from horizon import tables from horizon import tables
from horizon.utils import functions as utils from horizon.utils import functions as utils
from monitoring import api
from monitoring.notifications import constants from monitoring.notifications import constants
from monitoring.notifications import forms as notification_forms from monitoring.notifications import forms as notification_forms
from monitoring.notifications import tables as notification_tables from monitoring.notifications import tables as notification_tables
from monitoring import api
from openstack_dashboard import policy from openstack_dashboard import policy

View File

@ -14,11 +14,10 @@
from django.core import urlresolvers from django.core import urlresolvers
from django.test import RequestFactory from django.test import RequestFactory
from mock import patch, call # noqa
from monitoring.test import helpers
from monitoring.overview import constants from monitoring.overview import constants
from monitoring.overview import views from monitoring.overview import views
from monitoring.test import helpers
INDEX_URL = urlresolvers.reverse( INDEX_URL = urlresolvers.reverse(
@ -49,7 +48,7 @@ class KibanaProxyViewTest(helpers.TestCase):
'/', data={'a': 1, 'b': 2} '/', data={'a': 1, 'b': 2}
) )
expected_path = ('/elasticsearch/.kibana/search' expected_path = ('/elasticsearch/.kibana/search'
'/New-Saved-Search%E3%81%82') '/New-Saved-Search%E3%81%82')
expected_qs = {'a': ['1'], 'b': ['2']} expected_qs = {'a': ['1'], 'b': ['2']}
url = self.view.get_relative_url( url = self.view.get_relative_url(

View File

@ -11,10 +11,10 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
from django.conf.urls import url # noqa from django.conf.urls import url
from monitoring.overview import views
from monitoring.config import local_settings as settings from monitoring.config import local_settings as settings
from monitoring.overview import views
urlpatterns = [ urlpatterns = [

View File

@ -17,14 +17,14 @@ import copy
import json import json
import logging import logging
from django import http
from django.contrib import messages from django.contrib import messages
from django.core.urlresolvers import reverse_lazy from django.core.urlresolvers import reverse_lazy
from django.http import HttpResponse # noqa from django import http
from django.http import HttpResponse
from django.utils.translation import ugettext_lazy as _ # noqa from django.utils.translation import ugettext_lazy as _ # noqa
from django.views import generic
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from django.views.generic import TemplateView # noqa from django.views import generic
from django.views.generic import TemplateView
from openstack_auth import utils as auth_utils from openstack_auth import utils as auth_utils
from openstack_dashboard import policy from openstack_dashboard import policy
import six import six
@ -32,8 +32,8 @@ from six.moves import urllib
from horizon import exceptions from horizon import exceptions
from monitoring import api
from monitoring.alarms import tables as alarm_tables from monitoring.alarms import tables as alarm_tables
from monitoring import api
from monitoring.config import local_settings as settings from monitoring.config import local_settings as settings
from monitoring.overview import constants from monitoring.overview import constants
@ -244,7 +244,8 @@ class IndexView(TemplateView):
for link in context["dashboards"]: for link in context["dashboards"]:
link['raw'] = link.get('raw', False) link['raw'] = link.get('raw', False)
context['can_access_logs'] = policy.check( context['can_access_logs'] = policy.check(
((getattr(settings, 'KIBANA_POLICY_SCOPE'), getattr(settings, 'KIBANA_POLICY_RULE')), ), self.request ((getattr(settings, 'KIBANA_POLICY_SCOPE'), getattr(settings, 'KIBANA_POLICY_RULE')), ),
self.request
) )
context['enable_kibana_button'] = settings.ENABLE_KIBANA_BUTTON context['enable_kibana_button'] = settings.ENABLE_KIBANA_BUTTON
context['show_grafana_home'] = settings.SHOW_GRAFANA_HOME context['show_grafana_home'] = settings.SHOW_GRAFANA_HOME
@ -255,7 +256,9 @@ class MonascaProxyView(TemplateView):
template_name = "" template_name = ""
def _convert_dimensions(self, req_kwargs): def _convert_dimensions(self, req_kwargs):
"""this method converts the dimension string """Converts the dimension string service:monitoring into a dict
This method converts the dimension string
service:monitoring (requested by a query string arg) service:monitoring (requested by a query string arg)
into a python dict that looks like into a python dict that looks like
{"service": "monitoring"} (used by monasca api calls) {"service": "monitoring"} (used by monasca api calls)
@ -310,7 +313,7 @@ class MonascaProxyView(TemplateView):
**req_kwargs)} **req_kwargs)}
if not results: if not results:
LOG.warning("There was a request made for the path %s that" LOG.warning("There was a request made for the path %s that"
" is not supported." % restpath) " is not supported." % restpath)
results = {} results = {}
return HttpResponse(json.dumps(results), return HttpResponse(json.dumps(results),
content_type='application/json') content_type='application/json')
@ -418,5 +421,6 @@ class KibanaProxyView(generic.View):
def _can_access_kibana(self): def _can_access_kibana(self):
return policy.check( return policy.check(
((getattr(settings, 'KIBANA_POLICY_SCOPE'), getattr(settings, 'KIBANA_POLICY_RULE')), ), self.request ((getattr(settings, 'KIBANA_POLICY_SCOPE'), getattr(settings, 'KIBANA_POLICY_RULE')), ),
self.request
) )

View File

@ -22,10 +22,10 @@ from mock import patch
from monascaclient import client as mon_client from monascaclient import client as mon_client
from monascaclient import v2_0 from monascaclient import v2_0
from monitoring.test import helpers
from monitoring.api.client import _get_auth_params_from_request from monitoring.api.client import _get_auth_params_from_request
from monitoring.api.client import _get_to_verify from monitoring.api.client import _get_to_verify
from monitoring.api.client import monascaclient as api_mon_client from monitoring.api.client import monascaclient as api_mon_client
from monitoring.test import helpers
def _mock_url_for(request, service_name): def _mock_url_for(request, service_name):

11
tox.ini
View File

@ -37,18 +37,9 @@ commands = {posargs}
commands = /bin/bash run_tests.sh -N --coverage {posargs} commands = /bin/bash run_tests.sh -N --coverage {posargs}
[flake8] [flake8]
max-line-length = 100
builtins = _ builtins = _
exclude = .venv,.git,.tox,dist,*lib/python*,*egg,build,panel_template,dash_template,local_settings.py,*/local/*,*/test/test_plugins/* exclude = .venv,.git,.tox,dist,*lib/python*,*egg,build,panel_template,dash_template,local_settings.py,*/local/*,*/test/test_plugins/*
# E127 continuation line over-indented for visual indent
# E128 continuation line under-indented for visual indent
# E501 line too long
# H102 Apache 2.0 license header not found
# H238 old style class declaration, use new style
# H301 one import per line
# H306 imports not in alphabetical order
# H405 multi line docstring summary not separated with an empty line
# H904 Wrap long lines in parentheses instead of a backslash
ignore = E127,E128,E501,H102,H238,H301,H306,H405,H904
[testenv:lower-constraints] [testenv:lower-constraints]
deps = deps =