Merge "Add more verbosity to fuel2 vms commands"

This commit is contained in:
Jenkins 2016-10-15 20:36:40 +00:00 committed by Gerrit Code Review
commit 496968758f
7 changed files with 31 additions and 4 deletions

View File

@ -18,3 +18,7 @@ from fuelclient.objects.base import BaseObject
class FuelVersion(BaseObject):
class_api_path = "version/"
@classmethod
def get_feature_groups(cls):
return cls.get_all_data()['feature_groups']

View File

@ -20,6 +20,7 @@ import fuelclient
from fuelclient.cli import error
from fuelclient.objects import base as base_object
from fuelclient.objects import environment as env_object
from fuelclient.objects import fuelversion as fuelversion_object
from fuelclient.objects import task as task_object
from fuelclient.tests.unit.v2.lib import test_api
from fuelclient.tests import utils
@ -252,9 +253,12 @@ class TestEnvFacade(test_api.BaseLibTest):
# Check whether all assignments are expected
self.assertIn(assignment, expected_body)
def test_env_spawn_vms(self):
@mock.patch.object(fuelversion_object.FuelVersion, 'get_feature_groups')
def test_env_spawn_vms(self, m_feature_groups):
env_id = 10
expected_uri = '/api/v1/clusters/{0}/spawn_vms/'.format(env_id)
m_feature_groups.return_value = \
utils.get_fake_fuel_version()['feature_groups']
matcher = self.m_request.put(expected_uri, json={})

View File

@ -22,6 +22,7 @@ import fuelclient
from fuelclient.cli import error
from fuelclient.cli import serializers
from fuelclient.objects import base as base_object
from fuelclient.objects import fuelversion as fuelversion_object
from fuelclient.tests.unit.v2.lib import test_api
from fuelclient.tests import utils
@ -75,9 +76,12 @@ class TestNodeFacade(test_api.BaseLibTest):
self.assertTrue(matcher.called)
def test_node_vms_list(self):
@mock.patch.object(fuelversion_object.FuelVersion, 'get_feature_groups')
def test_node_vms_list(self, m_feature_groups):
node_id = 42
expected_uri = "/api/v1/nodes/{0}/vms_conf/".format(node_id)
m_feature_groups.return_value = \
utils.get_fake_fuel_version()['feature_groups']
fake_vms = [{'id': 1, 'opt2': 'val2'},
{'id': 2, 'opt4': 'val4'}]
@ -87,10 +91,13 @@ class TestNodeFacade(test_api.BaseLibTest):
self.assertTrue(matcher.called)
def test_node_vms_create(self):
@mock.patch.object(fuelversion_object.FuelVersion, 'get_feature_groups')
def test_node_vms_create(self, m_feature_groups):
config = [{'id': 1, 'opt2': 'val2'},
{'id': 2, 'opt4': 'val4'}]
node_id = 42
m_feature_groups.return_value = \
utils.get_fake_fuel_version()['feature_groups']
expected_uri = "/api/v1/nodes/{0}/vms_conf/".format(node_id)
expected_body = {'vms_conf': config}

View File

@ -24,6 +24,6 @@ def get_fake_fuel_version():
"""
return {"api": "1",
"auth_required": True,
"feature_groups": [],
"feature_groups": ['advanced'],
"openstack_version": "newton-10.0",
"release": "10.0"}

View File

@ -15,6 +15,7 @@
from fuelclient.cli import error
from fuelclient import objects
from fuelclient.v1 import base_v1
from fuelclient.v1 import fuelversion
class EnvironmentClient(base_v1.BaseV1Client):
@ -116,6 +117,7 @@ class EnvironmentClient(base_v1.BaseV1Client):
def spawn_vms(self, environment_id):
env = self._entity_wrapper(obj_id=environment_id)
fuelversion.FuelVersionClient.check_advanced_feature()
return env.spawn_vms()
def upload_network_template(self, environment_id,

View File

@ -12,6 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from fuelclient.cli import error
from fuelclient import objects
from fuelclient.v1 import base_v1
@ -20,6 +21,12 @@ class FuelVersionClient(base_v1.BaseV1Client):
_entity_wrapper = objects.FuelVersion
@classmethod
def check_advanced_feature(cls):
if 'advanced' not in cls._entity_wrapper.get_feature_groups():
msg = "Advanced feature should be enabled in feature groups"
raise error.ActionException(msg)
def get_client(connection):
return FuelVersionClient(connection)

View File

@ -18,6 +18,7 @@ import copy
from fuelclient.cli import error
from fuelclient import objects
from fuelclient.v1 import base_v1
from fuelclient.v1 import fuelversion
SplittedLabel = namedtuple('SplittedLabel', ['key', 'value', 'has_separator'])
@ -90,10 +91,12 @@ class NodeClient(base_v1.BaseV1Client):
def get_node_vms_conf(self, node_id):
node = self._entity_wrapper(node_id)
fuelversion.FuelVersionClient.check_advanced_feature()
return node.get_node_vms_conf()
def node_vms_create(self, node_id, config):
node = self._entity_wrapper(node_id)
fuelversion.FuelVersionClient.check_advanced_feature()
return node.node_vms_create(config)
def update(self, node_id, **updated_attributes):