Remove unused LOG
In some files, we import logging and define LOG, but we never used it later, so i remove those unused LOG and make horizon code clean. Fixed: bug #1231761 Change-Id: I1ebf0098c647e7522f5f1a93cfece7a52bdc05c1
This commit is contained in:
parent
ffdf190825
commit
d33f294ba9
@ -21,14 +21,9 @@
|
||||
Context processors used by Horizon.
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
from django.conf import settings # noqa
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def openstack(request):
|
||||
""" Context processor necessary for OpenStack Dashboard functionality.
|
||||
|
||||
|
@ -14,16 +14,11 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class QuotaFilterAction(tables.FilterAction):
|
||||
def filter(self, table, tenants, filter_string):
|
||||
q = filter_string.lower()
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import tabs
|
||||
@ -27,9 +25,6 @@ from openstack_dashboard.dashboards.admin.defaults import workflows as \
|
||||
from openstack_dashboard.usage import quotas
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tabs.TabbedTableView):
|
||||
tab_group_class = project_tabs.DefaultsTabs
|
||||
template_name = 'admin/defaults/index.html'
|
||||
|
@ -18,8 +18,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from openstack_dashboard import api
|
||||
@ -28,8 +26,6 @@ from horizon import exceptions
|
||||
from horizon import forms
|
||||
from horizon import messages
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateExtraSpec(forms.SelfHandlingForm):
|
||||
key = forms.CharField(max_length="25", label=_("Key"))
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -24,9 +22,6 @@ from horizon import tables
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ExtraSpecDelete(tables.DeleteAction):
|
||||
data_type_singular = _("ExtraSpec")
|
||||
data_type_plural = _("ExtraSpecs")
|
||||
|
@ -18,8 +18,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import exceptions
|
||||
@ -34,9 +32,6 @@ from openstack_dashboard.dashboards.admin.flavors.extras \
|
||||
import tables as project_tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ExtraSpecMixin(object):
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(ExtraSpecMixin, self).get_context_data(**kwargs)
|
||||
|
@ -18,8 +18,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.template import defaultfilters as filters
|
||||
from django.utils.http import urlencode # noqa
|
||||
@ -30,9 +28,6 @@ from horizon import tables
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DeleteFlavor(tables.DeleteAction):
|
||||
data_type_singular = _("Flavor")
|
||||
data_type_plural = _("Flavors")
|
||||
|
@ -18,8 +18,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -35,8 +33,6 @@ from openstack_dashboard.dashboards.admin.flavors \
|
||||
import workflows as flavor_workflows
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
INDEX_URL = "horizon:admin:flavors:index"
|
||||
|
||||
|
||||
|
@ -14,15 +14,11 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import tables
|
||||
from horizon.templatetags import sizeformat
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_memory(hypervisor):
|
||||
return sizeformat.mbformat(hypervisor.memory_mb)
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import exceptions
|
||||
@ -24,8 +22,6 @@ from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.admin.hypervisors \
|
||||
import tables as project_tables
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AdminIndexView(tables.DataTableView):
|
||||
table_class = project_tables.AdminHypervisorsTable
|
||||
|
@ -18,8 +18,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -35,9 +33,6 @@ from openstack_dashboard.dashboards.admin.images \
|
||||
import tables as project_tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tables.DataTableView):
|
||||
table_class = project_tables.AdminImagesTable
|
||||
template_name = 'admin/images/index.html'
|
||||
|
@ -1,5 +1,3 @@
|
||||
import logging
|
||||
|
||||
from django import template
|
||||
from django.template import defaultfilters as filters
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -8,9 +6,6 @@ from horizon import tables
|
||||
from horizon.utils import filters as utils_filters
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ServiceFilterAction(tables.FilterAction):
|
||||
def filter(self, table, services, filter_string):
|
||||
q = filter_string.lower()
|
||||
|
@ -18,16 +18,11 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from horizon import tabs
|
||||
|
||||
from openstack_dashboard.dashboards.admin.info import tabs as project_tabs
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tabs.TabbedTableView):
|
||||
tab_group_class = project_tabs.SystemInfoTabs
|
||||
template_name = 'admin/info/index.html'
|
||||
|
@ -15,8 +15,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.template.defaultfilters import timesince # noqa
|
||||
from django.template.defaultfilters import title # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -28,8 +26,6 @@ from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.project.instances \
|
||||
import tables as project_tables
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AdminEditInstance(project_tables.EditInstance):
|
||||
url = "horizon:admin:instances:update"
|
||||
|
@ -19,8 +19,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.datastructures import SortedDict # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -34,8 +32,6 @@ from openstack_dashboard.dashboards.project.instances import views
|
||||
from openstack_dashboard.dashboards.project.instances.workflows \
|
||||
import update_instance
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
# re-use console from project.instances.views to make reflection work
|
||||
def console(args, **kvargs):
|
||||
|
@ -12,8 +12,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.template.defaultfilters import filesizeformat # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -22,9 +20,6 @@ from horizon import tables
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CommonFilterAction(tables.FilterAction):
|
||||
def filter(self, table, resources, filter_string):
|
||||
q = filter_string.lower()
|
||||
|
@ -16,7 +16,6 @@ from datetime import datetime # noqa
|
||||
from datetime import timedelta # noqa
|
||||
|
||||
import json
|
||||
import logging
|
||||
|
||||
from django.http import HttpResponse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -31,8 +30,6 @@ from openstack_dashboard.api import ceilometer
|
||||
from openstack_dashboard.dashboards.admin.metering import tabs as \
|
||||
metering_tabs
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tabs.TabbedTableView):
|
||||
tab_group_class = metering_tabs.CeilometerOverviewTabs
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -25,9 +23,6 @@ from horizon import tabs
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class OverviewTab(tabs.Tab):
|
||||
name = _("Overview")
|
||||
slug = "overview"
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -29,8 +27,6 @@ from openstack_dashboard.dashboards.project.networks.ports \
|
||||
from openstack_dashboard.dashboards.admin.networks.ports \
|
||||
import forms as project_forms
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateView(forms.ModalFormView):
|
||||
form_class = project_forms.CreatePort
|
||||
|
@ -14,17 +14,12 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from openstack_dashboard.dashboards.project.networks.subnets \
|
||||
import views as project_views
|
||||
|
||||
from openstack_dashboard.dashboards.admin.networks.subnets import workflows
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateView(project_views.CreateView):
|
||||
workflow_class = workflows.CreateSubnet
|
||||
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django.utils.datastructures import SortedDict # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -37,9 +35,6 @@ from openstack_dashboard.dashboards.admin.networks \
|
||||
import tables as networks_tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tables.DataTableView):
|
||||
table_class = networks_tables.NetworksTable
|
||||
template_name = 'admin/networks/index.html'
|
||||
|
@ -1,5 +1,3 @@
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.http import urlencode # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -9,8 +7,6 @@ from horizon import tables
|
||||
from openstack_dashboard import api
|
||||
from openstack_dashboard.api import keystone
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ViewMembersLink(tables.LinkAction):
|
||||
name = "users"
|
||||
|
@ -18,8 +18,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -37,7 +35,6 @@ from openstack_dashboard.dashboards.admin.projects \
|
||||
from openstack_dashboard.dashboards.admin.projects \
|
||||
import workflows as project_workflows
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
PROJECT_INFO_FIELDS = ("domain_id",
|
||||
"domain_name",
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import tables
|
||||
@ -23,9 +21,6 @@ from horizon import tables
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateRoleLink(tables.LinkAction):
|
||||
name = "create"
|
||||
verbose_name = _("Create Role")
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import tables
|
||||
@ -25,9 +23,6 @@ from openstack_dashboard.dashboards.project.routers.ports \
|
||||
import tables as routers_tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class PortsTable(tables.DataTable):
|
||||
name = tables.Column("name",
|
||||
verbose_name=_("Name"),
|
||||
|
@ -13,13 +13,10 @@
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
import logging
|
||||
|
||||
from horizon import tabs
|
||||
from openstack_dashboard.dashboards.project.routers.ports import tabs as r_tabs
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class OverviewTab(r_tabs.OverviewTab):
|
||||
template_name = "admin/networks/ports/_detail_overview.html"
|
||||
|
@ -14,17 +14,12 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from horizon import tabs
|
||||
|
||||
from openstack_dashboard.dashboards.admin.routers.ports \
|
||||
import tabs as project_tabs
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DetailView(tabs.TabView):
|
||||
tab_group_class = project_tabs.PortDetailTabs
|
||||
template_name = 'admin/networks/ports/detail.html'
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.template.defaultfilters import title # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -24,9 +22,6 @@ from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.project.routers import tables as r_tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DeleteRouter(r_tables.DeleteRouter):
|
||||
redirect_url = "horizon:admin:routers:index"
|
||||
|
||||
|
@ -18,8 +18,6 @@
|
||||
Views for managing Neutron Routers.
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -33,9 +31,6 @@ from openstack_dashboard.dashboards.admin.routers.ports \
|
||||
from openstack_dashboard.dashboards.admin.routers import tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(r_views.IndexView, n_views.IndexView):
|
||||
table_class = tables.RoutersTable
|
||||
template_name = 'admin/routers/index.html'
|
||||
|
@ -1,5 +1,3 @@
|
||||
import logging
|
||||
|
||||
from django.template import defaultfilters
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -8,7 +6,6 @@ from horizon import tables
|
||||
|
||||
from openstack_dashboard import api
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
ENABLE = 0
|
||||
DISABLE = 1
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import tables
|
||||
@ -23,9 +21,6 @@ from horizon import tables
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DeleteKeyPairs(tables.DeleteAction):
|
||||
data_type_singular = _("Keypair")
|
||||
data_type_plural = _("Keypairs")
|
||||
|
@ -21,8 +21,6 @@
|
||||
"""
|
||||
Views for managing keypairs.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django import http
|
||||
@ -40,9 +38,6 @@ from openstack_dashboard.dashboards.project.access_and_security.keypairs \
|
||||
import forms as project_forms
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateView(forms.ModalFormView):
|
||||
form_class = project_forms.CreateKeypair
|
||||
template_name = 'project/access_and_security/keypairs/create.html'
|
||||
|
@ -18,8 +18,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
import netaddr
|
||||
|
||||
from django.conf import settings # noqa
|
||||
@ -38,9 +36,6 @@ from openstack_dashboard import api
|
||||
from openstack_dashboard.utils import filters
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateGroup(forms.SelfHandlingForm):
|
||||
name = forms.CharField(label=_("Name"),
|
||||
error_messages={
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.conf import settings # noqa
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -26,9 +24,6 @@ from openstack_dashboard import api
|
||||
from openstack_dashboard.utils import filters
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DeleteGroup(tables.DeleteAction):
|
||||
data_type_singular = _("Security Group")
|
||||
data_type_plural = _("Security Groups")
|
||||
|
@ -21,8 +21,6 @@
|
||||
"""
|
||||
Views for managing instances.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -40,9 +38,6 @@ from openstack_dashboard.dashboards.project.access_and_security.\
|
||||
security_groups import tables as project_tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DetailView(tables.DataTableView):
|
||||
table_class = project_tables.RulesTable
|
||||
template_name = 'project/access_and_security/security_groups/detail.html'
|
||||
|
@ -18,8 +18,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.core import validators
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -32,9 +30,6 @@ from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.project.containers import tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
no_slash_validator = validators.RegexValidator(r'^(?u)[^/]+$',
|
||||
_("Slash is not an allowed "
|
||||
"character."),
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.template.defaultfilters import filesizeformat # noqa
|
||||
from django.utils import http
|
||||
@ -27,9 +25,6 @@ from openstack_dashboard import api
|
||||
from openstack_dashboard.api import swift
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def wrap_delimiter(name):
|
||||
if name and not name.endswith(swift.FOLDER_DELIMITER):
|
||||
return name + swift.FOLDER_DELIMITER
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.template.defaultfilters import title # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -26,8 +24,6 @@ from horizon.utils import filters
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
STATUS_CHOICES = (
|
||||
("BUILDING", None),
|
||||
("COMPLETED", True),
|
||||
|
@ -17,8 +17,6 @@
|
||||
"""
|
||||
Views for displaying database backups.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -32,8 +30,6 @@ from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.project.database_backups import tables
|
||||
from openstack_dashboard.dashboards.project.database_backups import workflows
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(horizon_tables.DataTableView):
|
||||
table_class = tables.BackupsTable
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core import urlresolvers
|
||||
from django.template.defaultfilters import title # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -30,8 +28,6 @@ from openstack_dashboard.dashboards.project.database_backups \
|
||||
import tables as backup_tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
ACTIVE_STATES = ("ACTIVE",)
|
||||
|
||||
|
||||
|
@ -15,17 +15,12 @@
|
||||
#
|
||||
# @author: KC Wang, Big Switch Networks
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AddRuleLink(tables.LinkAction):
|
||||
name = "addrule"
|
||||
verbose_name = _("Add Rule")
|
||||
|
@ -15,7 +15,6 @@
|
||||
#
|
||||
# @author: KC Wang, Big Switch Networks
|
||||
|
||||
import logging
|
||||
import re
|
||||
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
@ -50,8 +49,6 @@ AddFirewall = fw_workflows.AddFirewall
|
||||
AddPolicy = fw_workflows.AddPolicy
|
||||
AddRule = fw_workflows.AddRule
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tabs.TabView):
|
||||
tab_group_class = (FirewallTabs)
|
||||
|
@ -15,8 +15,6 @@
|
||||
#
|
||||
# @author: KC Wang, Big Switch Networks
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import exceptions
|
||||
@ -29,8 +27,6 @@ from openstack_dashboard import api
|
||||
|
||||
port_validator = validators.validate_port_or_colon_separated_port_range
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AddRuleAction(workflows.Action):
|
||||
name = forms.CharField(
|
||||
|
@ -21,9 +21,6 @@
|
||||
"""
|
||||
Views for managing images.
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
from django.conf import settings # noqa
|
||||
from django.forms import ValidationError # noqa
|
||||
from django.forms.widgets import HiddenInput # noqa
|
||||
@ -40,9 +37,6 @@ IMAGE_BACKEND_SETTINGS = getattr(settings, 'OPENSTACK_IMAGE_BACKEND', {})
|
||||
IMAGE_FORMAT_CHOICES = IMAGE_BACKEND_SETTINGS.get('image_formats', [])
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateImageForm(forms.SelfHandlingForm):
|
||||
name = forms.CharField(max_length="255", label=_("Name"), required=True)
|
||||
description = forms.CharField(widget=forms.widgets.Textarea(),
|
||||
|
@ -15,7 +15,6 @@
|
||||
# under the License.
|
||||
|
||||
from collections import defaultdict # noqa
|
||||
import logging
|
||||
|
||||
from django.conf import settings # noqa
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
@ -29,9 +28,6 @@ from horizon.utils.memoized import memoized # noqa
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class LaunchImage(tables.LinkAction):
|
||||
name = "launch_image"
|
||||
verbose_name = _("Launch")
|
||||
|
@ -21,9 +21,6 @@
|
||||
"""
|
||||
Views for managing images.
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -40,9 +37,6 @@ from openstack_dashboard.dashboards.project.images_and_snapshots.images \
|
||||
import tabs as project_tabs
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateView(forms.ModalFormView):
|
||||
form_class = project_forms.CreateImageForm
|
||||
template_name = 'project/images_and_snapshots/images/create.html'
|
||||
|
@ -18,8 +18,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -30,9 +28,6 @@ from horizon import messages
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateSnapshot(forms.SelfHandlingForm):
|
||||
instance_id = forms.CharField(label=_("Instance ID"),
|
||||
widget=forms.HiddenInput(),
|
||||
|
@ -21,9 +21,6 @@
|
||||
"""
|
||||
Views for managing instance snapshots.
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -37,9 +34,6 @@ from openstack_dashboard.dashboards.project.images_and_snapshots.snapshots \
|
||||
import forms as project_forms
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateView(forms.ModalFormView):
|
||||
form_class = project_forms.CreateSnapshot
|
||||
template_name = 'project/images_and_snapshots/snapshots/create.html'
|
||||
|
@ -22,9 +22,6 @@
|
||||
"""
|
||||
Views for managing Images and Snapshots.
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import exceptions
|
||||
@ -41,8 +38,6 @@ from openstack_dashboard.dashboards.project.images_and_snapshots.\
|
||||
from openstack_dashboard.dashboards.project.images_and_snapshots.\
|
||||
volume_snapshots import tabs as vol_snsh_tabs
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tables.MultiTableView):
|
||||
table_classes = (images_tables.ImagesTable,
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.http import urlencode # noqa
|
||||
from django.utils import safestring
|
||||
@ -30,9 +28,6 @@ from openstack_dashboard.dashboards.project.volumes \
|
||||
import tables as volume_tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DeleteVolumeSnapshot(tables.DeleteAction):
|
||||
data_type_singular = _("Volume Snapshot")
|
||||
data_type_plural = _("Volume Snapshots")
|
||||
|
@ -21,8 +21,6 @@
|
||||
"""
|
||||
Views for managing instances.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django import http
|
||||
@ -47,9 +45,6 @@ from openstack_dashboard.dashboards.project.instances \
|
||||
import workflows as project_workflows
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tables.DataTableView):
|
||||
table_class = project_tables.InstancesTable
|
||||
template_name = 'project/instances/index.html'
|
||||
|
@ -16,7 +16,6 @@
|
||||
|
||||
|
||||
import json
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
from django.views.decorators.debug import sensitive_variables # noqa
|
||||
@ -28,9 +27,6 @@ from horizon import workflows
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SetFlavorChoiceAction(workflows.Action):
|
||||
old_flavor_id = forms.CharField(required=False, widget=forms.HiddenInput())
|
||||
old_flavor_name = forms.CharField(label=_("Old Flavor"),
|
||||
|
@ -25,11 +25,6 @@ from horizon import tables
|
||||
|
||||
from openstack_dashboard import api
|
||||
|
||||
import logging
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AddPoolLink(tables.LinkAction):
|
||||
name = "addpool"
|
||||
|
@ -23,8 +23,6 @@ from horizon import messages
|
||||
from horizon import tabs
|
||||
from horizon import workflows
|
||||
|
||||
import logging
|
||||
|
||||
from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.project.loadbalancers \
|
||||
import forms as project_forms
|
||||
@ -35,8 +33,6 @@ from openstack_dashboard.dashboards.project.loadbalancers \
|
||||
|
||||
import re
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tabs.TabView):
|
||||
tab_group_class = (project_tabs.LoadBalancerTabs)
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import exceptions
|
||||
@ -27,9 +25,6 @@ from horizon import workflows
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AddPoolAction(workflows.Action):
|
||||
name = forms.CharField(max_length=80, label=_("Name"))
|
||||
description = forms.CharField(
|
||||
|
@ -18,8 +18,6 @@ from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
from openstack_dashboard.dashboards.project.routers import\
|
||||
tables as r_tables
|
||||
|
||||
#LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DeleteRouter(r_tables.DeleteRouter):
|
||||
redirect_url = "horizon:project:network_topology:router"
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django import template
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -23,9 +21,6 @@ from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
from horizon import tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_fixed_ips(port):
|
||||
template_name = 'project/networks/ports/_port_ips.html'
|
||||
context = {"ips": port.fixed_ips}
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -25,9 +23,6 @@ from horizon import tabs
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class OverviewTab(tabs.Tab):
|
||||
name = _("Overview")
|
||||
slug = "overview"
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -25,9 +23,6 @@ from horizon import tabs
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class OverviewTab(tabs.Tab):
|
||||
name = _("Overview")
|
||||
slug = "overview"
|
||||
|
@ -17,8 +17,6 @@
|
||||
"""
|
||||
Views for managing Neutron Subnets.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -34,9 +32,6 @@ from openstack_dashboard.dashboards.project.networks.subnets \
|
||||
import workflows as project_workflows
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class CreateView(workflows.WorkflowView):
|
||||
workflow_class = project_workflows.CreateSubnet
|
||||
|
||||
|
@ -17,8 +17,6 @@
|
||||
"""
|
||||
Views for managing Neutron Networks.
|
||||
"""
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -41,9 +39,6 @@ from openstack_dashboard.dashboards.project.networks \
|
||||
import workflows as project_workflows
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tables.DataTableView):
|
||||
table_class = project_tables.NetworksTable
|
||||
template_name = 'project/networks/index.html'
|
||||
|
@ -13,7 +13,6 @@
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -22,8 +21,6 @@ from horizon import exceptions
|
||||
from horizon import tabs
|
||||
from openstack_dashboard import api
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class OverviewTab(tabs.Tab):
|
||||
name = _("Overview")
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
|
||||
from horizon import exceptions
|
||||
@ -30,9 +28,6 @@ from openstack_dashboard.dashboards.project.routers.ports \
|
||||
import tabs as project_tabs
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AddInterfaceView(forms.ModalFormView):
|
||||
form_class = project_forms.AddInterface
|
||||
template_name = 'project/routers/ports/create.html'
|
||||
|
@ -18,8 +18,6 @@
|
||||
Views for managing Neutron Routers.
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse_lazy # noqa
|
||||
from django.utils.datastructures import SortedDict # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
@ -37,9 +35,6 @@ from openstack_dashboard.dashboards.project.routers \
|
||||
import tables as project_tables
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tables.DataTableView):
|
||||
table_class = project_tables.RoutersTable
|
||||
template_name = 'project/routers/index.html'
|
||||
|
@ -1,5 +1,4 @@
|
||||
import json
|
||||
import logging
|
||||
|
||||
from openstack_dashboard.api import heat
|
||||
|
||||
@ -7,9 +6,6 @@ from openstack_dashboard.dashboards.project.stacks import mappings
|
||||
from openstack_dashboard.dashboards.project.stacks import sro
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Stack(object):
|
||||
pass
|
||||
|
||||
|
@ -12,8 +12,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.http import Http404 # noqa
|
||||
from django.template.defaultfilters import timesince # noqa
|
||||
from django.template.defaultfilters import title # noqa
|
||||
@ -28,8 +26,6 @@ from heatclient import exc
|
||||
from openstack_dashboard import api
|
||||
from openstack_dashboard.dashboards.project.stacks import mappings
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class LaunchStack(tables.LinkAction):
|
||||
name = "launch"
|
||||
|
@ -14,8 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import NoReverseMatch # noqa
|
||||
from django.core.urlresolvers import reverse # noqa
|
||||
from django.template.defaultfilters import title # noqa
|
||||
@ -33,8 +31,6 @@ from openstack_dashboard.api import cinder
|
||||
from openstack_dashboard.usage import quotas
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
DELETABLE_STATES = ("available", "error")
|
||||
|
||||
|
||||
|
@ -27,8 +27,6 @@ from horizon import forms
|
||||
from horizon import tables
|
||||
from horizon import tabs
|
||||
|
||||
import logging
|
||||
|
||||
from openstack_dashboard import api
|
||||
from openstack_dashboard.api import cinder
|
||||
from openstack_dashboard.usage import quotas
|
||||
@ -42,9 +40,6 @@ from openstack_dashboard.dashboards.project.volumes \
|
||||
import tabs as project_tabs
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class VolumeTableMixIn(object):
|
||||
def _get_volumes(self, search_opts=None):
|
||||
try:
|
||||
|
@ -17,8 +17,6 @@
|
||||
# @author: Tatiana Mazur
|
||||
|
||||
|
||||
import logging
|
||||
|
||||
from django.template.defaultfilters import title # noqa
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
@ -26,9 +24,6 @@ from horizon import tables
|
||||
from horizon.utils import filters
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AddIKEPolicyLink(tables.LinkAction):
|
||||
name = "addikepolicy"
|
||||
verbose_name = _("Add IKE Policy")
|
||||
|
@ -24,8 +24,6 @@ from horizon import messages
|
||||
from horizon import tabs
|
||||
from horizon import workflows
|
||||
|
||||
import logging
|
||||
|
||||
from openstack_dashboard import api
|
||||
|
||||
from openstack_dashboard.dashboards.project.vpn import tabs as vpn_tabs
|
||||
@ -34,8 +32,6 @@ from openstack_dashboard.dashboards.project.vpn import \
|
||||
|
||||
import re
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IndexView(tabs.TabbedTableView):
|
||||
tab_group_class = vpn_tabs.VPNTabs
|
||||
|
@ -16,8 +16,6 @@
|
||||
#
|
||||
# @author: Tatiana Mazur
|
||||
|
||||
import logging
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _ # noqa
|
||||
|
||||
from horizon import exceptions
|
||||
@ -28,9 +26,6 @@ from horizon import workflows
|
||||
from openstack_dashboard import api
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AddVPNServiceAction(workflows.Action):
|
||||
name = forms.CharField(max_length=80, label=_("Name"))
|
||||
description = forms.CharField(
|
||||
|
@ -4,7 +4,6 @@ from csv import DictWriter # noqa
|
||||
from csv import writer # noqa
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
from StringIO import StringIO # noqa
|
||||
|
||||
from django.conf import settings # noqa
|
||||
@ -22,9 +21,6 @@ from openstack_dashboard import api
|
||||
from openstack_dashboard.usage import quotas
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class BaseUsage(object):
|
||||
show_terminated = False
|
||||
|
||||
|
@ -1,12 +1,7 @@
|
||||
import logging
|
||||
|
||||
from horizon import tables
|
||||
from openstack_dashboard.usage import base
|
||||
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class UsageView(tables.DataTableView):
|
||||
usage_class = None
|
||||
show_terminated = True
|
||||
|
Loading…
Reference in New Issue
Block a user