Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
- Implemented handling of UDP source and destination ports from
IXIA traffic profile.
- UDP ports can be defined as a single value or as a random range.
Ports range is configured with two parameters 'fixed_bits' and
'mask_bits'.
- For example '8-48' range definition will create a repeatable
pattern of four values that fall within the range of 8 and 56.
JIRA: YARDSTICK-1363
Change-Id: I0ace722f6be843ea79c3d3f4de22cb8fa5669d4f
Signed-off-by: Myron Sosyak <myronx.sosyak@intel.com>
Signed-off-by: Pshyk Serhiy <serhiyx.pshyk@intel.com>
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
* Instead of using assert statements, raise a custom exception.
* Modify the unit tests so that they do not test unused parameters for
equality.
* Fix pylint and pep8 errors.
JIRA: YARDSTICK-966
Change-Id: I41e13a5a22086827792eaf9de8da2e4ed6dd42de
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
YARDSTICK-1222 has made attacker recover only when the sla not pass.
But for baremetal down test case, the node need to power on even the sla pass.
TODO:
Make attacker can support mandatory recover in some situation.
JIRA: YARDSTICK-1337
Change-Id: Ib567b9b9025e5ee421ea47140c468537ad16f090
Signed-off-by: rexlee8776 <limingjiang@huawei.com>
|
|
* Remove unneeded variables
* Do not raise RuntimeError when a remote command fails, instead
leave it for the yardstick ssh module to handle.
* Prevent CsvReader from raising StopIteration if csv output cannot be
parsed. The SLA validation will take care of errors in that case.
JIRA: YARDSTICK-1166
Change-Id: I9e353d39dfd3bd27407dde32744ce71b5762e84e
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
* Remove unneeded variables
* Do not raise RuntimeError when a remote command fails, instead leave
it for the yardstick ssh module to handle.
* Prevent CsvReader from raising StopIteration if csv output cannot be
parsed. The SLA validation will take care of errors in that case.
JIRA: YARDSTICK-1166
Change-Id: I6cf550bd7bc8f511b3c0f25c67f8caab18bccd28
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
JIRA: YARDSTICK-1318
Change-Id: I0c04bd2928d5a4166b483f0c4f9f75fa9e5e00d2
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
JIRA: YARDSTICK-1319
Change-Id: I8370c5ef4e43e58a8bb9c3aac60a089b0981dda0
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
Improve the method to calculate the CIDR IP address range (first one,
last one). IPv4Network or IPv6Network hosts() is an iterator throught
the list of valid IPs. If the network is too big, the generation of a
list [1] can be very expensive.
[1]https://github.com/opnfv/yardstick/blob/master/yardstick/benchmark/scenarios/networking/vnf_generic.py#L90
JIRA: YARDSTICK-1339
Change-Id: I9352b2e7ff4925c246df8b40ecf43e8dc96c42d2
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Test case tc025 baremetal down failed to ipmi power off the node.
This patch target to solve:
ipmi_password is not correctly fetched
JIRA: YARDSTICK-1326
Change-Id: Ia915cd07cba420643fa9a679975178328be55700
Signed-off-by: rexlee8776 <limingjiang@huawei.com>
|
|
In Kubernetes context, NodePort information returned in context should be
a dictionary. In [1], the node information is dumped in a yaml file. The
NodePort object doesn't have a serialize implementation; instead of
returning the object, an equivalent dictionary should be returned.
[1]https://github.com/opnfv/yardstick/blob/f6fa0d7422f0669d049dbf07a51eb39b1dc25830/yardstick/benchmark/scenarios/networking/vnf_generic.py#L293
JIRA: YARDSTICK-1323
Change-Id: If4844c9b074920a7a7d8c1a424b681f9f8a4b0c5
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1320
Change-Id: I5b762d4732440008630093e1d0952f7e41a8a191
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
This new class is designed to be used in a ``GenericVNF`` object (VNF
or traffic generator) in a builder pattern. This consumer class will
be instantiated when initializing the ``GenericVNF`` derived object.
The ``GenericVNFConsumer`` endpoint is the ``GenericVNF``derived object
itself.
``GenericVNFEndpoint`` is an interface class to be inherited in a
``GenericVNF`` child object; the VNF object will implement the endpoints
methods.
NewVNF(GenericVNF, GenericVNFEndpoint):
def __init__(self, name, vnfd, task_id):
...
self._consumer = vnf_base.GenericVNFConsumer([task_id], self)
self._consumer.start_rpc_server()
JIRA: YARDSTICK-1293
Change-Id: I1bcd980352099e9ebefdab0c96d51aa46f6a1e54
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Kubernetes context provides a list of NodePort services to each
replication controller. "_get_server" should return this information
in the server description dictionary:
server: { ...
'service_ports': <list of NodePort objects>
}
Relevant NodePort object attributes:
- port
- node_port
- target_port
- protocol
- name
JIRA: YARDSTICK-1313
Change-Id: Ie481cdea4761f162e3b3329e4e2c5a982faea9e9
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Add to "Kubernetes" context the "interfaces" information when retrieving
a server. This information is needed for NSPerf test cases.
The interface information comes from the resource controller network list.
Each replication controller will have one port per network defined.
JIRA: YARDSTICK-1303
Change-Id: Ifb0e17df295c042a643128c705a93876af999bad
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
When a kubernetes context is returning the node info it is
assumed that the first port defined is the ssh port which may
not be the case. This patch will address this issue by looking
for a defined port 22.
JIRA: YARDSTICK-1301
Change-Id: I65dee1bcf62f21ebcaefeaa2666bb0ad53f3876c
Signed-off-by: John O Loughlin <john.oloughlin@intel.com>
|
|
|
|
* changes:
Make "IterationIPC" MQ producer for VNF control messages
Enable traffic generator PID in "NSPerf" scenario setup
Enable the MQ producer in "SampleVNFTrafficGen" class
Add "TrafficGeneratorProducer" for "GenericTrafficGen" instances
Add "IterationIPC" runner
|
|
|
|
|
|
|
|
In Duration runner if SLA is set to "assert" and a SLAValidationError
happens then a teardown is needed to avoid garbages in the environment.
JIRA: YARDSTICK-1291
Change-Id: I9056b0da3e7e496171ed42430ffc340b5c68f108
Signed-off-by: Dimitrios Markou <mardim@intracom-telecom.com>
|
|
Make context types constants. These are the current context types:
- Dummy
- Heat
- Kubernetes
- Node
- StandaloneOvsDpdk
- StandaloneSriov
Any reference to a context type should use the referred constant.
JIRA: YARDSTICK-1292
Change-Id: I1ff0085161f88304d71e3ddad7975f9020e0fc20
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
"IterationIPC" runner class is a consumer for MQ aware VNFs. A MQ aware
traffic generator can send "started", "finished" and "iteration"
messages.
This feature implements a MQ producer in the runner in order to send
messages to the VNFs. The messages implemented are:
- "start_iteration"
- "stop_iteration"
JIRA: YARDSTICK-1286
Change-Id: I706f9a9dda5e5beed52231be7d71452945a7dbed
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Now "NSPerf" scenario will inform about the traffic generator PIDs after
setup process. With this information, IterationIPC runner will be able
to receive the messages sent by those traffic generators and control
the main iteration loop.
The following example, using vFW as VNF and OpenStack as context, makes
use of this new runner implementation:
/samples/vnf_samples/nsut/vfw/
tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_iterationipc.yaml
JIRA: YARDSTICK-1127
Change-Id: I46b1368bc209680b88ff9fb5c3b9beadf6271ac9
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
"IterationIPC" is a runner that runs a configurable number of times before
it returns. Each iteration has a configurable timeout. The loop control
depends on the feedback received from the running VNFs. The context PIDs
from the VNFs to listen the messages from are given in the scenario
"setup" method.
The MQ consumer, "RunnerIterationIPCConsumer", is subscribed to messages
sent to topic "messaging.TOPIC_TG". The endpoints are defined in the
class "RunnerIterationIPCEndpoint". Three are implemented:
"messaging.TG_METHOD_STARTED", "messaging.TG_METHOD_FINISHED" and
"messaging.TG_METHOD_ITERATION".
JIRA: YARDSTICK-1127
Change-Id: I4b2f11a15ef41e6f3c70bd64188d5c7fbcdb7eed
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1257
Change-Id: I6733bd49ac91985e8f3d7722e6990e8733bb430e
Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
|
|
JIRA: YARDSTICK-1265
Change-Id: Ic2813dca7fc9a3230632f6e8bd75aeacc7e951b0
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
|
|
JIRA: YARDSTICK-1221
In order to increase accuracy of result the following are done :-
- Improve Measurement Accuracy (YARDSTICK-1212)
- Improve Sampling Interval (YARDSTICK-1219)
- Allow 4 PROX ports to be read simultaneously (YARDSTICK-1220)
This change does the following :-
- Stores LINE Rate statistics of Sample
- Requires a confirmation retry before deciding to increase or
decrease this is configurable.
- Allows the user to disable Sampling or specify a sample interval
- Added Code Coverage of ProxDurationRunner based on YARDSTICK-1199
Change-Id: I27242ac1849c9a2712866385b5fbc05977c71516
Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
|
|
|
|
|
|
JIRA: YARDSTICK-1255
Change-Id: I446d715dc6cf716a4fcbc1b809c1b1d6303071e0
Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
|
|
|
|
It happens in Nokia SUT when running in the Plugfest. The problem happens when
the start_process start to recover the killed process (like nova-api), but the
self-cured mechanism already recovered. And somehow it lead to a conflict and
has problems.
So the recover of the HA attack-recover should be improved to only recover it
when it needs to.
JIRA: YARDSTICK-1222
Change-Id: I1acb5a7d59d6fe4e0de0b0c5942fa89e051dd1ff
Signed-off-by: rexlee8776 <limingjiang@huawei.com>
|
|
|
|
PktgenDPDKLatency.run will raise a RuntimeError if a remote command
fails. This commit makes it use the already existing exception raising
mechanism in yardstick's ssh client.
JIRA: YARDSTICK-1166
Change-Id: I3a3c7691399044b174f5d040c015c9b907b2fe5d
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
Some remote commands in Pktgen are executed without checking the exit
status. This patch makes all remote commands check exit value, and
removes unused variables that are captured from remote command
executions.
JIRA: YARDSTICK-1166
Change-Id: I42a667ebd22d086887d61e1671bc569b03c59d33
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
The TRex RFC2455 traffic profile configures the duration of the traffic
injection. Once the traffic is started, the traffic profile should poll
the traffic injector client for the injection status. When the injection
is finished, the traffic execution should end.
Instead of this, the traffic profile waits a fixed time (using time.sleep
method) and then stops the traffic. This approach is not accurate and may
cause shorter injection periods.
JIRA: YARDSTICK-1197
Change-Id: I5090df81ef4ec7945ff6c1aff070656b48e0fe77
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Add "duration" parameter to test case definition, in scenario:options
section. This parameter will be rendered in the traffic profile.
If the parameter is not present in the test case scenario options, the
default time written in the traffic profile options will be 30 seconds
(TrafficProfile.DEFAULT_DURATION = 30). If the traffic profile
injection time is not defined, the default injection time will be 30
seconds.
testcase:scenario:options:duration (default = 30)
render --> traffic_profile:duration
parse --> TrafficProfile.duration (default = 30)
Target traffic profiles (RFC2544):
- RFC2544Profile
- IXIARFC2544Profile
JIRA: YARDSTICK-1194
Change-Id: I968922e6bb882d7ee15aa1c4db4037face7a3492
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
This commit converts Python assertions to a custom exception in all
places where SLA validation is checked with an assertion.
This commit also fixes all emerged pylint errors.
JIRA: YARDSTICK-966
Change-Id: If771ed03b2cbc0a43a57fcfb9293f18740b3ff80
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
|
|
Add a new Kubernetes resource kind: "Network" [1] [2]
Kubernetes network plugins (alpha definition): [3]
Network definition example in Kubernetes:
apiVersion: "kubernetes.com/v1"
kind: Network
metadata:
name: flannel
plugin: flannel
args: '[
{delegate": {"isDefaultGateway": true}}
]'
Proposed Kubernetes context network definition:
context:
networks:
- name: flannel
plugin: flannel
args: (string)
- name: sriov_upload
plugin: sriov
args: (string)
[1]https://builders.intel.com/docs/networkbuilders/multiple-network-interfaces-in-kubernetes-application-note.pdf
[2]http://cdn.opensourcecloud.cn/zt/k8s/01.pdf
[3]https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/
JIRA: YARDSTICK-1160
Change-Id: I71a49ac14e3d28ded91d2ed3cd9cc527e40303f7
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Custom resource definition example in Kubernetes:
apiVersion: "apiextensions.k8s.io/v1beta"
kind: CustomResourceDefinition
metadata:
name: networks.kubernetes.com
spec:
group: kubernetes.com
version: v1
scope: Namespaced
names:
plural: networks
singular: network
kind: Network
Proposed Kubernetes context network definition:
context:
custom_resources:
- name: network # name of the resource (singular)
version: v1 # optional, "v1" by default
scope: Namespaced # optional, "Namespaced" by default
From this definition, we will extract the Kubernetes parameters:
- metadata.name: custom_resources.name + "s" + context_name + ".com"
- spec.group: context_name + ".com"
- spec.scope: custom_resources.scope
- spec.version: custom_resources.version
- spec.names.plural: custom_resources.name + "s"
- spec.names.singular: custom_resources.name
- spec.names.kind: custom_resources.name with first capital letter
[1] https://kubernetes.io/docs/concepts/api-extension/custom-resources/
JIRA: YARDSTICK-1163
Change-Id: If8980dc3f6ddf9c6949bf15be8011aa98482ddc9
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
This new parameter, "volumes", will allow the user to automatically create
new volumes. Example of Kubernetes context definition:
context:
type: Kubernetes
servers:
host:
image: ...
commands: ...
volumes:
- name: volume1 # mandatory
<volume type definition> # mandatory
The volume type and the definition must be one of the supported ones in
Kubernetes [1].
[1] https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes
JIRA: YARDSTICK-1152
Change-Id: I44a91c605f047de4f286407e28fb5aa2e921b00a
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
'YARDSTICK-1215', 'YARDSTICK-1214'
* changes:
Move IncorrectConfig, IncorrectSetup and IncorrectNodeSetup to exceptions
Move ErrorClass definition to exceptions module
Convert SSH custom exceptions to Yardstick exceptions
Remove AnsibleCommon class method mock
|