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='******',
                                       tenant='fake tenant')
예제 #2
0
 def setUp(self):
     super(TestOsInstall, self).setUp()
     self.req = webob.Request.blank('/')
     self.req.context = RequestContext(is_admin=True,
                                       user='******',
                                       tenant='fake tenant')
     self._log_handler.reset()
    def test_add_version_patch(self, mock_do_request):
        version_patch_meta = set_version_meta()
        req = webob.Request.blank('/')
        req.context = RequestContext(is_admin=True,
                                     user='******',
                                     tenant='fake tenamet')

        def fake_do_request(method, path, **params):
            res = mock.Mock()
            if method == 'POST':
                post_result = {
                    u'version_patch': {u'status': u'used',
                                       u'name': u'name3',
                                       u'deleted': False, u'checksum': None,
                                       u'created_at': u'2016-07-12',
                                       u'description': None,
                                       u'status': u'used',
                                       u'deleted_at': None,
                                       u'size': None}}
                res.read.return_value = jsonutils.dumps(post_result)
                return res

        mock_do_request.side_effect = fake_do_request
        add_version = self.controller.add_version_patch(req,
                                                        version_patch_meta)
        self.assertEqual("name3",
                         add_version['version_patch_meta']['name'])
 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='******',
                                       tenant='fake tenant')
예제 #5
0
    def test_begin_install_os_with_write_ipmi(self, mock_log, mock_update_host,
                                              mock_set_boot_pxe,
                                              mock_install_os_for_baremetal,
                                              mock_set_power_reset):
        req = webob.Request.blank('/')
        req.context = RequestContext(is_admin=True,
                                     user='******',
                                     tenant='fake tenant')
        cluster_id = '1'

        class InstallMock():
            def __init__(self):
                pass

            def install_os_for_baremetal(self, host_detail):
                pass

            def set_power_reset(self, host_detail, impi_result_flag):
                pass

        hosts_detail = [{'id': '1'}]
        mock_log.side_effect = self._log_handler
        mock_update_host.return_value = {}
        mock_set_boot_pxe.return_value = True
        mock_install_os_for_baremetal.side_effect = \
            InstallMock().install_os_for_baremetal
        mock_set_power_reset.side_effect = InstallMock().set_power_reset
        install.OSInstall(req, cluster_id, False).\
            _begin_install_os(hosts_detail, cluster_id)
        self.assertTrue(mock_install_os_for_baremetal.called)
        self.assertTrue(mock_set_power_reset.called)
예제 #6
0
 def test_add_network_invalid_ip_ranges(self, get_cluster, get_networks,
                                        add_network,
                                        fake_valid_network_range):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  user='******',
                                  tenant='fake tenamet')
     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'
         },
     ]
     network_meta = {'name': 'PUBLICAPI',
                     'network_type': 'PUBLICAPI',
                     'ip_ranges': ip_ranges
                     }
     return_network = {'name': 'MANAGEMENT1',
                       'network_type': 'MANAGEMENT',
                       'custom_name': 'management1'}
     fake_valid_network_range.return_value = True
     self.assertRaises(
         exc.HTTPForbidden, self.controller.add_network, req, network_meta)
    def test_delete_version_patch(self, mock_do_request):
        version_patch_id = "34811a0e-a69f-4dd3-bbfb-66792a979e99"
        req = webob.Request.blank('/')
        req.context = RequestContext(is_admin=True,
                                     user='******',
                                     tenant='fake tenamet')

        def fake_do_request(method, path, **params):
            res = mock.Mock()
            if method == "GET":
                get_result = {
                    "version_patch": {"status": "unused",
                                      "name": "ssh2.exe",
                                      "checksum": "60489112c277862fbf",
                                      "size": 1089536,
                                      "id": "34811a0e-a69f-2a979e99",
                                      "description": "azsad"}}
                res.read.return_value = jsonutils.dumps(get_result)
                return res
            elif method == "DELETE":
                result = {
                    "version_patch": {"status": "unused",
                                      "name": "ssh2.exe",
                                      "checksum": "60489112c277a18147b",
                                      "created_at": "2016-07-12",
                                      "size": 1089536,
                                      "updated_at": "2016-07-12",
                                      "id": "34811a0e-a69f-4dd3",
                                      "description": "azsdadsad"}}
                res.read.return_value = jsonutils.dumps(result)
                return res

        mock_do_request.side_effect = fake_do_request
        version = self.controller.delete_version_patch(req, version_patch_id)
        self.assertEqual(200, version.status_code)
