Beispiel #1
0
"""Module containing action to create a nova server."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.neutron.network')


def create(clients, context, name='test network', project_id=None):
    """Create a network

    Sets context['network_id']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Name of the new network
    :type name: String
    :param project_id: Optional id of another tenant/project
    :type project_id: String
    """
    logger.info("Taking action network.create {}.".format(name))
    neutron = clients.get_neutron()
    body = {"network": {"name": name}}
    if project_id is not None:
        body['network']['tenant_id'] = project_id

    resp = neutron.create_network(body=body)
    network = resp['network']
    context['network_id'] = network['id']
    context.setdefault('stack', []).append({'network_id': network['id']})
Beispiel #2
0
"""Module containing actions to manage keystone projects."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.keystone.project')


def create(clients, context, name="test_project", domain='Default'):
    """Create a new keystone project

    Sets context['project']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Name for the new project
    :type name: String
    :param domain: The domain in which to create the project
    :type domain: String
    """

    logger.info("Taking action project.create {}.".format(name))
    keystone = clients.get_keystone()
    project = keystone.projects.create(name, domain)
    context.update({'project': project})


def delete(clients, context):
    """Delete an existing keystone project

    Uses context['project']
Beispiel #3
0
from roletester.actions.nova import server_create
from roletester.actions.nova import server_wait_for_status
# from roletester.exc import CinderUnauthorized
from roletester.exc import KeystoneUnauthorized
from roletester.exc import CinderForbidden
from roletester.exc import GlanceForbidden
from roletester.scenario import ScenarioFactory as Factory
from roletester.utils import randomname
from roletester.actions.neutron import network_create
from roletester.actions.neutron import port_create
from roletester.actions.neutron import subnet_create


from roletester.log import logging

logger = logging.getLogger("roletester.cinder")


class SampleFactory(Factory):

    _ACTIONS = [
        network_create,
        subnet_create,
        volume_create,
        volume_wait_for_status,
        volume_show,
        volume_update,
        volume_create_image,
        image_wait_for_status,
        image_create,
        image_wait_for_status,
Beispiel #4
0
"""Module containing action to create a nova server."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.neutron.subnet')


