Add a new field VLAN Filter to tap-flow data model

Vlan Filter input parameter is part of tap-flow-create API,
which is comma separated list of VLAN Ids which needs to be
mirrored.

Ref Spec: openstack/neutron-specs/specs/rocky/port-mirroring-sriov-vfs.rst
Commit: https://review.openstack.org/#/c/574477/

Change-Id: I627d0fdcf0799e0626e0bb5c8bc7889db90cabcd
This commit is contained in:
Deepak Tiwari 2018-11-27 09:44:56 -06:00 committed by Deepak
parent b085767b5a
commit 9633eea96d
3 changed files with 14 additions and 3 deletions

View File

@ -117,14 +117,16 @@ def show_tap_flow(request, tap_flow_id):
return TapFlow(tap_flow.get('tap_flow'))
def create_tap_flow(request, direction, tap_service_id, port_id, **params):
def create_tap_flow(request, direction, tap_service_id, port_id,
vlan_filter, **params):
req_data = {}
req_data['tap_flow'] = {
'name': params['name'],
'description': params['description'],
'source_port': port_id,
'direction': direction,
'tap_service_id': tap_service_id
'tap_service_id': tap_service_id,
'vlan_filter': vlan_filter
}
res = neutronclient(request).post("/taas/tap_flows", req_data)

View File

@ -41,6 +41,11 @@ class CreateTapFlowInfoAction(workflows.Action):
help_text=_("Whether to mirror the traffic"
" leaving or ariving"
" at the source port."))
vlan_filter = forms.CharField(max_length=255,
label=_("VLAN Filter"),
required=False,
help_text=_("Comma separated list of"
"VLAN Ids to be mirrored."))
class Meta(object):
name = _("Information")
@ -50,7 +55,7 @@ class CreateTapFlowInfoAction(workflows.Action):
class CreateTapFlowInfo(workflows.Step):
action_class = CreateTapFlowInfoAction
contributes = ("tap_flow_name", "description", "direction")
contributes = ("tap_flow_name", "description", "direction", "vlan_filter")
depends_on = ("tap_service_id",)
@ -115,10 +120,12 @@ class CreateTapFlow(ts_workflows.CreateTapService):
direction = data['direction']
tap_service_id = self.context.get('tap_service_id')
port_id = data['port']
vlan_filter = data['vlan_filter']
tap_flow = api.taas.create_tap_flow(request,
direction,
tap_service_id,
port_id,
vlan_filter,
**params)
self.context['tap_flow_id'] = tap_flow.id
return True

View File

@ -12,6 +12,8 @@
<dd>{{ tap_flow.tap_service_id|default:_("-") }}</dd>
<dt>{% trans "Port ID" %}</dt>
<dd>{{ tap_flow.source_port|default:_("-") }}</dd>
<dt>{% trans "VLAN Filter" %}</dt>
<dd>{{ tap_flow.vlan_filter|default:_("None") }}</dd>
<dt>{% trans "Project ID" %}</dt>
<dd>{{ tap_flow.tenant_id|default:_("-") }}</dd>
</dl>