public String toString()

in plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java [1165:1304]


        public String toString() {
            StringBuilder diskBuilder = new StringBuilder();
            diskBuilder.append("<disk ");
            if (_deviceType != null) {
                diskBuilder.append(" device='" + _deviceType + "'");
            }
            diskBuilder.append(" type='" + _diskType + "'");
            diskBuilder.append(">\n");
            if(qemuDriver) {
                diskBuilder.append("<driver name='qemu'" + " type='" + _diskFmtType + "' ");

                if (_deviceType != DeviceType.CDROM) {
                    diskBuilder.append("cache='" + _diskCacheMode + "' ");
                }

                if(_discard != null && _discard != DiscardType.IGNORE) {
                    diskBuilder.append("discard='" + _discard.toString() + "' ");
                }

                if(ioDriver != null) {
                    diskBuilder.append(String.format("io='%s' ", ioDriver));
                }

                if (isIothreadsEnabled && _bus == DiskBus.VIRTIO) {
                    diskBuilder.append(String.format("iothread='%s' ", NUMBER_OF_IOTHREADS));
                }
                diskBuilder.append("/>\n");
            }

            if (_diskType == DiskType.FILE) {
                diskBuilder.append("<source ");
                if (_sourcePath != null) {
                    diskBuilder.append("file='" + _sourcePath + "'");
                } else if (_deviceType == DeviceType.CDROM) {
                    diskBuilder.append("file=''");
                }
                diskBuilder.append("/>\n");
            } else if (_diskType == DiskType.BLOCK) {
                diskBuilder.append("<source");
                if (_sourcePath != null) {
                    diskBuilder.append(" dev='" + _sourcePath + "'");
                }
                diskBuilder.append("/>\n");
            } else if (_diskType == DiskType.NETWORK) {
                diskBuilder.append("<source ");
                diskBuilder.append(" protocol='" + _diskProtocol + "'");
                diskBuilder.append(" name='" + _sourcePath + "'");
                diskBuilder.append(">\n");
                for (String sourceHost : _sourceHost.split(",")) {
                    diskBuilder.append("<host name='");
                    diskBuilder.append(sourceHost.replace("[", "").replace("]", ""));
                    if (_sourcePort != 0) {
                        diskBuilder.append("' port='");
                        diskBuilder.append(_sourcePort);
                    }
                    diskBuilder.append("'/>\n");
                }
                diskBuilder.append("</source>\n");
                if (_authUserName != null) {
                    diskBuilder.append("<auth username='" + _authUserName + "'>\n");
                    diskBuilder.append("<secret type='ceph' uuid='" + _authSecretUUID + "'/>\n");
                    diskBuilder.append("</auth>\n");
                }
            }
            diskBuilder.append("<target dev='" + _diskLabel + "'");
            if (_bus != null) {
                diskBuilder.append(" bus='" + _bus + "'");
            }
            diskBuilder.append("/>\n");

            if (geometry != null) {
                diskBuilder.append(geometry.toXml());
            }

            if (logicalBlockIOSize != null || physicalBlockIOSize != null) {
                diskBuilder.append("<blockio ");
                if (logicalBlockIOSize != null) {
                    diskBuilder.append(String.format("logical_block_size='%s' ", logicalBlockIOSize));
                }
                if (physicalBlockIOSize != null) {
                    diskBuilder.append(String.format("physical_block_size='%s' ", physicalBlockIOSize));
                }
                diskBuilder.append("/>\n");
            }

            if (_serial != null && !_serial.isEmpty() && _deviceType != DeviceType.LUN) {
                diskBuilder.append("<serial>" + _serial + "</serial>\n");
            }

            if (encryptDetails != null) {
                diskBuilder.append("<encryption format='" + encryptDetails.encryptFormat + "'>\n");
                diskBuilder.append("<secret type='passphrase' uuid='" + encryptDetails.passphraseUuid + "' />\n");
                diskBuilder.append("</encryption>\n");
            }

            if ((_deviceType != DeviceType.CDROM) &&
                    (s_libvirtVersion >= 9008) &&
                    (s_qemuVersion >= 1001000) &&
                    (((_bytesReadRate != null) && (_bytesReadRate > 0)) || ((_bytesWriteRate != null) && (_bytesWriteRate > 0)) ||
                            ((_iopsReadRate != null) && (_iopsReadRate > 0)) || ((_iopsWriteRate != null) && (_iopsWriteRate > 0)))) { // not CDROM, from libvirt 0.9.8 and QEMU 1.1.0
                diskBuilder.append("<iotune>\n");
                if ((_bytesReadRate != null) && (_bytesReadRate > 0))
                    diskBuilder.append("<read_bytes_sec>" + _bytesReadRate + "</read_bytes_sec>\n");
                if ((_bytesWriteRate != null) && (_bytesWriteRate > 0))
                    diskBuilder.append("<write_bytes_sec>" + _bytesWriteRate + "</write_bytes_sec>\n");
                if ((_iopsReadRate != null) && (_iopsReadRate > 0))
                    diskBuilder.append("<read_iops_sec>" + _iopsReadRate + "</read_iops_sec>\n");
                if ((_iopsWriteRate != null) && (_iopsWriteRate > 0))
                    diskBuilder.append("<write_iops_sec>" + _iopsWriteRate + "</write_iops_sec>\n");
                if (s_qemuVersion >= 2004000) {
                    if (_bytesReadRateMax != null && _bytesReadRateMax > 0 ) {
                        diskBuilder.append("<read_bytes_sec_max>" + _bytesReadRateMax + "</read_bytes_sec_max>\n");
                    }
                    if (_bytesWriteRateMax != null && _bytesWriteRateMax > 0) {
                        diskBuilder.append("<write_bytes_sec_max>" + _bytesWriteRateMax + "</write_bytes_sec_max>\n");
                    }
                    if (_iopsReadRateMax != null && _iopsReadRateMax > 0)
                        diskBuilder.append("<read_iops_sec_max>" + _iopsReadRateMax + "</read_iops_sec_max>\n");
                    if (_iopsWriteRateMax != null && _iopsWriteRateMax > 0)
                        diskBuilder.append("<write_iops_sec_max>" + _iopsWriteRateMax + "</write_iops_sec_max>\n");
                }
                if (s_qemuVersion >= 2006000) {
                    if (_bytesReadRateMaxLength != null && _bytesReadRateMaxLength > 0) {
                        diskBuilder.append("<read_bytes_sec_max_length>" + _bytesReadRateMaxLength + "</read_bytes_sec_max_length>\n");
                    }
                    if (_bytesWriteRateMaxLength != null && _bytesWriteRateMaxLength > 0) {
                        diskBuilder.append("<write_bytes_sec_max_length>" + _bytesWriteRateMaxLength + "</write_bytes_sec_max_length>\n");
                    }
                    if (_iopsReadRateMaxLength != null && _iopsReadRateMaxLength > 0)
                        diskBuilder.append("<read_iops_sec_max_length>" + _iopsReadRateMaxLength + "</read_iops_sec_max_length>\n");
                    if (_iopsWriteRateMaxLength != null && _iopsWriteRateMaxLength > 0)
                        diskBuilder.append("<write_iops_sec_max_length>" + _iopsWriteRateMaxLength + "</write_iops_sec_max_length>\n");
                }

                diskBuilder.append("</iotune>\n");
            }

            diskBuilder.append("</disk>\n");
            return diskBuilder.toString();
        }