Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Allow yardstick to update IP/MAX of Net traffic
- Implemented functionality for updating traffics IP/MAC address
in ixloadconfiguration.
- Extended http_ixload.py with functions for update IP/MAC
address of netTraffic.
- In HTTP-vFW_IPv4_2Ports_Concurrency.rxf changed name's of
networks from "client network" to "uplink_0 and the same for
server
JIRA: YARDSTICK-1418
Change-Id: I28ef68b77466fff15af589954e3ef63e8099428f
Signed-off-by: Myron Sosyak <myronx.sosyak@intel.com>
Signed-off-by: Taras Chornyi <tarasx.chornyi@intel.com>
|
|
Class "LandslideResourceHelper" provides API for operations needed
- to configure Landslide test session
- manage test session execution (start/stop/abort)
- collect measurements during test run
This helper class API is responsible to for configure Landslide test runs:
- create test user
- create test servers (for emulation of specific vEPC blocks)
- create SUTs (actual tested VNFs performing specific vEPC roles)
- create test session (contains actual test cases)
- create DMFs (pre-defined traffic flows in traffic profile)
- operate traffic run execution (start, stop, abort)
- monitor test run status
- collect KPIs on TG side
Some of these features use Landslide REST API.
Other ones use Landslide TCL API.
JIRA: YARDSTICK-1356
Change-Id: I8fc8a7d85301121da465d054b8d38ae09a541c36
Signed-off-by: Orest Voznyy <orestx.voznyy@intel.com>
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
Signed-off-by: Orest Voznyy <orestx.voznyy@intel.com>
|
|
Add class "LandslideTclClient" which holds TCL calls wrappers for
operations on the LandSlide TG.
It also introduces several new parameters in
- test case YAML file structure:
* session_profile: YAML file holding a template of Landslide test
session for specific vEPC test scenario
* dmf: test case options member holding traffic flow specific parameters
for designated test scenario, that override ones in traffic_profile
YAML file
* test_cases: test case options member holding parameters specific to
designated vEPC test case, overriding those in session_profile
template file
- pod YAML file structure:
* tas_manager: holds parameters used to connect to Spirent Landslide TAS
* config: list of entries describing Landslide test servers access,
their network interfaces configuration, information of vEPC elements
emulated by specific test server
Class "LandslideProfile" implements access to traffic profile template
from "LandslideResourceHelper" class.
JIRA: YARDSTICK-1356
Change-Id: Ia6428072b1e72025be17c94e5141bd23f7993247
Signed-off-by: Orest Voznyy <orestx.voznyy@intel.com>
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
Signed-off-by: Orest Voznyy <orestx.voznyy@intel.com>
|
|
JIRA: YARDSTICK-1385
Change-Id: Id50c393da7ded4b3c8e127f7d7a6501832a68446
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
- 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>
|
|
This modification utilises a custom exception to be raised if an invalid
mac address is passed to the function "mac_address_to_hex_list".
JIRA: YARDSTICK-966
Change-Id: Ic2940276f500e9710c54963a445a137e73bd6b25
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
|
|
AclUknownActionTemplate -> AclUnknownActionTemplate
JIRA: YARDSTICK-1334
Change-Id: I796e080078c657c5e0e59144d24ec797e244a8f7
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
|
|
Add DPDK pktgen traffic generator. This traffic generator is designed
only to work in with a MQ aware runner. Implements two consumer methods:
- runner_method_start_iteration
- runner_method_stop_iteration
"run_traffic" method will only initialize the traffic profile object.
This traffic generator uses a socket port (LUA port, default 22022) to
send the command messages.
Link: http://pktgen-dpdk.readthedocs.io/en/latest/index.html
JIRA: YARDSTICK-1344
Change-Id: I89bba0f462fa1c22b33f1253f67f7c41e6e721a5
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Accept line rate percentage or fps a initial rate for IXIA RFC2544 traffic profile:
traffic_profile:
traffic_type : IXIARFC2544Profile
frame_rate : 100%
traffic_profile:
traffic_type : IXIARFC2544Profile
frame_rate : 5000fps
JIRA: YARDSTICK-1336
Change-Id: I85b3dd0daf563bb7af098a3aa5bb872961fb009b
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Accept strings and list of strings as "args" and "commands"
in a Kubernetes container.
JIRA: YARDSTICK-1329
Change-Id: I56470741072fb7f9a62d695c51fcb0cc3f3ff1b9
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
The configuration parameter "imagePullPolicy" defines how Kubernetes
retrieves de image. By default, Kubernetes will always try to pull the
latest image from the repository [1]. Three possible arguments are accepted:
- Always
- IfNotPresent
- Never
Example of Kubernetes pod definition:
containers:
- name: vcmts-pktgen-pod-0
image: openretriever/yardstick
imagePullPolicy: IfNotPresent
Example of Yardstick definition:
context:
name: k8syardstick
type: Kubernetesservers:
vnf:
image: openretriever/yardstick
imagePullPolicy: IfNotPresent
[1] https://kubernetes.io/docs/concepts/containers/images/
JIRA: YARDSTICK-1328
Change-Id: I83bfb01670eef22218b1affd7d37af14e32a622e
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
In Kubernetes context, service NodePort can contain more than one port
defined. Actually, by default port SSH (22) is always created. If more
than one port is defined in the service template, 'name' parameter is
mandatory.
Names must be lowercase, containing alphanumeric characters or '-'.
Verification regex used by Kubernetes: [a-z0-9]([-a-z0-9]*[a-z0-9])?
JIRA: YARDSTICK-1324
Change-Id: I82791761d8eae24196c2f16aee9900af28d44c57
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>
|
|
This new parameter, "ports", will allow the user to
automatically to add port variables in a pod definition:
context:
type: Kubernetes
servers:
host:
image: ...
commands: ...
ports:
- containerPort: <port value> # Mandatory
hostIP: <host IP> # Optional
hostPort: <host port> # Optional
name: <port name> # Optional
protocol: <protocol name> # Optional
The port type and the definition must be one of the supported ones
in Kubernetes [1].
Container port definition, V1 API, Kubernetes Python library v6.0.0 [2]
[1] https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/
[2] https://github.com/kubernetes-client/python/blob/6.0.0/kubernetes/client/models/v1_container_port.py
JIRA: YARDSTICK-1183
Change-Id: I3673dbeec8d380cb2f8b1dacf6c25c7cdbc37e28
Signed-off-by: John O Loughlin <john.oloughlin@intel.com>
|
|
This new parameter, "restartPolicy", will allow define the restart policy per pod.
Example of yaml definition in Kubernetes:
apiVersion: v1
kind: Pod
metadata:
name: frontend
spec:
containers:
- name: db
...
restartPolicy: Always # Possible values: "Always", "OnFailure" and "Never"
Example of definition in a Yardstick context:
context:
type: Kubernetes
servers:
host:
containers:
- name: ...
restartPolicy: Always # Default value: "Always"
Restart policy [1].
[1] https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
JIRA: YARDSTICK-1175
Change-Id: Id4317b909f98422e89d6d4553e8cfb0e1f593355
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
|
|
|
|
|
|
"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-1255
Change-Id: I446d715dc6cf716a4fcbc1b809c1b1d6303071e0
Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
|
|
|
|
This patch allows user to configure ACL/vFW SampleVNF ACL
via configuration file provided in TC definition. The
Yardstick applies the rules to SampleVNF from specified config
file + rules generated by Yardstick (default rules).
The example of SampleVNF ACL CLI commands generated/applied
by Yardstick can be found at (using default ACL config file):
ACL VNF ACL CLI commands:
acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
http://paste.openstack.org/show/723303/
vFW VNF ACL CLI commands:
vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
http://paste.openstack.org/show/723304/
Change-Id: I76a630261a982083b628e3985fc3bec14ca495db
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@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>
|
|
This patch modifies the way the packet frame and the flow is configured
before the injection.
"IxNextgen.update_frame" modifies the L2 frame according to the
test case and setup the frame rate, frame size, traffic injection
duration and MAC addresses.
JIRA: YARDSTICK-1116
Change-Id: Ife08f15a4eda24d7835c92c4172b450854d112ee
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
|
|
JIRA: YARDSTICK-1218
Change-Id: I804065e9bce3e728f5bf9e756a78df8fd28f74ac
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1216
Change-Id: I82556e1d1b0c723221a58e188067cbce560b8338
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1215
Change-Id: I5ecfd3dccd91b07cd8de5309dfa1a372eff16ed0
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Remove get_image_id function.
Function delete_image now uses shade client.
JIRA: YARDSTICK-892
Change-Id: I6e8510dfa49aa14786ed7ac3382b85c4e699fb9e
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|
|
Function create_image now uses shade client.
JIRA: YARDSTICK-892
Change-Id: Ia41d9ce702a1f24031080f8a365c1b2bd9ac9faa
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|
|
1. fix safe_dump
2. fix pep8 problem, use flask_restapi custom error handling [1]
[1] https://flask-restful.readthedocs.io/en/latest/extending.html#custom-error-handlers
JIRA: YARDSTICK-1165
RestApi openrc dump clouds.yaml error
it now use yarml.dump, should be yaml.safe_dump.
dump would gererate !!python/unicode and cause error when upload openrc file in gui
Change-Id: Id3e85f7ba7d4967277ef79109b07d7552179e5db
Signed-off-by: rexlee8776 <limingjiang@huawei.com>
|
|
This feature will provide Kubernetes context the ability to handle the
context name inside the class itself, providing to the developer an
abstraction of the possible naming limitations in Kubernetes. E.g.:
"dot" character in Pod names is no allowed [1].
[1] https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter/issues/58
JIRA: YARDSTICK-1188
Change-Id: I82121f970b550170357a443b6340be7900602a57
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
Function detach volume now uses shade client.
JIRA: YARDSTICK-891
Change-Id: Ie437ccf1172cb82dc869963f0d62e31a5ab23ebb
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|
|
Function delete volume now uses shade client.
JIRA: YARDSTICK-891
Change-Id: I016e1d3bf5972879cad176b56c7282e35413945e
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|
|
Adds get_volume function.
Function create volume now uses shade client.
JIRA: YARDSTICK-891
Change-Id: I0b2fae5f2cf52eaf2e4a0062c858d49bc4ce9ccd
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|
|
The InfluxDB client needs first to retrieve which dispatchers
are available from "DEFAULT:dispatcher". This parameter accepts
comma separated values. "get_data_db_client" method needs to search
for "influxdb" in this string parameter.
JIRA: YARDSTICK-1136
Change-Id: I5efafcffbd3dbf906ca9bebd75b3717df8bbb75d
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
YARDSTICK-1112
Change-Id: Id30236e190bae9fb0f5b5ebd4c5e04798e4fd443
Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
|
|
Rename get_flavor_by_name with get_flavor.
Function get_flavor now uses shade client.
JIRA: YARDSTICK-1088
Change-Id: Ic82127e475baf39643be0a254b177f3058b85748
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|
|
Rename get_server_by_name with get_server.
Function get_server now uses shade client.
JIRA: YARDSTICK-1088
Change-Id: I69c59145cefdb565f3ece27baaaf932905e1b757
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|
|
|
|
Function attach_volume_to_server now uses shade client
instead of nova client.
JIRA: YARDSTICK-1088
Change-Id: Id00df672c2c195b5c338cbbc30ddf2742a4e4d29
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|