Merge "Fix the string coding inconsistency between python2 and python3"

This commit is contained in:
Zuul 2018-10-22 12:39:07 +00:00 committed by Gerrit Code Review
commit 3ab1633c3b
25 changed files with 538 additions and 538 deletions

View File

@ -23,14 +23,14 @@
# -- Project information -----------------------------------------------------
project = u'stx-gui'
copyright = u'2018, StarlingX'
author = u'StarlingX'
project = 'stx-gui'
copyright = '2018, StarlingX'
author = 'StarlingX'
# The short X.Y version
version = u''
version = ''
# The full version, including alpha/beta/rc tags
release = u'0.1'
release = '0.1'
# -- General configuration ---------------------------------------------------
@ -136,8 +136,8 @@ latex_elements = {
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'stx-gui.tex', u'stx-gui Documentation',
u'StarlingX', 'manual'),
(master_doc, 'stx-gui.tex', 'stx-gui Documentation',
'StarlingX', 'manual'),
]
@ -146,7 +146,7 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'stx-gui', u'stx-gui Documentation',
(master_doc, 'stx-gui', 'stx-gui Documentation',
[author], 1)
]
@ -157,7 +157,7 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'stx-gui', u'stx-gui Documentation',
(master_doc, 'stx-gui', 'stx-gui Documentation',
author, 'stx-gui', 'StarlingX Horizon plugins for new StarlingX services.',
'Miscellaneous'),
]

View File

@ -191,8 +191,8 @@ latex_elements = {
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
('index', 'stx-guireleasenotes.tex', u'stx-gui Release Notes',
u'StarlingX', 'manual'),
('index', 'stx-guireleasenotes.tex', 'stx-gui Release Notes',
'StarlingX', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@ -221,8 +221,8 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'stx-guireleasenotes', u'stx-gui Release Notes',
[u'StarlingX'], 1)
('index', 'stx-guireleasenotes', 'stx-gui Release Notes',
['StarlingX'], 1)
]
# If true, show URL addresses after external links.
@ -235,8 +235,8 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'stx-guiReleaseNotes', u'stx-gui Release Notes',
u'StarlingX', 'stx-guireleasenotes',
('index', 'stx-guiReleaseNotes', 'stx-gui Release Notes',
'StarlingX', 'stx-guireleasenotes',
'StarlingX Horizon plugins for new StarlingX services',
'Miscellaneous'),
]

View File

@ -40,10 +40,10 @@ SUPPRESSION_STATUS_CHOICES = (
)
SUPPRESSION_STATUS_DISPLAY_CHOICES = (
("suppressed", pgettext_lazy("Indicates this type of alarm \
is suppressed", u"suppressed")),
is suppressed", "suppressed")),
("unsuppressed", pgettext_lazy("Indicates this type of alarm \
is unsuppressed", u"unsuppressed")),
("None", pgettext_lazy("Indicates an event type", u"None")),
is unsuppressed", "unsuppressed")),
("None", pgettext_lazy("Indicates an event type", "None")),
)
@ -172,16 +172,16 @@ class SuppressEvent(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Suppress Event",
u"Suppress Event",
"Suppress Event",
"Suppress Event",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Events suppressed for Alarm ID",
u"Events suppressed for Alarm ID",
"Events suppressed for Alarm ID",
"Events suppressed for Alarm ID",
count
)
@ -212,16 +212,16 @@ class UnsuppressEvent(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Unsuppress Event",
u"Unsuppress Event",
"Unsuppress Event",
"Unsuppress Event",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Events unsuppressed for Alarm ID",
u"Events unsuppressed for Alarm ID",
"Events unsuppressed for Alarm ID",
"Events unsuppressed for Alarm ID",
count
)

View File

@ -69,7 +69,7 @@ class CpuFunctionsTable(tables.DataTable):
verbose_name=_('Processor Logical Cores'))
def get_object_id(self, datum):
return unicode(datum.allocated_function)
return str(datum.allocated_function)
class Meta(object):
name = "cpufunctions"

View File

@ -58,7 +58,7 @@ class DevicesTable(tables.DataTable):
verbose_name=_('Enabled'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.name
@ -85,7 +85,7 @@ class UsageTable(tables.DataTable):
verbose_name=_('VFs used'))
def get_object_id(self, datum):
return unicode(datum.id)
return str(datum.id)
def get_object_display(self, datum):
return datum.host
@ -132,7 +132,7 @@ class DeviceUsageTable(tables.DataTable):
verbose_name=_("VFs used"))
def get_object_id(self, datum):
return unicode(datum.device_id)
return str(datum.device_id)
def get_object_display(self, datum):
return datum.device_name

View File

