Files
deb-python-fuelclient/fuelclient/tests/utils/fake_node.py
Roman Prykhodchenko 6634f86989 Performance tests for handling nodes in Fuel Client
For performance testing all invotations to Nailgun
were mocked in order to only measure pure client's
performance.

The patch introduces the following tests for 100 nodes:

- list all nodes;
- assign nodes to an environment;
- list environment with pending nodes;
- upload network parameters to nodes.

Blueprint: 100-nodes-support
Change-Id: I849ecd17ba4a9a48b8d4e6dafa75b095ee919ce6
2014-11-17 17:53:26 +01:00

132 lines
5.7 KiB
Python

# -*- coding: utf-8 -*-
#
# Copyright 2014 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import random
from fuelclient import tests
def get_fake_node(cluster=None, hostname=None, node_id=None, cpu_model=None,
roles=None, mac=None, memory_b=None, os_platform=None,
status=None, node_name=None, group_id=None):
"""Creates a fake random node
Returns the serialized and parametrized representation of a dumped Fuel
environment. Represents the average amount of data.
"""
host_name = hostname or tests.utils.random_string(15, prefix='fake-node-')
return {"name": node_name or host_name,
"error_type": None,
"cluster": cluster or 1,
"id": node_id or random.randint(1, 10000),
"ip": "10.20.0.4",
"kernel_params": None,
"group_id": group_id or 1,
"mac": mac or "d6:11:3f:b0:f1:43",
"manufacturer": "VirtualBox",
"online": True,
"os_platform": os_platform or "centos",
"pending_addition": False,
"pending_deletion": False,
"pending_roles": [],
"platform_name": None,
"progress": 100,
"roles": roles or ["compute"],
"status": status or "ready",
"fqdn": "{hostname}.example.com".format(hostname=host_name),
"meta": {"cpu": {"real": 0,
"spec": [{"frequency": 2553,
"model": cpu_model or "Random CPU"}],
"total": 1},
"disks": [{"disk": "disk/by-path/pci:00:0d.0-scsi-2:0:0",
"extra": ["disk/by-id/scsi-SATA_VBOX_aef0bb5c",
"disk/by-id/ata-VBOX_HARDDISK_VB37"],
"model": "VBOX HARDDISK",
"name": "sdc",
"removable": "0",
"size": 68718428160},
{"disk": "disk/by-path/pci:0:0d.0-scsi-1:0:0:0",
"extra": ["disk/by-id/scsi-SATA_VBOX_30fbc3bb",
"disk/by-id/ata-VBOX_HARDD30fbc3bb"],
"model": "VBOX HARDDISK",
"name": "sdb",
"removable": "0",
"size": 68718428160},
{"disk": "disk/by-path/pci:00:d.0-scsi-0:0:0:0",
"extra": ["disk/by-id/scsi-SATA_VBOX-17e33653",
"disk/by-id/ata-VBOX_HARDD17e33653"],
"model": "VBOX HARDDISK",
"name": "sda",
"removable": "0",
"size": 68718428160}],
"interfaces": [{"name": "eth2",
"current_speed": 100,
"mac": "08:00:27:88:9C:46",
"max_speed": 100,
"state": "unknown"},
{"name": "eth1",
"current_speed": 100,
"mac": "08:00:27:24:BD:6D",
"max_speed": 100,
"state": "unknown"},
{"name": "eth0",
"current_speed": 100,
"mac": "08:00:27:C1:C5:72",
"max_speed": 100,
"state": "unknown"}],
"memory": {"total": memory_b or 1968627712},
"system": {"family": "Virtual Machine",
"fqdn": host_name,
"manufacturer": "VirtualBox",
"serial": "0",
"version": "1.2"}},
"network_data": [{"brd": "192.168.0.255",
"dev": "eth0",
"gateway": None,
"ip": "192.168.0.2/24",
"name": "management",
"netmask": "255.255.255.0",
"vlan": 101},
{"brd": "192.168.1.255",
"dev": "eth0",
"gateway": None,
"ip": "192.168.1.2/24",
"name": "storage",
"netmask": "255.255.255.0",
"vlan": 102},
{"brd": "172.16.0.255",
"dev": "eth1",
"gateway": "172.16.0.1",
"ip": "172.16.0.3/24",
"name": "public",
"netmask": "255.255.255.0",
"vlan": None},
{"dev": "eth0",
"name": "admin"}]}