Merge "Add deployment murano tempest test"
This commit is contained in:
commit
93a58e8b29
@ -0,0 +1,251 @@
|
|||||||
|
# Copyright (c) 2016 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 os
|
||||||
|
import testtools
|
||||||
|
|
||||||
|
from murano_tempest_tests.tests.scenario.application_catalog import base
|
||||||
|
from murano_tempest_tests import utils
|
||||||
|
|
||||||
|
from tempest import config
|
||||||
|
|
||||||
|
CONF = config.CONF
|
||||||
|
|
||||||
|
|
||||||
|
class TestMuranoDeployment(base.BaseApplicationCatalogScenarioTest):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def resource_setup(cls):
|
||||||
|
if not CONF.application_catalog.deployment_tests:
|
||||||
|
msg = "Application Catalog Scenario Deployment Tests will be " \
|
||||||
|
"skipped."
|
||||||
|
raise cls.skipException(msg)
|
||||||
|
super(TestMuranoDeployment, cls).resource_setup()
|
||||||
|
|
||||||
|
cls.abs_archive_path = [None]*3
|
||||||
|
cls.packages = [None]*3
|
||||||
|
|
||||||
|
application_name = utils.generate_name('Apache')
|
||||||
|
cls.abs_archive_path[0], dir_with_archive, archive_name = \
|
||||||
|
utils.prepare_package(
|
||||||
|
application_name,
|
||||||
|
app='io.murano.apps.test.ApacheHttpServerCustom',
|
||||||
|
manifest_required=False)
|
||||||
|
|
||||||
|
if CONF.application_catalog.glare_backend:
|
||||||
|
cls.client = cls.artifacts_client
|
||||||
|
else:
|
||||||
|
cls.client = cls.application_catalog_client
|
||||||
|
|
||||||
|
cls.packages[0] = cls.client.upload_package(
|
||||||
|
application_name, archive_name, dir_with_archive,
|
||||||
|
{"categories": ["Web"], "tags": ["test"]})
|
||||||
|
|
||||||
|
application_name = utils.generate_name('Lighttpd')
|
||||||
|
cls.abs_archive_path[1], dir_with_archive, archive_name = \
|
||||||
|
utils.prepare_package(
|
||||||
|
application_name,
|
||||||
|
app='io.murano.apps.test.Lighttpd',
|
||||||
|
manifest_required=False)
|
||||||
|
|
||||||
|
cls.packages[1] = cls.client.upload_package(
|
||||||
|
application_name, archive_name, dir_with_archive,
|
||||||
|
{"categories": ["Web"], "tags": ["test"]})
|
||||||
|
|
||||||
|
application_name = utils.generate_name('UpdateExecutor')
|
||||||
|
cls.abs_archive_path[2], dir_with_archive, archive_name = \
|
||||||
|
utils.prepare_package(
|
||||||
|
application_name,
|
||||||
|
app='io.murano.apps.test.UpdateExecutor',
|
||||||
|
manifest_required=False)
|
||||||
|
|
||||||
|
cls.packages[2] = cls.client.upload_package(
|
||||||
|
application_name, archive_name, dir_with_archive,
|
||||||
|
{"categories": ["Web"], "tags": ["test"]})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def resource_cleanup(cls):
|
||||||
|
|
||||||
|
cls.purge_stacks()
|
||||||
|
[cls.client.delete_package(package['id']) for package in cls.packages]
|
||||||
|
map(os.remove, cls.abs_archive_path)
|
||||||
|
super(TestMuranoDeployment, cls).resource_cleanup()
|
||||||
|
|
||||||
|
@testtools.testcase.attr('smoke')
|
||||||
|
@testtools.testcase.attr('scenario')
|
||||||
|
def test_app_deployment(self):
|
||||||
|
|
||||||
|
"""Test app deployment
|
||||||
|
|
||||||
|
Scenario:
|
||||||
|
1. Create environment
|
||||||
|
2. Add ApacheHTTPServer application to the instance
|
||||||
|
3. Deploy environment
|
||||||
|
4. Make sure that deployment finished successfully
|
||||||
|
5. Check that application is accessible
|
||||||
|
6. Delete environment
|
||||||
|
"""
|
||||||
|
|
||||||
|
post_body = self.apache_cinder()
|
||||||
|
environment_name = utils.generate_name('Test_Murano')
|
||||||
|
environment = self.application_catalog_client.create_environment(
|
||||||
|
name=environment_name)
|
||||||
|
self.addCleanup(self.environment_delete, environment['id'])
|
||||||
|
session = self.application_catalog_client.create_session(
|
||||||
|
environment['id'])
|
||||||
|
self.assertEqual(environment['id'], session['environment_id'])
|
||||||
|
self.application_catalog_client.\
|
||||||
|
create_service(environment['id'], session['id'], post_body)
|
||||||
|
self.deploy_environment(environment, session)
|
||||||
|
self.status_check(environment['id'],
|
||||||
|
[[post_body['instance']['name'], 22, 80]])
|
||||||
|
|
||||||
|
@testtools.testcase.attr('smoke')
|
||||||
|
@testtools.testcase.attr('scenario')
|
||||||
|
def test_resources_deallocation(self):
|
||||||
|
|
||||||
|
"""Test resources deallocation
|
||||||
|
|
||||||
|
Scenario:
|
||||||
|
1. Create environment
|
||||||
|
2. Add ApacheHTTPServer application to the instance
|
||||||
|
3. Deploy environment
|
||||||
|
4. Make sure that deployment finished successfully
|
||||||
|
5. Check that application is accessible
|
||||||
|
6. Remove application from environment
|
||||||
|
7. Deploy environment
|
||||||
|
8. Check that application is accessible
|
||||||
|
9. Check that resources aren't used
|
||||||
|
10. Delete environment
|
||||||
|
"""
|
||||||
|
|
||||||
|
app_1_post_body = self.apache_cinder()
|
||||||
|
app_2_post_body = self.apache_cinder()
|
||||||
|
|
||||||
|
environment_name = utils.generate_name('Test_Murano')
|
||||||
|
environment = self.application_catalog_client.create_environment(
|
||||||
|
name=environment_name)
|
||||||
|
self.addCleanup(self.environment_delete, environment['id'])
|
||||||
|
session = self.application_catalog_client.create_session(
|
||||||
|
environment['id'])
|
||||||
|
self.assertEqual(environment['id'], session['environment_id'])
|
||||||
|
self.application_catalog_client.create_service(
|
||||||
|
environment['id'], session['id'], app_1_post_body)
|
||||||
|
self.application_catalog_client.create_service(
|
||||||
|
environment['id'], session['id'], app_2_post_body)
|
||||||
|
self.deploy_environment(environment, session)
|
||||||
|
self.status_check(environment['id'],
|
||||||
|
[[app_1_post_body['instance']['name'], 22, 80]])
|
||||||
|
|
||||||
|
environment = self.application_catalog_client.get_environment(
|
||||||
|
environment['id'])
|
||||||
|
app_for_remove = self.get_service(
|
||||||
|
environment['id'], session['id'], app_1_post_body['name'])
|
||||||
|
session = self.application_catalog_client.create_session(
|
||||||
|
environment['id'])
|
||||||
|
self.application_catalog_client.delete_service(
|
||||||
|
environment['id'], session['id'], app_for_remove['?']['id'])
|
||||||
|
environment = self.application_catalog_client.get_environment(
|
||||||
|
environment['id'])
|
||||||
|
self.deploy_environment(environment, session)
|
||||||
|
self.status_check(environment['id'],
|
||||||
|
[[app_2_post_body['instance']['name'], 22, 80]])
|
||||||
|
|
||||||
|
instance_name = app_1_post_body['instance']['name']
|
||||||
|
stack = self.get_stack_id(environment['id'])
|
||||||
|
template = self.get_stack_template(stack)
|
||||||
|
ip_addresses = '{0}-assigned-ip'.format(instance_name)
|
||||||
|
floating_ip = '{0}-FloatingIPaddress'.format(instance_name)
|
||||||
|
|
||||||
|
self.assertNotIn(ip_addresses, template['outputs'])
|
||||||
|
self.assertNotIn(floating_ip, template['outputs'])
|
||||||
|
self.assertNotIn(instance_name, template['resources'])
|
||||||
|
|
||||||
|
@testtools.testcase.attr('smoke')
|
||||||
|
@testtools.testcase.attr('scenario')
|
||||||
|
def test_dependent_app(self):
|
||||||
|
|
||||||
|
"""Test dependent application
|
||||||
|
|
||||||
|
Scenario:
|
||||||
|
1. Create environment
|
||||||
|
2. Add Update Executor application to the instance
|
||||||
|
3. Add Dependent application
|
||||||
|
4. Deploy environment
|
||||||
|
5. Make sure that deployment finished successfully
|
||||||
|
6. Check that application is accessible
|
||||||
|
7. Delete environment
|
||||||
|
"""
|
||||||
|
|
||||||
|
post_body = self.update_executor()
|
||||||
|
environment_name = utils.generate_name('Test_Murano')
|
||||||
|
environment = self.application_catalog_client.create_environment(
|
||||||
|
name=environment_name)
|
||||||
|
self.addCleanup(self.environment_delete, environment['id'])
|
||||||
|
session = self.application_catalog_client.create_session(
|
||||||
|
environment['id'])
|
||||||
|
self.assertEqual(environment['id'], session['environment_id'])
|
||||||
|
updater = self.application_catalog_client.\
|
||||||
|
create_service(environment['id'], session['id'], post_body)
|
||||||
|
|
||||||
|
post_body = {
|
||||||
|
"name": utils.generate_name("lighttest"),
|
||||||
|
"updater": updater,
|
||||||
|
"?": {
|
||||||
|
"type": "io.murano.apps.test.Lighttpd",
|
||||||
|
"id": utils.generate_uuid()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.application_catalog_client.create_service(
|
||||||
|
environment['id'], session['id'], post_body)
|
||||||
|
self.deploy_environment(environment, session)
|
||||||
|
self.status_check(environment['id'],
|
||||||
|
[[updater['instance']['name'], 22, 80]])
|
||||||
|
|
||||||
|
@testtools.testcase.attr('smoke')
|
||||||
|
@testtools.testcase.attr('scenario')
|
||||||
|
def test_simple_software_configuration(self):
|
||||||
|
|
||||||
|
"""Test simple software configuration
|
||||||
|
|
||||||
|
Scenario:
|
||||||
|
1. Create environment with name specified
|
||||||
|
2. Add ApacheHTTPServer application to the instance with specific
|
||||||
|
user name
|
||||||
|
3. Deploy environment
|
||||||
|
4. Make sure that deployment finished successfully
|
||||||
|
5. Check that application is accessible
|
||||||
|
6. Check that environment deployed with specific user name
|
||||||
|
7. Delete environment
|
||||||
|
"""
|
||||||
|
|
||||||
|
post_body = self.apache_cinder(userName=utils.generate_name('user'))
|
||||||
|
username = post_body["userName"]
|
||||||
|
environment_name = utils.generate_name('SSC-murano')
|
||||||
|
environment = self.application_catalog_client.create_environment(
|
||||||
|
name=environment_name)
|
||||||
|
self.addCleanup(self.environment_delete, environment['id'])
|
||||||
|
session = self.application_catalog_client.create_session(
|
||||||
|
environment['id'])
|
||||||
|
self.assertEqual(environment['id'], session['environment_id'])
|
||||||
|
self.application_catalog_client.\
|
||||||
|
create_service(environment['id'], session['id'], post_body)
|
||||||
|
self.deploy_environment(environment, session)
|
||||||
|
self.status_check(environment['id'],
|
||||||
|
[[post_body['instance']['name'], 22, 80]])
|
||||||
|
resp = self.check_path(
|
||||||
|
environment['id'], '', post_body['instance']['name'])
|
||||||
|
self.assertIn(username, resp.text, "Required information not found in "
|
||||||
|
"response from server")
|
Loading…
Reference in New Issue
Block a user