Implement SR-IOV VF config set
Also fixes some random bugs, adds proper interface sorting, and assorted tweaks.
This commit is contained in:
@ -2923,6 +2923,93 @@ class API_SRIOV_VF_Element(Resource):
|
||||
else:
|
||||
return {'message': "No VF '{}' found on node '{}'".format(vf, node)}, 404
|
||||
|
||||
@RequestParser([
|
||||
{'name': 'vlan_id'},
|
||||
{'name': 'vlan_qos'},
|
||||
{'name': 'tx_rate_min'},
|
||||
{'name': 'tx_rate_max'},
|
||||
{'name': 'link_state', 'choices': ('auto', 'enable', 'disable'), 'helptext': "A valid state must be specified"},
|
||||
{'name': 'spoof_check'},
|
||||
{'name': 'trust'},
|
||||
{'name': 'query_rss'},
|
||||
])
|
||||
@Authenticator
|
||||
def put(self, node, vf, reqargs):
|
||||
"""
|
||||
Set the configuration of {vf} on {node}
|
||||
---
|
||||
tags:
|
||||
- network / sriov
|
||||
parameters:
|
||||
- in: query
|
||||
name: vlan_id
|
||||
type: integer
|
||||
required: false
|
||||
description: The vLAN ID for vLAN tagging (0 is disabled)
|
||||
- in: query
|
||||
name: vlan_qos
|
||||
type: integer
|
||||
required: false
|
||||
description: The vLAN QOS priority (0 is disabled)
|
||||
- in: query
|
||||
name: tx_rate_min
|
||||
type: integer
|
||||
required: false
|
||||
description: The minimum TX rate (0 is disabled)
|
||||
- in: query
|
||||
name: tx_rate_max
|
||||
type: integer
|
||||
required: false
|
||||
description: The maximum TX rate (0 is disabled)
|
||||
- in: query
|
||||
name: link_state
|
||||
type: string
|
||||
required: false
|
||||
description: The administrative link state
|
||||
enum:
|
||||
- auto
|
||||
- enable
|
||||
- disable
|
||||
- in: query
|
||||
name: spoof_check
|
||||
type: boolean
|
||||
required: false
|
||||
description: Enable or disable spoof checking
|
||||
- in: query
|
||||
name: trust
|
||||
type: boolean
|
||||
required: false
|
||||
description: Enable or disable VF user trust
|
||||
- in: query
|
||||
name: query_rss
|
||||
type: boolean
|
||||
required: false
|
||||
description: Enable or disable query RSS support
|
||||
responses:
|
||||
200:
|
||||
description: OK
|
||||
schema:
|
||||
type: object
|
||||
id: Message
|
||||
400:
|
||||
description: Bad request
|
||||
schema:
|
||||
type: object
|
||||
id: Message
|
||||
"""
|
||||
return api_helper.update_sriov_vf_config(
|
||||
node,
|
||||
vf,
|
||||
reqargs.get('vlan_id', None),
|
||||
reqargs.get('vlan_qos', None),
|
||||
reqargs.get('tx_rate_min', None),
|
||||
reqargs.get('tx_rate_max', None),
|
||||
reqargs.get('link_state', None),
|
||||
reqargs.get('spoof_check', None),
|
||||
reqargs.get('trust', None),
|
||||
reqargs.get('query_rss', None),
|
||||
)
|
||||
|
||||
|
||||
api.add_resource(API_SRIOV_VF_Element, '/sriov/vf/<node>/<vf>')
|
||||
|
||||
|
Reference in New Issue
Block a user