shwstppr commented on code in PR #11594:
URL: https://github.com/apache/cloudstack/pull/11594#discussion_r2362702040


##########
api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListImportVMTasksCmd.java:
##########
@@ -0,0 +1,123 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.api.command.admin.vm;
+
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.NetworkRuleConflictException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.user.Account;
+import org.apache.cloudstack.acl.RoleType;
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseListCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.ResponseObject;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.AccountResponse;
+import org.apache.cloudstack.api.response.HostResponse;
+import org.apache.cloudstack.api.response.ImportVMTaskResponse;
+import org.apache.cloudstack.api.response.ListResponse;
+import org.apache.cloudstack.api.response.ZoneResponse;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.vm.VmImportService;
+
+import javax.inject.Inject;
+
+@APICommand(name = "listImportVmTasks",
+        description = "List running import virtual machine tasks from a 
unmanaged hosts into CloudStack",
+        responseObject = ImportVMTaskResponse.class,
+        responseView = ResponseObject.ResponseView.Full,
+        requestHasSensitiveInfo = false,
+        authorized = {RoleType.Admin},
+        since = "4.22.0")
+public class ListImportVMTasksCmd extends BaseListCmd {
+
+    @Inject
+    public VmImportService vmImportService;
+
+    @Parameter(name = ApiConstants.ZONE_ID,
+            type = CommandType.UUID,
+            entityType = ZoneResponse.class,
+            required = true,
+            description = "the zone ID")
+    private Long zoneId;
+
+    @Parameter(name = ApiConstants.ACCOUNT_ID,
+            type = CommandType.UUID,
+            entityType = AccountResponse.class,
+            description = "the ID of the Account")
+    private Long accountId;
+
+    @Parameter(name = ApiConstants.VCENTER,
+            type = CommandType.STRING,
+            description = "The name/ip of vCenter. Make sure it is IP address 
or full qualified domain name for host running vCenter server.")
+    private String vcenter;
+
+    @Parameter(name = ApiConstants.CONVERT_INSTANCE_HOST_ID,
+            type = CommandType.UUID,
+            entityType = HostResponse.class,
+            description = "Conversion host of the importing task")
+    private Long convertHostId;
+
+    @Parameter(name = ApiConstants.LIST_ALL, type = CommandType.BOOLEAN, 
description = "Whether to list all import tasks.")
+    private boolean listAll = false;
+
+    @Parameter(name = ApiConstants.SHOW_COMPLETED, type = CommandType.BOOLEAN, 
description = "Whether to list completed tasks.")
+    private boolean showCompleted = false;

Review Comment:
   minor - What is the difference between these params, are these tasks 
associated with different initiator accounts? If not then can we use listall 
param to list completed tasks



##########
api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ImportVmCmd.java:
##########
@@ -159,6 +159,16 @@ public class ImportVmCmd extends 
ImportUnmanagedInstanceCmd {
             description = "(only for importing VMs from VMware to KVM) 
optional - if true, forces MS to export OVF from VMware to temporary storage, 
else uses KVM Host if ovftool is available, falls back to MS if not.")
     private Boolean forceMsToImportVmFiles;
 
+    @Parameter(name = "extraparams",
+            type = CommandType.STRING,
+            since = "4.22",
+            description = "(VMware to KVM only) extra parameters to be passed 
on the virt-v2v command, if allowed by the administrator")
+    private String extraParams;
+
+    @Parameter(name = "forceconverttopool", type = CommandType.BOOLEAN,
+            description = "(only for importing VMs from VMware to KVM) 
optional - if true, forces virt-v2v conversions to write directly on the 
provided storage pool (avoid using temporary conversion pool).")
+    private Boolean forceConvertToPool;
+

Review Comment:
   can we define param names in ApiConstants?



##########
ui/src/views/tools/ManageInstances.vue:
##########
@@ -333,166 +333,224 @@
             </a-col>
           </a-row>
           <a-divider />
-          <a-row :gutter="12">
-            <a-col v-if="!isDiskImport" :md="24" :lg="(!isMigrateFromVmware && 
showManagedInstances) ? 12 : 24">
-              <a-card class="instances-card">
-                <template #title>
-                  {{ (isMigrateFromVmware && vmwareVcenterType === 'existing') 
? $t('label.instances') : $t('label.unmanaged.instances') }}
-                  <a-tooltip :title="(isMigrateFromVmware && vmwareVcenterType 
=== 'existing') ? $t('message.instances.migrate.vmware') : 
$t('message.instances.unmanaged')">
-                    <info-circle-outlined />
-                  </a-tooltip>
-                  <a-button
-                    style="margin-left: 12px; margin-top: 4px"
-                    :loading="unmanagedInstancesLoading"
-                    size="small"
-                    shape="round"
-                    @click="fetchUnmanagedInstances()" >
-                    <template #icon><reload-outlined /></template>
-                  </a-button>
-                  <span style="float: right; width: 50%">
-                    <search-view
-                      :searchFilters="searchFilters.unmanaged"
-                      :searchParams="searchParams.unmanaged"
-                      :apiName="listInstancesApi.unmanaged"
-                      @search="searchUnmanagedInstances"
-                    />
-                  </span>
-                </template>
-                <a-table
-                  v-if="!isExternal"
-                  class="instances-card-table"
-                  :loading="unmanagedInstancesLoading"
-                  :rowSelection="unmanagedInstanceSelection"
-                  :rowKey="(record, index) => index"
-                  :columns="unmanagedInstancesColumns"
-                  :data-source="unmanagedInstances"
-                  :pagination="false"
-                  size="middle"
-                  :rowClassName="getRowClassName"
-                >
-                  <template #bodyCell="{ column, text }">
-                    <template v-if="column.key === 'state'">
-                      <status :text="text ? text : ''" displayText />
+
+          <a-tabs v-model:activeKey="activeTabKey" @change="onTabChange">

Review Comment:
   (not for this PR maybe) At some point, we should modularise this and Import 
component, becoming too big.
   Maybe we start with a separate component for import VM task?



##########
server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java:
##########
@@ -2852,6 +2954,103 @@ public ListResponse<UnmanagedInstanceResponse> 
listVmsForImport(ListVmsForImport
         return listResponses;
     }
 
+    @Override
+    public ListResponse<ImportVMTaskResponse> 
listImportVMTasks(ListImportVMTasksCmd cmd) {

Review Comment:
   Should these be defined in a separate service/class? Mainly business logic 
and this class already quite big



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cloudstack.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to