예제 #1
0
    def build_virtual_machine(self, instance, instance_name, image_info,
                              dc_info, datastore, network_info,
                              pg_vlan_instance_map):
        node_mo_id = vm_util.get_mo_id_from_instance(instance)
        res_pool_ref = vm_util.get_res_pool_ref(self._session,
                                                self._cluster, node_mo_id)
        vif_infos = vmwarevif.get_vif_info(self._session,
                                           self._cluster,
                                           utils.is_neutron(),
                                           image_info.vif_model,
                                           network_info,
                                           pg_vlan_instance_map)

        allocations = self._get_cpu_allocations(instance.instance_type_id)

        # Get the create vm config spec
        client_factory = self._session._get_vim().client.factory
        config_spec = vm_util.get_vm_create_spec(client_factory,
                                                 instance,
                                                 instance_name,
                                                 datastore.name,
                                                 vif_infos,
                                                 image_info.os_type,
                                                 allocations=allocations)
        # Create the VM
        vm_ref = vm_util.create_vm(self._session, instance, dc_info.vmFolder,
                                   config_spec, res_pool_ref)
        return vm_ref
예제 #2
0
파일: driver.py 프로젝트: mikalstill/nova
 def check_can_live_migrate_source(self, context, instance,
                                   dest_check_data, block_device_info=None):
     cluster_name = dest_check_data.cluster_name
     cluster_ref = vm_util.get_cluster_ref_by_name(self._session,
                                                   cluster_name)
     if cluster_ref is None:
         msg = (_("Cannot find destination cluster %s for live migration") %
                cluster_name)
         raise exception.MigrationPreCheckError(reason=msg)
     res_pool_ref = vm_util.get_res_pool_ref(self._session, cluster_ref)
     if res_pool_ref is None:
         msg = _("Cannot find destination resource pool for live migration")
         raise exception.MigrationPreCheckError(reason=msg)
     return dest_check_data
예제 #3
0
파일: driver.py 프로젝트: zhangshihelp/nova
 def check_can_live_migrate_source(self,
                                   context,
                                   instance,
                                   dest_check_data,
                                   block_device_info=None):
     cluster_name = dest_check_data.cluster_name
     cluster_ref = vm_util.get_cluster_ref_by_name(self._session,
                                                   cluster_name)
     if cluster_ref is None:
         msg = (_("Cannot find destination cluster %s for live migration") %
                cluster_name)
         raise exception.MigrationPreCheckError(reason=msg)
     res_pool_ref = vm_util.get_res_pool_ref(self._session, cluster_ref)
     if res_pool_ref is None:
         msg = _("Cannot find destination resource pool for live migration")
         raise exception.MigrationPreCheckError(reason=msg)
     return dest_check_data