コード例 #1
0
ファイル: network.py プロジェクト: chalupaul/roletester
"""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']})
コード例 #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']
コード例 #3
0
ファイル: cinder_tests.py プロジェクト: chalupaul/roletester
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,
コード例 #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": {
コード例 #5
0
ファイル: base.py プロジェクト: chalupaul/roletester
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."""
コード例 #6
0
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
コード例 #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({
コード例 #8
0
"""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']
コード例 #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
コード例 #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.
コード例 #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
コード例 #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):
コード例 #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
コード例 #14
0
ファイル: router.py プロジェクト: chalupaul/roletester
"""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)
コード例 #15
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({
コード例 #16
0
ファイル: image.py プロジェクト: absalon-james/roletester
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
コード例 #17
0
ファイル: swift_tests.py プロジェクト: chalupaul/roletester
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
コード例 #18
0
ファイル: base.py プロジェクト: bunchc/roletester
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."""
コード例 #19
0
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,
コード例 #20
0
ファイル: nova_tests.py プロジェクト: chalupaul/roletester
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,
コード例 #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')
コード例 #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
コード例 #23
0
ファイル: server.py プロジェクト: cfarquhar/roletester
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))
コード例 #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.
コード例 #25
0
ファイル: port.py プロジェクト: absalon-james/roletester
"""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']
コード例 #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,
コード例 #27
0
ファイル: role.py プロジェクト: chalupaul/roletester
"""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
コード例 #28
0
ファイル: image.py プロジェクト: chalupaul/roletester
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
コード例 #29
0
ファイル: floatingip.py プロジェクト: chalupaul/roletester
"""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
コード例 #30
0
ファイル: scenario.py プロジェクト: chalupaul/roletester
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')
コード例 #31
0
ファイル: network.py プロジェクト: cfarquhar/roletester
"""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)
コード例 #32
0
ファイル: server.py プロジェクト: chalupaul/roletester
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:
コード例 #33
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
    :type port_range_max: Integer
コード例 #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.
コード例 #35
0
ファイル: test_sample.py プロジェクト: chalupaul/roletester
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'