Friendlier information for lbaas members creation

In order to improve the user experience when adding new members to a
lbass pool, the help information shown in the 'Add Member' dialog has
been completed. Now, it explains that all selected members get the same
weight and port, and that later update is possible to achieve the
expected configuration.
In addition, the 'Weight' column has been added to the Member summary
tab, in order to easily identify the results of the performed 'Add
Member' action.
The complete fix would implement a more efficient way (through custom
widgets, perhaps) to select weight and port per instance.

Change-Id: If9a3ea6d36741fb1ca1ae06fb2dd307a78f537de
Partial-Bug: #1234688
This commit is contained in:
Andres Buraschi 2014-01-07 23:44:16 -03:00
parent b9467671e2
commit d22e81efdc
2 changed files with 27 additions and 18 deletions

View File

@ -196,8 +196,8 @@ class DeletePMAssociationLink(tables.LinkAction):
class PoolsTable(tables.DataTable):
name = tables.Column("name",
verbose_name=_("Name"),
link="horizon:project:loadbalancers:pooldetails")
verbose_name=_("Name"),
link="horizon:project:loadbalancers:pooldetails")
description = tables.Column('description', verbose_name=_("Description"))
provider = tables.Column('provider', verbose_name=_("Provider"),
filters=(lambda v: filters.default(v, _('N/A')),))
@ -233,8 +233,10 @@ class MembersTable(tables.DataTable):
attrs={'data-type': "ip"})
protocol_port = tables.Column('protocol_port',
verbose_name=_("Protocol Port"))
pool_name = tables.Column("pool_name",
verbose_name=_("Pool"), link=get_pool_link)
weight = tables.Column('weight',
verbose_name=_("Weight"))
pool_name = tables.Column('pool_name',
verbose_name=_("Pool"), link=get_pool_link)
status = tables.Column('status', verbose_name=_("Status"))
class Meta:

View File

@ -299,16 +299,22 @@ class AddMemberAction(workflows.Action):
initial=["default"],
widget=forms.CheckboxSelectMultiple(),
error_messages={'required':
_('At least one member must be specified')},
_('At least one member must be specified')},
help_text=_("Select members for this pool "))
weight = forms.IntegerField(max_value=256, min_value=0, label=_("Weight"),
required=False,
help_text=_("Relative part of requests this "
"pool member serves compared to others"))
protocol_port = forms.IntegerField(label=_("Protocol Port"), min_value=1,
help_text=_("Enter an integer value "
"between 1 and 65535."),
validators=[validators.validate_port_range])
weight = forms.IntegerField(
max_value=256, min_value=1, label=_("Weight"), required=False,
help_text=_("Relative part of requests this pool member serves "
"compared to others. \nThe same weight will be applied to "
"all the selected members and can be modified later. "
"Weight must be in the range 1 to 256.")
)
protocol_port = forms.IntegerField(
label=_("Protocol Port"), min_value=1,
help_text=_("Enter an integer value between 1 and 65535. "
"The same port will be used for all the selected "
"members and can be modified later."),
validators=[validators.validate_port_range]
)
admin_state_up = forms.BooleanField(label=_("Admin State"),
initial=True, required=False)
@ -346,7 +352,6 @@ class AddMemberAction(workflows.Action):
"for this pool ")
self.fields['pool_id'].required = False
self.fields['protocol_port'].required = False
return
for m in servers:
@ -358,12 +363,14 @@ class AddMemberAction(workflows.Action):
class Meta:
name = _("Add New Member")
permissions = ('openstack.services.network',)
help_text = _("Add member to selected pool.\n\n"
help_text = _("Add member(s) to the selected pool.\n\n"
"Choose one or more listed instances to be "
"added to the pool as member(s). "
"Assign a numeric weight for this member "
"Specify the port number the member(s) "
"operate on; e.g., 80.")
"Assign a numeric weight for the selected member(s). "
"Specify the port number the selected member(s) "
"operate(s) on; e.g., 80. \n\n"
"There can only be one port associated with "
"each instance.")
class AddMemberStep(workflows.Step):