Update license info

Change-Id: I2d5a681510f4a6ff169791822a05cc7a8bd66d50
Signed-off-by: Zhijiang Hu <hu.zhijiang@zte.com.cn>
This commit is contained in:
Zhijiang Hu 2017-08-17 05:06:53 -04:00
parent 0e51693c9f
commit f7c345afda
7 changed files with 1996 additions and 1997 deletions

View File

@ -1,5 +1,4 @@
# Copyright 2010 United States Government as represented by the
# Administrator of the National Aeronautics and Space Administration.
# Copyright 2010-2011 OpenStack Foundation
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may

View File

@ -11,344 +11,344 @@
# 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.
from daisy import test
from daisy.api import common
from webob import exc
from daisy.tests import fakes
import mock
class TestApiCommon(test.TestCase):
def setUp(self):
super(TestApiCommon, self).setUp()
self.req = fakes.HTTPRequest.blank('/')
def test_valid_cluster_networks(self):
nets = [{'id': '123',
'cidr': None,
'vlan_id': None,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': None,
'vlan_id': None,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
common.valid_cluster_networks(nets)
nets = [{'id': '123',
'cidr': '192.167.1.1/24',
'vlan_id': None,
'ip_ranges': [],
'gateway': '192.167.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': None,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
common.valid_cluster_networks(nets)
nets = [{'id': '123',
'cidr': '192.167.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.167.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
self.assertRaises(exc.HTTPBadRequest,
common.valid_cluster_networks, nets)
nets = [{'id': '123',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': 22,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
self.assertRaises(exc.HTTPBadRequest,
common.valid_cluster_networks, nets)
nets = [{'id': '123',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.168.1.2',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
self.assertRaises(exc.HTTPBadRequest,
common.valid_cluster_networks, nets)
nets = [{'id': '123',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [{'start': '192.168.1.10',
'end': '192.168.1.100'}],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [{'start': '192.168.1.10',
'end': '192.168.1.120'}],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
self.assertRaises(exc.HTTPBadRequest,
common.valid_cluster_networks, nets)
def test_check_gateway_uniqueness(self):
nets = [{'deleted': False,
'cluster_id': '1',
'id': '1',
'network_type': 'PUBLICAPI',
'cidr': '192.168.1.1/24',
'custom_name': 'publicapi',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'PUBLICAPI'},
{'deleted': False,
'cluster_id': '1',
'id': '2',
'network_type': 'MANAGEMENT',
'cidr': '192.168.1.1/24',
'custom_name': 'management',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'MANAGEMENT'}]
self.assertEqual(None, common.check_gateway_uniqueness(nets))
nets = [{'deleted': False,
'cluster_id': '1',
'id': '1',
'network_type': 'PUBLICAPI',
'cidr': '192.168.1.1/24',
'custom_name': 'publicapi',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'PUBLICAPI'},
{'deleted': False,
'cluster_id': '1',
'id': '2',
'network_type': 'DATAPLANE',
'cidr': '192.168.1.1/24',
'custom_name': 'phy1',
'vlan_id': None,
'gateway': '192.167.1.1',
'ip_ranges': [],
'name': 'physnet1'}]
self.assertEqual(None, common.check_gateway_uniqueness(nets))
def test_check_gateway_uniqueness_error(self):
nets = [{'deleted': False,
'cluster_id': '1',
'id': '1',
'network_type': 'PUBLICAPI',
'cidr': '192.168.1.1/24',
'custom_name': 'publicapi',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'PUBLICAPI'},
{'deleted': False,
'cluster_id': '1',
'id': '2',
'network_type': 'MANAGEMENT',
'cidr': '192.168.1.1/24',
'custom_name': 'management',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'MANAGEMENT'},
{'deleted': False,
'cluster_id': '1',
'id': '3',
'network_type': 'STORAGE',
'cidr': '99.99.1.1/24',
'custom_name': 'storage',
'vlan_id': None,
'gateway': '99.99.1.1',
'ip_ranges': [],
'name': 'STORAGE'}]
self.assertRaises(exc.HTTPBadRequest,
common.check_gateway_uniqueness, nets)
@mock.patch('daisy.api.common.valid_ip_ranges')
def test_valid_ip_ranges_with_cidr(self, fake_valid_ip_ranges):
ip_ranges = [
{
'start': '12.18.1.5',
'cidr': '12.18.1.1/24',
'end': '12.18.1.5',
'gateway': '12.18.1.2'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.10.1.2/24'
common.valid_ip_ranges_with_cidr(ip_ranges, cidr)
def test_valid_ip_ranges_with_cidr_invalid_startip(self):
ip_ranges = [
{
'start': '13.18.1.5',
'cidr': '12.18.1.1/24',
'end': '12.18.1.5',
'gateway': '12.18.1.2'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.10.1.2/24'
self.assertRaises(exc.HTTPForbidden,
common.valid_ip_ranges_with_cidr,
ip_ranges,
cidr)
def test_valid_ip_ranges_with_cidr_invalid_endip(self):
ip_ranges = [
{
'start': '12.18.1.5',
'cidr': '12.18.1.1/24',
'end': '13.18.1.5',
'gateway': '12.18.1.2'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.10.1.2/24'
self.assertRaises(exc.HTTPForbidden,
common.valid_ip_ranges_with_cidr,
ip_ranges,
cidr)
def test_valid_ip_ranges_with_cidr_invalid_gateway(self):
ip_ranges = [
{
'start': '12.18.1.5',
'cidr': '12.18.1.1/24',
'end': '12.18.1.9',
'gateway': '12.18.1.5'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.10.1.2/24'
self.assertRaises(exc.HTTPBadRequest,
common.valid_ip_ranges_with_cidr,
ip_ranges,
cidr)
def test_valid_ip_ranges_with_cidr_cidr_overlapped(self):
ip_ranges = [
{
'start': '12.18.1.5',
'cidr': '12.18.1.1/24',
'end': '12.18.1.5',
'gateway': '12.18.1.2'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.18.1.1/26'
self.assertRaises(exc.HTTPBadRequest,
common.valid_ip_ranges_with_cidr,
ip_ranges,
cidr)
def test_valid_network_range(self):
range = [1, 4094]
network_meta = {}
vlan_start = 'vlan_start'
vlan_end = 'vlan_end'
value_start = 1
value_end = 4095
network_meta[vlan_start] = value_start
try:
common.valid_network_range(self.req, network_meta)
except exc.HTTPBadRequest as e:
msg = "%s and %s must be appeared "\
"at the same time" % (vlan_start, vlan_end)
self.assertEqual(e.explanation, msg)
network_meta[vlan_end] = value_end
try:
common.valid_network_range(self.req, network_meta)
except exc.HTTPBadRequest as e:
msg = "%s:%d and %s:%d must be in %d~%d and " \
"start:%d less than end:%d"\
% (vlan_start, value_start, vlan_end, value_end,
range[0], range[1], value_start, value_end)
self.assertEqual(e.explanation, msg)
network_meta[vlan_end] = value_end-1
result = common.valid_network_range(self.req, network_meta)
self.assertEqual(result, None)
svlan_start = 'svlan_start'
svlan_end = 'svlan_end'
network_meta[svlan_start] = value_start
try:
common.valid_network_range(self.req, network_meta)
except exc.HTTPBadRequest as e:
msg = "%s and %s must be appeared "\
"at the same time" % (svlan_start, svlan_end)
self.assertEqual(e.explanation, msg)
network_meta[svlan_end] = value_end
try:
common.valid_network_range(self.req, network_meta)
except exc.HTTPBadRequest as e:
msg = "%s:%d and %s:%d must be in %d~%d " \
"and start:%d less than end:%d"\
% (svlan_start, value_start, svlan_end,
value_end, range[0], range[1], value_start, value_end)
self.assertEqual(e.explanation, msg)
network_meta[svlan_end] = value_end-1
result = common.valid_network_range(self.req, network_meta)
self.assertEqual(result, None)
# under the License.
from daisy import test
from daisy.api import common
from webob import exc
from daisy.tests import fakes
import mock
class TestApiCommon(test.TestCase):
def setUp(self):
super(TestApiCommon, self).setUp()
self.req = fakes.HTTPRequest.blank('/')
def test_valid_cluster_networks(self):
nets = [{'id': '123',
'cidr': None,
'vlan_id': None,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': None,
'vlan_id': None,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
common.valid_cluster_networks(nets)
nets = [{'id': '123',
'cidr': '192.167.1.1/24',
'vlan_id': None,
'ip_ranges': [],
'gateway': '192.167.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': None,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
common.valid_cluster_networks(nets)
nets = [{'id': '123',
'cidr': '192.167.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.167.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
self.assertRaises(exc.HTTPBadRequest,
common.valid_cluster_networks, nets)
nets = [{'id': '123',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': 22,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
self.assertRaises(exc.HTTPBadRequest,
common.valid_cluster_networks, nets)
nets = [{'id': '123',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.168.1.2',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
self.assertRaises(exc.HTTPBadRequest,
common.valid_cluster_networks, nets)
nets = [{'id': '123',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [{'start': '192.168.1.10',
'end': '192.168.1.100'}],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'},
{'id': '456',
'cidr': '192.168.1.1/24',
'vlan_id': 2,
'ip_ranges': [{'start': '192.168.1.10',
'end': '192.168.1.120'}],
'gateway': '192.168.1.1',
'name': 'PUBLICAPI'}]
self.assertRaises(exc.HTTPBadRequest,
common.valid_cluster_networks, nets)
def test_check_gateway_uniqueness(self):
nets = [{'deleted': False,
'cluster_id': '1',
'id': '1',
'network_type': 'PUBLICAPI',
'cidr': '192.168.1.1/24',
'custom_name': 'publicapi',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'PUBLICAPI'},
{'deleted': False,
'cluster_id': '1',
'id': '2',
'network_type': 'MANAGEMENT',
'cidr': '192.168.1.1/24',
'custom_name': 'management',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'MANAGEMENT'}]
self.assertEqual(None, common.check_gateway_uniqueness(nets))
nets = [{'deleted': False,
'cluster_id': '1',
'id': '1',
'network_type': 'PUBLICAPI',
'cidr': '192.168.1.1/24',
'custom_name': 'publicapi',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'PUBLICAPI'},
{'deleted': False,
'cluster_id': '1',
'id': '2',
'network_type': 'DATAPLANE',
'cidr': '192.168.1.1/24',
'custom_name': 'phy1',
'vlan_id': None,
'gateway': '192.167.1.1',
'ip_ranges': [],
'name': 'physnet1'}]
self.assertEqual(None, common.check_gateway_uniqueness(nets))
def test_check_gateway_uniqueness_error(self):
nets = [{'deleted': False,
'cluster_id': '1',
'id': '1',
'network_type': 'PUBLICAPI',
'cidr': '192.168.1.1/24',
'custom_name': 'publicapi',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'PUBLICAPI'},
{'deleted': False,
'cluster_id': '1',
'id': '2',
'network_type': 'MANAGEMENT',
'cidr': '192.168.1.1/24',
'custom_name': 'management',
'vlan_id': None,
'gateway': '192.168.1.1',
'ip_ranges': [],
'name': 'MANAGEMENT'},
{'deleted': False,
'cluster_id': '1',
'id': '3',
'network_type': 'STORAGE',
'cidr': '99.99.1.1/24',
'custom_name': 'storage',
'vlan_id': None,
'gateway': '99.99.1.1',
'ip_ranges': [],
'name': 'STORAGE'}]
self.assertRaises(exc.HTTPBadRequest,
common.check_gateway_uniqueness, nets)
@mock.patch('daisy.api.common.valid_ip_ranges')
def test_valid_ip_ranges_with_cidr(self, fake_valid_ip_ranges):
ip_ranges = [
{
'start': '12.18.1.5',
'cidr': '12.18.1.1/24',
'end': '12.18.1.5',
'gateway': '12.18.1.2'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.10.1.2/24'
common.valid_ip_ranges_with_cidr(ip_ranges, cidr)
def test_valid_ip_ranges_with_cidr_invalid_startip(self):
ip_ranges = [
{
'start': '13.18.1.5',
'cidr': '12.18.1.1/24',
'end': '12.18.1.5',
'gateway': '12.18.1.2'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.10.1.2/24'
self.assertRaises(exc.HTTPForbidden,
common.valid_ip_ranges_with_cidr,
ip_ranges,
cidr)
def test_valid_ip_ranges_with_cidr_invalid_endip(self):
ip_ranges = [
{
'start': '12.18.1.5',
'cidr': '12.18.1.1/24',
'end': '13.18.1.5',
'gateway': '12.18.1.2'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.10.1.2/24'
self.assertRaises(exc.HTTPForbidden,
common.valid_ip_ranges_with_cidr,
ip_ranges,
cidr)
def test_valid_ip_ranges_with_cidr_invalid_gateway(self):
ip_ranges = [
{
'start': '12.18.1.5',
'cidr': '12.18.1.1/24',
'end': '12.18.1.9',
'gateway': '12.18.1.5'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.10.1.2/24'
self.assertRaises(exc.HTTPBadRequest,
common.valid_ip_ranges_with_cidr,
ip_ranges,
cidr)
def test_valid_ip_ranges_with_cidr_cidr_overlapped(self):
ip_ranges = [
{
'start': '12.18.1.5',
'cidr': '12.18.1.1/24',
'end': '12.18.1.5',
'gateway': '12.18.1.2'
},
{
'start': '112.18.1.15',
'cidr': '112.18.1.1/24',
'end': '112.18.1.15',
'gateway': '112.18.1.5'
},
]
cidr = '12.18.1.1/26'
self.assertRaises(exc.HTTPBadRequest,
common.valid_ip_ranges_with_cidr,
ip_ranges,
cidr)
def test_valid_network_range(self):
range = [1, 4094]
network_meta = {}
vlan_start = 'vlan_start'
vlan_end = 'vlan_end'
value_start = 1
value_end = 4095
network_meta[vlan_start] = value_start
try:
common.valid_network_range(self.req, network_meta)
except exc.HTTPBadRequest as e:
msg = "%s and %s must be appeared "\
"at the same time" % (vlan_start, vlan_end)
self.assertEqual(e.explanation, msg)
network_meta[vlan_end] = value_end
try:
common.valid_network_range(self.req, network_meta)
except exc.HTTPBadRequest as e:
msg = "%s:%d and %s:%d must be in %d~%d and " \
"start:%d less than end:%d"\
% (vlan_start, value_start, vlan_end, value_end,
range[0], range[1], value_start, value_end)
self.assertEqual(e.explanation, msg)
network_meta[vlan_end] = value_end-1
result = common.valid_network_range(self.req, network_meta)
self.assertEqual(result, None)
svlan_start = 'svlan_start'
svlan_end = 'svlan_end'
network_meta[svlan_start] = value_start
try:
common.valid_network_range(self.req, network_meta)
except exc.HTTPBadRequest as e:
msg = "%s and %s must be appeared "\
"at the same time" % (svlan_start, svlan_end)
self.assertEqual(e.explanation, msg)
network_meta[svlan_end] = value_end
try:
common.valid_network_range(self.req, network_meta)
except exc.HTTPBadRequest as e:
msg = "%s:%d and %s:%d must be in %d~%d " \
"and start:%d less than end:%d"\
% (svlan_start, value_start, svlan_end,
value_end, range[0], range[1], value_start, value_end)
self.assertEqual(e.explanation, msg)
network_meta[svlan_end] = value_end-1
result = common.valid_network_range(self.req, network_meta)
self.assertEqual(result, None)

View File

@ -11,59 +11,59 @@
# 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 mock
import webob
import subprocess
from daisy import test
from daisy.context import RequestContext
from daisy.api.v1 import backup_restore
class TestBackupRestore(test.TestCase):
def setUp(self):
super(TestBackupRestore, self).setUp()
self.controller = backup_restore.Controller()
self.req = webob.Request.blank('/')
self.req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
@mock.patch('subprocess.check_output')
@mock.patch("daisy.api.v1.backup_restore.Controller.check_file_format")
def test_restore(self, mock_do_check_file_format,
mock_do_check_output):
def mock_check_output(*args, **kwargs):
pass
def mock_check_file_format(*args, **kwargs):
return True
file_meta = {
"backup_file_path": "/home/test.tar.gz"}
mock_do_check_output.side_effect = mock_check_output
mock_do_check_file_format.side_effect = mock_check_file_format
result = self.controller.restore(self.req, file_meta)
self.assertEqual(None, result)
@mock.patch('subprocess.check_output')
@mock.patch("daisy.api.v1.backup_restore.Controller.check_file_format")
def test_restore_call_process_error(self, mock_do_check_file_format,
mock_do_check_output):
def mock_check_output(*args, **kwargs):
e = subprocess.CalledProcessError(0, 'test')
e.output = 'test error'
raise e
def mock_check_file_format(*args, **kwargs):
return True
file_meta = {
"backup_file_path": "/home/test.tar.gz"}
mock_do_check_output.side_effect = mock_check_output
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.restore,
self.req, file_meta)
# under the License.
import mock
import webob
import subprocess
from daisy import test
from daisy.context import RequestContext
from daisy.api.v1 import backup_restore
class TestBackupRestore(test.TestCase):
def setUp(self):
super(TestBackupRestore, self).setUp()
self.controller = backup_restore.Controller()
self.req = webob.Request.blank('/')
self.req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
@mock.patch('subprocess.check_output')
@mock.patch("daisy.api.v1.backup_restore.Controller.check_file_format")
def test_restore(self, mock_do_check_file_format,
mock_do_check_output):
def mock_check_output(*args, **kwargs):
pass
def mock_check_file_format(*args, **kwargs):
return True
file_meta = {
"backup_file_path": "/home/test.tar.gz"}
mock_do_check_output.side_effect = mock_check_output
mock_do_check_file_format.side_effect = mock_check_file_format
result = self.controller.restore(self.req, file_meta)
self.assertEqual(None, result)
@mock.patch('subprocess.check_output')
@mock.patch("daisy.api.v1.backup_restore.Controller.check_file_format")
def test_restore_call_process_error(self, mock_do_check_file_format,
mock_do_check_output):
def mock_check_output(*args, **kwargs):
e = subprocess.CalledProcessError(0, 'test')
e.output = 'test error'
raise e
def mock_check_file_format(*args, **kwargs):
return True
file_meta = {
"backup_file_path": "/home/test.tar.gz"}
mock_do_check_output.side_effect = mock_check_output
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.restore,
self.req, file_meta)

View File

@ -11,244 +11,244 @@
# 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 mock
import webob
from daisy import test
from daisy.context import RequestContext
from daisy.api.v1 import deploy_server
class MockStdout():
def __init__(self):
pass
def readline(self):
return ''
class MockPopen():
def __init__(self, returncode):
self.returncode = returncode
self.stdout = MockStdout()
def wait(self):
pass
def poll(self):
return True
class DeployServerFuncs(test.TestCase):
def setUp(self):
super(DeployServerFuncs, self).setUp()
self.controller = deploy_server.Controller()
self.req = webob.Request.blank('/')
self.req.context = RequestContext(is_admin=True, user='fake user',
tenant='fake tenant')
@mock.patch("commands.getstatusoutput")
def test_get_nics(self, mock_do_getstatusoutput):
def mock_getstatusoutput(*args, **kwargs):
return (0, 'docker0: eth0: eth1: ')
mock_do_getstatusoutput.side_effect = mock_getstatusoutput
nics = self.controller.get_nics()
self.assertEqual(set(['docker0', 'eth1', 'eth0']), nics)
@mock.patch("commands.getstatusoutput")
def test_get_nics_with_lo(self, mock_do_getstatusoutput):
def mock_getstatusoutput(*args, **kwargs):
return (0, 'docker0: eth0: eth1: lo: ')
mock_do_getstatusoutput.side_effect = mock_getstatusoutput
nics = self.controller.get_nics()
self.assertEqual(set(['docker0', 'eth1', 'eth0']), nics)
@mock.patch("commands.getstatusoutput")
def test_get_pxe_nic(self, mock_do_getstatusoutput):
def mock_getstatusoutput(*args, **kwargs):
return (0, 'bond0:100')
mock_do_getstatusoutput.side_effect = mock_getstatusoutput
pxe_nic = self.controller.get_pxe_nic("99.99.1.5")
self.assertEqual("bond0", pxe_nic)
@mock.patch("commands.getstatusoutput")
def test_get_pxe_nic_with_error(self, mock_do_getstatusoutput):
def mock_getstatusoutput(*args, **kwargs):
return (1, 'bond0:100')
mock_do_getstatusoutput.side_effect = mock_getstatusoutput
pxe_nic = self.controller.get_pxe_nic("99.99.1.5")
self.assertEqual(None, pxe_nic)
@mock.patch("daisy.registry.client.v1.api.get_all_networks")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_nics")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_pxe_nic")
def test_list_deploy_server(self, mock_do_get_pxe_nic,
mock_do_get_nics,
mock_do_get_all_networks):
def mock_get_all_networks(*args, **kwargs):
return [{"ip": "99.99.1.5"}]
def mock_get_nics(*args, **kwargs):
return set(['docker0', 'eth1', 'eth0'])
def mock_get_pxe_nic(*args, **kwargs):
return "bond0"
mock_do_get_all_networks.side_effect = mock_get_all_networks
mock_do_get_nics.side_effect = mock_get_nics
mock_do_get_pxe_nic.side_effect = mock_get_pxe_nic
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
actual = {'deploy_servers': [
{
'ip': '99.99.1.5',
'nics': set(['docker0', 'eth0', 'eth1']),
'pxe_nic': 'bond0'
}]}
deploy_servers = self.controller.list_deploy_server(req)
self.assertEqual(actual, deploy_servers)
@mock.patch("daisy.registry.client.v1.api.get_all_networks")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_nics")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_pxe_nic")
def test_list_more_deploy_server(self, mock_do_get_pxe_nic,
mock_do_get_nics,
mock_do_get_all_networks):
def mock_get_all_networks(*args, **kwargs):
return [{"ip": "99.99.1.5"}, {"ip": "99.99.1.5"}]
def mock_get_nics(*args, **kwargs):
return set(['docker0', 'eth1', 'eth0'])
def mock_get_pxe_nic(*args, **kwargs):
return "bond0"
mock_do_get_all_networks.side_effect = mock_get_all_networks
mock_do_get_nics.side_effect = mock_get_nics
mock_do_get_pxe_nic.side_effect = mock_get_pxe_nic
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.list_deploy_server,
req)
@mock.patch("daisy.registry.client.v1.api.get_all_networks")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_nics")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_pxe_nic")
def test_list_more_deploy_server_with_error(
self, mock_do_get_pxe_nic, mock_do_get_nics,
mock_do_get_all_networks):
def mock_get_all_networks(*args, **kwargs):
raise webob.exc.HTTPBadRequest(
explanation="Get system net plane failed.",
request=self.req)
def mock_get_nics(*args, **kwargs):
return set(['docker0', 'eth1', 'eth0'])
def mock_get_pxe_nic(*args, **kwargs):
return "bond0"
mock_do_get_all_networks.side_effect = mock_get_all_networks
mock_do_get_nics.side_effect = mock_get_nics
mock_do_get_pxe_nic.side_effect = mock_get_pxe_nic
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.list_deploy_server,
req)
@mock.patch("subprocess.Popen")
def test_pxe_env_check(self, mock_do_popen):
def mock_popen(*args, **kwargs):
_popen = MockPopen(0)
return _popen
mock_do_popen.side_effect = mock_popen
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
deploy_server_meta = {
"deployment_interface": "bond0",
"server_ip": "99.99.1.5"}
actual = {'deploy_server_meta': {'return_code': 0}}
result = self.controller.pxe_env_check(req, deploy_server_meta)
self.assertEqual(actual, result)
@mock.patch("subprocess.Popen")
def test_pxe_env_check_with_error_popen(self, mock_do_popen):
def mock_popen(*args, **kwargs):
_popen = MockPopen(1)
return _popen
mock_do_popen.side_effect = mock_popen
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
deploy_server_meta = {
"deployment_interface": "bond0",
"server_ip": "99.99.1.5"}
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.pxe_env_check,
req, deploy_server_meta)
@mock.patch("subprocess.Popen")
def test_pxe_env_check_call_process_error(self, mock_do_popen):
def mock_popen(*args, **kwargs):
e = subprocess.CalledProcessError(0, 'test')
e.output = 'test error'
raise e
mock_do_popen.side_effect = mock_popen
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
deploy_server_meta = {
"deployment_interface": "bond0",
"server_ip": "99.99.1.5"}
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.pxe_env_check,
req, deploy_server_meta)
@mock.patch("subprocess.Popen")
def test_pxe_env_check_error(self, mock_do_popen):
def mock_popen(*args, **kwargs):
_popen = MockPopen(1)
return _popen
mock_do_popen.side_effect = mock_popen
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
deploy_server_meta = {
"deployment_interface": "bond0",
"server_ip": "99.99.1.5"}
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.pxe_env_check,
req, deploy_server_meta)
# under the License.
import mock
import webob
from daisy import test
from daisy.context import RequestContext
from daisy.api.v1 import deploy_server
class MockStdout():
def __init__(self):
pass
def readline(self):
return ''
class MockPopen():
def __init__(self, returncode):
self.returncode = returncode
self.stdout = MockStdout()
def wait(self):
pass
def poll(self):
return True
class DeployServerFuncs(test.TestCase):
def setUp(self):
super(DeployServerFuncs, self).setUp()
self.controller = deploy_server.Controller()
self.req = webob.Request.blank('/')
self.req.context = RequestContext(is_admin=True, user='fake user',
tenant='fake tenant')
@mock.patch("commands.getstatusoutput")
def test_get_nics(self, mock_do_getstatusoutput):
def mock_getstatusoutput(*args, **kwargs):
return (0, 'docker0: eth0: eth1: ')
mock_do_getstatusoutput.side_effect = mock_getstatusoutput
nics = self.controller.get_nics()
self.assertEqual(set(['docker0', 'eth1', 'eth0']), nics)
@mock.patch("commands.getstatusoutput")
def test_get_nics_with_lo(self, mock_do_getstatusoutput):
def mock_getstatusoutput(*args, **kwargs):
return (0, 'docker0: eth0: eth1: lo: ')
mock_do_getstatusoutput.side_effect = mock_getstatusoutput
nics = self.controller.get_nics()
self.assertEqual(set(['docker0', 'eth1', 'eth0']), nics)
@mock.patch("commands.getstatusoutput")
def test_get_pxe_nic(self, mock_do_getstatusoutput):
def mock_getstatusoutput(*args, **kwargs):
return (0, 'bond0:100')
mock_do_getstatusoutput.side_effect = mock_getstatusoutput
pxe_nic = self.controller.get_pxe_nic("99.99.1.5")
self.assertEqual("bond0", pxe_nic)
@mock.patch("commands.getstatusoutput")
def test_get_pxe_nic_with_error(self, mock_do_getstatusoutput):
def mock_getstatusoutput(*args, **kwargs):
return (1, 'bond0:100')
mock_do_getstatusoutput.side_effect = mock_getstatusoutput
pxe_nic = self.controller.get_pxe_nic("99.99.1.5")
self.assertEqual(None, pxe_nic)
@mock.patch("daisy.registry.client.v1.api.get_all_networks")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_nics")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_pxe_nic")
def test_list_deploy_server(self, mock_do_get_pxe_nic,
mock_do_get_nics,
mock_do_get_all_networks):
def mock_get_all_networks(*args, **kwargs):
return [{"ip": "99.99.1.5"}]
def mock_get_nics(*args, **kwargs):
return set(['docker0', 'eth1', 'eth0'])
def mock_get_pxe_nic(*args, **kwargs):
return "bond0"
mock_do_get_all_networks.side_effect = mock_get_all_networks
mock_do_get_nics.side_effect = mock_get_nics
mock_do_get_pxe_nic.side_effect = mock_get_pxe_nic
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
actual = {'deploy_servers': [
{
'ip': '99.99.1.5',
'nics': set(['docker0', 'eth0', 'eth1']),
'pxe_nic': 'bond0'
}]}
deploy_servers = self.controller.list_deploy_server(req)
self.assertEqual(actual, deploy_servers)
@mock.patch("daisy.registry.client.v1.api.get_all_networks")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_nics")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_pxe_nic")
def test_list_more_deploy_server(self, mock_do_get_pxe_nic,
mock_do_get_nics,
mock_do_get_all_networks):
def mock_get_all_networks(*args, **kwargs):
return [{"ip": "99.99.1.5"}, {"ip": "99.99.1.5"}]
def mock_get_nics(*args, **kwargs):
return set(['docker0', 'eth1', 'eth0'])
def mock_get_pxe_nic(*args, **kwargs):
return "bond0"
mock_do_get_all_networks.side_effect = mock_get_all_networks
mock_do_get_nics.side_effect = mock_get_nics
mock_do_get_pxe_nic.side_effect = mock_get_pxe_nic
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.list_deploy_server,
req)
@mock.patch("daisy.registry.client.v1.api.get_all_networks")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_nics")
@mock.patch("daisy.api.v1.deploy_server.Controller.get_pxe_nic")
def test_list_more_deploy_server_with_error(
self, mock_do_get_pxe_nic, mock_do_get_nics,
mock_do_get_all_networks):
def mock_get_all_networks(*args, **kwargs):
raise webob.exc.HTTPBadRequest(
explanation="Get system net plane failed.",
request=self.req)
def mock_get_nics(*args, **kwargs):
return set(['docker0', 'eth1', 'eth0'])
def mock_get_pxe_nic(*args, **kwargs):
return "bond0"
mock_do_get_all_networks.side_effect = mock_get_all_networks
mock_do_get_nics.side_effect = mock_get_nics
mock_do_get_pxe_nic.side_effect = mock_get_pxe_nic
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.list_deploy_server,
req)
@mock.patch("subprocess.Popen")
def test_pxe_env_check(self, mock_do_popen):
def mock_popen(*args, **kwargs):
_popen = MockPopen(0)
return _popen
mock_do_popen.side_effect = mock_popen
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
deploy_server_meta = {
"deployment_interface": "bond0",
"server_ip": "99.99.1.5"}
actual = {'deploy_server_meta': {'return_code': 0}}
result = self.controller.pxe_env_check(req, deploy_server_meta)
self.assertEqual(actual, result)
@mock.patch("subprocess.Popen")
def test_pxe_env_check_with_error_popen(self, mock_do_popen):
def mock_popen(*args, **kwargs):
_popen = MockPopen(1)
return _popen
mock_do_popen.side_effect = mock_popen
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
deploy_server_meta = {
"deployment_interface": "bond0",
"server_ip": "99.99.1.5"}
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.pxe_env_check,
req, deploy_server_meta)
@mock.patch("subprocess.Popen")
def test_pxe_env_check_call_process_error(self, mock_do_popen):
def mock_popen(*args, **kwargs):
e = subprocess.CalledProcessError(0, 'test')
e.output = 'test error'
raise e
mock_do_popen.side_effect = mock_popen
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
deploy_server_meta = {
"deployment_interface": "bond0",
"server_ip": "99.99.1.5"}
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.pxe_env_check,
req, deploy_server_meta)
@mock.patch("subprocess.Popen")
def test_pxe_env_check_error(self, mock_do_popen):
def mock_popen(*args, **kwargs):
_popen = MockPopen(1)
return _popen
mock_do_popen.side_effect = mock_popen
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
deploy_server_meta = {
"deployment_interface": "bond0",
"server_ip": "99.99.1.5"}
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.pxe_env_check,
req, deploy_server_meta)

View File

@ -11,37 +11,37 @@
# 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 mock
import webob
from daisy.context import RequestContext
from daisy import test
from daisy.api.v1 import members
class TestMembers(test.TestCase):
def setUp(self):
super(TestMembers, self).setUp()
self.controller = members.Controller()
@mock.patch('daisy.api.backends.common._judge_ssh_host')
@mock.patch('daisy.registry.client.v1.api.update_host_metadata')
@mock.patch('daisy.registry.client.v1.api.delete_cluster_host')
@mock.patch('daisy.registry.client.v1.api.get_host_metadata')
@mock.patch('daisy.registry.client.v1.api.get_cluster_metadata')
def test_delete_cluster_host(self, mock_get_cluster, mock_get_host,
mock_delete_cluster_host, mock_update_host,
mock_judge_ssh_host):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True, user='fake user',
tenant='fake tenant')
cluster_id = '1'
host_id = '1'
mock_get_cluster.return_value = {'id': '1', 'deleted': 0}
mock_get_host.return_value = {'id': '1', 'deleted': 0}
mock_delete_cluster_host.return_value = []
mock_judge_ssh_host.return_value = False
mock_update_host.return_value = {}
self.controller.delete_cluster_host(req, cluster_id, host_id)
self.assertTrue(mock_update_host.called)
# under the License.
import mock
import webob
from daisy.context import RequestContext
from daisy import test
from daisy.api.v1 import members
class TestMembers(test.TestCase):
def setUp(self):
super(TestMembers, self).setUp()
self.controller = members.Controller()
@mock.patch('daisy.api.backends.common._judge_ssh_host')
@mock.patch('daisy.registry.client.v1.api.update_host_metadata')
@mock.patch('daisy.registry.client.v1.api.delete_cluster_host')
@mock.patch('daisy.registry.client.v1.api.get_host_metadata')
@mock.patch('daisy.registry.client.v1.api.get_cluster_metadata')
def test_delete_cluster_host(self, mock_get_cluster, mock_get_host,
mock_delete_cluster_host, mock_update_host,
mock_judge_ssh_host):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True, user='fake user',
tenant='fake tenant')
cluster_id = '1'
host_id = '1'
mock_get_cluster.return_value = {'id': '1', 'deleted': 0}
mock_get_host.return_value = {'id': '1', 'deleted': 0}
mock_delete_cluster_host.return_value = []
mock_judge_ssh_host.return_value = False
mock_update_host.return_value = {}
self.controller.delete_cluster_host(req, cluster_id, host_id)
self.assertTrue(mock_update_host.called)

File diff suppressed because it is too large Load Diff

View File

@ -11,273 +11,273 @@
# 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 mock
import webob
from daisy.context import RequestContext
import daisy.registry.client.v1.api as registry
from daisy import test
from daisy.api.v1 import template
from webob.exc import HTTPForbidden
from webob.exc import HTTPBadRequest
cluster = {'vlan_end': None,
'updated_at': '2016-07-19T02:16:05.000000',
'owner': None,
'networking_parameters': {
'vni_range': [None, None],
'public_vip': '192.168.1.4',
'net_l23_provider': None,
'base_mac': '',
'gre_id_range': [None,
None],
'vlan_range': [None, None],
'segmentation_type': None},
'gre_id_start': None,
'deleted_at': None,
'networks': [
'd3d60abf-c8d1-49ec-9731-d500b1ef4acb',
'bc99206e-0ac2-4b6e-9cd3-d4cdd11c208e',
'8518a8a5-e5fb-41ba-877f-eef386e3376f',
'8048a7d7-7b85-4621-837c-adea08acdbbd',
'6aacb625-99f2-4a95-b98f-ec0af256eb55',
'4ad601b0-19e2-4feb-b41a-6e3af5153e2a'],
'id': '4d3156ba-a4a5-4f41-914c-7a148170f281',
'base_mac': '',
'auto_scale': 0,
'target_systems': 'os+tecs',
'vni_end': None,
'gre_id_end': None,
'nodes': [
'6e3a0ab9-fff6-459b-8bf1-9b6681efbfb0',
'd25666c1-651a-4cd7-875a-41a52fddaf6b',
'd04cfa48-c3ad-477c-b2ac-95bee7582181',
'4b6970c5-ef1d-4599-a1d7-70175a888e6d'],
'description': '',
'deleted': False,
'routers': [],
'logic_networks': [],
'net_l23_provider': None,
'vlan_start': None,
'name': 'test',
'created_at': '2016-07-18T02:34:52.000000',
'public_vip': '192.168.1.4',
'use_dns': 1,
'vni_start': None,
'segmentation_type': None}
return_template = [{'name': 'test',
'hosts': None,
'content': '{"cluster":{"description": "",'
'"routers": [],'
'"logic_networks": [],'
'"auto_scale": 0,'
'"use_dns": 1,'
'"target_systems": "os+tecs",'
'"networking_parameters":'
'{"public_vip": "192.168.2.10",'
'"base_mac": ""},'
'"tecs_version_id": "d48fbec7-8764-4d44-'
'b27a-fba7bbcc57d9"},'
'"networks":[{"ip_ranges": [],'
'"cidr": "10.43.178.1/24",'
'"network_type": "DATAPLANE",'
'"name": "physnet1"},'
'{"ip_ranges": [],'
'"cidr": "192.168.1.1/24",'
'"network_type": "MANAGEMENT",'
'"name": "MANAGEMENT"},'
'{"ip_ranges": [],'
'"cidr": "192.168.2.1/24",'
'"network_type": "PUBLICAPI",'
'"name": "PUBLICAPI"}],'
'"roles":[{"name": "CONTROLLER_HA", '
'"config_set_id": "1"},'
'{"name": "CONTROLLER_LB",'
'"config_set_id": "2"},'
'{"name": "COMPUTER",'
'"config_set_id": "3"}],'
'"cinder_volumes":[],'
'"services_disk":[]}',
'type': 'tecs'}]
networks = [{"name": "physnet1",
'id': '1'},
{"name": "MANAGEMENT",
'id': '2'},
{"name": "PUBLICAPI",
'id': '3'}]
roles = [{"name": "CONTROLLER_HA",
'id': '1'},
{"name": "CONTROLLER_LB",
'id': '2'},
{"name": "COMPUTER",
'id': '3'}]
class TestTemplate(test.TestCase):
def setUp(self):
super(TestTemplate, self).setUp()
self.controller = template.Controller()
def test_del_cluster_params(self):
self.controller._del_cluster_params(cluster)
self.assertEqual(None, cluster.get('base_mac', None))
self.assertEqual(None, cluster.get('name', None))
self.assertEqual(None, cluster.get('networks', None))
self.assertEqual(None, cluster.get('vlan_start', None))
self.assertEqual(None, cluster.get('vlan_end', None))
self.assertEqual(None, cluster.get('vni_start', None))
self.assertEqual(None, cluster.get('vni_end', None))
self.assertEqual(None, cluster.get('gre_id_start', None))
self.assertEqual(None, cluster.get('gre_id_end', None))
def test_get_template_detail(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template_id = "123"
registry.template_detail_metadata = mock.Mock(
return_value={"template_name": "test"})
template_meta = self.controller.get_template_detail(req, template_id)
self.assertEqual("test", template_meta['template']['template_name'])
def test_update_template(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template_id = "123"
template = {}
registry.update_template_metadata = mock.Mock(
return_value={"template_name": "test"})
template_meta = self.controller.update_template(
req, template_id, template)
self.assertEqual("test", template_meta['template']['template_name'])
def test_add_template(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template = {"template_name": "test"}
registry.add_template_metadata = mock.Mock(
return_value={"template_name": "test"})
template_meta = self.controller.add_template(req, template)
self.assertEqual("test", template_meta['template']['template_name'])
def test_get_template_lists(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
self.controller._get_query_params = mock.Mock(
return_value={'filter': {}})
template = {"template_name": "test"}
registry.template_lists_metadata = mock.Mock(return_value=[])
templates = self.controller.get_template_lists(req)
self.assertEqual([], templates['template'])
def test_get_services_disk(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
role = {'id': '1', 'name': 'COMPUTER'}
registry.list_service_disk_metadata = mock.Mock(return_value=[])
service_disk = self.controller._get_services_disk(req, role)
self.assertEqual([], service_disk)
def test_delete_template(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template_id = "123"
registry.delete_template_metadata = mock.Mock(return_value={""})
template = self.controller.delete_template(req, template_id)
self.assertEqual(200, template.status_code)
def test_export_db_to_json(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template = {'cluster_name': 'cluster1', 'description': 'desc'}
registry.get_clusters_detail = mock.Mock(return_value={})
self.assertRaises(
HTTPForbidden, self.controller.export_db_to_json, req, template)
@mock.patch('daisy.registry.client.v1.api.'
'list_optical_switch_metadata')
def test_get_optical_switchs(self, mock_list_optical_switch):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
role = {'id': '1',
'name': 'CONTROLLER_HA'}
optical_switchs = [{'role_id': '1',
'created_at': '12:23',
'updated_at': '12:23',
'deleted': '12:23',
'deleted_at': '12:23',
'id': '1234'}]
mock_list_optical_switch.return_value = optical_switchs
optical_switchs_return = self.controller._get_optical_switchs(req,
role)
self.assertEqual('CONTROLLER_HA', optical_switchs_return[0]['role_id'])
def test_import_optical_switchs_to_db(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
optical_switchs = [{'role_id': 'CONTROLLER_HA'}]
roles = [{'id': '2',
'name': 'CONTROLLER_LB'}]
self.assertRaises(HTTPBadRequest,
self.controller._import_optical_switchs_to_db,
req, optical_switchs, roles)
@mock.patch('daisy.registry.client.v1.api.add_service_disk_metadata')
@mock.patch('daisy.registry.client.v1.api.add_optical_switch_metadata')
@mock.patch('daisy.registry.client.v1.api.add_cinder_volume_metadata')
@mock.patch('daisy.registry.client.v1.api.update_role_metadata')
@mock.patch('daisy.registry.client.v1.api.get_roles_detail')
@mock.patch('daisy.registry.client.v1.api.update_network_metadata')
@mock.patch('daisy.registry.client.v1.api.get_networks_detail')
@mock.patch('daisy.registry.client.v1.api.add_cluster_metadata')
@mock.patch('daisy.registry.client.v1.api.get_clusters_detail')
@mock.patch('daisy.registry.client.v1.api.template_lists_metadata')
def test_import_template_to_db_without_optical_switchs(
self, mock_get_template, mock_get_cluster, mock_add_cluster,
mock_get_networks, mock_update_network, mock_get_roles,
mock_update_role, mock_add_cinder_volume, mock_add_optical_switch,
mock_add_service_disk):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template = {'cluster': 'test', 'template_name': 'test'}
mock_get_template.return_value = return_template
mock_get_cluster.return_value = []
mock_add_cluster.return_value = cluster
mock_get_networks.return_value = networks
mock_update_network.return_value = []
mock_get_roles.return_value = roles
mock_update_role.return_value = []
mock_add_cinder_volume.return_value = []
mock_add_optical_switch.return_value = []
mock_add_service_disk.return_value = []
self.assertEqual('4d3156ba-a4a5-4f41-914c-7a148170f281',
self.controller.
import_template_to_db(req, template)
['template']['id'])
# under the License.
import mock
import webob
from daisy.context import RequestContext
import daisy.registry.client.v1.api as registry
from daisy import test
from daisy.api.v1 import template
from webob.exc import HTTPForbidden
from webob.exc import HTTPBadRequest
cluster = {'vlan_end': None,
'updated_at': '2016-07-19T02:16:05.000000',
'owner': None,
'networking_parameters': {
'vni_range': [None, None],
'public_vip': '192.168.1.4',
'net_l23_provider': None,
'base_mac': '',
'gre_id_range': [None,
None],
'vlan_range': [None, None],
'segmentation_type': None},
'gre_id_start': None,
'deleted_at': None,
'networks': [
'd3d60abf-c8d1-49ec-9731-d500b1ef4acb',
'bc99206e-0ac2-4b6e-9cd3-d4cdd11c208e',
'8518a8a5-e5fb-41ba-877f-eef386e3376f',
'8048a7d7-7b85-4621-837c-adea08acdbbd',
'6aacb625-99f2-4a95-b98f-ec0af256eb55',
'4ad601b0-19e2-4feb-b41a-6e3af5153e2a'],
'id': '4d3156ba-a4a5-4f41-914c-7a148170f281',
'base_mac': '',
'auto_scale': 0,
'target_systems': 'os+tecs',
'vni_end': None,
'gre_id_end': None,
'nodes': [
'6e3a0ab9-fff6-459b-8bf1-9b6681efbfb0',
'd25666c1-651a-4cd7-875a-41a52fddaf6b',
'd04cfa48-c3ad-477c-b2ac-95bee7582181',
'4b6970c5-ef1d-4599-a1d7-70175a888e6d'],
'description': '',
'deleted': False,
'routers': [],
'logic_networks': [],
'net_l23_provider': None,
'vlan_start': None,
'name': 'test',
'created_at': '2016-07-18T02:34:52.000000',
'public_vip': '192.168.1.4',
'use_dns': 1,
'vni_start': None,
'segmentation_type': None}
return_template = [{'name': 'test',
'hosts': None,
'content': '{"cluster":{"description": "",'
'"routers": [],'
'"logic_networks": [],'
'"auto_scale": 0,'
'"use_dns": 1,'
'"target_systems": "os+tecs",'
'"networking_parameters":'
'{"public_vip": "192.168.2.10",'
'"base_mac": ""},'
'"tecs_version_id": "d48fbec7-8764-4d44-'
'b27a-fba7bbcc57d9"},'
'"networks":[{"ip_ranges": [],'
'"cidr": "10.43.178.1/24",'
'"network_type": "DATAPLANE",'
'"name": "physnet1"},'
'{"ip_ranges": [],'
'"cidr": "192.168.1.1/24",'
'"network_type": "MANAGEMENT",'
'"name": "MANAGEMENT"},'
'{"ip_ranges": [],'
'"cidr": "192.168.2.1/24",'
'"network_type": "PUBLICAPI",'
'"name": "PUBLICAPI"}],'
'"roles":[{"name": "CONTROLLER_HA", '
'"config_set_id": "1"},'
'{"name": "CONTROLLER_LB",'
'"config_set_id": "2"},'
'{"name": "COMPUTER",'
'"config_set_id": "3"}],'
'"cinder_volumes":[],'
'"services_disk":[]}',
'type': 'tecs'}]
networks = [{"name": "physnet1",
'id': '1'},
{"name": "MANAGEMENT",
'id': '2'},
{"name": "PUBLICAPI",
'id': '3'}]
roles = [{"name": "CONTROLLER_HA",
'id': '1'},
{"name": "CONTROLLER_LB",
'id': '2'},
{"name": "COMPUTER",
'id': '3'}]
class TestTemplate(test.TestCase):
def setUp(self):
super(TestTemplate, self).setUp()
self.controller = template.Controller()
def test_del_cluster_params(self):
self.controller._del_cluster_params(cluster)
self.assertEqual(None, cluster.get('base_mac', None))
self.assertEqual(None, cluster.get('name', None))
self.assertEqual(None, cluster.get('networks', None))
self.assertEqual(None, cluster.get('vlan_start', None))
self.assertEqual(None, cluster.get('vlan_end', None))
self.assertEqual(None, cluster.get('vni_start', None))
self.assertEqual(None, cluster.get('vni_end', None))
self.assertEqual(None, cluster.get('gre_id_start', None))
self.assertEqual(None, cluster.get('gre_id_end', None))
def test_get_template_detail(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template_id = "123"
registry.template_detail_metadata = mock.Mock(
return_value={"template_name": "test"})
template_meta = self.controller.get_template_detail(req, template_id)
self.assertEqual("test", template_meta['template']['template_name'])
def test_update_template(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template_id = "123"
template = {}
registry.update_template_metadata = mock.Mock(
return_value={"template_name": "test"})
template_meta = self.controller.update_template(
req, template_id, template)
self.assertEqual("test", template_meta['template']['template_name'])
def test_add_template(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template = {"template_name": "test"}
registry.add_template_metadata = mock.Mock(
return_value={"template_name": "test"})
template_meta = self.controller.add_template(req, template)
self.assertEqual("test", template_meta['template']['template_name'])
def test_get_template_lists(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
self.controller._get_query_params = mock.Mock(
return_value={'filter': {}})
template = {"template_name": "test"}
registry.template_lists_metadata = mock.Mock(return_value=[])
templates = self.controller.get_template_lists(req)
self.assertEqual([], templates['template'])
def test_get_services_disk(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
role = {'id': '1', 'name': 'COMPUTER'}
registry.list_service_disk_metadata = mock.Mock(return_value=[])
service_disk = self.controller._get_services_disk(req, role)
self.assertEqual([], service_disk)
def test_delete_template(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template_id = "123"
registry.delete_template_metadata = mock.Mock(return_value={""})
template = self.controller.delete_template(req, template_id)
self.assertEqual(200, template.status_code)
def test_export_db_to_json(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template = {'cluster_name': 'cluster1', 'description': 'desc'}
registry.get_clusters_detail = mock.Mock(return_value={})
self.assertRaises(
HTTPForbidden, self.controller.export_db_to_json, req, template)
@mock.patch('daisy.registry.client.v1.api.'
'list_optical_switch_metadata')
def test_get_optical_switchs(self, mock_list_optical_switch):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
role = {'id': '1',
'name': 'CONTROLLER_HA'}
optical_switchs = [{'role_id': '1',
'created_at': '12:23',
'updated_at': '12:23',
'deleted': '12:23',
'deleted_at': '12:23',
'id': '1234'}]
mock_list_optical_switch.return_value = optical_switchs
optical_switchs_return = self.controller._get_optical_switchs(req,
role)
self.assertEqual('CONTROLLER_HA', optical_switchs_return[0]['role_id'])
def test_import_optical_switchs_to_db(self):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
optical_switchs = [{'role_id': 'CONTROLLER_HA'}]
roles = [{'id': '2',
'name': 'CONTROLLER_LB'}]
self.assertRaises(HTTPBadRequest,
self.controller._import_optical_switchs_to_db,
req, optical_switchs, roles)
@mock.patch('daisy.registry.client.v1.api.add_service_disk_metadata')
@mock.patch('daisy.registry.client.v1.api.add_optical_switch_metadata')
@mock.patch('daisy.registry.client.v1.api.add_cinder_volume_metadata')
@mock.patch('daisy.registry.client.v1.api.update_role_metadata')
@mock.patch('daisy.registry.client.v1.api.get_roles_detail')
@mock.patch('daisy.registry.client.v1.api.update_network_metadata')
@mock.patch('daisy.registry.client.v1.api.get_networks_detail')
@mock.patch('daisy.registry.client.v1.api.add_cluster_metadata')
@mock.patch('daisy.registry.client.v1.api.get_clusters_detail')
@mock.patch('daisy.registry.client.v1.api.template_lists_metadata')
def test_import_template_to_db_without_optical_switchs(
self, mock_get_template, mock_get_cluster, mock_add_cluster,
mock_get_networks, mock_update_network, mock_get_roles,
mock_update_role, mock_add_cinder_volume, mock_add_optical_switch,
mock_add_service_disk):
req = webob.Request.blank('/')
req.context = RequestContext(is_admin=True,
user='fake user',
tenant='fake tenant')
template = {'cluster': 'test', 'template_name': 'test'}
mock_get_template.return_value = return_template
mock_get_cluster.return_value = []
mock_add_cluster.return_value = cluster
mock_get_networks.return_value = networks
mock_update_network.return_value = []
mock_get_roles.return_value = roles
mock_update_role.return_value = []
mock_add_cinder_volume.return_value = []
mock_add_optical_switch.return_value = []
mock_add_service_disk.return_value = []
self.assertEqual('4d3156ba-a4a5-4f41-914c-7a148170f281',
self.controller.
import_template_to_db(req, template)
['template']['id'])