@ -32,16 +32,16 @@ class DeleteAddress(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Address",
u"Delete Addresses",
"Delete Address",
"Delete Addresses",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Address",
u"Deleted Addresses",
"Deleted Address",
"Deleted Addresses",
count
)
@ -103,7 +103,7 @@ class AddressTable(tables.DataTable):
verbose_name=_("DAD"))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return ("%(address)s/%(prefix)s" %

View File

@ -549,7 +549,7 @@ class AddInterface(forms.SelfHandlingForm):
if not data['vlan_id'] or data['iftype'] != 'vlan':
del data['vlan_id']
else:
data['vlan_id'] = unicode(data['vlan_id'])
data['vlan_id'] = str(data['vlan_id'])
network_ids = []
network_types = []
@ -564,7 +564,7 @@ class AddInterface(forms.SelfHandlingForm):
for network_type in network_types):
del data['imtu']
else:
data['imtu'] = unicode(data['imtu'])
data['imtu'] = str(data['imtu'])
if data['iftype'] != 'ae':
del data['txhashpolicy']
@ -798,9 +798,9 @@ class UpdateInterface(AddInterface):
if not data['vlan_id'] or data['iftype'] != 'vlan':
del data['vlan_id']
else:
data['vlan_id'] = unicode(data['vlan_id'])
data['vlan_id'] = str(data['vlan_id'])
data['imtu'] = unicode(data['imtu'])
data['imtu'] = str(data['imtu'])
if data['iftype'] != 'ae':
del data['txhashpolicy']
@ -826,7 +826,7 @@ class UpdateInterface(AddInterface):
del data['providernetworks']
if 'sriov_numvfs' in data:
data['sriov_numvfs'] = unicode(data['sriov_numvfs'])
data['sriov_numvfs'] = str(data['sriov_numvfs'])
# Explicitly set iftype when user selects pci-pt or pci-sriov
ifclass = \
@ -852,15 +852,15 @@ class UpdateInterface(AddInterface):
del data['sriov_numvfs']
if data['networks']:
data['networks'] = unicode(",".join(data['networks']))
data['networks'] = str(",".join(data['networks']))
else:
del data['networks']
if data['networks_to_add']:
data['networks_to_add'] = unicode(",".join(data['networks_to_add']))
data['networks_to_add'] = str(",".join(data['networks_to_add']))
else:
del data['networks_to_add']
if data['interface_networks_to_remove']:
data['interface_networks_to_remove'] = unicode(
data['interface_networks_to_remove'] = str(
",".join(data['interface_networks_to_remove']))
else:
del data['interface_networks_to_remove']

View File

@ -30,16 +30,16 @@ class DeleteRoute(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Route",
u"Delete Routes",
"Delete Route",
"Delete Routes",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Route",
u"Deleted Routes",
"Deleted Route",
"Deleted Routes",
count
)
@ -96,7 +96,7 @@ class RouteTable(tables.DataTable):
verbose_name=_("Metric"))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return ("%(network)s/%(prefix)s via %(gateway)s" %

View File

@ -25,16 +25,16 @@ class DeleteInterface(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Interface",
u"Delete Interfaces",
"Delete Interface",
"Delete Interfaces",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Interface",
u"Deleted Interfaces",
"Deleted Interface",
"Deleted Interfaces",
count
)
@ -203,7 +203,7 @@ class InterfacesTable(tables.DataTable):
super(InterfacesTable, self).__init__(*args, **kwargs)
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.ifname

View File

@ -33,7 +33,7 @@ class LldpNeighboursTable(tables.DataTable):
verbose_name=_('Max Frame Size'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.get_local_port_display_name()

View File

@ -80,7 +80,7 @@ class MemorysTable(tables.DataTable):
verbose_name=_('VM Pages'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
class Meta(object):
name = "memorys"

View File

@ -75,7 +75,7 @@ class PortsTable(tables.DataTable):
verbose_name=_('Device Type'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.get_port_display_name()

View File

@ -188,9 +188,9 @@ class UpdateSensorGroup(forms.SelfHandlingForm):
# host_uuid = data['host_uuid']
if data['audit_interval_group']:
data['audit_interval_group'] = \
unicode(data['audit_interval_group'])
str(data['audit_interval_group'])
else:
data['audit_interval_group'] = unicode("0")
data['audit_interval_group'] = str("0")
del data['id']

View File

@ -105,16 +105,16 @@ class SuppressSensorGroup(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Suppress SensorGroup",
u"Suppress SensorGroups",
"Suppress SensorGroup",
"Suppress SensorGroups",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Suppressed SensorGroup",
u"Suppressed SensorGroups",
"Suppressed SensorGroup",
"Suppressed SensorGroups",
count
)
@ -140,16 +140,16 @@ class UnSuppressSensorGroup(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"UnSuppress SensorGroup",
u"UnSuppress SensorGroups",
"UnSuppress SensorGroup",
"UnSuppress SensorGroups",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"UnSuppressed SensorGroup",
u"UnSuppressed SensorGroups",
"UnSuppressed SensorGroup",
"UnSuppressed SensorGroups",
count
)
@ -233,7 +233,7 @@ class SensorGroupsTable(tables.DataTable):
"are suppressed."))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.sensorgroupname
@ -291,16 +291,16 @@ class SuppressSensor(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Suppress Sensor",
u"Suppress Sensors",
"Suppress Sensor",
"Suppress Sensors",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Suppressed Sensor",
u"Suppressed Sensors",
"Suppressed Sensor",
"Suppressed Sensors",
count
)
@ -325,16 +325,16 @@ class UnSuppressSensor(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"UnSuppress Sensor",
u"UnSuppress Sensors",
"UnSuppress Sensor",
"UnSuppress Sensors",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"UnSuppressed Sensor",
u"UnSuppressed Sensors",
"UnSuppressed Sensor",
"UnSuppressed Sensors",
count
)
@ -383,7 +383,7 @@ class SensorsTable(tables.DataTable):
verbose_name=('Sensor Group Name'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.sensorname

View File

@ -95,16 +95,16 @@ class DeletePartition(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Partition",
u"Delete Partitions",
"Delete Partition",
"Delete Partitions",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Partition",
u"Deleted Partitions",
"Deleted Partition",
"Deleted Partitions",
count
)
@ -251,7 +251,7 @@ class DisksTable(tables.DataTable):
verbose_name=('Model'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
class Meta(object):
name = "disks"
@ -300,16 +300,16 @@ class DeleteStor(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Journal",
u"Delete Journals",
"Delete Journal",
"Delete Journals",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Journal",
u"Deleted Journals",
"Deleted Journal",
"Deleted Journals",
count
)
@ -348,7 +348,7 @@ class StorageVolumesTable(tables.DataTable):
verbose_name=('Journal Location'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
class Meta(object):
name = "storagevolumes"
@ -413,16 +413,16 @@ class RemoveLocalVolumeGroup(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Local Volume Group",
u"Delete Local Volume Groups",
"Delete Local Volume Group",
"Delete Local Volume Groups",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Local Volume Group",
u"Deleted Local Volume Groups",
"Deleted Local Volume Group",
"Deleted Local Volume Groups",
count
)
@ -472,13 +472,13 @@ class LocalVolumeGroupsTable(tables.DataTable):
verbose_name=('Current Logical Volumes'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
msg = datum.uuid
if datum.lvm_vg_name:
msg += " (%s)" % datum.lvm_vg_name
return unicode(msg)
return str(msg)
class Meta(object):
name = "localvolumegroups"
@ -534,16 +534,16 @@ class RemovePhysicalVolume(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Physical Volume",
u"Delete Physical Volumes",
"Delete Physical Volume",
"Delete Physical Volumes",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Physical Volume",
u"Deleted Physical Volumes",
"Deleted Physical Volume",
"Deleted Physical Volumes",
count
)
@ -591,13 +591,13 @@ class PhysicalVolumesTable(tables.DataTable):
verbose_name=('LVM Volume Group Name'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
msg = datum.uuid
if datum.lvm_pv_name:
msg += " (%s)" % datum.lvm_pv_name
return unicode(msg)
return str(msg)
class Meta(object):
name = "physicalvolumes"
@ -627,13 +627,13 @@ class PartitionsTable(tables.DataTable):
verbose_name=('Status'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
msg = datum.uuid
if datum.device_path:
msg += " (%s)" % datum.device_path
return unicode(msg)
return str(msg)
class Meta(object):
name = "partitions"

View File

@ -134,16 +134,16 @@ class DeleteHost(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Host",
u"Delete Hosts",
"Delete Host",
"Delete Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Host",
u"Deleted Hosts",
"Deleted Host",
"Deleted Hosts",
count
)
@ -164,16 +164,16 @@ class LockHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Lock Host",
u"Lock Hosts",
"Lock Host",
"Lock Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Locking Host",
u"Locking Hosts",
"Locking Host",
"Locking Hosts",
count
)
@ -197,16 +197,16 @@ class ForceLockHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Force Lock Host",
u"Force Lock Hosts",
"Force Lock Host",
"Force Lock Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Forced Lock Host",
u"Forced Lock Hosts",
"Forced Lock Host",
"Forced Lock Hosts",
count
)
@ -264,16 +264,16 @@ class UnlockHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Unlock Host",
u"Unlock Hosts",
"Unlock Host",
"Unlock Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Unlocked Host",
u"Unlocked Hosts",
"Unlocked Host",
"Unlocked Hosts",
count
)
@ -298,16 +298,16 @@ class ForceUnlockHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Force Unlock Host",
u"Force Unlock Hosts",
"Force Unlock Host",
"Force Unlock Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Forced Unlock Host",
u"Forced Unlock Hosts",
"Forced Unlock Host",
"Forced Unlock Hosts",
count
)
@ -337,16 +337,16 @@ class PowerOnHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Power On Host",
u"Power On Hosts",
"Power On Host",
"Power On Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Powered On Host",
u"Powered On Hosts",
"Powered On Host",
"Powered On Hosts",
count
)
@ -368,16 +368,16 @@ class PowerOffHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Power Off Host",
u"Power Off Hosts",
"Power Off Host",
"Power Off Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Powered Off Host",
u"Powered Off Hosts",
"Powered Off Host",
"Powered Off Hosts",
count
)
@ -400,16 +400,16 @@ class ResetHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Reset Host",
u"Reset Hosts",
"Reset Host",
"Reset Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Reset Host",
u"Reset Hosts",
"Reset Host",
"Reset Hosts",
count
)
@ -431,16 +431,16 @@ class RebootHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Reboot Host",
u"Reboot Hosts",
"Reboot Host",
"Reboot Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Rebooted Host",
u"Rebooted Hosts",
"Rebooted Host",
"Rebooted Hosts",
count
)
@ -461,16 +461,16 @@ class ReinstallHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Reinstall Host",
u"Reinstall Hosts",
"Reinstall Host",
"Reinstall Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Reinstalled Host",
u"Reinstalled Hosts",
"Reinstalled Host",
"Reinstalled Hosts",
count
)
@ -491,16 +491,16 @@ class SwactHost(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Swact Host",
u"Swact Hosts",
"Swact Host",
"Swact Hosts",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Swact Initiated Host",
u"Swact Initiated Hosts",
"Swact Initiated Host",
"Swact Initiated Hosts",
count
)
@ -521,16 +521,16 @@ class PatchInstallAsync(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Install Patch",
u"Install Patches",
"Install Patch",
"Install Patches",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Installed Patch",
u"Installed Patches",
"Installed Patch",
"Installed Patches",
count
)
@ -664,7 +664,7 @@ def get_task_or_status(host):
patch_current = "Not Patch Current"
if host._patch_state != patch_constants.PATCH_AGENT_STATE_IDLE:
patch_state = unicode(host.patch_state)
patch_state = str(host.patch_state)
if host._patch_state == patch_constants.PATCH_AGENT_STATE_INSTALLING:
# Clear the other patch status fields
patch_current = ""
@ -740,7 +740,7 @@ class Hosts(tables.DataTable):
status_choices=TASK_STATE_CHOICES)
def get_object_id(self, datum):
return unicode(datum.id)
return str(datum.id)
def get_object_display(self, datum):
return datum.hostname
@ -823,16 +823,16 @@ class DeleteInterfaceProfile(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Interface Profile",
u"Delete Interface Profiles",
"Delete Interface Profile",
"Delete Interface Profiles",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Interface Profile",
u"Deleted Interface Profiles",
"Deleted Interface Profile",
"Deleted Interface Profiles",
count
)
@ -871,7 +871,7 @@ class InterfaceProfilesTable(tables.DataTable):
verbose_name=_("Interface Configuration"))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.profilename
@ -888,16 +888,16 @@ class DeleteCpuProfile(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Cpu Profile",
u"Delete Cpu Profiles",
"Delete Cpu Profile",
"Delete Cpu Profiles",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Cpu Profile",
u"Deleted Cpu Profiles",
"Deleted Cpu Profile",
"Deleted Cpu Profiles",
count
)
@ -926,7 +926,7 @@ class CpuProfilesTable(tables.DataTable):
verbose_name=_("CPU Assignments"))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.profilename
@ -944,16 +944,16 @@ class DeleteDiskProfile(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Storage Profile",
u"Delete Storage Profiles",
"Delete Storage Profile",
"Delete Storage Profiles",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Storage Profile",
u"Deleted Storage Profiles",
"Deleted Storage Profile",
"Deleted Storage Profiles",
count
)
@ -1022,7 +1022,7 @@ class DiskProfilesTable(tables.DataTable):
verbose_name=_('Observations'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.profilename
@ -1040,16 +1040,16 @@ class DeleteMemoryProfile(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Memory Profile",
u"Delete Memory Profiles",
"Delete Memory Profile",
"Delete Memory Profiles",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Memory Profile",
u"Deleted Memory Profiles",
"Deleted Memory Profile",
"Deleted Memory Profiles",
count
)
@ -1089,7 +1089,7 @@ class MemoryProfilesTable(tables.DataTable):
verbose_name=_("Memory Assignments"))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.profilename

