From 9242e1f40b6e702639ecdffe198739df76fed7bf Mon Sep 17 00:00:00 2001 From: Lennart Regebro Date: Wed, 1 Oct 2014 11:26:45 +0200 Subject: [PATCH] Updating hacking to 0.9.2 and associated styling fixes Change-Id: Ibda11466db47e040ce3629d4290706488db831ce --- run_tests.sh | 2 +- test-requirements.txt | 2 +- tuskar_ui/api/heat.py | 23 +++++++++---------- tuskar_ui/api/node.py | 13 +++++------ tuskar_ui/api/tuskar.py | 4 ++-- tuskar_ui/cached_property.py | 4 +++- tuskar_ui/exceptions.py | 1 + tuskar_ui/forms.py | 11 +++++---- tuskar_ui/infrastructure/dashboard.py | 1 - tuskar_ui/infrastructure/flavors/panel.py | 1 - tuskar_ui/infrastructure/flavors/tables.py | 5 ++-- tuskar_ui/infrastructure/flavors/tests.py | 10 ++++---- tuskar_ui/infrastructure/flavors/views.py | 1 - tuskar_ui/infrastructure/flavors/workflows.py | 7 +++--- tuskar_ui/infrastructure/history/panel.py | 1 - tuskar_ui/infrastructure/history/tables.py | 1 - tuskar_ui/infrastructure/history/tests.py | 3 +-- tuskar_ui/infrastructure/images/panel.py | 1 - tuskar_ui/infrastructure/images/tables.py | 6 ++--- tuskar_ui/infrastructure/images/tests.py | 3 +-- tuskar_ui/infrastructure/images/views.py | 2 -- tuskar_ui/infrastructure/nodes/forms.py | 3 ++- tuskar_ui/infrastructure/nodes/panel.py | 1 - tuskar_ui/infrastructure/nodes/tables.py | 1 - tuskar_ui/infrastructure/nodes/tabs.py | 2 -- tuskar_ui/infrastructure/nodes/tests.py | 5 ++-- tuskar_ui/infrastructure/nodes/views.py | 1 - tuskar_ui/infrastructure/overview/panel.py | 1 - tuskar_ui/infrastructure/overview/views.py | 4 +++- tuskar_ui/infrastructure/parameters/panel.py | 1 - tuskar_ui/infrastructure/parameters/tables.py | 1 - tuskar_ui/infrastructure/parameters/tests.py | 3 +-- tuskar_ui/infrastructure/parameters/views.py | 2 +- tuskar_ui/infrastructure/roles/panel.py | 1 - tuskar_ui/infrastructure/roles/tables.py | 1 - tuskar_ui/infrastructure/roles/tests.py | 5 ++-- tuskar_ui/infrastructure/roles/views.py | 2 -- tuskar_ui/infrastructure/roles/workflows.py | 3 +-- .../templatetags/chart_helpers.py | 6 ++--- tuskar_ui/test/api_tests/heat_tests.py | 3 +-- tuskar_ui/test/formset_table_tests.py | 2 +- tuskar_ui/test/helpers.py | 16 ++++++++----- tuskar_ui/test/test_data/exceptions.py | 1 + tuskar_ui/test/test_data/flavor_data.py | 3 +-- tuskar_ui/test/test_data/heat_data.py | 3 +-- tuskar_ui/test/test_data/node_data.py | 3 +-- tuskar_ui/test/test_data/tuskar_data.py | 1 + tuskar_ui/test/test_data/utils.py | 1 + tuskar_ui/test/urls.py | 1 - tuskar_ui/utils/metering.py | 12 ++++------ tuskar_ui/workflows.py | 14 +++++++---- 51 files changed, 91 insertions(+), 114 deletions(-) diff --git a/run_tests.sh b/run_tests.sh index e0473746b..a20231446 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -6,7 +6,7 @@ set -o errexit # Increment me any time the environment should be rebuilt. # This includes dependency changes, directory renames, etc. # Simple integer sequence: 1, 2, 3... -environment_version=44 +environment_version=45 #--------------------------------------------------------# function usage { diff --git a/test-requirements.txt b/test-requirements.txt index 42fc78a1b..ec797ff1b 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -2,7 +2,7 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. # Hacking already pins down pep8, pyflakes and flake8 -hacking>=0.8.0,<0.9 +hacking>=0.9.2,<0.10 # Testing Requirements coverage>=3.6 django-nose diff --git a/tuskar_ui/api/heat.py b/tuskar_ui/api/heat.py index 5141a01b2..48b155594 100644 --- a/tuskar_ui/api/heat.py +++ b/tuskar_ui/api/heat.py @@ -15,10 +15,8 @@ import urlparse from django.conf import settings from django.utils.translation import ugettext_lazy as _ - from horizon import exceptions from horizon.utils import memoized - from openstack_dashboard.api import base from openstack_dashboard.api import heat from openstack_dashboard.api import keystone @@ -131,9 +129,9 @@ class Stack(base.APIResourceWrapper): """ # TODO(lsmola) until we have working deployment through Tuskar-API, # this will not work - #for stack in Stack.list(request): - # if stack.plan and (stack.plan.id == plan.id): - # return stack + # for stack in Stack.list(request): + # if stack.plan and (stack.plan.id == plan.id): + # return stack try: stack = Stack.list(request)[0] except IndexError: @@ -149,8 +147,10 @@ class Stack(base.APIResourceWrapper): @memoized.memoized def resources(self, with_joins=True, role=None): - """Return list of OS::Nova::Server Resources associated with the Stack - and which are associated with a Role + """Return list of OS::Nova::Server Resources + + Return list of OS::Nova::Server Resources associated with the Stack + and which are associated with a Role :param with_joins: should we also retrieve objects associated with each retrieved Resource? @@ -228,8 +228,7 @@ class Stack(base.APIResourceWrapper): @cached_property def plan(self): - """return associated Plan if a plan_id exists within stack - parameters. + """return associated Plan if a plan_id exists within stack parameters. :return: associated Plan if plan_id exists and a matching plan exists as well; None otherwise @@ -238,9 +237,9 @@ class Stack(base.APIResourceWrapper): # TODO(lsmola) replace this by actual reference, I am pretty sure # the relation won't be stored in parameters, that would mean putting # that into template, which doesn't make sense - #if 'plan_id' in self.parameters: - # return tuskar.Plan.get(self._request, - # self.parameters['plan_id']) + # if 'plan_id' in self.parameters: + # return tuskar.Plan.get(self._request, + # self.parameters['plan_id']) try: plan = tuskar.Plan.list(self._request)[0] except IndexError: diff --git a/tuskar_ui/api/node.py b/tuskar_ui/api/node.py index 120185a7e..1caa376d4 100644 --- a/tuskar_ui/api/node.py +++ b/tuskar_ui/api/node.py @@ -75,8 +75,7 @@ class IronicNode(base.APIResourceWrapper): memory_mb=None, local_gb=None, mac_addresses=[], ipmi_username=None, ipmi_password=None, ssh_address=None, ssh_username=None, ssh_key_contents=None, driver=None): - """Create a Node in Ironic - """ + """Create a Node in Ironic.""" if driver == 'pxe_ssh': driver_info = { 'ssh_address': ssh_address, @@ -177,7 +176,9 @@ class IronicNode(base.APIResourceWrapper): @classmethod def delete(cls, request, uuid): - """Remove the IronicNode matching the ID if it + """Delete an IronicNode + + Remove the IronicNode matching the ID if it exists; otherwise, does nothing. :param request: request object @@ -275,8 +276,7 @@ class BareMetalNode(base.APIResourceWrapper): local_gb, mac_addresses, ipmi_username=None, ipmi_password=None, ssh_address=None, ssh_username=None, ssh_key_contents=None, driver=None): - """Create a Nova BareMetalNode - """ + """Create a Nova BareMetalNode.""" node = baremetalclient(request).create( service_host='undercloud', cpus=cpus, @@ -402,8 +402,7 @@ class BareMetalNode(base.APIResourceWrapper): @cached_property def driver(self): - """Return driver for this BareMetalNode - """ + """Return driver for this BareMetalNode.""" return "IPMI + PXE" @cached_property diff --git a/tuskar_ui/api/tuskar.py b/tuskar_ui/api/tuskar.py index 1a99ed972..b41802c47 100644 --- a/tuskar_ui/api/tuskar.py +++ b/tuskar_ui/api/tuskar.py @@ -21,6 +21,7 @@ from openstack_dashboard.api import base from openstack_dashboard.api import glance from openstack_dashboard.api import neutron from os_cloud_config import keystone_pki + from tuskarclient import client as tuskar_client from tuskar_ui.api import flavor @@ -387,8 +388,7 @@ class Role(base.APIResourceWrapper): @classmethod @handle_errors(_("Unable to retrieve overcloud role")) def get_by_image(cls, request, plan, image): - """Return the Tuskar Role whose ImageID - parameter matches the passed in image + """Return the Role whose ImageID parameter matches the image. :param request: request object :type request: django.http.HttpRequest diff --git a/tuskar_ui/cached_property.py b/tuskar_ui/cached_property.py index d9674fbf8..7e3704412 100644 --- a/tuskar_ui/cached_property.py +++ b/tuskar_ui/cached_property.py @@ -47,7 +47,9 @@ # So we have a copy of it here, with the bug fixed. # FIXME: Use django's version when the bug is fixed there. class cached_property(object): - """Decorator that creates converts a method with a single self argument + """Cached property decorator. + + Decorator that creates converts a method with a single self argument into a property cached on the instance. """ diff --git a/tuskar_ui/exceptions.py b/tuskar_ui/exceptions.py index c733264c0..1d0856489 100644 --- a/tuskar_ui/exceptions.py +++ b/tuskar_ui/exceptions.py @@ -12,6 +12,7 @@ # under the License. from openstack_dashboard import exceptions + from tuskarclient.openstack.common.apiclient import exceptions as tuskarclient NOT_FOUND = exceptions.NOT_FOUND diff --git a/tuskar_ui/forms.py b/tuskar_ui/forms.py index 4d2e2596f..33f296af1 100644 --- a/tuskar_ui/forms.py +++ b/tuskar_ui/forms.py @@ -16,7 +16,6 @@ import re from django import forms from django.utils import html from django.utils.translation import ugettext_lazy as _ - import netaddr @@ -119,10 +118,12 @@ class SelfHandlingFormset(forms.formsets.BaseFormSet): class LabelWidget(forms.Widget): - """This is a custom widget to show context information just as text, - as readonly inputs are confusing. - Note that the field also must be required=False, as no input - is rendered, and it must be ignored in the handle() method. + """A widget for displaying information. + + This is a custom widget to show context information just as text, + as readonly inputs are confusing. + Note that the field also must be required=False, as no input + is rendered, and it must be ignored in the handle() method. """ def render(self, name, value, attrs=None): if value: diff --git a/tuskar_ui/infrastructure/dashboard.py b/tuskar_ui/infrastructure/dashboard.py index acac4a89d..ce233bdc4 100644 --- a/tuskar_ui/infrastructure/dashboard.py +++ b/tuskar_ui/infrastructure/dashboard.py @@ -12,7 +12,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - import horizon diff --git a/tuskar_ui/infrastructure/flavors/panel.py b/tuskar_ui/infrastructure/flavors/panel.py index 88c39f9b3..2129b292e 100644 --- a/tuskar_ui/infrastructure/flavors/panel.py +++ b/tuskar_ui/infrastructure/flavors/panel.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - import horizon from tuskar_ui.infrastructure import dashboard diff --git a/tuskar_ui/infrastructure/flavors/tables.py b/tuskar_ui/infrastructure/flavors/tables.py index 6eb412b67..ebabfaf57 100644 --- a/tuskar_ui/infrastructure/flavors/tables.py +++ b/tuskar_ui/infrastructure/flavors/tables.py @@ -14,9 +14,8 @@ from django.utils.translation import ugettext_lazy as _ from horizon import tables - -from openstack_dashboard.dashboards.admin.flavors \ - import tables as flavor_tables +from openstack_dashboard.dashboards.admin.flavors import ( + tables as flavor_tables) from tuskar_ui import api diff --git a/tuskar_ui/infrastructure/flavors/tests.py b/tuskar_ui/infrastructure/flavors/tests.py index bb9d3767e..a0c5fc2a6 100644 --- a/tuskar_ui/infrastructure/flavors/tests.py +++ b/tuskar_ui/infrastructure/flavors/tests.py @@ -15,13 +15,11 @@ import contextlib from django.core import urlresolvers - -from mock import patch, call # noqa - -from novaclient.v1_1 import servers - from horizon import exceptions +from mock import patch, call # noqa +from novaclient.v1_1 import servers from openstack_dashboard.test.test_data import utils + from tuskar_ui import api from tuskar_ui.test import helpers as test from tuskar_ui.test.test_data import flavor_data @@ -110,7 +108,7 @@ class FlavorsTest(test.BaseAdminViewTests): self.client.get(CREATE_URL) # FIXME(tzumainn): I expected the following to work, seems similar # to comment on test_index_recoverable_failure - #self.assertMessageCount(error=1, warning=0) + # self.assertMessageCount(error=1, warning=0) def test_create_post_ok(self): images = TEST_DATA.glanceclient_images.list() diff --git a/tuskar_ui/infrastructure/flavors/views.py b/tuskar_ui/infrastructure/flavors/views.py index 6c113b00e..410e354dc 100644 --- a/tuskar_ui/infrastructure/flavors/views.py +++ b/tuskar_ui/infrastructure/flavors/views.py @@ -14,7 +14,6 @@ from django.core.urlresolvers import reverse_lazy from django.utils.translation import ugettext_lazy as _ - import horizon.exceptions import horizon.tables import horizon.tabs diff --git a/tuskar_ui/infrastructure/flavors/workflows.py b/tuskar_ui/infrastructure/flavors/workflows.py index fa93d32af..a9f8a9e29 100644 --- a/tuskar_ui/infrastructure/flavors/workflows.py +++ b/tuskar_ui/infrastructure/flavors/workflows.py @@ -14,13 +14,12 @@ from django.forms import fields from django.utils.translation import ugettext_lazy as _ - from horizon import exceptions from horizon import workflows - from openstack_dashboard.api import glance -from openstack_dashboard.dashboards.admin.flavors \ - import workflows as flavor_workflows +from openstack_dashboard.dashboards.admin.flavors import ( + workflows as flavor_workflows) + from tuskar_ui import api diff --git a/tuskar_ui/infrastructure/history/panel.py b/tuskar_ui/infrastructure/history/panel.py index 4a1d1591f..0f29c3722 100644 --- a/tuskar_ui/infrastructure/history/panel.py +++ b/tuskar_ui/infrastructure/history/panel.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - import horizon from tuskar_ui.infrastructure import dashboard diff --git a/tuskar_ui/infrastructure/history/tables.py b/tuskar_ui/infrastructure/history/tables.py index 16b15e5bb..3d17dc415 100644 --- a/tuskar_ui/infrastructure/history/tables.py +++ b/tuskar_ui/infrastructure/history/tables.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - from horizon import tables diff --git a/tuskar_ui/infrastructure/history/tests.py b/tuskar_ui/infrastructure/history/tests.py index 8baee73b1..7a687ef2f 100644 --- a/tuskar_ui/infrastructure/history/tests.py +++ b/tuskar_ui/infrastructure/history/tests.py @@ -15,10 +15,9 @@ import contextlib from django.core import urlresolvers - from mock import patch, call # noqa - from openstack_dashboard.test.test_data import utils + from tuskar_ui import api from tuskar_ui.test import helpers as test from tuskar_ui.test.test_data import heat_data diff --git a/tuskar_ui/infrastructure/images/panel.py b/tuskar_ui/infrastructure/images/panel.py index a897d14f5..3bb728c4f 100644 --- a/tuskar_ui/infrastructure/images/panel.py +++ b/tuskar_ui/infrastructure/images/panel.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - import horizon from tuskar_ui.infrastructure import dashboard diff --git a/tuskar_ui/infrastructure/images/tables.py b/tuskar_ui/infrastructure/images/tables.py index 4d95f8ae6..95d1a2f17 100644 --- a/tuskar_ui/infrastructure/images/tables.py +++ b/tuskar_ui/infrastructure/images/tables.py @@ -13,12 +13,10 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - from horizon import tables - from openstack_dashboard import api -from openstack_dashboard.dashboards.project.images.images \ - import tables as project_tables +from openstack_dashboard.dashboards.project.images.images import ( + tables as project_tables) class CreateImage(project_tables.CreateImage): diff --git a/tuskar_ui/infrastructure/images/tests.py b/tuskar_ui/infrastructure/images/tests.py index cf573ae0e..bb037e36c 100644 --- a/tuskar_ui/infrastructure/images/tests.py +++ b/tuskar_ui/infrastructure/images/tests.py @@ -14,11 +14,10 @@ import contextlib import json + import mock from mock import patch, call # noqa - from django.core import urlresolvers - from openstack_dashboard.dashboards.project.images.images import forms from tuskar_ui import api diff --git a/tuskar_ui/infrastructure/images/views.py b/tuskar_ui/infrastructure/images/views.py index bed054871..a06753e2c 100644 --- a/tuskar_ui/infrastructure/images/views.py +++ b/tuskar_ui/infrastructure/images/views.py @@ -16,11 +16,9 @@ import logging from django.core.urlresolvers import reverse_lazy from django.utils.translation import ugettext_lazy as _ - from horizon import exceptions from horizon import tables as horizon_tables from horizon.utils import memoized - from openstack_dashboard import api from openstack_dashboard.dashboards.admin.images import views as admin_views from openstack_dashboard.dashboards.project.images.images import views diff --git a/tuskar_ui/infrastructure/nodes/forms.py b/tuskar_ui/infrastructure/nodes/forms.py index c0f15a872..758a95432 100644 --- a/tuskar_ui/infrastructure/nodes/forms.py +++ b/tuskar_ui/infrastructure/nodes/forms.py @@ -13,11 +13,12 @@ # under the License. import csv + import django.forms from django.utils.translation import ugettext_lazy as _ - from horizon import exceptions from horizon import forms + from tuskar_ui import api import tuskar_ui.forms diff --git a/tuskar_ui/infrastructure/nodes/panel.py b/tuskar_ui/infrastructure/nodes/panel.py index 18e3d39bf..124ec3d31 100644 --- a/tuskar_ui/infrastructure/nodes/panel.py +++ b/tuskar_ui/infrastructure/nodes/panel.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - import horizon from tuskar_ui.infrastructure import dashboard diff --git a/tuskar_ui/infrastructure/nodes/tables.py b/tuskar_ui/infrastructure/nodes/tables.py index e524ff9d1..b98005639 100644 --- a/tuskar_ui/infrastructure/nodes/tables.py +++ b/tuskar_ui/infrastructure/nodes/tables.py @@ -14,7 +14,6 @@ from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ - from horizon import tables from tuskar_ui import api diff --git a/tuskar_ui/infrastructure/nodes/tabs.py b/tuskar_ui/infrastructure/nodes/tabs.py index 42a28772b..159026f2c 100644 --- a/tuskar_ui/infrastructure/nodes/tabs.py +++ b/tuskar_ui/infrastructure/nodes/tabs.py @@ -14,10 +14,8 @@ from django.core import urlresolvers from django.utils.translation import ugettext_lazy as _ - from horizon import exceptions from horizon import tabs - from openstack_dashboard.api import base as api_base from tuskar_ui import api diff --git a/tuskar_ui/infrastructure/nodes/tests.py b/tuskar_ui/infrastructure/nodes/tests.py index 73e389957..aff4f5f2b 100644 --- a/tuskar_ui/infrastructure/nodes/tests.py +++ b/tuskar_ui/infrastructure/nodes/tests.py @@ -16,12 +16,11 @@ import contextlib import json from django.core import urlresolvers - -from mock import patch, call # noqa - from horizon import exceptions as horizon_exceptions +from mock import patch, call # noqa from openstack_dashboard.test import helpers from openstack_dashboard.test.test_data import utils + from tuskar_ui import api from tuskar_ui.handle_errors import handle_errors # noqa from tuskar_ui.test import helpers as test diff --git a/tuskar_ui/infrastructure/nodes/views.py b/tuskar_ui/infrastructure/nodes/views.py index ae19bf323..6f80da87c 100644 --- a/tuskar_ui/infrastructure/nodes/views.py +++ b/tuskar_ui/infrastructure/nodes/views.py @@ -17,7 +17,6 @@ from django.core.urlresolvers import reverse_lazy from django import http from django.utils.translation import ugettext_lazy as _ from django.views.generic import base - from horizon import forms as horizon_forms from horizon import tabs as horizon_tabs from horizon.utils import memoized diff --git a/tuskar_ui/infrastructure/overview/panel.py b/tuskar_ui/infrastructure/overview/panel.py index fb5e303f2..535cd13b7 100644 --- a/tuskar_ui/infrastructure/overview/panel.py +++ b/tuskar_ui/infrastructure/overview/panel.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - import horizon from tuskar_ui.infrastructure import dashboard diff --git a/tuskar_ui/infrastructure/overview/views.py b/tuskar_ui/infrastructure/overview/views.py index 4113be8ef..6b04d3207 100644 --- a/tuskar_ui/infrastructure/overview/views.py +++ b/tuskar_ui/infrastructure/overview/views.py @@ -25,7 +25,9 @@ INDEX_URL = 'horizon:infrastructure:overview:index' def _get_role_data(plan, stack, form, role): - """Gathers data about a single deployment role from the related Overcloud + """Gathers data about a single deployment role. + + Gathers data about a single deployment role from the related Overcloud and Role objects, and presents it in the form convenient for use from the template. diff --git a/tuskar_ui/infrastructure/parameters/panel.py b/tuskar_ui/infrastructure/parameters/panel.py index 1e5d42e91..3c085ae04 100644 --- a/tuskar_ui/infrastructure/parameters/panel.py +++ b/tuskar_ui/infrastructure/parameters/panel.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - import horizon from tuskar_ui.infrastructure import dashboard diff --git a/tuskar_ui/infrastructure/parameters/tables.py b/tuskar_ui/infrastructure/parameters/tables.py index 49a5d4625..dc1160f37 100644 --- a/tuskar_ui/infrastructure/parameters/tables.py +++ b/tuskar_ui/infrastructure/parameters/tables.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - from horizon import tables diff --git a/tuskar_ui/infrastructure/parameters/tests.py b/tuskar_ui/infrastructure/parameters/tests.py index e914d1471..b8b537e37 100644 --- a/tuskar_ui/infrastructure/parameters/tests.py +++ b/tuskar_ui/infrastructure/parameters/tests.py @@ -19,6 +19,7 @@ from mock import patch, call # noqa from openstack_dashboard.test.test_data import utils from tuskar_ui import api +from tuskar_ui.infrastructure.parameters import views from tuskar_ui.test import helpers as test from tuskar_ui.test.test_data import tuskar_data @@ -31,8 +32,6 @@ SERVICE_CONFIG_URL = urlresolvers.reverse( TEST_DATA = utils.TestDataContainer() tuskar_data.data(TEST_DATA) -from tuskar_ui.infrastructure.parameters import views - class ParametersTest(test.BaseAdminViewTests): diff --git a/tuskar_ui/infrastructure/parameters/views.py b/tuskar_ui/infrastructure/parameters/views.py index 97ec029c4..8ee044c7e 100644 --- a/tuskar_ui/infrastructure/parameters/views.py +++ b/tuskar_ui/infrastructure/parameters/views.py @@ -41,7 +41,7 @@ class ServiceConfigView(horizon.forms.ModalFormView): virt_type = plan.parameter_value( compute_prefix + 'NovaComputeLibvirtType') - #TODO(tzumainn): what if compute and control values are different... + # TODO(tzumainn): what if compute and control values are different... snmp_password = plan.parameter_value( compute_prefix + 'SnmpdReadonlyUserPassword') diff --git a/tuskar_ui/infrastructure/roles/panel.py b/tuskar_ui/infrastructure/roles/panel.py index 9fc98f096..3a2041f63 100644 --- a/tuskar_ui/infrastructure/roles/panel.py +++ b/tuskar_ui/infrastructure/roles/panel.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - import horizon from tuskar_ui.infrastructure import dashboard diff --git a/tuskar_ui/infrastructure/roles/tables.py b/tuskar_ui/infrastructure/roles/tables.py index 46ad20993..5d506160c 100644 --- a/tuskar_ui/infrastructure/roles/tables.py +++ b/tuskar_ui/infrastructure/roles/tables.py @@ -13,7 +13,6 @@ # under the License. from django.utils.translation import ugettext_lazy as _ - from horizon import tables from tuskar_ui import api diff --git a/tuskar_ui/infrastructure/roles/tests.py b/tuskar_ui/infrastructure/roles/tests.py index 278835978..1a2640690 100644 --- a/tuskar_ui/infrastructure/roles/tests.py +++ b/tuskar_ui/infrastructure/roles/tests.py @@ -13,11 +13,10 @@ # under the License. import contextlib + from django.core import urlresolvers - -from mock import patch, call # noqa - from openstack_dashboard.test.test_data import utils +from mock import patch, call # noqa from tuskar_ui import api from tuskar_ui.test import helpers as test diff --git a/tuskar_ui/infrastructure/roles/views.py b/tuskar_ui/infrastructure/roles/views.py index e3cc90841..4324677f3 100644 --- a/tuskar_ui/infrastructure/roles/views.py +++ b/tuskar_ui/infrastructure/roles/views.py @@ -18,13 +18,11 @@ from django.core.urlresolvers import reverse_lazy from django import http from django.utils.translation import ugettext_lazy as _ from django.views.generic import base - from glanceclient import exc as glance_exc from horizon import exceptions as horizon_exceptions from horizon import tables as horizon_tables from horizon import utils from horizon import workflows - from openstack_dashboard.api import base as api_base from tuskar_ui import api diff --git a/tuskar_ui/infrastructure/roles/workflows.py b/tuskar_ui/infrastructure/roles/workflows.py index 028d897e0..7b1101c11 100644 --- a/tuskar_ui/infrastructure/roles/workflows.py +++ b/tuskar_ui/infrastructure/roles/workflows.py @@ -13,12 +13,11 @@ # under the License. from django.core.urlresolvers import reverse_lazy from django.utils.translation import ugettext_lazy as _ - from horizon import exceptions from horizon import forms from horizon import workflows - from openstack_dashboard.api import glance + from tuskar_ui import api from tuskar_ui import forms as tuskar_forms from tuskar_ui.infrastructure.flavors import utils diff --git a/tuskar_ui/infrastructure/templatetags/chart_helpers.py b/tuskar_ui/infrastructure/templatetags/chart_helpers.py index 9766ab605..2a3e0e205 100644 --- a/tuskar_ui/infrastructure/templatetags/chart_helpers.py +++ b/tuskar_ui/infrastructure/templatetags/chart_helpers.py @@ -45,9 +45,9 @@ def all_used_instances(obj): info['popup_used'] = ( '

{0}% total,' ' {1} instances of {2}

'.format( - flavor.used_instances, - flavor.used_instances, - flavor.name)) + flavor.used_instances, + flavor.used_instances, + flavor.name)) info['used_instances'] = str(flavor.used_instances) all_used_instances_info.append(info) diff --git a/tuskar_ui/test/api_tests/heat_tests.py b/tuskar_ui/test/api_tests/heat_tests.py index a77125071..2f9cf6f6b 100644 --- a/tuskar_ui/test/api_tests/heat_tests.py +++ b/tuskar_ui/test/api_tests/heat_tests.py @@ -14,10 +14,9 @@ from __future__ import absolute_import from django.utils import unittest +from heatclient.v1 import events import mock from mock import patch # noqa - -from heatclient.v1 import events from novaclient.v1_1 import servers from tuskar_ui import api diff --git a/tuskar_ui/test/formset_table_tests.py b/tuskar_ui/test/formset_table_tests.py index 63127662b..6e9ea103b 100644 --- a/tuskar_ui/test/formset_table_tests.py +++ b/tuskar_ui/test/formset_table_tests.py @@ -12,8 +12,8 @@ # under the License. import django.forms - from horizon import tables + import tuskar_ui.tables from tuskar_ui.test import helpers as test diff --git a/tuskar_ui/test/helpers.py b/tuskar_ui/test/helpers.py index 002a42853..4fc4c0ba4 100644 --- a/tuskar_ui/test/helpers.py +++ b/tuskar_ui/test/helpers.py @@ -16,8 +16,8 @@ import warnings from django.core.handlers import wsgi from django.utils import unittest - from openstack_dashboard.test import helpers as openstack_dashboard_helpers + from tuskar_ui.test.test_data import utils as test_data_utils @@ -37,8 +37,9 @@ def create_stubs(stubs_to_create={}): @unittest.skipIf(os.environ.get('SKIP_UNITTESTS', False), "The SKIP_UNITTESTS env variable is set.") class TestCase(openstack_dashboard_helpers.TestCase): - """Specialized base test case class for Horizon which gives access to - numerous additional features: + """Specialized base test case class for Horizon. + + TestCase gives access to numerous additional features: * A full suite of test data through various attached objects and managers (e.g. ``self.servers``, ``self.user``, etc.). See the @@ -69,8 +70,9 @@ class TestCase(openstack_dashboard_helpers.TestCase): class BaseAdminViewTests(openstack_dashboard_helpers.BaseAdminViewTests): - """A ``TestCase`` subclass which sets an active user with the "admin" role - for testing admin-only views and functionality. + """A ``TestCase`` subclass which sets an active user with the "admin" role. + + This is for testing admin-only views and functionality. """ def setUp(self): super(BaseAdminViewTests, self).setUp() @@ -80,7 +82,9 @@ class BaseAdminViewTests(openstack_dashboard_helpers.BaseAdminViewTests): class APITestCase(openstack_dashboard_helpers.APITestCase): - """The ``APITestCase`` class is for use with tests which deal with the + """TestCase for testing API clients. + + The ``APITestCase`` class is for use with tests which deal with the underlying clients rather than stubbing out the openstack_dashboard.api.* methods. """ diff --git a/tuskar_ui/test/test_data/exceptions.py b/tuskar_ui/test/test_data/exceptions.py index 2b56032ad..480189cf3 100644 --- a/tuskar_ui/test/test_data/exceptions.py +++ b/tuskar_ui/test/test_data/exceptions.py @@ -12,6 +12,7 @@ # under the License. from openstack_dashboard.test.test_data import exceptions + from tuskarclient.openstack.common.apiclient import exceptions as tuskarclient diff --git a/tuskar_ui/test/test_data/flavor_data.py b/tuskar_ui/test/test_data/flavor_data.py index 59b4a0678..506450dbb 100644 --- a/tuskar_ui/test/test_data/flavor_data.py +++ b/tuskar_ui/test/test_data/flavor_data.py @@ -10,9 +10,8 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack_dashboard.test.test_data import utils as test_data_utils - from novaclient.v1_1 import flavors +from openstack_dashboard.test.test_data import utils as test_data_utils def data(TEST): diff --git a/tuskar_ui/test/test_data/heat_data.py b/tuskar_ui/test/test_data/heat_data.py index bcd53488f..c4147e87c 100644 --- a/tuskar_ui/test/test_data/heat_data.py +++ b/tuskar_ui/test/test_data/heat_data.py @@ -10,13 +10,12 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack_dashboard.test.test_data import utils as test_data_utils - from glanceclient.v1 import images from heatclient.v1 import events from heatclient.v1 import resources from heatclient.v1 import stacks from novaclient.v1_1 import servers +from openstack_dashboard.test.test_data import utils as test_data_utils def data(TEST): diff --git a/tuskar_ui/test/test_data/node_data.py b/tuskar_ui/test/test_data/node_data.py index ef2c80791..bb36a83f4 100644 --- a/tuskar_ui/test/test_data/node_data.py +++ b/tuskar_ui/test/test_data/node_data.py @@ -10,11 +10,10 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack_dashboard.test.test_data import utils as test_data_utils - from ironicclient.v1 import node from ironicclient.v1 import port from novaclient.v1_1.contrib import baremetal +from openstack_dashboard.test.test_data import utils as test_data_utils def data(TEST): diff --git a/tuskar_ui/test/test_data/tuskar_data.py b/tuskar_ui/test/test_data/tuskar_data.py index 5055ad528..eb33138f6 100644 --- a/tuskar_ui/test/test_data/tuskar_data.py +++ b/tuskar_ui/test/test_data/tuskar_data.py @@ -11,6 +11,7 @@ # under the License. from openstack_dashboard.test.test_data import utils as test_data_utils + from tuskarclient.v2 import plans from tuskarclient.v2 import roles diff --git a/tuskar_ui/test/test_data/utils.py b/tuskar_ui/test/test_data/utils.py index 267242580..ef61ed0d6 100644 --- a/tuskar_ui/test/test_data/utils.py +++ b/tuskar_ui/test/test_data/utils.py @@ -22,6 +22,7 @@ def load_test_data(load_onto=None): from openstack_dashboard.test.test_data import neutron_data from openstack_dashboard.test.test_data import nova_data from openstack_dashboard.test.test_data import swift_data + from tuskar_ui.test.test_data import exceptions from tuskar_ui.test.test_data import flavor_data from tuskar_ui.test.test_data import heat_data as tuskar_heat_data diff --git a/tuskar_ui/test/urls.py b/tuskar_ui/test/urls.py index 4e6e290f7..8f09bbfb3 100644 --- a/tuskar_ui/test/urls.py +++ b/tuskar_ui/test/urls.py @@ -13,7 +13,6 @@ from django.conf import urls from django.views import generic - import openstack_dashboard.urls urlpatterns = urls.patterns( diff --git a/tuskar_ui/utils/metering.py b/tuskar_ui/utils/metering.py index a766ebe7e..981c93327 100644 --- a/tuskar_ui/utils/metering.py +++ b/tuskar_ui/utils/metering.py @@ -12,16 +12,13 @@ # License for the specific language governing permissions and limitations # under the License. import copy - from datetime import datetime # noqa from datetime import timedelta # noqa from django.utils.http import urlencode from django.utils import timezone from django.utils.translation import ugettext_lazy as _ - from horizon import exceptions - from openstack_dashboard.api import ceilometer SETTINGS = { @@ -68,7 +65,7 @@ LABELS = { } -#TODO(lsmola) this should probably live in Horizon common +# TODO(lsmola) this should probably live in Horizon common def query_data(request, date_from, date_to, @@ -117,7 +114,7 @@ def query_data(request, return resources, unit -#TODO(lsmola) push this function to Horizon common then delete this +# TODO(lsmola) push this function to Horizon common then delete this def _calc_period(date_from, date_to, number_of_samples=400): if date_from and date_to: if date_to < date_from: @@ -136,7 +133,7 @@ def _calc_period(date_from, date_to, number_of_samples=400): return period -#TODO(lsmola) push this function to Horizon common then delete this +# TODO(lsmola) push this function to Horizon common then delete this def _calc_date_args(date_from, date_to, date_options): # TODO(lsmola) all timestamps should probably work with # current timezone. And also show the current timezone in chart. @@ -198,8 +195,7 @@ def get_barchart_stats(series, unit): '%(first_date)s, to: %(last_date)s') % ( dict(average=average, unit=unit, first_date=first_date, - last_date=last_date) - ) + last_date=last_date)) return average, used, tooltip_average diff --git a/tuskar_ui/workflows.py b/tuskar_ui/workflows.py index b11490c87..90e3ea692 100644 --- a/tuskar_ui/workflows.py +++ b/tuskar_ui/workflows.py @@ -15,7 +15,6 @@ import logging from django import template from django.utils import datastructures - import horizon.workflows @@ -29,7 +28,9 @@ class WorkflowView(horizon.workflows.WorkflowView): # FIXME: TableStep class TableStep(horizon.workflows.Step): - """A :class:`~horizon.workflows.Step` class which knows how to deal with + """A Step class with DataTables. + + A :class:`~horizon.workflows.Step` class which knows how to deal with :class:`~horizon.tables.DataTable` classes rendered inside of it. This distinct class is required due to the complexity involved in handling @@ -63,6 +64,7 @@ class TableStep(horizon.workflows.Step): def prepare_action_context(self, request, context): """Passes the tables to the action for validation and data extraction. + """ self.load_table_data() context['_tables'] = self._tables @@ -82,7 +84,9 @@ class TableStep(horizon.workflows.Step): return step_template.render(context) def load_table_data(self): - """Calls the ``get_{{ table_name }}_data`` methods for each table class + """Sets table data. + + Calls the ``get_{{ table_name }}_data`` methods for each table class and sets the data on the tables. """ # We only want the data to be loaded once, so we track if we have... @@ -102,7 +106,9 @@ class TableStep(horizon.workflows.Step): self._table_data_loaded = True def get_context_data(self, request): - """Adds a ``{{ table_name }}_table`` item to the context for each table + """Gets the table contexct data. + + Adds a ``{{ table_name }}_table`` item to the context for each table in the :attr:`~horizon.tabs.TableTab.table_classes` attribute. If only one table class is provided, a shortcut ``table`` context