def create(clients, context,
           name="test_subnet",
           ip_version=4,
           cidr="11.10.10.0/24"):
    """Create a subnet

    Uses context['network_id']
    Sets context['subnet_id']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Name of the new subnet
    :type name: String
    :param ipversion: IPVersion of the subnet
    :type iperverion: String|Integer
    :param cidr: Cidr of the subnet
    :type cidr: String
    """
    network_id = context['network_id']
    logger.info("Taking action subnet.create {}.".format(name))
    neutron = clients.get_neutron()
    body = {
        "subnet": {
Beispiel #5
0
import unittest
from roletester.garbage import Collector as GC
from roletester.keystone_manager import KeystoneManager as KM
from roletester.log import logging

logger = logging.getLogger('roletester.base')


class Base(unittest.TestCase):
    """Base test class.

    Actual role test classes should subclass this this test class.
    """

    def setUp(self):
        """Called before each test method."""

        # Pass this context to scenraio.run()
        self.context = {}

        # Keystone manage - use this for test credentials
        self.km = KM()

        # Set up the garbage collector
        # admin = self.km.find_user_credentials('Default', 'admin', 'admin')
        print "Garbage user:"******"""Called after each test method."""
from base import Base as BaseTestCase
from roletester.actions.glance import image_create
from roletester.actions.glance import image_show
from roletester.actions.glance import image_update
from roletester.actions.glance import image_delete
from roletester.actions.glance import image_wait_for_status
from roletester.exc import KeystoneUnauthorized
from roletester.scenario import ScenarioFactory as Factory
from roletester.utils import randomname


from roletester.log import logging

logger = logging.getLogger("roletester.glance")


class SampleFactory(Factory):

    _ACTIONS = [
        image_create,
        image_wait_for_status,
        image_show,
        image_update,
        image_delete
    ]

    IMAGE_CREATE = 0
    IMAGE_WAIT = 1
    IMAGE_SHOW = 2
    IMAGE_UPDATE = 3
    IMAGE_DELETE = 4
Beispiel #7
0
"""Module containing actions to manage swift objects."""
from roletester.log import logging
import copy

logger = logging.getLogger('roletester.actions.swift.swift_object')


def put(clients, context, obj_name="test_object", obj_contents=""):
    """Create an object in a container

    Uses context['container_name']
    Sets context['object_name']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param obj_name: Name of the object to create.
    :type obj_name: String
    :param obj_contents: Contents of the object to create.
    :type obj_contents: String
    """
    container = context['container_name']

    logger.info("Taking action object.create {}.".format(obj_name))

    swift = clients.get_swift()
    swift.put_object(container, obj_name, obj_contents)

    context.update({"object_name": obj_name})
    context.setdefault('stack', []).append({
"""Module containing actions to manage swift containers."""
from roletester.log import logging
import copy

logger = logging.getLogger('roletester.actions.swift.swift_container')


def create(clients, context,
           name="test_container"):
    """Create a container

    Sets context['container_name']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Name of the new container
    :type name: String
    """
    logger.info("Taking action container.create {}.".format(name))
    swift = clients.get_swift()
    swift.put_container(name)
    context.update({'container_name': name})
    context.setdefault('stack', []).append({'container_name': name})


def delete(clients, context):
    """Deletes a container.

    Uses context['container_name']
Beispiel #9
0
from roletester.log import logging

logger = logging.getLogger('roletester.actions.nova.volume')


def attach(clients, context):
    """Creates an interface for a server and port.

    Uses context['server_id']
    Uses context['port_id']

    :param clients: Client manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    """
    port_id = context['port_id']
    server_id = context['server_id']
    logger.info("Taking action interface.attach")
    nova = clients.get_nova()

    nova.servers.interface_attach(server_id, port_id, None, None)


def detach(clients, context):
    """Detaches a an interface for server and port.

    Uses context['server_id']
    Uses context['port_id']

    :param clients: Client manager
Beispiel #10
0
"""Module containing actions to manage swift containers."""
from roletester.log import logging
from roletester.swift_error_decorator import swift_error
import copy

logger = logging.getLogger('roletester.actions.swift.swift_container')


@swift_error
def create(clients, context, name="test_container"):
    """Create a container

    Sets context['container_name']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Name of the new container
    :type name: String
    """
    logger.info("Taking action container.create {}.".format(name))
    swift = clients.get_swift()
    swift.put_container(name)
    context.update({'container_name': name})
    context.setdefault('stack', []).append({'container_name': name})


@swift_error
def delete(clients, context):
    """Deletes a container.
Beispiel #11
0
from roletester.actions.cinder import volume_wait_for_status
from roletester.actions.nova import server_create
from roletester.actions.nova import server_wait_for_status
# from roletester.exc import CinderUnauthorized
from roletester.exc import KeystoneUnauthorized
from roletester.exc import CinderForbidden
from roletester.exc import GlanceForbidden
from roletester.scenario import ScenarioFactory as Factory
from roletester.utils import randomname
from roletester.actions.neutron import network_create
from roletester.actions.neutron import port_create
from roletester.actions.neutron import subnet_create

from roletester.log import logging

logger = logging.getLogger("roletester.cinder")


class SampleFactory(Factory):

    _ACTIONS = [
        network_create, subnet_create, volume_create, volume_wait_for_status,
        volume_show, volume_update, volume_create_image, image_wait_for_status,
        image_create, image_wait_for_status, server_create,
        server_wait_for_status, volume_attach, volume_detach, volume_delete,
        image_delete
    ]

    NETWORK_CREATE = 0
    SUBNET_CREATE = 1
    VOLUME_CREATE = 2
Beispiel #12
0
from base import Base as BaseTestCase
from roletester.actions.nova import server_create
from roletester.actions.nova import server_delete
from roletester.actions.nova import server_show
from roletester.actions.nova import server_wait_for_status
from roletester.exc import NovaNotFound
from roletester.scenario import ScenarioFactory as Factory


from roletester.log import logging

logger = logging.getLogger("roletester.test_sample")


class SampleFactory(Factory):

    _ACTIONS = [
        server_create,
        server_wait_for_status,
        server_show,
        server_delete
    ]

    CREATE = 0
    WAIT = 1
    SHOW = 2
    DELETE = 3


class TestSample(BaseTestCase):
Beispiel #13
0
"""Module containing actions to manage keystone roles."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.keystone.role')


def _get_role_uuid_by_name(keystone, name):
    """Gets a role UUID when provided a role name.

    :param keystone: keystone client
    :type clients: roletester.clients.ClientManager
    :param name: The name of the role whos UUID should be returned
    :type name: String
    :returns: role UUID
    :rtype: String

    """

    role_UUID = None
    roles_list = keystone.roles.list()

    for role in roles_list:
        if role.name == name:
            role_UUID = role.id
            break

    if role_UUID is None:
        raise NameError('Specified role name not found')
    else:
        return role_UUID
Beispiel #14
0
"""Module containing action to create a nova server."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.neutron.router')


def add_interface(clients, context):
    """Adds a router interface to a subnet

    Uses context['subnet_id']
    Uses context['router_id']

    Sets context['router_subnet_mdx']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    """
    router_id = context['router_id']
    subnet_id = context['subnet_id']
    logger.info("Taking action router.add_interface {}".format(router_id))
    neutron = clients.get_neutron()
    body = {
        "subnet_id": subnet_id
    }
    neutron.add_interface_router(router_id, body=body)
    context['router_subnet_mdx'] = '|'.join([router_id, subnet_id])
    context_stack_entry = {'router_subnet_mdx': context['router_subnet_mdx']}
    context.setdefault('stack', []).append(context_stack_entry)
"""Module containing actions to manage swift objects."""
from roletester.log import logging
import copy

logger = logging.getLogger('roletester.actions.swift.swift_object')


def put(clients, context, obj_name="test_object", obj_contents=""):
    """Create an object in a container

    Uses context['container_name']
    Sets context['object_name']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param obj_name: Name of the object to create.
    :type obj_name: String
    :param obj_contents: Contents of the object to create.
    :type obj_contents: String
    """
    container = context['container_name']

    logger.info("Taking action object.create {}.".format(obj_name))

    swift = clients.get_swift()
    swift.put_object(container, obj_name, obj_contents)

    context.update({"object_name": obj_name})
    context.setdefault('stack', []).append({
Beispiel #16
0
import time
from roletester.exc import GlanceNotFound
from roletester.log import logging

logger = logging.getLogger('roletester.actions.glance.image')


def create(clients,
           context,
           image_file,
           visibility='private',
           name="glance test image",
           disk_format='qcow2',
           container_format='bare'):
    """Creates a glance image.

    Uses context['image_id']

    :param clients: Client manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference context object.
    :type context: Dict
    :param image_file: File path to image file you are uploading
    :type image_file: String
    :param visibility: Sets image availability. public | private
    :type visibility: Boolean
    :param name: Image name
    :type name: String
    :param disk_format: Glance disk file format
    :type disk_format: String
    :param container_format: Image container format
Beispiel #17
0
from base import Base as BaseTestCase
from roletester.actions.swift import swift_container_create
from roletester.actions.swift import swift_container_delete
from roletester.actions.swift import swift_container_add_metadata
from roletester.actions.swift import swift_object_put
from roletester.actions.swift import swift_object_delete
from roletester.actions.swift import swift_object_get
from roletester.exc import SwiftClientException
from roletester.scenario import ScenarioFactory as Factory
from roletester.utils import randomname
from roletester.exc import SwiftForbidden


from roletester.log import logging

logger = logging.getLogger("roletester.glance")


class SampleFactory(Factory):

    _ACTIONS = [
        swift_container_create,
        swift_container_add_metadata,
        swift_object_put,
        swift_object_get,
        swift_object_delete,
        swift_container_delete
    ]

    SWIFT_CONTAINER_CREATE = 0
    SWIFT_CONTAINER_ADD_METADATA = 1
Beispiel #18
0
import unittest
from roletester.garbage import Collector as GC
from roletester.keystone_manager import KeystoneManager as KM
from roletester.log import logging

logger = logging.getLogger('roletester.base')


class Base(unittest.TestCase):
    """Base test class.

    Actual role test classes should subclass this this test class.
    """
    def setUp(self):
        """Called before each test method."""

        # Pass this context to scenraio.run()
        self.context = {}

        # Keystone manage - use this for test credentials
        self.km = KM()

        # Set up the garbage collector
        # admin = self.km.find_user_credentials('Default', 'admin', 'admin')
        print "Garbage user:"******"""Called after each test method."""
from roletester.actions.neutron import security_group_delete
from roletester.actions.neutron import security_group_rule_delete
from roletester.actions.neutron import floatingip_associate
from roletester.actions.neutron import floatingip_create
from roletester.actions.neutron import floatingip_delete
from roletester.actions.neutron import floatingip_disassociate
from roletester.actions.neutron import floatingip_show
from roletester.actions.neutron import port_create
from roletester.exc import KeystoneUnauthorized
from neutronclient.common.exceptions import NetworkNotFoundClient
from roletester.scenario import ScenarioFactory as Factory
from roletester.utils import randomname

from roletester.log import logging

logger = logging.getLogger("roletester.neutron")


class SampleFactory(Factory):

    _ACTIONS = [
        image_create,
        image_wait_for_status,
        network_create,
        network_show,
        subnet_create,
        subnet_show,
        server_create,
        server_wait_for_status,
        security_group_create,
        security_group_show,
Beispiel #20
0
from roletester.actions.nova import server_show
from roletester.actions.nova import server_create_image
from roletester.actions.nova import server_wait_for_status
from roletester.actions.neutron import network_create
from roletester.actions.neutron import port_create
from roletester.actions.neutron import subnet_create
from roletester.exc import KeystoneUnauthorized
from roletester.exc import NeutronNotFound
from roletester.exc import NovaForbidden
from roletester.exc import GlanceForbidden
from roletester.scenario import ScenarioFactory as Factory
from roletester.utils import randomname

from roletester.log import logging

logger = logging.getLogger("roletester.nova")


class SampleFactory(Factory):

    _ACTIONS = [
        network_create,
        subnet_create,
        server_create,
        port_create,
        server_wait_for_status,
        server_show,
        interface_attach,
        interface_detach,
        server_update,
        server_create_image,
Beispiel #21
0
import pprint
from roletester.log import logging

logger = logging.getLogger('roletester.scenario')


class ExpectedException(Exception):
    def __init__(self, expected_exceptions):
        msg = 'Was expecting one of {} to be raised and none were raised.' \
            .format(', '.join([str(e) for e in expected_exceptions]))
        super(ExpectedException, self).__init__(msg)


class Scenario(list):
    def chain(self, action, clients, *args, **kwargs):
        """Add an action to the list of actions in a scenario.

        :param action: Action to take
        :type action: Function
        :param clients: Client manager
        :type clients: roletester.clients.ClientManager
        :param context: Context of the scenario. An object that is passed by
            reference and altered throughout the scenario.
        :type context: Dict | None
        :param expected_exceptions: List of expected exceptions
        :type expected_exceptions: List
        """
        expected_exceptions = None
        if 'expected_exceptions' in kwargs:
            expected_exceptions = kwargs.pop('expected_exceptions')
Beispiel #22
0
"""Module containing action to create a nova server."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.neutron.security_group_rule')


def create(clients,
           context,
           direction='ingress',
           ethertype='IPv4',
           protocol='tcp',
           port_range_min=80,
           port_range_max=80):
    """Create a security group.

    Uses context['security_group_id']
    Sets context['security_group_rule_id']

    :param clients: Client manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param direction:  Security group rule direction
    :type direction: String
    :param ethertype: Ethertype
    :type ethertype: String
    :param protocol: Protocol
    :type protocol: String
    :param port_range_min: Beginning of port range
    :type port_range_min: Integer
    :param port_range_max: End of port range
Beispiel #23
0
import time
from roletester.exc import NovaNotFound
from roletester.log import logging

logger = logging.getLogger('roletester.actions.nova.server')


def create(clients, context, name, flavor, image):
    """Creates server with random image and flavor.

    Sets context['server_id']

    :param clients: Client manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Server name
    :type name : String
    :param flavor: Flavor id
    :type flavor: Integer
    :param image: Image id
    :type image: String
    """
    logger.info("Taking action create")
    nova = clients.get_nova()
    flavor = nova.flavors.get(flavor)
    server = nova.servers.create(name, image, flavor)
    context.update({'server_id': server.id})
    context.setdefault('stack', []).append({'server_id': server.id})
    logger.info("Created server {}".format(name))
Beispiel #24
0
"""Module containing action to create a nova server."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.neutron.port')


def create(clients, context, name='test port'):
    """Create a port

    Uses context['network_id']
    Sets context['port_id']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Name of the new port
    :type name: String
    """
    network_id = context['network_id']
    logger.info("Taking action port.create_for_server{}.".format(name))
    neutron = clients.get_neutron()
    body = {"port": {"network_id": network_id, "name": name}}
    resp = neutron.create_port(body=body)
    port = resp['port']
    context['port_id'] = port['id']
    context.setdefault('stack', []).append({'port_id': port['id']})


def delete(clients, context):
    """Deletes a port.
Beispiel #25
0
"""Module containing action to create a nova server."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.neutron.port')


def create(clients, context, name='test port'):
    """Create a port

    Uses context['network_id']
    Sets context['port_id']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Name of the new port
    :type name: String
    """
    network_id = context['network_id']
    logger.info("Taking action port.create_for_server{}.".format(name))
    neutron = clients.get_neutron()
    body = {
        "port": {
            "network_id": network_id,
            "name": name
        }
    }
    resp = neutron.create_port(body=body)
    port = resp['port']
    context['port_id'] = port['id']
Beispiel #26
0
from roletester.actions.nova import server_create
from roletester.actions.nova import server_update
from roletester.actions.nova import server_delete
from roletester.actions.nova import server_show
from roletester.actions.nova import server_create_image
from roletester.actions.nova import server_wait_for_status
from roletester.actions.neutron import network_create
from roletester.actions.neutron import port_create
from roletester.actions.neutron import subnet_create
from roletester.exc import KeystoneUnauthorized
from roletester.scenario import ScenarioFactory as Factory
from roletester.utils import randomname

from roletester.log import logging

logger = logging.getLogger("roletester.nova")


class SampleFactory(Factory):

    _ACTIONS = [
        image_create,
        image_wait_for_status,
        server_create,
        server_wait_for_status,
        server_show,
        server_update,
        server_create_image,
        image_wait_for_status,
        image_delete,
        network_create,
Beispiel #27
0
"""Module containing actions to manage keystone roles."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.keystone.role')


def _get_role_uuid_by_name(keystone, name):
    """Gets a role UUID when provided a role name.

    :param keystone: keystone client
    :type clients: roletester.clients.ClientManager
    :param name: The name of the role whos UUID should be returned
    :type name: String
    :returns: role UUID
    :rtype: String

    """

    role_UUID = None
    roles_list = keystone.roles.list()

    for role in roles_list:
        if role.name == name:
            role_UUID = role.id
            break

    if role_UUID is None:
            raise NameError('Specified role name not found')
    else:
        return role_UUID
Beispiel #28
0
import time
import os
from roletester.exc import GlanceNotFound
from roletester.log import logging

logger = logging.getLogger('roletester.actions.glance.image')


def create(clients,
           context,
           image_file,
           visibility='public',
           name="glance test image",
           disk_format='qcow2',
           container_format='bare'):
    """Creates a glance image.

    Uses context['image_id']

    :param clients: Client manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference context object.
    :type context: Dict
    :param image_file: File path to image file you are uploading
    :type image_file: String
    :param visibility: Sets image availability. public | private
    :type visibility: Boolean
    :param name: Image name
    :type name: String
    :param disk_format: Glance disk file format
    :type disk_format: String
Beispiel #29
0
"""Module containing action to create a nova server."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.neutron.floatingip')


def associate(clients, context):
    """Assocuate a floating ip with a port.

    Uses context['floatingip_id']
    Uses context['port_id']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    """
    floatingip_id = context['floatingip_id']
    port_id = context['port_id']
    logger.info('Taking action floatingip.associate')
    neutron = clients.get_neutron()
    body = {
        'floatingip': {
            'port_id': port_id
        }
    }
    neutron.update_floatingip(floatingip_id, body=body)


def create(clients, context):
    """Create a floatingip
Beispiel #30
0
import pprint
from roletester.log import logging

logger = logging.getLogger('roletester.scenario')


class ExpectedException(Exception):
    def __init__(self, expected_exceptions):
        msg = 'Was expecting one of {} to be raised and none were raised.' \
            .format(', '.join([str(e) for e in expected_exceptions]))
        super(ExpectedException, self).__init__(msg)


class Scenario(list):

    def chain(self, action, clients, *args, **kwargs):
        """Add an action to the list of actions in a scenario.

        :param action: Action to take
        :type action: Function
        :param clients: Client manager
        :type clients: roletester.clients.ClientManager
        :param context: Context of the scenario. An object that is passed by
            reference and altered throughout the scenario.
        :type context: Dict | None
        :param expected_exceptions: List of expected exceptions
        :type expected_exceptions: List
        """
        expected_exceptions = None
        if 'expected_exceptions' in kwargs:
            expected_exceptions = kwargs.pop('expected_exceptions')
Beispiel #31
0
"""Module containing action to create a nova server."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.neutron.network')


def create(clients, context, name, project_id=None):
    """Create a network

    Sets context['network_id']

    :param clients: Client Manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Name of the new network
    :type name: String
    :param project_id: Optional id of another tenant/project
    :type project_id: String
    """
    logger.info("Taking action network.create {}.".format(name))
    neutron = clients.get_neutron()
    body = {
        "network": {
            "name": name
        }
    }
    if project_id is not None:
        body['network']['tenant_id'] = project_id

    resp = neutron.create_network(body=body)
Beispiel #32
0
import time
from roletester.exc import NovaNotFound
from roletester.log import logging

logger = logging.getLogger('roletester.actions.nova.server')


def create(clients,
           context,
           name='nova test instance',
           flavor=None,
           image=None):
    """Creates server with random image and flavor.

    Sets context['server_id']

    :param clients: Client manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param name: Server name
    :type name : String
    :param flavor: Flavor id
    :type flavor: Integer
    :param image: Image id
    :type image: String
    """
    nova = clients.get_nova()
    if flavor is None:
        flavor = nova.flavors.list()[0].id
    else:
"""Module containing action to create a nova server."""
from roletester.log import logging

logger = logging.getLogger('roletester.actions.neutron.security_group_rule')


def create(clients, context,
           direction='ingress',
           ethertype='IPv4',
           protocol='tcp',
           port_range_min=80,
           port_range_max=80):
    """Create a security group.

    Uses context['security_group_id']
    Sets context['security_group_rule_id']

    :param clients: Client manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param direction:  Security group rule direction
    :type direction: String
    :param ethertype: Ethertype
    :type ethertype: String
    :param protocol: Protocol
    :type protocol: String
    :param port_range_min: Beginning of port range
    :type port_range_min: Integer
    :param port_range_max: End of port range
    :type port_range_max: Integer
Beispiel #34
0
import time
import utils
from roletester.exc import CinderNotFound
from roletester.log import logging

logger = logging.getLogger('roletester.actions.cinder.volume')


def create(clients, context, size=1):
    """Creates cinder volume.

    :param clients: Client manager
    :type clients: roletester.clients.ClientManager
    :param context: Pass by reference object
    :type context: Dict
    :param size: Volume size in GB
    :type size: int
    """
    logger.info("Taking action create")
    cinder = clients.get_cinder()
    name = utils.randomname(prefix='random-volume')
    meta = {'app': 'roletester'}
    volume = cinder.volumes.create(name=name, size=size, metadata=meta)
    context.update({'volume_id': volume.id})
    context.setdefault('stack', []).append({'volume_id': volume.id})
    logger.info("Created volume {0} with metadata {1}"
                .format(volume.name, volume.metadata))


def delete(clients, context):
    """Deletes volume.
Beispiel #35
0
from base import Base as BaseTestCase
from roletester.actions.nova import server_create
from roletester.actions.nova import server_delete
from roletester.actions.nova import server_show
from roletester.actions.nova import server_wait_for_status
from roletester.exc import NovaNotFound
from roletester.scenario import ScenarioFactory as Factory

from roletester.log import logging

logger = logging.getLogger("roletester.test_sample")


class SampleFactory(Factory):

    _ACTIONS = [
        server_create, server_wait_for_status, server_show, server_delete
    ]

    CREATE = 0
    WAIT = 1
    SHOW = 2
    DELETE = 3


class TestSample(BaseTestCase):

    name = 'scratch'
    flavor = '1'
    image = '94f3805c-f59c-4dca-9cfe-40edf001c256'