${node.devNode.ip}_${node.devNode.deviceSerialNumber}${RES.getString("report.detail.header")}

${RES.getString("report.cluster.basic.info")}
${RES.getString("report.cluster.product.model")} ${node.devNode.getProductModel()}
${RES.getString("report.cluster.product.version")} ${node.devNode.getProductVersion()}
${RES.getString("report.cluster.float.ip")} ${node.devNode.getIp()}
${RES.getString("report.cluster.sn")} ${node.devNode.getDeviceSerialNumber()}
${RES.getString("report.cluster.upgrade.model")} ${node.upgradeMode.getDesc()}
${RES.getString("report.now.dpcPackage.version")} ${node.packageInfo.getVersion()!"--"}
<#list details! as detail>
<#if lan == "zh"> ${detail.result.getOption().getDesc()}${RES.getString("report.execute.result")} <#else> ${detail.result.getOption().getDesc()} ${RES.getString("report.execute.result")}
${RES.getString("report.start.time")} ${detail.result.upgradeResult.getStartTime()!"--"}
${RES.getString("report.end.time")} ${detail.result.upgradeResult.getEndTime()!"--"}
${RES.getString("report.execute.dpc.node")}
<#list detail.nodeResult as result> <#if result.getStatus().getKey() == "ignore"> <#elseif result.getStatus().getKey() == "failed"> <#else>
${RES.getString("upgrade.compute.node.excel.table.ip")} ${RES.getString("report.execute.result")} ${RES.getString("report.node.error.message")}
${result.hostIp} ${result.status.getDesc()!""} ${result.message!""}