diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1be892f4577..dc2bd9db2bd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '11' distribution: 'adopt' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd96fcfce4b..63f1085d406 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -210,7 +210,7 @@ jobs: fetch-depth: 0 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '11' distribution: 'adopt' diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 430d62df8de..f7b28fdeecc 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -37,7 +37,7 @@ jobs: fetch-depth: 0 - name: Set up JDK11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '11' diff --git a/.github/workflows/main-sonar-check.yml b/.github/workflows/main-sonar-check.yml index cc27309f8a5..66bb1093e04 100644 --- a/.github/workflows/main-sonar-check.yml +++ b/.github/workflows/main-sonar-check.yml @@ -37,7 +37,7 @@ jobs: fetch-depth: 0 - name: Set up JDK11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '11' diff --git a/.github/workflows/rat.yml b/.github/workflows/rat.yml index 64fa4c3da0c..b8f83de8194 100644 --- a/.github/workflows/rat.yml +++ b/.github/workflows/rat.yml @@ -32,7 +32,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '11' distribution: 'adopt' diff --git a/.github/workflows/sonar-check.yml b/.github/workflows/sonar-check.yml index a8282f25145..2ebcf1fb2db 100644 --- a/.github/workflows/sonar-check.yml +++ b/.github/workflows/sonar-check.yml @@ -39,7 +39,7 @@ jobs: fetch-depth: 0 - name: Set up JDK11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '11' diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java index 408904f1d29..1c244645033 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -4771,7 +4771,13 @@ public class VmwareResource extends ServerResourceBase implements StoragePoolRes final String vmName = cmd.getVmName(); try { VmwareHypervisorHost hyperHost = getHyperHost(getServiceContext()); + if (hyperHost == null) { + throw new CloudRuntimeException("no hypervisor host found for migrate command"); + } ManagedObjectReference morDc = hyperHost.getHyperHostDatacenter(); + if (morDc == null) { + throw new CloudRuntimeException("no Managed Object Reference for the Data Center found for migrate command"); + } // find VM through datacenter (VM is not at the target host yet) VirtualMachineMO vmMo = hyperHost.findVmOnPeerHyperHost(vmName); @@ -4782,6 +4788,9 @@ public class VmwareResource extends ServerResourceBase implements StoragePoolRes } VmwareHypervisorHost destHyperHost = getTargetHyperHost(new DatacenterMO(hyperHost.getContext(), morDc), cmd.getDestinationIp()); + if (destHyperHost == null) { + throw new CloudRuntimeException("no destination Hypervisor Host found for migrate command"); + } ManagedObjectReference morTargetPhysicalHost = destHyperHost.findMigrationTarget(vmMo); if (morTargetPhysicalHost == null) { @@ -4793,7 +4802,8 @@ public class VmwareResource extends ServerResourceBase implements StoragePoolRes } return new MigrateAnswer(cmd, true, "migration succeeded", null); - } catch (Throwable e) { + } catch (Exception e) { + s_logger.info(String.format("migrate command for %s failed due to %s", vmName, e.getLocalizedMessage())); return new MigrateAnswer(cmd, false, createLogMessageException(e, cmd), null); } } diff --git a/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java b/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java index 27fabb53124..cfa62114c3d 100644 --- a/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java +++ b/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVncClient.java @@ -114,11 +114,6 @@ public class ConsoleProxyNoVncClient implements ConsoleProxyClient { updateFrontEndActivityTime(); } connectionAlive = session.isOpen(); - try { - Thread.sleep(1); - } catch (InterruptedException e) { - s_logger.error("Error on sleep for vnc over websocket", e); - } } else if (client.isVncOverNioSocket()) { byte[] bytesArr; int nextBytes = client.getNextBytes(); @@ -139,6 +134,11 @@ public class ConsoleProxyNoVncClient implements ConsoleProxyClient { connectionAlive = false; } } + try { + Thread.sleep(1); + } catch (InterruptedException e) { + s_logger.error("Error on sleep for vnc sessions", e); + } } s_logger.info(String.format("Connection with client [%s] is dead.", clientId)); } catch (IOException e) { diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json index 05850327d6a..17a70b423b3 100644 --- a/ui/public/locales/en.json +++ b/ui/public/locales/en.json @@ -3056,7 +3056,7 @@ "message.remove.vpc": "Please confirm that you want to remove the VPC", "message.request.failed": "Request failed.", "message.required.add.least.ip": "Please add at least 1 IP Range", -"message.required.traffic.type": "All required traffic types should be added and with multiple physical networks each network should have a label.", +"message.required.traffic.type": "All required traffic types should be added and with multiple physical networks each traffic type should have a label.", "message.required.tagged.physical.network": "There can only be one untagged physical network with guest traffic type.", "message.reset.vpn.connection": "Please confirm that you want to reset VPN connection.", "message.resize.volume.failed": "Failed to resize volume.", diff --git a/ui/src/config/section/infra/phynetworks.js b/ui/src/config/section/infra/phynetworks.js index 92d1e9abec8..578a12516fa 100644 --- a/ui/src/config/section/infra/phynetworks.js +++ b/ui/src/config/section/infra/phynetworks.js @@ -42,6 +42,11 @@ export default { name: 'guestnetwork', title: 'label.guest.networks', param: 'physicalnetworkid' + }, + { + name: 'publicip', + title: 'label.public.ip.addresses', + param: 'physicalnetworkid' }], actions: [ { diff --git a/ui/src/views/infra/network/IpRangesTabPublic.vue b/ui/src/views/infra/network/IpRangesTabPublic.vue index bfaf6605123..40a3140c35f 100644 --- a/ui/src/views/infra/network/IpRangesTabPublic.vue +++ b/ui/src/views/infra/network/IpRangesTabPublic.vue @@ -54,6 +54,12 @@
+ + +