@Test public void testZoneidListMinusOne() throws ResourceAllocationException { // If zoneId List has only one parameter -1, then zone ids list should be null. registerTemplateCmd = new RegisterTemplateCmd(); registerTemplateCmd.zoneIds = new ArrayList<>(); registerTemplateCmd.zoneIds.add(-1L); Assert.assertNull(registerTemplateCmd.getZoneIds()); } @Test
@Test public void testZoneidPresentZoneidListAbsent() throws ResourceAllocationException { registerTemplateCmd = new RegisterTemplateCmd(); registerTemplateCmd.zoneIds = null; registerTemplateCmd.zoneId = 1L; Assert.assertEquals((Long)1L,registerTemplateCmd.getZoneIds().get(0)); } }
@Test public void testZoneidMinusOne() throws ResourceAllocationException { // If zoneId is passed as -1, then zone ids list should be null. registerTemplateCmd = new RegisterTemplateCmd(); registerTemplateCmd.zoneId = -1L; Assert.assertNull(registerTemplateCmd.getZoneIds()); }
@Override public void execute() throws ResourceAllocationException { try { validateParameters(); VirtualMachineTemplate template = _templateService.registerTemplate(this); if (template != null) { ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>(); List<TemplateResponse> templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Restricted, template, getZoneIds(), false); response.setResponses(templateResponses); response.setResponseName(getCommandName()); setResponseObject(response); } else { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to register template"); } } catch (URISyntaxException ex1) { s_logger.info(ex1); throw new ServerApiException(ApiErrorCode.PARAM_ERROR, ex1.getMessage()); } }
@Override public TemplateProfile prepare(RegisterTemplateCmd cmd) throws ResourceAllocationException { //check if the caller can operate with the template owner Account caller = CallContext.current().getCallingAccount(); Account owner = _accountMgr.getAccount(cmd.getEntityOwnerId()); _accountMgr.checkAccess(caller, null, true, owner); boolean isRouting = (cmd.isRoutingType() == null) ? false : cmd.isRoutingType(); List<Long> zoneId = cmd.getZoneIds(); // ignore passed zoneId if we are using region wide image store List<ImageStoreVO> stores = _imgStoreDao.findRegionImageStores(); if (stores != null && stores.size() > 0) { zoneId = null; } HypervisorType hypervisorType = HypervisorType.getType(cmd.getHypervisor()); if(hypervisorType == HypervisorType.None) { throw new InvalidParameterValueException("Hypervisor Type: " + cmd.getHypervisor() + " is invalid. Supported Hypervisor types are " + EnumUtils.listValues(HypervisorType.values()).replace("None, ", "")); } return prepare(false, CallContext.current().getCallingUserId(), cmd.getTemplateName(), cmd.getDisplayText(), cmd.getBits(), cmd.isPasswordEnabled(), cmd.getRequiresHvm(), cmd.getUrl(), cmd.isPublic(), cmd.isFeatured(), cmd.isExtractable(), cmd.getFormat(), cmd.getOsTypeId(), zoneId, hypervisorType, cmd.getChecksum(), true, cmd.getTemplateTag(), owner, cmd.getDetails(), cmd.isSshKeyEnabled(), null, cmd.isDynamicallyScalable(), isRouting ? TemplateType.ROUTING : TemplateType.USER, cmd.isDirectDownload()); }