public ListTemplateAnswer(String secUrl, Map<String, TemplateProp> templateInfos) { super(null, true, "success"); this.setSecUrl(secUrl); this.templateInfos = templateInfos; }
private Answer execute(ListTemplateCommand cmd) { if (!_inSystemVM) { return new ListTemplateAnswer(null, null); } DataStoreTO store = cmd.getDataStore(); if (store instanceof NfsTO) { NfsTO nfs = (NfsTO)store; String secUrl = nfs.getUrl(); String root = getRootDir(secUrl, cmd.getNfsVersion()); Map<String, TemplateProp> templateInfos = _dlMgr.gatherTemplateInfo(root); return new ListTemplateAnswer(secUrl, templateInfos); } else if (store instanceof SwiftTO) { SwiftTO swift = (SwiftTO)store; Map<String, TemplateProp> templateInfos = swiftListTemplate(swift); return new ListTemplateAnswer(swift.toString(), templateInfos); } else if (store instanceof S3TO) { S3TO s3 = (S3TO)store; Map<String, TemplateProp> templateInfos = s3ListTemplate(s3); return new ListTemplateAnswer(s3.getBucketName(), templateInfos); } else { return new Answer(cmd, false, "Unsupported image data store: " + store); } }
private Map<String, TemplateProp> listTemplate(DataStore ssStore) { Integer nfsVersion = imageStoreDetailsUtil.getNfsVersion(ssStore.getId()); ListTemplateCommand cmd = new ListTemplateCommand(ssStore.getTO(), nfsVersion); EndPoint ep = _epSelector.select(ssStore); Answer answer = null; if (ep == null) { String errMsg = "No remote endpoint to send command, check if host or ssvm is down?"; s_logger.error(errMsg); answer = new Answer(cmd, false, errMsg); } else { answer = ep.sendMessage(cmd); } if (answer != null && answer.getResult()) { ListTemplateAnswer tanswer = (ListTemplateAnswer)answer; return tanswer.getTemplateInfo(); } else { if (s_logger.isDebugEnabled()) { s_logger.debug("can not list template for secondary storage host " + ssStore.getId()); } } return null; }
private Answer execute(ListTemplateCommand cmd) { String root = getRootDir(); Map<String, TemplateProp> templateInfos = _dlMgr.gatherTemplateInfo(root); return new ListTemplateAnswer(((NfsTO)cmd.getDataStore()).getUrl(), templateInfos); }