예제 #8
0
 def test_add_network_publicapi_net(self, get_cluster, get_networks,
                                    add_network, fake_valid_network_range,
                                    fake_valid_ip_ranges):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  user='******',
                                  tenant='fake tenamet')
     ip_ranges = [
         {
             'start': '112.18.1.5',
             'cidr': '112.18.1.1/24',
             'end': '112.18.1.5',
             'gateway': '112.18.1.2'
         },
         {
             'start': '112.18.1.15',
             'cidr': '112.18.1.1/24',
             'end': '112.18.1.15',
             'gateway': '112.18.1.1'
         },
     ]
     network_meta = {'name': 'PUBLICAPI',
                     'network_type': 'PUBLICAPI',
                     'ip_ranges': ip_ranges,
                     'cidr': '112.18.1.1/24'
                     }
     return_network = {'name': 'PUBLICAPI',
                       'network_type': 'PUBLICAPI'}
     get_cluster.return_value = []
     get_networks.return_value = []
     add_network.return_value = return_network
     fake_valid_network_range.return_value = True
     network = self.controller.add_network(req, network_meta)
     self.assertEqual('PUBLICAPI',
                      network['network_meta']['name'])
예제 #9
0
 def test_add_network_with_exist_custom_name(self,
                                             get_cluster,
                                             get_networks):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  user='******',
                                  tenant='fake tenamet')
     network_meta = {'cluster_id': '1',
                     'network_type': 'MANAGEMENT',
                     'custom_name': 'management1',
                     'name': 'MANAGEMENT1'}
     cluster = {'id': '1',
                'deleted': 0}
     networks_with_same_custom_name = [{'name': 'PUBLICAPI',
                                        'network_type': 'PUBLICAPI',
                                        'custom_name': None},
                                       {'name': 'physnet1',
                                        'network_type': 'DATAPLANE'},
                                       {'name': 'STORAGE',
                                        'network_type': 'STORAGE',
                                        'custom_name': 'management1'}]
     get_cluster.return_value = cluster
     get_networks.return_value = networks_with_same_custom_name
     self.assertRaises(webob.exc.HTTPConflict, self.controller.add_network,
                       req, network_meta)
예제 #10
0
 def test_add_network_with_no_exist_custom_name(self,
                                                get_cluster,
                                                get_networks,
                                                add_network):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  user='******',
                                  tenant='fake tenamet')
     network_meta = {'cluster_id': '1',
                     'network_type': 'MANAGEMENT',
                     'custom_name': 'management1',
                     'name': 'MANAGEMENT1'}
     cluster = {'id': '1',
                'deleted': 0}
     networks = [{'name': 'PUBLICAPI',
                  'network_type': 'PUBLICAPI',
                  'custom_name': None},
                 {'name': 'physnet1',
                  'network_type': 'DATAPLANE',
                  'custom_name': 'physnet2'}]
     return_network = {'name': 'MANAGEMENT1',
                       'network_type': 'MANAGEMENT',
                       'custom_name': 'management1'}
     get_cluster.return_value = cluster
     get_networks.return_value = networks
     add_network.return_value = return_network
     network = self.controller.add_network(req, network_meta)
     self.assertEqual('management1',
                      network['network_meta']['custom_name'])
    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='******',
                                     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)
예제 #12
0
 def setUp(self):
     super(TestDiskArray, self).setUp()
     self.controller = disk_array.Controller()
     self.req = webob.Request.blank('/')
     self.req.context = RequestContext(is_admin=True,
                                       user='******',
                                       tenant='fake tenamet')
예제 #13
0
 def setUp(self):
     super(TestInstall, self).setUp()
     self.req = webob.Request.blank('/')
     self.req.context = RequestContext(is_admin=True,
                                       user='******',
                                       tenant='fake tenant')
     self.installer = install.KOLLAInstallTask(
         self.req, '8ad27e36-f3e2-48b4-84b8-5b676c6fabde')
