Merge "Add CLI tests for environment redeploy"
This commit is contained in:
commit
0907116f89
|
@ -64,10 +64,15 @@ class CLIUtilsTestBase(muranoclient.ClientTestBase):
|
||||||
self.addCleanup(self.delete_murano_object, murano_object, mrn_object)
|
self.addCleanup(self.delete_murano_object, murano_object, mrn_object)
|
||||||
return mrn_object
|
return mrn_object
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def generate_uuid():
|
||||||
|
"""Generate uuid for objects."""
|
||||||
|
return uuid.uuid4().hex
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generate_name(prefix):
|
def generate_name(prefix):
|
||||||
"""Generate name for objects."""
|
"""Generate name for objects."""
|
||||||
suffix = uuid.uuid4().hex[:8]
|
suffix = CLIUtilsTestBase.generate_uuid()[:8]
|
||||||
return "{0}_{1}".format(prefix, suffix)
|
return "{0}_{1}".format(prefix, suffix)
|
||||||
|
|
||||||
def get_table_struct(self, command, params=""):
|
def get_table_struct(self, command, params=""):
|
||||||
|
@ -181,3 +186,21 @@ class CLIUtilsTestPackagesBase(TestSuiteRepository):
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def deploy_environment(self, env_id, obj_model):
|
||||||
|
session = self.listing('environment-session-create',
|
||||||
|
params=env_id)
|
||||||
|
session_id = self.get_property_value(session, 'id')
|
||||||
|
|
||||||
|
temp_file = self.prepare_file_with_obj_model(obj_model)
|
||||||
|
|
||||||
|
self.listing('environment-apps-edit',
|
||||||
|
params='--session-id {0} {1} {2}'.
|
||||||
|
format(session_id, env_id, temp_file))
|
||||||
|
|
||||||
|
self.listing('environment-deploy',
|
||||||
|
params='{0} --session-id {1}'.
|
||||||
|
format(env_id, session_id))
|
||||||
|
|
||||||
|
result = self.wait_deployment_result(env_id)
|
||||||
|
self.assertTrue(result)
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
|
||||||
from muranoclient.tests.functional.simple_read_only import \
|
from muranoclient.tests.functional.simple_read_only import \
|
||||||
murano_test_utils as utils
|
murano_test_utils as utils
|
||||||
|
|
||||||
|
@ -497,10 +499,85 @@ class DeployMuranoEnvironmentTest(utils.CLIUtilsTestPackagesBase):
|
||||||
|
|
||||||
env_id = self.create_murano_object('environment',
|
env_id = self.create_murano_object('environment',
|
||||||
'TestMuranoDeployEnv')['ID']
|
'TestMuranoDeployEnv')['ID']
|
||||||
|
obj_model = {
|
||||||
|
'op': 'add',
|
||||||
|
'path': '/-',
|
||||||
|
'value': {
|
||||||
|
'?': {
|
||||||
|
'type': 'io.murano.apps.{0}'.format(self.app_name),
|
||||||
|
'id': '{0}'.format(self.generate_uuid()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.deploy_environment(env_id, obj_model)
|
||||||
|
deployments = self.listing('deployment-list', params=env_id)
|
||||||
|
|
||||||
session = self.listing('environment-session-create',
|
self.assertEqual('success', deployments[0]['State'])
|
||||||
params=env_id)
|
self.assertEqual(1, len(deployments))
|
||||||
session_id = self.get_property_value(session, 'id')
|
|
||||||
|
def test_add_component_to_deployed_env(self):
|
||||||
|
"""Test scenario:
|
||||||
|
1) import package
|
||||||
|
2) create environment
|
||||||
|
3) create session for created environment
|
||||||
|
4) add application to the environment
|
||||||
|
5) send environment to deploy
|
||||||
|
6) check that deployment was successful
|
||||||
|
7) add application to environment
|
||||||
|
8) deploy environment again
|
||||||
|
"""
|
||||||
|
self.import_package(
|
||||||
|
self.app_name,
|
||||||
|
self.dummy_app_path
|
||||||
|
)
|
||||||
|
|
||||||
|
env_id = self.create_murano_object('environment',
|
||||||
|
'TestMuranoDeployEnv')['ID']
|
||||||
|
obj_model = {
|
||||||
|
'op': 'add',
|
||||||
|
'path': '/-',
|
||||||
|
'value': {
|
||||||
|
'?': {
|
||||||
|
'type': 'io.murano.apps.{0}'.format(self.app_name),
|
||||||
|
'id': '',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
obj_model['value']['?']['id'] = self.generate_uuid()
|
||||||
|
self.deploy_environment(env_id, obj_model)
|
||||||
|
|
||||||
|
deployments = self.listing('deployment-list', params=env_id)
|
||||||
|
self.assertEqual('success', deployments[0]['State'])
|
||||||
|
self.assertEqual(1, len(deployments))
|
||||||
|
|
||||||
|
obj_model['value']['?']['id'] = self.generate_uuid()
|
||||||
|
self.deploy_environment(env_id, obj_model)
|
||||||
|
|
||||||
|
deployments = self.listing('deployment-list', params=env_id)
|
||||||
|
self.assertEqual('success', deployments[1]['State'])
|
||||||
|
self.assertEqual(2, len(deployments))
|
||||||
|
|
||||||
|
# TODO(akuznetsova): need to upskip this test when
|
||||||
|
# https://bugs.launchpad.net/python-muranoclient/+bug/1511645 is fixed
|
||||||
|
@unittest.expectedFailure
|
||||||
|
def test_delete_component_from_deployed_env(self):
|
||||||
|
"""Test scenario:
|
||||||
|
1) import package
|
||||||
|
2) create environment
|
||||||
|
3) create session for created environment
|
||||||
|
4) add application to the environment
|
||||||
|
5) send environment to deploy
|
||||||
|
6) check that deployment was successful
|
||||||
|
7) delete application from environment
|
||||||
|
8) deploy environment again
|
||||||
|
"""
|
||||||
|
self.import_package(
|
||||||
|
self.app_name,
|
||||||
|
self.dummy_app_path
|
||||||
|
)
|
||||||
|
|
||||||
|
env_id = self.create_murano_object('environment',
|
||||||
|
'TestMuranoDeployEnv')['ID']
|
||||||
|
|
||||||
obj_model = {
|
obj_model = {
|
||||||
'op': 'add',
|
'op': 'add',
|
||||||
|
@ -508,24 +585,18 @@ class DeployMuranoEnvironmentTest(utils.CLIUtilsTestPackagesBase):
|
||||||
'value': {
|
'value': {
|
||||||
'?': {
|
'?': {
|
||||||
'type': 'io.murano.apps.{0}'.format(self.app_name),
|
'type': 'io.murano.apps.{0}'.format(self.app_name),
|
||||||
'id': '12345',
|
'id': '{0}'.format(self.generate_uuid()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
temp_file = self.prepare_file_with_obj_model(obj_model)
|
self.deploy_environment(env_id, obj_model)
|
||||||
|
|
||||||
self.listing('environment-apps-edit',
|
obj_model = {
|
||||||
params='--session-id {0} {1} {2}'.
|
'op': 'remove',
|
||||||
format(session_id, env_id, temp_file))
|
'path': '/0'
|
||||||
|
}
|
||||||
self.listing('environment-deploy',
|
self.deploy_environment(env_id, obj_model)
|
||||||
params='{0} --session-id {1}'.
|
|
||||||
format(env_id, session_id))
|
|
||||||
|
|
||||||
result = self.wait_deployment_result(env_id)
|
|
||||||
self.assertTrue(result)
|
|
||||||
|
|
||||||
deployments = self.listing('deployment-list', params=env_id)
|
deployments = self.listing('deployment-list', params=env_id)
|
||||||
|
self.assertEqual('success', deployments[1]['State'])
|
||||||
self.assertEqual('success', deployments[0]['State'])
|
self.assertEqual(2, len(deployments))
|
||||||
self.assertTrue(1, len(deployments))
|
|
||||||
|
|
Loading…
Reference in New Issue