Example #1
0
  @Test
  public void canAddVmWithVirtioScsiControllerNotSupportedOs() {
    VM vm = createVm();
    AddVmFromTemplateCommand<AddVmParameters> cmd = createVmFromTemplateCommand(vm);
    cluster = createCluster();
    vm.setClusterId(cluster.getId());

    mockStorageDomainDaoGetForStoragePool();
    mockVmTemplateDaoReturnVmTemplate();
    mockVerifyAddVM(cmd);
    mockConfig();
    mockMaxPciSlots();
    mockStorageDomainDaoGetAllStoragesForPool(20);
    mockUninterestingMethods(cmd);
    mockDisplayTypes(vm.getOs());
    mockGraphicsDevices(vm.getId());
    doReturn(true).when(cmd).checkCpuSockets();

    doReturn(cluster).when(cmd).getCluster();
    doReturn(createStoragePool()).when(cmd).getStoragePool();
    cmd.getParameters().setVirtioScsiEnabled(true);
    when(osRepository.isSoundDeviceEnabled(any(Integer.class), any(Version.class)))
        .thenReturn(true);
    when(osRepository.getArchitectureFromOS(any(Integer.class)))
        .thenReturn(ArchitectureType.x86_64);
    when(osRepository.getDiskInterfaces(any(Integer.class), any(Version.class)))
        .thenReturn(new ArrayList<>(Collections.singletonList("VirtIO")));
    mockGetAllSnapshots(cmd);

    cmd.initEffectiveCompatibilityVersion();
    ValidateTestUtils.runAndAssertValidateFailure(
        cmd, EngineMessage.ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI);
  }
Example #2
0
  protected AddVmFromTemplateCommand<AddVmParameters> createVmFromTemplateCommand(VM vm) {
    AddVmParameters param = new AddVmParameters();
    param.setVm(vm);
    AddVmFromTemplateCommand<AddVmParameters> concrete =
        new AddVmFromTemplateCommand<AddVmParameters>(
            param, CommandContext.createContext(param.getSessionId())) {
          @Override
          protected void initUser() {
            // Stub for testing
          }

          @Override
          protected void initTemplateDisks() {
            // Stub for testing
          }

          @Override
          protected void initStoragePoolId() {
            // Stub for testing
          }

          @Override
          public VmTemplate getVmTemplate() {
            return createVmTemplate();
          }
        };
    AddVmFromTemplateCommand<AddVmParameters> result = spy(concrete);
    doReturn(true).when(result).checkNumberOfMonitors();
    doReturn(createVmTemplate()).when(result).getVmTemplate();
    doReturn(true).when(result).validateCustomProperties(any(VmStatic.class), anyList());
    mockDaos(result);
    mockBackend(result);
    initCommandMethods(result);
    result.poolPerDc = this.macPoolPerDc;
    result.postConstruct();
    return result;
  }