Merge "Add more verbosity to fuel2 vms commands"
This commit is contained in:
commit
496968758f
|
@ -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']
|
||||
|
|
|
@ -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={})
|
||||
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue