From e609aa8e9cfcbe639c63026f02a3fa070a009859 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Wed, 9 Feb 2022 00:14:01 +0530 Subject: [PATCH 01/13] Skip systemVM template registration for Simulator (#5954) * Skip systemVM template registration for Simulator * simplify --- server/src/main/java/com/cloud/storage/StorageManagerImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java index 7e5110ba56c..a0b5406d01c 100644 --- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java @@ -2808,6 +2808,9 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C Pair storeUrlAndId = new Pair<>(url, store.getId()); for (HypervisorType hypervisorType : hypSet) { try { + if (HypervisorType.Simulator == hypervisorType) { + continue; + } String templateName = getValidTemplateName(zoneId, hypervisorType); Pair hypervisorAndTemplateName = new Pair<>(hypervisorType, templateName); From c7885f55eb0b79c89005dfea98545b5ac046203a Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Tue, 8 Feb 2022 19:52:28 +0100 Subject: [PATCH 02/13] maven: upgrade bouncycastle due to cve (#5949) Fixes: #5948 --- client/pom.xml | 12 +++++++++++ .../integrations/kubernetes-service/pom.xml | 5 +++++ pom.xml | 7 ++++++- services/console-proxy/rdpconsole/pom.xml | 4 ++++ .../streamer/bco/BcoSocketWrapperImpl.java | 21 ++++++++++--------- utils/pom.xml | 4 ++++ 6 files changed, 42 insertions(+), 11 deletions(-) diff --git a/client/pom.xml b/client/pom.xml index 1995158d8b7..d1a95b0aea2 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -564,6 +564,11 @@ bcpkix-jdk15on ${cs.bcprov.version} + + org.bouncycastle + bctls-jdk15on + ${cs.bcprov.version} + @@ -751,6 +756,12 @@ false ${project.build.directory}/lib + + org.bouncycastle + bctls-jdk15on + false + ${project.build.directory}/lib + @@ -786,6 +797,7 @@ org.apache.geronimo.specs:geronimo-javamail_1.4_spec org.bouncycastle:bcprov-jdk15on org.bouncycastle:bcpkix-jdk15on + org.bouncycastle:bctls-jdk15on mysql:mysql-connector-java diff --git a/plugins/integrations/kubernetes-service/pom.xml b/plugins/integrations/kubernetes-service/pom.xml index 5cff3d3aa2e..4be08f276cc 100644 --- a/plugins/integrations/kubernetes-service/pom.xml +++ b/plugins/integrations/kubernetes-service/pom.xml @@ -126,6 +126,11 @@ bcprov-jdk15on ${cs.bcprov.version} + + org.bouncycastle + bctls-jdk15on + ${cs.bcprov.version} + joda-time joda-time diff --git a/pom.xml b/pom.xml index 5e77126b22d..10448b56e23 100644 --- a/pom.xml +++ b/pom.xml @@ -123,7 +123,7 @@ 1.2.8 1.4 1.14 - 1.64 + 1.70 3.3.0 8.18 3.2.14 @@ -554,6 +554,11 @@ bcprov-jdk15on ${cs.bcprov.version} + + org.bouncycastle + bctls-jdk15on + ${cs.bcprov.version} + org.codehaus.groovy groovy-all diff --git a/services/console-proxy/rdpconsole/pom.xml b/services/console-proxy/rdpconsole/pom.xml index d0f7c78e6be..35dcfadb5d7 100644 --- a/services/console-proxy/rdpconsole/pom.xml +++ b/services/console-proxy/rdpconsole/pom.xml @@ -48,6 +48,10 @@ org.bouncycastle bcprov-jdk15on + + org.bouncycastle + bctls-jdk15on + com.sun.xml.security xml-security-impl diff --git a/services/console-proxy/rdpconsole/src/main/java/streamer/bco/BcoSocketWrapperImpl.java b/services/console-proxy/rdpconsole/src/main/java/streamer/bco/BcoSocketWrapperImpl.java index 3d6635c7f5e..39aaba9e340 100644 --- a/services/console-proxy/rdpconsole/src/main/java/streamer/bco/BcoSocketWrapperImpl.java +++ b/services/console-proxy/rdpconsole/src/main/java/streamer/bco/BcoSocketWrapperImpl.java @@ -17,12 +17,13 @@ package streamer.bco; import org.apache.log4j.Logger; -import org.bouncycastle.crypto.tls.Certificate; -import org.bouncycastle.crypto.tls.DefaultTlsClient; -import org.bouncycastle.crypto.tls.ServerOnlyTlsAuthentication; -import org.bouncycastle.crypto.tls.TlsAuthentication; -import org.bouncycastle.crypto.tls.TlsClientProtocol; import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.tls.DefaultTlsClient; +import org.bouncycastle.tls.ServerOnlyTlsAuthentication; +import org.bouncycastle.tls.TlsAuthentication; +import org.bouncycastle.tls.TlsClientProtocol; +import org.bouncycastle.tls.TlsServerCertificate; +import org.bouncycastle.tls.crypto.impl.bc.BcTlsCrypto; import streamer.Direction; import streamer.Event; import streamer.SocketWrapperImpl; @@ -60,18 +61,18 @@ public class BcoSocketWrapperImpl extends SocketWrapperImpl { try { - SecureRandom secureRandom = new SecureRandom(); - bcoSslSocket = new TlsClientProtocol(socket.getInputStream(), socket.getOutputStream(), secureRandom); + bcoSslSocket = new TlsClientProtocol(socket.getInputStream(), socket.getOutputStream()); - bcoSslSocket.connect(new DefaultTlsClient() { + bcoSslSocket.connect(new DefaultTlsClient(new BcTlsCrypto(new SecureRandom())) { @Override public TlsAuthentication getAuthentication() throws IOException { return new ServerOnlyTlsAuthentication() { @Override - public void notifyServerCertificate(final Certificate certificate) throws IOException { + public void notifyServerCertificate(final TlsServerCertificate certificate) throws IOException { try { if (sslState != null) { - sslState.serverCertificateSubjectPublicKeyInfo = certificate.getCertificateAt(0).getSubjectPublicKeyInfo().getEncoded(); + sslState.serverCertificateSubjectPublicKeyInfo = + certificate.getCertificate().getCertificateAt(0).getEncoded(); } } catch (IOException e) { throw new RuntimeException("Cannot get server public key.", e); diff --git a/utils/pom.xml b/utils/pom.xml index 9fcacb16511..8b0cf07a79b 100755 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -70,6 +70,10 @@ org.bouncycastle bcpkix-jdk15on + + org.bouncycastle + bctls-jdk15on + com.jcraft jsch From 453aeb02f016e82a82b0a06fd80f0ef39aee2634 Mon Sep 17 00:00:00 2001 From: davidjumani Date: Wed, 9 Feb 2022 09:34:00 +0530 Subject: [PATCH 03/13] Add ID search capability to sshkeypairs (#5963) --- .../cloudstack/api/command/user/ssh/ListSSHKeyPairsCmd.java | 5 +++++ .../apache/cloudstack/api/response/SSHKeyPairResponse.java | 6 +++++- .../main/java/com/cloud/server/ManagementServerImpl.java | 5 +++++ ui/src/components/view/InfoCard.vue | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/ssh/ListSSHKeyPairsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/ssh/ListSSHKeyPairsCmd.java index 1a77a660dcd..560974937ef 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/ssh/ListSSHKeyPairsCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/ssh/ListSSHKeyPairsCmd.java @@ -40,6 +40,8 @@ public class ListSSHKeyPairsCmd extends BaseListProjectAndAccountResourcesCmd { ///////////////////////////////////////////////////// //////////////// API parameters ///////////////////// ///////////////////////////////////////////////////// + @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = SSHKeyPairResponse.class, description = "the ID of the ssh keypair") + private Long id; @Parameter(name = ApiConstants.NAME, type = CommandType.STRING, description = "A key pair name to look for") private String name; @@ -50,6 +52,9 @@ public class ListSSHKeyPairsCmd extends BaseListProjectAndAccountResourcesCmd { ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// ///////////////////////////////////////////////////// + public Long getId() { + return id; + } public String getName() { return name; diff --git a/api/src/main/java/org/apache/cloudstack/api/response/SSHKeyPairResponse.java b/api/src/main/java/org/apache/cloudstack/api/response/SSHKeyPairResponse.java index 5a4d69b76cc..7bd423910be 100644 --- a/api/src/main/java/org/apache/cloudstack/api/response/SSHKeyPairResponse.java +++ b/api/src/main/java/org/apache/cloudstack/api/response/SSHKeyPairResponse.java @@ -21,8 +21,12 @@ import com.google.gson.annotations.SerializedName; import org.apache.cloudstack.api.ApiConstants; import com.cloud.serializer.Param; -import org.apache.cloudstack.api.BaseResponseWithAnnotations; +import com.cloud.user.SSHKeyPair; +import org.apache.cloudstack.api.BaseResponseWithAnnotations; +import org.apache.cloudstack.api.EntityReference; + +@EntityReference(value = SSHKeyPair.class) public class SSHKeyPairResponse extends BaseResponseWithAnnotations { @SerializedName(ApiConstants.ID) diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index 581a6da6a1e..565efa7545e 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -4150,6 +4150,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe @Override public Pair, Integer> listSSHKeyPairs(final ListSSHKeyPairsCmd cmd) { + final Long id = cmd.getId(); final String name = cmd.getName(); final String fingerPrint = cmd.getFingerprint(); final String keyword = cmd.getKeyword(); @@ -4169,6 +4170,10 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe final SearchCriteria sc = sb.create(); _accountMgr.buildACLSearchCriteria(sc, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); + if (id != null) { + sc.addAnd("id", SearchCriteria.Op.EQ, id); + } + if (name != null) { sc.addAnd("name", SearchCriteria.Op.EQ, name); } diff --git a/ui/src/components/view/InfoCard.vue b/ui/src/components/view/InfoCard.vue index 6347c4c3a89..6b61dad2c13 100644 --- a/ui/src/components/view/InfoCard.vue +++ b/ui/src/components/view/InfoCard.vue @@ -605,7 +605,7 @@
+ :to="{ path: '/' + item.name + '?' + item.param + '=' + (item.value ? resource[item.value] : item.param === 'account' ? resource.name + '&domainid=' + resource.domainid : item.param === 'keypair' ? resource.name : resource.id) }"> {{ $t('label.view') + ' ' + $t(item.title) }} From ce81a8e708c4af1853bb054503085c252aef5286 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Wed, 9 Feb 2022 05:07:28 +0100 Subject: [PATCH 04/13] test: sleep 30s after restarting mgt server in test_kubernetes_supported_versions.py to fix test failures with test_secondary_storage.py (#5962) --- test/integration/smoke/test_kubernetes_supported_versions.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/integration/smoke/test_kubernetes_supported_versions.py b/test/integration/smoke/test_kubernetes_supported_versions.py index a6e47866673..52fb2d8752d 100644 --- a/test/integration/smoke/test_kubernetes_supported_versions.py +++ b/test/integration/smoke/test_kubernetes_supported_versions.py @@ -94,7 +94,9 @@ class TestKubernetesSupportedVersion(cloudstackTestCase): #Waits for management to come up in 5 mins, when it's up it will continue timeout = time.time() + 300 while time.time() < timeout: - if cls.isManagementUp() is True: return + if cls.isManagementUp() is True: + time.sleep(30) + return time.sleep(5) return cls.fail("Management server did not come up, failing") From b275c297094e7d28b2c3721ed828ac00117657c4 Mon Sep 17 00:00:00 2001 From: Hoang Nguyen Date: Wed, 9 Feb 2022 15:43:31 +0700 Subject: [PATCH 05/13] UI - Add Network: shows "Offering for Isolated networks with no Source Nat service" on Network Offering for normal users (#5904) * shows "Offering for Isolated networks with no Source Nat service" for normal users * fixes roles * fix selected tabs --- ui/src/views/network/CreateIsolatedNetworkForm.vue | 1 - ui/src/views/network/CreateNetwork.vue | 9 ++++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ui/src/views/network/CreateIsolatedNetworkForm.vue b/ui/src/views/network/CreateIsolatedNetworkForm.vue index 1f717710b85..761d8128dad 100644 --- a/ui/src/views/network/CreateIsolatedNetworkForm.vue +++ b/ui/src/views/network/CreateIsolatedNetworkForm.vue @@ -344,7 +344,6 @@ export default { var params = { zoneid: this.selectedZone.id, guestiptype: 'Isolated', - supportedServices: 'SourceNat', state: 'Enabled' } if (isAdminOrDomainAdmin() && this.selectedDomain.id !== '-1') { // domain is visible only for admins diff --git a/ui/src/views/network/CreateNetwork.vue b/ui/src/views/network/CreateNetwork.vue index 56c144932cf..ababc337394 100644 --- a/ui/src/views/network/CreateNetwork.vue +++ b/ui/src/views/network/CreateNetwork.vue @@ -17,7 +17,7 @@