def test_retire_stack(provider, provisioning, create_template, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ set_default_view("Stacks", "Grid View") dialog_name, template = create_template item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template.template_name) catalog_item.create() stack_data = prepare_stack_data(provider, provisioning) service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) logger.info('Waiting for cfme provision request for service %s', item_name) row_description = item_name cells = {'Description': row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=2500, delay=20) assert row.last_message.text == 'Service Provisioned Successfully' stack = Stack(stack_data['stack_name']) stack.retire_stack() @request.addfinalizer def _cleanup_templates(): template.delete_all_templates() stack_data['vm_name'].delete_from_provider()
def test_retire_stack(setup_provider, provider, provisioning, dialog, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ set_default_view("Stacks", "Grid View") dialog_name, template = dialog method = METHOD_TORSO.replace('"Description" : "AWS', '"Description" : "Aamzon Web Services desc') template.create(method) template.create_service_dialog_from_template(dialog_name, template.template_name) item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template.template_name, provider_type=provider.name) catalog_item.create() stackname = "test-" + fauxfactory.gen_alphanumeric() stack_data = {'stack_name': stackname} service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) request.addfinalizer(lambda: template.delete_all_templates()) logger.info('Waiting for cfme provision request for service %s' % item_name) row_description = item_name cells = {'Description': row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=2500, delay=20) assert row.last_message.text == 'Service Provisioned Successfully' stack = Stack(stackname) stack.retire_stack()
def test_reconfigure_service(provider, provisioning, create_template, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name, template = create_template item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template.template_name) catalog_item.create() stack_data = prepare_stack_data(provider, provisioning) @request.addfinalizer def _cleanup_vms(): if provider.mgmt.stack_exist(stack_data['stack_name']): wait_for(lambda: provider.mgmt.delete_stack(stack_data['stack_name']), delay=10, num_sec=800, message="wait for stack delete") template.delete_all_templates() stack_data['vm_name'].delete_from_provider() service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) logger.info('Waiting for cfme provision request for service %s', item_name) row_description = item_name cells = {'Description': row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=2000, delay=20) assert row.last_message.text == 'Service Provisioned Successfully' myservice = MyService(catalog_item.name) myservice.reconfigure_service()
def test_remove_template_provisioning(provider, provisioning, create_template, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name, template = create_template item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem( item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template.template_name, ) catalog_item.create() stack_data = prepare_stack_data(provider, provisioning) service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) # This is part of test - remove template and see if provision fails , so not added as finalizer template.delete_all_templates() row_description = "Provisioning Service [{}] from [{}]".format(item_name, item_name) cells = {"Description": row_description} wait_for(lambda: requests.find_request(cells), num_sec=500, delay=20) row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=1000, delay=20) assert row.last_message.text == "Service_Template_Provisioning failed"
def test_remove_template_provisioning(setup_provider, provider, provisioning, dialog, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name, template = dialog method = METHOD_TORSO.replace('"Description" : "AWS', '"Description" : "Amzn Web Services') template.create(method) template.create_service_dialog_from_template(dialog_name, template.template_name) item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template.template_name, provider_type=provider.name) catalog_item.create() stackname = "test-" + fauxfactory.gen_alphanumeric() stack_data = {'stack_name': stackname} service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) # This is part of test - remove template and see if provision fails , so not added as finalizer template.delete_all_templates() row_description = 'Provisioning Service [{}] from [{}]'.format(item_name, item_name) cells = {'Description': row_description} wait_for(lambda: requests.find_request(cells), num_sec=500, delay=20) row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=1000, delay=20) assert row.last_message.text == 'Service_Template_Provisioning failed'
def test_remove_template_provisioning(provider, create_template, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name, template = create_template item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template.template_name, provider_type=provider.name) catalog_item.create() stackname = "test_" + fauxfactory.gen_alphanumeric() stack_data = {'stack_name': stackname} service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) # This is part of test - remove template and see if provision fails , so not added as finalizer template.delete_all_templates() row_description = 'Provisioning Service [{}] from [{}]'.format( item_name, item_name) cells = {'Description': row_description} wait_for(lambda: requests.find_request(cells), num_sec=500, delay=20) row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=1000, delay=20) assert row.last_message.text == 'Service_Template_Provisioning failed'
def test_retire_stack(provider, provisioning, catalog, catalog_item, request): """Tests stack provisioning Metadata: test_flag: provision """ catalog_item, item_name = catalog_item DefaultView.set_default_view("Stacks", "Grid View") stack_data = prepare_stack_data(provider, provisioning) service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) logger.info('Waiting for cfme provision request for service %s', item_name) row_description = item_name cells = {'Description': row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=2500, delay=20) assert provision_success_message(catalog_item.name) in row.last_message.text stack = Stack(stack_data['stack_name']) stack.wait_for_appear() stack.retire_stack() @request.addfinalizer def _cleanup_templates(): try: stack_data['vm_name'].delete_from_provider() except Exception as ex: logger.warning('Exception while checking/deleting stack, continuing: {}' .format(ex.message)) pass
def test_reconfigure_service(provider, provisioning, catalog, catalog_item, request): """Tests stack provisioning Metadata: test_flag: provision """ catalog_item, item_name = catalog_item stack_data = prepare_stack_data(provider, provisioning) @request.addfinalizer def _cleanup_vms(): try: if provider.mgmt.stack_exist(stack_data['stack_name']): wait_for(lambda: provider.mgmt.delete_stack(stack_data['stack_name']), delay=10, num_sec=800, message="wait for stack delete") stack_data['vm_name'].delete_from_provider() except Exception as ex: logger.warning('Exception while checking/deleting stack, continuing: {}' .format(ex.message)) pass service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) logger.info('Waiting for cfme provision request for service %s', item_name) row_description = item_name cells = {'Description': row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=2000, delay=20) assert provision_success_message(catalog_item.name) in row.last_message.text myservice = MyService(catalog_item.name) myservice.reconfigure_service()
def test_provision_stack(setup_provider, provider, provisioning, dialog, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name, template_name = dialog item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template_name, provider_type=provider.name) catalog_item.create() stackname = "test-" + fauxfactory.gen_alphanumeric() if provider.type == 'ec2': stack_data = { 'stack_name': stackname, 'key_name': provisioning['stack_provisioning']['key_name'], 'db_user': provisioning['stack_provisioning']['db_user'], 'db_password': provisioning['stack_provisioning']['db_password'], 'db_root_password': provisioning['stack_provisioning']['db_root_password'], 'select_instance_type': provisioning['stack_provisioning']['instance_type'], } elif provider.type == 'openstack': stack_data = { 'stack_name': stackname, } @request.addfinalizer def _cleanup_vms(): if provider.mgmt.stack_exist(stackname): provider.mgmt.delete_stack(stackname) service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) flash.assert_no_errors() logger.info('Waiting for cfme provision request for service %s' % item_name) row_description = item_name cells = {'Description': row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=2500, delay=20) assert row.last_message.text == 'Service Provisioned Successfully'
def test_reconfigure_service(setup_provider, provider, provisioning, dialog, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name, template = dialog method = METHOD_TORSO.replace('"Description" : "AWS', '"Description" : "Amzn Web') template.create(method) template.create_service_dialog_from_template(dialog_name, template.template_name) item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template.template_name, provider_type=provider.name) catalog_item.create() stackname = "test-" + fauxfactory.gen_alphanumeric() stack_data = {'stack_name': stackname} @request.addfinalizer def _cleanup_vms(): if provider.mgmt.stack_exist(stackname): wait_for(lambda: provider.mgmt.delete_stack(stackname), delay=10, num_sec=800, message="wait for stack delete") template.delete_all_templates() service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) logger.info('Waiting for cfme provision request for service %s', item_name) row_description = item_name cells = {'Description': row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=2000, delay=20) assert row.last_message.text == 'Service Provisioned Successfully' myservice = MyService(catalog_item.name) myservice.reconfigure_service()
def test_retire_stack(setup_provider, provider, provisioning, dialog, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ set_default_view("Stacks", "Grid View") dialog_name, template = dialog method = METHOD_TORSO.replace('"Description" : "AWS', '"Description" : "Amzn Web Services desc') template.create(method) template.create_service_dialog_from_template(dialog_name, template.template_name) item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template.template_name, provider_type=provider.name) catalog_item.create() stackname = "test-" + fauxfactory.gen_alphanumeric() stack_data = {'stack_name': stackname} service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) request.addfinalizer(lambda: template.delete_all_templates()) logger.info('Waiting for cfme provision request for service %s', item_name) row_description = item_name cells = {'Description': row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=2500, delay=20) assert row.last_message.text == 'Service Provisioned Successfully' stack = Stack(stackname) stack.retire_stack() @request.addfinalizer def _cleanup_templates(): template.delete_all_templates()
def test_remove_template_provisioning(provider, provisioning, catalog, catalog_item, template): """Tests stack provisioning Metadata: test_flag: provision """ catalog_item, item_name = catalog_item stack_data = prepare_stack_data(provider, provisioning) service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) # This is part of test - remove template and see if provision fails , so not added as finalizer template.delete() row_description = 'Provisioning Service [{}] from [{}]'.format(item_name, item_name) cells = {'Description': row_description} wait_for(lambda: requests.find_request(cells), num_sec=500, delay=20) row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=1000, delay=20) assert row.last_message.text == 'Service_Template_Provisioning failed'
def test_reconfigure_service(setup_provider, provider, dialog, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name, template = dialog method = METHOD_TORSO.replace('"Description" : "AWS', '"Description" : "Amzn Web') # template.create(method) try: template.create(method) except FlashMessageException: method = METHOD_TORSO.replace('"Description" : "AWS', '"Description" : "Amazon Web') template.create(method) template.create_service_dialog_from_template(dialog_name, template.template_name) item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template.template_name, provider_type=provider.name) catalog_item.create() stackname = "test-" + fauxfactory.gen_alphanumeric() stack_data = {'stack_name': stackname} @request.addfinalizer def _cleanup_vms(): if provider.mgmt.stack_exist(stackname): wait_for(lambda: provider.mgmt.delete_stack(stackname), delay=10, num_sec=800, message="wait for stack delete") template.delete_all_templates() service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) logger.info('Waiting for cfme provision request for service %s', item_name) row_description = item_name cells = {'Description': row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=2000, delay=20) assert row.last_message.text == 'Service Provisioned Successfully' myservice = MyService(catalog_item.name) myservice.reconfigure_service()
def test_remove_template_provisioning(setup_provider, provider, provisioning, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name_new = "dialog_" + fauxfactory.gen_alphanumeric() template_type = provisioning['stack_provisioning']['template_type'] template = OrchestrationTemplate( template_type=template_type, template_name=fauxfactory.gen_alphanumeric()) template.create(METHOD_TORSO) template.create_service_dialog_from_template(dialog_name_new, template.template_name) item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name_new, orch_template=template.template_name, provider_type=provider.name) catalog_item.create() if provider.type == 'ec2': stack_data = {'stack_name': "stack" + fauxfactory.gen_alphanumeric()} elif provider.type == 'openstack': stack_data = {'stack_name': "stack" + fauxfactory.gen_alphanumeric()} service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) flash.assert_no_errors() template.delete() row_description = 'Provisioning Service [{}] from [{}]'.format( item_name, item_name) cells = {'Description': row_description} wait_for(lambda: requests.go_to_request(cells), num_sec=500, delay=20) row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=1000, delay=20) assert row.last_message.text == 'Service_Template_Provisioning failed'
def test_reconfigure_service( provider_init, provider_key, provider_crud, provider_type, provisioning, dialog, catalog, request ): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name, template_name = dialog item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem( item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name, orch_template=template_name, provider_type=provider_crud.name, ) catalog_item.create() if provider_type == "ec2": stack_data = { "stack_name": fauxfactory.gen_alphanumeric(), "key_name": provisioning["stack_provisioning"]["key_name"], "db_user": provisioning["stack_provisioning"]["db_user"], "db_password": provisioning["stack_provisioning"]["db_password"], "db_root_password": provisioning["stack_provisioning"]["db_root_password"], "select_instance_type": provisioning["stack_provisioning"]["instance_type"], } elif provider_type == "openstack": stack_data = {"stack_name": fauxfactory.gen_alphanumeric()} service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) flash.assert_no_errors() logger.info("Waiting for cfme provision request for service %s" % item_name) row_description = item_name cells = {"Description": row_description} row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=1000, delay=20) assert row.last_message.text == "Service Provisioned Successfully" myservice = MyService(catalog_item.name) myservice.reconfigure_service()
def test_remove_template_provisioning(setup_provider, provider, provisioning, catalog, request): """Tests stack provisioning Metadata: test_flag: provision """ dialog_name_new = "dialog_" + fauxfactory.gen_alphanumeric() template_type = provisioning['stack_provisioning']['template_type'] template = OrchestrationTemplate(template_type=template_type, template_name=fauxfactory.gen_alphanumeric()) template.create(METHOD_TORSO) template.create_service_dialog_from_template(dialog_name_new, template.template_name) item_name = fauxfactory.gen_alphanumeric() catalog_item = CatalogItem(item_type="Orchestration", name=item_name, description="my catalog", display_in=True, catalog=catalog.name, dialog=dialog_name_new, orch_template=template.template_name, provider_type=provider.name) catalog_item.create() if provider.type == 'ec2': stack_data = { 'stack_name': "stack" + fauxfactory.gen_alphanumeric() } elif provider.type == 'openstack': stack_data = { 'stack_name': "stack" + fauxfactory.gen_alphanumeric() } service_catalogs = ServiceCatalogs("service_name", stack_data) service_catalogs.order_stack_item(catalog.name, catalog_item) flash.assert_no_errors() template.delete() row_description = 'Provisioning Service [{}] from [{}]'.format(item_name, item_name) cells = {'Description': row_description} wait_for(lambda: requests.go_to_request(cells), num_sec=500, delay=20) row, __ = wait_for(requests.wait_for_request, [cells, True], fail_func=requests.reload, num_sec=1000, delay=20) assert row.last_message.text == 'Service_Template_Provisioning failed'