View File

@ -39,16 +39,16 @@ class DeleteProviderNetworkRange(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Range",
u"Delete Ranges",
"Delete Range",
"Delete Ranges",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Range",
u"Deleted Ranges",
"Deleted Range",
"Deleted Ranges",
count
)

View File

@ -37,16 +37,16 @@ class DeleteProviderNetwork(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Provider Network",
u"Delete Provider Networks",
"Delete Provider Network",
"Delete Provider Networks",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Provider Network",
u"Deleted Provider Networks",
"Deleted Provider Network",
"Deleted Provider Networks",
count
)

View File

@ -1,306 +1,306 @@
# Copyright 2014 Wind River, Inc.
# Copyright 2012 Nebula, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2013-2017 Wind River Systems, Inc.
#
from django.core.urlresolvers import NoReverseMatch
from django.core.urlresolvers import reverse
from django.utils import html
from django.utils import safestring
from django.utils.translation import string_concat
from django.utils.translation import ugettext_lazy as _ # noqa
from django.utils.translation import ungettext_lazy
from horizon import exceptions
from horizon import tables
from openstack_dashboard import api
from openstack_dashboard.api import nova
from openstack_dashboard.dashboards.project.volumes.tables \
import get_attachment_name
from openstack_dashboard.usage import quotas
from starlingx_dashboard.api import nova as stx_nova
DELETABLE_STATES = ("available", "error")
class DeleteServerGroup(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Server Group",
u"Delete Server Groups",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Server Group",
u"Deleted Server Groups",
count
)
def delete(self, request, obj_id):
obj = self.table.get_object_by_id(obj_id)
name = self.table.get_object_display(obj)
try:
stx_nova.server_group_delete(request, obj_id)
except Exception:
msg = _('Unable to delete group "%s" because it is not empty. '
'Either delete the member instances'
' or remove them from the group.')
exceptions.check_message(["group", "not", "empty."], msg % name)
raise
# maybe do a precheck to see if the group is empty first?
def allowed(self, request, server_group=None):
return True
class CreateServerGroup(tables.LinkAction):
name = "create"
verbose_name = _("Create Server Group")
url = "horizon:admin:server_groups:create"
classes = ("ajax-modal", "btn-create")
icon = "plus"
def allowed(self, request, volume=None):
usages = quotas.tenant_quota_usages(request)
if usages['server_groups']['available'] <= 0:
if "disabled" not in self.classes:
self.classes = [c for c in self.classes] + ['disabled']
self.verbose_name = string_concat(self.verbose_name, ' ',
_("(Quota exceeded)"))
else:
self.verbose_name = _("Create Server Group")
classes = [c for c in self.classes if c != "disabled"]
self.classes = classes
return True
class EditAttachments(tables.LinkAction):
name = "attachments"
verbose_name = _("Edit Attachments")
url = "horizon:admin:server_groups:attach"
classes = ("ajax-modal", "btn-edit")
def allowed(self, request, server_group=None):
return True # volume.status in ("available", "in-use")
class CreateSnapshot(tables.LinkAction):
name = "snapshots"
verbose_name = _("Create Snapshot")
url = "horizon:admin:server_groups:create_snapshot"
classes = ("ajax-modal", "btn-camera")
def allowed(self, request, server_group=None):
return True # server_group.status == "available"
class UpdateRow(tables.Row):
ajax = True
def get_data(self, request, server_group_id):
server_group = stx_nova.server_group_get(request, server_group_id)
if not server_group.name:
server_group.name = server_group_id
return server_group
def get_policies(server_group):
policies = ', '.join(server_group.policies)
return policies
def get_metadata(server_group):
metadata_items = ['{}:{}'.format(x, y) for x, y in
server_group.metadata.items()]
metadata = ', '.join(metadata_items)
return metadata
def get_member_name(request, server_id):
try:
server = api.nova.server_get(request, server_id)
name = server.name
except Exception:
name = None
exceptions.handle(request, _("Unable to retrieve "
"member information."))
# try and get a URL
try:
url = reverse("horizon:admin:instances:detail", args=(server_id,))
instance = '<a href="%s">%s</a>' % (url, html.escape(name))
except NoReverseMatch:
instance = name
return instance
class ProjectNameColumn(tables.Column):
"""Customized column class
Customized column class that does complex processing on the
server group.
"""
def get_raw_data(self, server_group):
request = self.table.request
project_id = getattr(server_group, 'project_id', None)
try:
tenant = api.keystone.tenant_get(request,
project_id,
admin=True)
project_name = getattr(tenant, "name", None)
except Exception:
project_name = "(not found)"
return project_name
class MemberColumn(tables.Column):
"""Customized column class
Customized column class that does complex processing on the instances
in a server group. This was substantially copied
from the volume equivalent.
"""
def get_raw_data(self, server_group):
request = self.table.request
link = _('%(name)s (%(id)s)')
members = []
for member in server_group.members:
member_id = member
name = get_member_name(request, member)
vals = {"name": name, "id": member_id}
members.append(link % vals)
return safestring.mark_safe(", ".join(members))
def get_server_group_type(server_group):
return server_group.volume_type if server_group.volume_type != "None" \
else None
class ServerGroupsFilterAction(tables.FilterAction):
def filter(self, table, server_groups, filter_string):
"""Naive case-insensitive search."""
q = filter_string.lower()
return [group for group in server_groups
if q in group.display_name.lower()]
class ServerGroupsTable(tables.DataTable):
projectname = ProjectNameColumn("project_name",
verbose_name=_("Project"))
name = tables.Column("name",
verbose_name=_("Group Name"),
link="horizon:admin:server_groups:detail")
policies = tables.Column(get_policies,
verbose_name=_("Policies"))
members = MemberColumn("members",
verbose_name=_("Members"))
metadata = tables.Column(get_metadata,
verbose_name=_("Metadata"))
class Meta(object):
name = "server_groups"
verbose_name = _("Server Groups")
row_class = UpdateRow
table_actions = (
CreateServerGroup, DeleteServerGroup, ServerGroupsFilterAction)
row_actions = (DeleteServerGroup,)
def get_object_display(self, obj):
return obj.name
class DetachServerGroup(tables.BatchAction):
name = "detach"
action_type = 'danger'
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Detach Server Group",
u"Detached Server Groups",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Detaching Server Group",
u"Detaching Server Groups",
count
)
def action(self, request, obj_id):
attachment = self.table.get_object_by_id(obj_id)
api.nova.instance_server_group_detach(request,
attachment.get('server_id',
None),
obj_id)
def get_success_url(self, request):
return reverse('horizon:admin:server_groups:index')
class AttachedInstanceColumn(tables.Column):
"""Customized column class
Customized column class that does complex processing on the attachments
for a server group.
"""
def get_raw_data(self, attachment):
request = self.table.request
return safestring.mark_safe(get_attachment_name(request, attachment,
True))
class AttachmentsTable(tables.DataTable):
instance = AttachedInstanceColumn(get_member_name,
verbose_name=_("Instance"))
device = tables.Column("device",
verbose_name=_("Device"))
def get_object_id(self, obj):
return obj['id']
def get_object_display(self, attachment):
instance_name = get_attachment_name(self.request, attachment, True)
vals = {"dev": attachment['device'],
"instance_name": html.strip_tags(instance_name)}
return _("%(dev)s on instance %(instance_name)s") % vals
def get_object_by_id(self, obj_id):
for obj in self.data:
if self.get_object_id(obj) == obj_id:
return obj
raise ValueError('No match found for the id "%s".' % obj_id)
class Meta(object):
name = "attachments"
verbose_name = _("Attachments")
table_actions = (DetachServerGroup,)
row_actions = (DetachServerGroup,)
# Copyright 2014 Wind River, Inc.
# Copyright 2012 Nebula, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Copyright (c) 2013-2017 Wind River Systems, Inc.
#
from django.core.urlresolvers import NoReverseMatch
from django.core.urlresolvers import reverse
from django.utils import html
from django.utils import safestring
from django.utils.translation import string_concat
from django.utils.translation import ugettext_lazy as _ # noqa
from django.utils.translation import ungettext_lazy
from horizon import exceptions
from horizon import tables
from openstack_dashboard import api
from openstack_dashboard.api import nova
from openstack_dashboard.dashboards.project.volumes.tables \
import get_attachment_name
from openstack_dashboard.usage import quotas
from starlingx_dashboard.api import nova as stx_nova
DELETABLE_STATES = ("available", "error")
class DeleteServerGroup(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
"Delete Server Group",
"Delete Server Groups",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
"Deleted Server Group",
"Deleted Server Groups",
count
)
def delete(self, request, obj_id):
obj = self.table.get_object_by_id(obj_id)
name = self.table.get_object_display(obj)
try:
stx_nova.server_group_delete(request, obj_id)
except Exception:
msg = _('Unable to delete group "%s" because it is not empty. '
'Either delete the member instances'
' or remove them from the group.')
exceptions.check_message(["group", "not", "empty."], msg % name)
raise
# maybe do a precheck to see if the group is empty first?
def allowed(self, request, server_group=None):
return True
class CreateServerGroup(tables.LinkAction):
name = "create"
verbose_name = _("Create Server Group")
url = "horizon:admin:server_groups:create"
classes = ("ajax-modal", "btn-create")
icon = "plus"
def allowed(self, request, volume=None):
usages = quotas.tenant_quota_usages(request)
if usages['server_groups']['available'] <= 0:
if "disabled" not in self.classes:
self.classes = [c for c in self.classes] + ['disabled']
self.verbose_name = string_concat(self.verbose_name, ' ',
_("(Quota exceeded)"))
else:
self.verbose_name = _("Create Server Group")
classes = [c for c in self.classes if c != "disabled"]
self.classes = classes
return True
class EditAttachments(tables.LinkAction):
name = "attachments"
verbose_name = _("Edit Attachments")
url = "horizon:admin:server_groups:attach"
classes = ("ajax-modal", "btn-edit")
def allowed(self, request, server_group=None):
return True # volume.status in ("available", "in-use")
class CreateSnapshot(tables.LinkAction):
name = "snapshots"
verbose_name = _("Create Snapshot")
url = "horizon:admin:server_groups:create_snapshot"
classes = ("ajax-modal", "btn-camera")
def allowed(self, request, server_group=None):
return True # server_group.status == "available"
class UpdateRow(tables.Row):
ajax = True
def get_data(self, request, server_group_id):
server_group = stx_nova.server_group_get(request, server_group_id)
if not server_group.name:
server_group.name = server_group_id
return server_group
def get_policies(server_group):
policies = ', '.join(server_group.policies)
return policies
def get_metadata(server_group):
metadata_items = ['{}:{}'.format(x, y) for x, y in
server_group.metadata.items()]
metadata = ', '.join(metadata_items)
return metadata
def get_member_name(request, server_id):
try:
server = api.nova.server_get(request, server_id)
name = server.name
except Exception:
name = None
exceptions.handle(request, _("Unable to retrieve "
"member information."))
# try and get a URL
try:
url = reverse("horizon:admin:instances:detail", args=(server_id,))
instance = '<a href="%s">%s</a>' % (url, html.escape(name))
except NoReverseMatch:
instance = name
return instance
class ProjectNameColumn(tables.Column):
"""Customized column class
Customized column class that does complex processing on the
server group.
"""
def get_raw_data(self, server_group):
request = self.table.request
project_id = getattr(server_group, 'project_id', None)
try:
tenant = api.keystone.tenant_get(request,
project_id,
admin=True)
project_name = getattr(tenant, "name", None)
except Exception:
project_name = "(not found)"
return project_name
class MemberColumn(tables.Column):
"""Customized column class
Customized column class that does complex processing on the instances
in a server group. This was substantially copied
from the volume equivalent.
"""
def get_raw_data(self, server_group):
request = self.table.request
link = _('%(name)s (%(id)s)')
members = []
for member in server_group.members:
member_id = member
name = get_member_name(request, member)
vals = {"name": name, "id": member_id}
members.append(link % vals)
return safestring.mark_safe(", ".join(members))
def get_server_group_type(server_group):
return server_group.volume_type if server_group.volume_type != "None" \
else None
class ServerGroupsFilterAction(tables.FilterAction):
def filter(self, table, server_groups, filter_string):
"""Naive case-insensitive search."""
q = filter_string.lower()
return [group for group in server_groups
if q in group.display_name.lower()]
class ServerGroupsTable(tables.DataTable):
projectname = ProjectNameColumn("project_name",
verbose_name=_("Project"))
name = tables.Column("name",
verbose_name=_("Group Name"),
link="horizon:admin:server_groups:detail")
policies = tables.Column(get_policies,
verbose_name=_("Policies"))
members = MemberColumn("members",
verbose_name=_("Members"))
metadata = tables.Column(get_metadata,
verbose_name=_("Metadata"))
class Meta(object):
name = "server_groups"
verbose_name = _("Server Groups")
row_class = UpdateRow
table_actions = (
CreateServerGroup, DeleteServerGroup, ServerGroupsFilterAction)
row_actions = (DeleteServerGroup,)
def get_object_display(self, obj):
return obj.name
class DetachServerGroup(tables.BatchAction):
name = "detach"
action_type = 'danger'
@staticmethod
def action_present(count):
return ungettext_lazy(
"Detach Server Group",
"Detached Server Groups",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
"Detaching Server Group",
"Detaching Server Groups",
count
)
def action(self, request, obj_id):
attachment = self.table.get_object_by_id(obj_id)
api.nova.instance_server_group_detach(request,
attachment.get('server_id',
None),
obj_id)
def get_success_url(self, request):
return reverse('horizon:admin:server_groups:index')
class AttachedInstanceColumn(tables.Column):
"""Customized column class
Customized column class that does complex processing on the attachments
for a server group.
"""
def get_raw_data(self, attachment):
request = self.table.request
return safestring.mark_safe(get_attachment_name(request, attachment,
True))
class AttachmentsTable(tables.DataTable):
instance = AttachedInstanceColumn(get_member_name,
verbose_name=_("Instance"))
device = tables.Column("device",
verbose_name=_("Device"))
def get_object_id(self, obj):
return obj['id']
def get_object_display(self, attachment):
instance_name = get_attachment_name(self.request, attachment, True)
vals = {"dev": attachment['device'],
"instance_name": html.strip_tags(instance_name)}
return _("%(dev)s on instance %(instance_name)s") % vals
def get_object_by_id(self, obj_id):
for obj in self.data:
if self.get_object_id(obj) == obj_id:
return obj
raise ValueError('No match found for the id "%s".' % obj_id)
class Meta(object):
name = "attachments"
verbose_name = _("Attachments")
table_actions = (DetachServerGroup,)
row_actions = (DetachServerGroup,)

