Fix review_fuel_client test

1. Use OPENSTACK_RELEASE for seeking of actual release
2. Use SSHClient api instead of additional helpers
3. Do not re-request admin remote between steps
4. Fix imports order
5. Use unicode literals

Change-Id: I5b58b1b6a30d8b38740b0d3d18a72e80399a6acf
Closes-bug: #1610941
This commit is contained in:
Alexey Stepanov 2016-08-10 12:25:16 +03:00
parent 6db982f8d5
commit fcbb7db253
1 changed files with 35 additions and 33 deletions

View File

@ -11,23 +11,24 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from __future__ import unicode_literals
import os
import traceback
from devops.helpers.helpers import wait
from proboscis import test
from proboscis import asserts
from proboscis import test
from gates_tests.helpers import exceptions
from fuelweb_test import logger
from fuelweb_test.helpers.decorators import log_snapshot_after_test
from fuelweb_test.helpers.utils import run_on_remote
from fuelweb_test.helpers.utils import get_package_version
from fuelweb_test.settings import OPENSTACK_RELEASE
from fuelweb_test.settings import UPDATE_FUEL
from fuelweb_test.settings import UPDATE_FUEL_PATH
from fuelweb_test.tests.base_test_case import SetupEnvironment
from fuelweb_test.tests import test_cli_base
from fuelweb_test import logger
from fuelweb_test.tests.base_test_case import SetupEnvironment
from gates_tests.helpers import exceptions
@test(groups=["review_fuel"])
@ -47,22 +48,16 @@ class CreateDeployEnvironmentCli(test_cli_base.CommandLine):
'Can not find {0}, '
'please check exported variables'.format(UPDATE_FUEL_PATH))
cmd = "ls -all {0} | grep {1}".format(target_path, package_name)
result = remote.execute(cmd)
asserts.assert_equal(
0, result['exit_code'],
'Can not upload changes to master node. '
'Command {0} failed with {1}'.format(cmd, result))
remote.check_call(
cmd,
error_info='Can not upload changes to master node.')
@staticmethod
def replace_package(remote, package_name, package_path):
cmd = "ls -all {0} | grep noarch.rpm| awk '{{print $9}}' ".format(
package_path)
result = remote.execute(cmd)
asserts.assert_equal(
0, result['exit_code'],
'Failed to run command {0} with {1} '
'on replace package stage'.format(cmd, result))
package_from_review = ''.join(result['stdout']).strip()
result = remote.check_call(cmd, error_info='Failed package replace.')
package_from_review = result.stdout_str
income_version = get_package_version(
remote, os.path.join(package_path, package_from_review),
income=True)
@ -135,22 +130,34 @@ class CreateDeployEnvironmentCli(test_cli_base.CommandLine):
# get releases list
self.show_step(4)
list_release_cmd = 'fuel release --json'
list_release_res = run_on_remote(
remote, list_release_cmd, jsonify=True)
active_release_id = [
release['id'] for release
in list_release_res if release['is_deployable']]
list_release_res = remote.check_call(list_release_cmd).stdout_json
active_releases = [
release for release
in list_release_res if release['is_deployable'] and
OPENSTACK_RELEASE.lower() in release['name'].lower()]
active_release_id = [release['id'] for release in active_releases]
asserts.assert_true(
active_release_id, 'Can not find deployable release. '
'Current release data {0}'.format(list_release_res))
logger.info('Available for deploy: \n{!s}'.format(
'\n'.join(
['\tID: {id}\n'
'\tSTATE: {state}\n'
'\tNAME: {name}\n'
'\tVERSION: {version}\n'
'\tOS: {operating_system}\n'.format(**release) for
release in active_releases]))
)
# Create an environment
self.show_step(5)
cmd = ('fuel env create --name={0} --release={1} '
'--nst=tun --json'.format(self.__class__.__name__,
active_release_id[0]))
env_result = run_on_remote(remote, cmd, jsonify=True)
env_result = remote.check_call(cmd).stdout_json
cluster_id = env_result['id']
cluster_name = env_result['name']
@ -164,8 +171,7 @@ class CreateDeployEnvironmentCli(test_cli_base.CommandLine):
self.show_step(8)
cmd = 'fuel env --json'
env_list_res = run_on_remote(
remote, cmd, jsonify=True)
env_list_res = remote.check_call(cmd).stdout_json
asserts.assert_true(
cluster_id in [cluster['id'] for cluster in env_list_res],
'Can not find created before environment'
@ -184,17 +190,13 @@ class CreateDeployEnvironmentCli(test_cli_base.CommandLine):
self.update_node_interfaces(node_id[0])
cmd = ('fuel --env-id={0} node --provision --node={1} --json'
.format(cluster_id, node_id[0]))
task = run_on_remote(remote, cmd, jsonify=True)
task = remote.check_call(cmd).stdout_json
self.assert_cli_task_success(task, timeout=30 * 60)
self.show_step(10)
with self.env.d_env.get_admin_remote() as remote:
res = remote.execute('fuel --env {0} env delete --force'
.format(cluster_id))
asserts.assert_true(
res['exit_code'] == 0)
self.show_step(10)
remote.check_call(
'fuel --env {0} env delete --force'.format(cluster_id))
with self.env.d_env.get_admin_remote() as remote:
wait(lambda:
remote.execute("fuel env | awk '{print $1}'"
" | tail -n 1 | grep '^.$'")