예제 #14
0
    def test_update_network_invalid_cidr(self, get_network_meta,
                                         get_cluster_meta,
                                         get_networks_detail,
                                         fake_is_dataplane_in_use,
                                         fake_update_network,
                                         fake_valid_ip_ranges):
        req = webob.Request.blank('/')
        req.context = RequestContext(is_admin=True,
                                     user='******',
                                     tenant='fake tenamet')
        ip_ranges = [
            {
                'start': '112.18.1.5',
                'cidr': '112.18.1.1/24',
                'end': '112.18.1.5',
                'gateway': '112.18.1.2'
            },
            {
                'start': '112.18.1.15',
                'cidr': '112.18.1.1/24',
                'end': '112.18.1.15',
                'gateway': '112.18.1.1'
            },
        ]
        network_id = 'cf531581-a283-41dd-9e4e-4b98454d54e7'
        network_meta = {'cluster_id': '1',
                        'name': 'PUBLICAPI',
                        'network_type': 'PUBLICAPI',
                        'ip_ranges': ip_ranges,
                        'cidr': None}
        orig_network_meta = {'cidr': None,
                             'gateway': '112.18.1.1',
                             'cluster_id': '1',
                             'vlan_id': None,
                             'deleted': False,
                             'id': 'cf531581-a283-41dd-9e4e-4b98454d54e7',
                             'network_type': 'PUBLICAPI',
                             'type': 'default'}
        cluster_meta = {'id': '1', 'deleted': False, }
        networks_detail = [{'cluster_id': '1',
                            'gateway': '112.18.1.1',
                            'vlan_id': None,
                            'id': 'cf531581-a283-41dd-9e4e-4b98454d54e7',
                            'ip_ranges': [
                                {
                                    'end': '112.18.1.16',
                                    'start': '112.18.1.17'}],
                            'name': 'physnet1',
                            'network_type': 'PUBLICAPI',
                            'type': 'default'}]

        get_network_meta.return_value = orig_network_meta
        get_cluster_meta.return_value = cluster_meta
        get_networks_detail.return_value = networks_detail
        fake_update_network.return_value = network_meta
        fake_is_dataplane_in_use.return_value = False
        self.assertRaises(exc.HTTPForbidden, self.controller.update_network,
                          req, network_id, network_meta)
 def test_add_version_patch_with_no_name(self):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  user='******',
                                  tenant='fake tenamet')
     version_meta = {}
     version_meta["description"] = "111"
     self.assertRaises(ValueError, self.controller.add_version_patch, req,
                       version_meta)
예제 #16
0
 def test_update_network_with_no_exist_custom_name(self,
                                                   get_network_meta,
                                                   get_cluster_meta,
                                                   get_networks_detail,
                                                   update_network):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  user='******',
                                  tenant='fake tenamet')
     network_id = '1'
     network_meta = {'custom_name': 'publicapi1'}
     orig_network_meta = {'deleted': False,
                          'cluster_id': '1',
                          'id': '1',
                          'network_type': 'PUBLICAPI',
                          'cidr': '192.168.1.1/24',
                          'vlan_id': None,
                          'custom_name': 'publicapi',
                          'gateway': None}
     cluster_meta = {'id': '1',
                     'deleted': False}
     networks_detail = [{'deleted': False,
                         'cluster_id': '1',
                         'id': '1',
                         'network_type': 'PUBLICAPI',
                         'cidr': '192.168.1.1/24',
                         'vlan_id': None,
                         'custom_name': 'publicapi'},
                        {'deleted': False,
                         'cluster_id': '1',
                         'id': '2',
                         'network_type': 'MANAGEMENT',
                         'cidr': '192.168.1.1/24',
                         'vlan_id': None,
                         'custom_name': 'management'},
                        {'deleted': False,
                         'cluster_id': '1',
                         'id': '3',
                         'network_type': 'DATAPLANE',
                         'cidr': None,
                         'vlan_id': None,
                         'custom_name': 'physnet'}]
     update_network_meta = {'deleted': False,
                            'cluster_id': '1',
                            'id': '1',
                            'network_type': 'PUBLICAPI',
                            'cidr': '192.168.1.1/24',
                            'vlan_id': None,
                            'custom_name': 'publicapi1'}
     get_network_meta.return_value = orig_network_meta
     get_cluster_meta.return_value = cluster_meta
     get_networks_detail.return_value = networks_detail
     update_network.return_value = update_network_meta
     network_meta = self.controller.update_network(req, network_id,
                                                   network_meta)
     self.assertEqual('publicapi1',
                      network_meta['network_meta']['custom_name'])
예제 #17
0
 def test_export_db_to_json(self):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  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)
 def test_list_host_patch_history(self, mock_list_history):
     history_meta = {'patch_name': 'test'}
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  user='******',
                                  tenant='fake tenamet')
     mock_list_history.return_value = history_meta
     historys = self.controller.list_host_patch_history(req)
     self.assertEqual({'patch_history_meta': history_meta}, historys)