View File

@ -34,16 +34,16 @@ class ApplyPatch(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Apply Patch",
u"Apply Patches",
"Apply Patch",
"Apply Patches",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Applied Patch",
u"Applied Patches",
"Applied Patch",
"Applied Patches",
count
)
@ -67,16 +67,16 @@ class RemovePatch(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Remove Patch",
u"Remove Patches",
"Remove Patch",
"Remove Patches",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Removed Patch",
u"Removed Patches",
"Removed Patch",
"Removed Patches",
count
)
@ -108,16 +108,16 @@ class DeletePatch(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Patch",
u"Delete Patches",
"Delete Patch",
"Delete Patches",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Patch",
u"Deleted Patches",
"Deleted Patch",
"Deleted Patches",
count
)
@ -404,16 +404,16 @@ class ApplyStage(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Apply Stage",
u"Apply Stages",
"Apply Stage",
"Apply Stages",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Applied Stage",
u"Applied Stages",
"Applied Stage",
"Applied Stages",
count
)
@ -473,16 +473,16 @@ class AbortStage(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Abort Stage",
u"Abort Stages",
"Abort Stage",
"Abort Stages",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Aborted Stage",
u"Aborted Stages",
"Aborted Stage",
"Aborted Stages",
count
)

View File

@ -30,16 +30,16 @@ class DeleteAddressPool(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Address Pool",
u"Delete Address Pools",
"Delete Address Pool",
"Delete Address Pools",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Address Pool",
u"Deleted Address Pools",
"Deleted Address Pool",
"Deleted Address Pools",
count
)
@ -89,7 +89,7 @@ class AddressPoolsTable(tables.DataTable):
ranges = tables.Column(get_ranges_column, verbose_name=_("Address Ranges"))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return ("%(network)s/%(prefix)s" %

View File

@ -864,19 +864,19 @@ class UpdateiStoragePools(forms.SelfHandlingForm):
STORAGE_VALUES = {}
if hasattr(storage_config, 'cinder_pool_gib'):
STORAGE_VALUES['cinder_pool_gib'] = \
unicode(storage_config._cinder_pool_gib)
str(storage_config._cinder_pool_gib)
if hasattr(storage_config, 'glance_pool_gib'):
STORAGE_VALUES['glance_pool_gib'] = \
unicode(storage_config._glance_pool_gib)
str(storage_config._glance_pool_gib)
if hasattr(storage_config, 'ephemeral_pool_gib'):
STORAGE_VALUES['ephemeral_pool_gib'] = \
unicode(storage_config._ephemeral_pool_gib)
str(storage_config._ephemeral_pool_gib)
if hasattr(storage_config, 'object_pool_gib'):
STORAGE_VALUES['object_pool_gib'] = \
unicode(storage_config._object_pool_gib)
str(storage_config._object_pool_gib)
for key in data.keys():
data[key] = unicode(data[key])
data[key] = str(data[key])
LOG.info("initial send_to_sysinv=%s", send_to_sysinv)
if len(STORAGE_VALUES) != len(data):

View File

@ -63,7 +63,7 @@ class SystemsTable(tables.DataTable):
verbose_name=_("Version"))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.name
@ -141,7 +141,7 @@ class cDNSTable(tables.DataTable):
verbose_name=_('DNS Server 3 IP'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.uuid
@ -183,7 +183,7 @@ class cNTPTable(tables.DataTable):
verbose_name=_('NTP Server 3 Address'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.uuid
@ -221,7 +221,7 @@ class cPTPTable(tables.DataTable):
verbose_name=_('PTP Delay Mechanism'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.uuid
@ -285,7 +285,7 @@ class cOAMTable(tables.DataTable):
verbose_name=_('OAM End IP'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.uuid
@ -323,7 +323,7 @@ class iStorageTable(tables.DataTable):
verbose_name=_('Size (GiB)'))
def get_object_id(self, datum):
return unicode(datum.name)
return str(datum.name)
def get_object_display(self, datum):
return
@ -365,7 +365,7 @@ class iStoragePoolsTable(tables.DataTable):
verbose_name=_('Ceph total space (GiB)'))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return ("%s" % datum.tier_name)
@ -385,16 +385,16 @@ class DeleteSDNController(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete SDN Controller",
u"Delete SDN Controllers",
"Delete SDN Controller",
"Delete SDN Controllers",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted SDN Controller",
u"Deleted SDN Controllers",
"Deleted SDN Controller",
"Deleted SDN Controllers",
count
)
@ -447,7 +447,7 @@ class SDNControllerTable(tables.DataTable):
verbose_name=_("Remote Port"))
def get_object_id(self, datum):
return unicode(datum.uuid)
return str(datum.uuid)
def get_object_display(self, datum):
return datum.uuid

View File

@ -271,16 +271,16 @@ class DeleteCloudPatchConfig(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Cloud Patching Configuration",
u"Delete Cloud Patching Configurations",
"Delete Cloud Patching Configuration",
"Delete Cloud Patching Configurations",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Cloud Patching Configuration",
u"Deleted Cloud Patching Configurations",
"Deleted Cloud Patching Configuration",
"Deleted Cloud Patching Configurations",
count
)

View File

@ -45,16 +45,16 @@ class DeleteServerGroup(tables.DeleteAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Delete Server Group",
u"Delete Server Groups",
"Delete Server Group",
"Delete Server Groups",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Server Group",
u"Deleted Server Groups",
"Deleted Server Group",
"Deleted Server Groups",
count
)
@ -223,16 +223,16 @@ class DetachServerGroup(tables.BatchAction):
@staticmethod
def action_present(count):
return ungettext_lazy(
u"Server Group",
u"Server Groups",
"Server Group",
"Server Groups",
count
)
@staticmethod
def action_past(count):
return ungettext_lazy(
u"Deleted Group",
u"Deleted Groups",
"Deleted Group",
"Deleted Groups",
count
)