Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def _create_server_volume(self, flavor_id, image_id,
- security_groups, datastore_manager,
- volume_size, availability_zone,
- nics, files, volume_type,
- scheduler_hints):
- LOG.debug("Begin _create_server_volume for id: %s", self.id)
- server = None
- volume_info = self._build_volume_info(datastore_manager,
- volume_size=volume_size,
- volume_type=volume_type)
- block_device_mapping_v2 = volume_info['block_device']
- try:
- server = self._create_server(flavor_id, image_id, security_groups,
- datastore_manager,
- block_device_mapping_v2,
- availability_zone, nics, files,
- scheduler_hints)
- server_id = server.id
- # Save server ID.
- self.update_db(compute_instance_id=server_id)
- except Exception as e:
- log_fmt = "Failed to create server for instance %s"
- exc_fmt = _("Failed to create server for instance %s")
- err = inst_models.InstanceTasks.BUILDING_ERROR_SERVER
- self._log_and_raise(e, log_fmt, exc_fmt, self.id, err)
- LOG.debug("End _create_server_volume for id: %s", self.id)
- return volume_info
- def _build_volume_info(self, datastore_manager, volume_size=None,
- volume_type=None):
- volume_info = None
- volume_support = self.volume_support
- device_path = self.device_path
- mount_point = CONF.get(datastore_manager).mount_point
- LOG.debug("trove volume support = %s", volume_support)
- if volume_support:
- try:
- volume_info = self._create_volume(
- volume_size, volume_type, datastore_manager)
- except Exception as e:
- log_fmt = "Failed to create volume for instance %s"
- exc_fmt = _("Failed to create volume for instance %s")
- err = inst_models.InstanceTasks.BUILDING_ERROR_VOLUME
- self._log_and_raise(e, log_fmt, exc_fmt, self.id, err)
- else:
- LOG.debug("device_path = %(path)s\n"
- "mount_point = %(point)s",
- {
- "path": device_path,
- "point": mount_point
- })
- volume_info = {
- 'block_device': None,
- 'device_path': device_path,
- 'mount_point': mount_point,
- }
- return volume_info
- def _create_server(self, flavor_id, image_id, security_groups,
- datastore_manager, block_device_mapping_v2,
- availability_zone, nics, files={},
- scheduler_hints=None):
- userdata = self._prepare_userdata(datastore_manager)
- name = self.hostname or self.name
- bdmap_v2 = block_device_mapping_v2
- config_drive = CONF.use_nova_server_config_drive
- server = self.nova_client.servers.create(
- name, image_id, flavor_id, files=files, userdata=userdata,
- security_groups=security_groups, block_device_mapping_v2=bdmap_v2,
- availability_zone=availability_zone, nics=nics,
- config_drive=config_drive, scheduler_hints=scheduler_hints)
- LOG.debug("Created new compute instance %(server_id)s "
- "for instance %(id)s",
- {'server_id': server.id, 'id': self.id})
- return server
Advertisement
Add Comment
Please, Sign In to add comment