예제 #19
0
 def test_get_services_disk(self):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  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)
예제 #20
0
 def test_delete_template(self):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  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)
예제 #21
0
 def test_import_optical_switchs_to_db(self):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  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)
예제 #22
0
 def test_add_template(self):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  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_list_host_patch_history_with_except(self, mock_list_history):
        def mock_history(*args, **kwargs):
            raise webob.exc.HTTPBadRequest

        req = webob.Request.blank('/')
        req.context = RequestContext(is_admin=True,
                                     user='******',
                                     tenant='fake tenamet')
        mock_list_history.side_effect = mock_history
        self.assertRaises(webob.exc.HTTPBadRequest,
                          self.controller.list_host_patch_history, req)
예제 #24
0
 def test_get_template_lists(self):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  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'])
예제 #25
0
 def test_get_assigned_networks_by_network_id_exception(
         self, mock_get_assigned_networks_by_network_id):
     id = '3'
     self.req = webob.Request.blank('/')
     self.req.context = RequestContext(is_admin=True,
                                       user='******',
                                       tenant='fake tenant')
     mock_get_assigned_networks_by_network_id.side_effect = \
         fake_network_id(id)
     self.assertRaises(exception.Conflict,
                       self.controller.get_assigned_networks_by_network_id,
                       self.req, id)
예제 #26
0
 def test_get_assigned_networks_by_network_id_notfound(
         self, mock_get_assigned_networks_by_network_id):
     id = '2'
     self.req = webob.Request.blank('/')
     self.req.context = RequestContext(is_admin=True,
                                       user='******',
                                       tenant='fake tenant')
     mock_get_assigned_networks_by_network_id.side_effect = \
         fake_network_id(id)
     self.assertRaises(webob.exc.HTTPNotFound,
                       self.controller.get_assigned_networks_by_network_id,
                       self.req, id)
예제 #27
0
 def test_add_network(self, mock_add_network_metadata):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  user='******',
                                  tenant='fake tenamet')
     network_meta = {'network_type': 'DATAPLANE',
                     'gateway': '192.168.1.1', 'name': 'pysnet1'}
     mock_add_network_metadata.return_value = network_meta
     #registry.add_network_metadata = mock.Mock(return_value=network_meta)
     add_network = self.controller.add_network(req, network_meta)
     self.assertEqual(network_meta['network_type'],
                      add_network['network_meta']['network_type'])
예제 #28
0
    def test_update_db_host_status_with_os_patch_id(self, mock_do_update_host):
        def mock_update_host(*args, **kwargs):
            return host_status

        req = webob.Request.blank('/')
        req.context = RequestContext(is_admin=True, user='******',
                                     tenant='fake tenant')
        host_id = '123'
        version_patch_id = "456"
        host_status = {"os_progress": 100, "os_status": "active",
                       "version_patch_id": version_patch_id}
        mock_do_update_host.side_effect = mock_update_host
        host_info = common.update_db_host_status(req, host_id, host_status)
        self.assertEqual("456", host_info['version_patch_id'])
예제 #29
0
    def test_update_db_host_status(self, mock_do_update_host):
        def mock_update_host(*args, **kwargs):
            return host_status

        req = webob.Request.blank('/')
        req.context = RequestContext(is_admin=True, user='******',
                                     tenant='fake tenant')
        host_id = '123'
        host_status = {"os_progress": 100, "os_status": "active",
                       "messages": "test"}
        mock_do_update_host.side_effect = mock_update_host
        host_info = common.update_db_host_status(req, host_id, host_status)
        self.assertEqual(100, host_info['os_progress'])
        self.assertEqual("active", host_info['os_status'])
        self.assertEqual("test", host_info['messages'])
예제 #30
0
 def test_upgrade_os_failed(self, mock_os_thread_in, mock_get_host_detail,
                            mock_do_update_db_status):
     req = webob.Request.blank('/')
     req.context = RequestContext(is_admin=True,
                                  user='******',
                                  tenant='fake tenant')
     version_id = "1"
     version_patch_id = ""
     update_file = "test"
     hosts_list = [{'10.43.177.1': {'id': "1"}}]
     update_object = "vplat"
     mock_do_update_db_status.return_value = {}
     mock_get_host_detail.return_value = {'os_status': 'updating'}
     mock_os_thread_in.return_value = {}
     install.upgrade_os(req, version_id, version_patch_id, update_file,
                        hosts_list, update_object)