Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-4069065411 Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 17158 -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-4031983556 Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 17077 -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-4030294830 Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 17065 -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-4029839344 @DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-4029832139 @blueorangutan package -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-4029603906 > @sandeeplocharla , can you review co-pilot’s sugestions and close/refuse or implement them? Hi @DaanHoogland , have taken care of the comments and raised a diff. Please let me know if anything else is needed from me? -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on code in PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2910123751 ## plugins/storage/volume/ontap/pom.xml: ## @@ -0,0 +1,169 @@ + +http://maven.apache.org/POM/4.0.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd";> +4.0.0 +cloud-plugin-storage-volume-ontap +Apache CloudStack Plugin - Storage Volume ONTAP Provider + +org.apache.cloudstack +cloudstack-plugins +4.23.0.0-SNAPSHOT +../../../pom.xml + + +2021.0.7 +11.0 +4.5.14 +1.6.2 +3.8.1 +2.22.2 +2.13.4 +3.24.2 +5.8.1 +3.12.4 +5.2.0 Review Comment: Will take this up later -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on code in PR #12563:
URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2885639774
##
plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/service/StorageStrategy.java:
##
@@ -0,0 +1,453 @@
+/*
+ * 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.storage.service;
+
+import com.cloud.utils.exception.CloudRuntimeException;
+import feign.FeignException;
+import org.apache.cloudstack.storage.feign.FeignClientFactory;
+import org.apache.cloudstack.storage.feign.client.AggregateFeignClient;
+import org.apache.cloudstack.storage.feign.client.JobFeignClient;
+import org.apache.cloudstack.storage.feign.client.NetworkFeignClient;
+import org.apache.cloudstack.storage.feign.client.SANFeignClient;
+import org.apache.cloudstack.storage.feign.client.SvmFeignClient;
+import org.apache.cloudstack.storage.feign.client.VolumeFeignClient;
+import org.apache.cloudstack.storage.feign.model.Aggregate;
+import org.apache.cloudstack.storage.feign.model.IpInterface;
+import org.apache.cloudstack.storage.feign.model.IscsiService;
+import org.apache.cloudstack.storage.feign.model.Job;
+import org.apache.cloudstack.storage.feign.model.Nas;
+import org.apache.cloudstack.storage.feign.model.OntapStorage;
+import org.apache.cloudstack.storage.feign.model.Svm;
+import org.apache.cloudstack.storage.feign.model.Volume;
+import org.apache.cloudstack.storage.feign.model.response.JobResponse;
+import org.apache.cloudstack.storage.feign.model.response.OntapResponse;
+import org.apache.cloudstack.storage.service.model.AccessGroup;
+import org.apache.cloudstack.storage.service.model.CloudStackVolume;
+import org.apache.cloudstack.storage.service.model.ProtocolType;
+import org.apache.cloudstack.storage.utils.Constants;
+import org.apache.cloudstack.storage.utils.Utility;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+public abstract class StorageStrategy {
+private final FeignClientFactory feignClientFactory;
+private final AggregateFeignClient aggregateFeignClient;
+private final VolumeFeignClient volumeFeignClient;
+private final SvmFeignClient svmFeignClient;
+private final JobFeignClient jobFeignClient;
+private final NetworkFeignClient networkFeignClient;
+private final SANFeignClient sanFeignClient;
+
+protected OntapStorage storage;
+
+private List aggregates;
+
+private static final Logger s_logger =
LogManager.getLogger(StorageStrategy.class);
+
+public StorageStrategy(OntapStorage ontapStorage) {
+storage = ontapStorage;
+String baseURL = Constants.HTTPS + storage.getManagementLIF();
+s_logger.info("Initializing StorageStrategy with base URL: " +
baseURL);
+this.feignClientFactory = new FeignClientFactory();
+this.aggregateFeignClient =
feignClientFactory.createClient(AggregateFeignClient.class, baseURL);
+this.volumeFeignClient =
feignClientFactory.createClient(VolumeFeignClient.class, baseURL);
+this.svmFeignClient =
feignClientFactory.createClient(SvmFeignClient.class, baseURL);
+this.jobFeignClient =
feignClientFactory.createClient(JobFeignClient.class, baseURL);
+this.networkFeignClient =
feignClientFactory.createClient(NetworkFeignClient.class, baseURL);
+this.sanFeignClient =
feignClientFactory.createClient(SANFeignClient.class, baseURL);
+}
+
+public boolean connect() {
+s_logger.info("Attempting to connect to ONTAP cluster at " +
storage.getManagementLIF() + " and validate SVM " +
+storage.getSvmName() + ", protocol " + storage.getProtocol());
+String authHeader = Utility.generateAuthHeader(storage.getUsername(),
storage.getPassword());
+String svmName = storage.getSvmName();
+try {
+Svm svm = new Svm();
+s_logger.info("Fetching the SVM details...");
+Map queryParams = Map.of(Constants.NAME, svmName,
Constants.FIELDS, Constants.AGGREGATES +
+Constants.COMMA + Constants
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on code in PR #12563:
URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2885638370
##
plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/service/StorageStrategy.java:
##
@@ -0,0 +1,453 @@
+/*
+ * 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.storage.service;
+
+import com.cloud.utils.exception.CloudRuntimeException;
+import feign.FeignException;
+import org.apache.cloudstack.storage.feign.FeignClientFactory;
+import org.apache.cloudstack.storage.feign.client.AggregateFeignClient;
+import org.apache.cloudstack.storage.feign.client.JobFeignClient;
+import org.apache.cloudstack.storage.feign.client.NetworkFeignClient;
+import org.apache.cloudstack.storage.feign.client.SANFeignClient;
+import org.apache.cloudstack.storage.feign.client.SvmFeignClient;
+import org.apache.cloudstack.storage.feign.client.VolumeFeignClient;
+import org.apache.cloudstack.storage.feign.model.Aggregate;
+import org.apache.cloudstack.storage.feign.model.IpInterface;
+import org.apache.cloudstack.storage.feign.model.IscsiService;
+import org.apache.cloudstack.storage.feign.model.Job;
+import org.apache.cloudstack.storage.feign.model.Nas;
+import org.apache.cloudstack.storage.feign.model.OntapStorage;
+import org.apache.cloudstack.storage.feign.model.Svm;
+import org.apache.cloudstack.storage.feign.model.Volume;
+import org.apache.cloudstack.storage.feign.model.response.JobResponse;
+import org.apache.cloudstack.storage.feign.model.response.OntapResponse;
+import org.apache.cloudstack.storage.service.model.AccessGroup;
+import org.apache.cloudstack.storage.service.model.CloudStackVolume;
+import org.apache.cloudstack.storage.service.model.ProtocolType;
+import org.apache.cloudstack.storage.utils.Constants;
+import org.apache.cloudstack.storage.utils.Utility;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+public abstract class StorageStrategy {
+private final FeignClientFactory feignClientFactory;
+private final AggregateFeignClient aggregateFeignClient;
+private final VolumeFeignClient volumeFeignClient;
+private final SvmFeignClient svmFeignClient;
+private final JobFeignClient jobFeignClient;
+private final NetworkFeignClient networkFeignClient;
+private final SANFeignClient sanFeignClient;
+
+protected OntapStorage storage;
+
+private List aggregates;
+
+private static final Logger s_logger =
LogManager.getLogger(StorageStrategy.class);
+
+public StorageStrategy(OntapStorage ontapStorage) {
+storage = ontapStorage;
+String baseURL = Constants.HTTPS + storage.getManagementLIF();
+s_logger.info("Initializing StorageStrategy with base URL: " +
baseURL);
+this.feignClientFactory = new FeignClientFactory();
+this.aggregateFeignClient =
feignClientFactory.createClient(AggregateFeignClient.class, baseURL);
+this.volumeFeignClient =
feignClientFactory.createClient(VolumeFeignClient.class, baseURL);
+this.svmFeignClient =
feignClientFactory.createClient(SvmFeignClient.class, baseURL);
+this.jobFeignClient =
feignClientFactory.createClient(JobFeignClient.class, baseURL);
+this.networkFeignClient =
feignClientFactory.createClient(NetworkFeignClient.class, baseURL);
+this.sanFeignClient =
feignClientFactory.createClient(SANFeignClient.class, baseURL);
+}
+
+public boolean connect() {
+s_logger.info("Attempting to connect to ONTAP cluster at " +
storage.getManagementLIF() + " and validate SVM " +
+storage.getSvmName() + ", protocol " + storage.getProtocol());
+String authHeader = Utility.generateAuthHeader(storage.getUsername(),
storage.getPassword());
+String svmName = storage.getSvmName();
+try {
+Svm svm = new Svm();
+s_logger.info("Fetching the SVM details...");
+Map queryParams = Map.of(Constants.NAME, svmName,
Constants.FIELDS, Constants.AGGREGATES +
+Constants.COMMA + Constants
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on code in PR #12563:
URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2885636772
##
plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/feign/FeignConfiguration.java:
##
@@ -0,0 +1,158 @@
+/*
+ * 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.storage.feign;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import feign.RequestInterceptor;
+import feign.Retryer;
+import feign.Client;
+import feign.httpclient.ApacheHttpClient;
+import feign.codec.Decoder;
+import feign.codec.Encoder;
+import feign.Response;
+import feign.codec.DecodeException;
+import feign.codec.EncodeException;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import org.apache.http.conn.ConnectionKeepAliveStrategy;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.TrustAllStrategy;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.ssl.SSLContexts;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import javax.net.ssl.SSLContext;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Type;
+import java.nio.charset.StandardCharsets;
+import java.util.concurrent.TimeUnit;
+
+public class FeignConfiguration {
+private static final Logger logger =
LogManager.getLogger(FeignConfiguration.class);
+
+private final int retryMaxAttempt = 3;
+private final int retryMaxInterval = 5;
+private final String ontapFeignMaxConnection = "80";
+private final String ontapFeignMaxConnectionPerRoute = "20";
+private final ObjectMapper objectMapper;
+
+public FeignConfiguration() {
+this.objectMapper = new ObjectMapper();
+
this.objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,
false);
+}
+
+public Client createClient() {
+int maxConn;
+int maxConnPerRoute;
+try {
+maxConn = Integer.parseInt(this.ontapFeignMaxConnection);
+} catch (Exception e) {
+logger.error("ontapFeignClient: parse max connection failed, using
default");
+maxConn = 20;
+}
+try {
+maxConnPerRoute =
Integer.parseInt(this.ontapFeignMaxConnectionPerRoute);
+} catch (Exception e) {
+logger.error("ontapFeignClient: parse max connection per route
failed, using default");
+maxConnPerRoute = 2;
+}
+logger.debug("ontapFeignClient: maxConn={}, maxConnPerRoute={}",
maxConn, maxConnPerRoute);
+ConnectionKeepAliveStrategy keepAliveStrategy = (response, context) ->
0;
+CloseableHttpClient httpClient = HttpClientBuilder.create()
+.setMaxConnTotal(maxConn)
+.setMaxConnPerRoute(maxConnPerRoute)
+.setKeepAliveStrategy(keepAliveStrategy)
+.setSSLSocketFactory(getSSLSocketFactory())
+.setConnectionTimeToLive(60, TimeUnit.SECONDS)
+.build();
+return new ApacheHttpClient(httpClient);
+}
+
+private SSLConnectionSocketFactory getSSLSocketFactory() {
+try {
+SSLContext sslContext =
SSLContexts.custom().loadTrustMaterial(null, new TrustAllStrategy()).build();
+return new SSLConnectionSocketFactory(sslContext, new
NoopHostnameVerifier());
+} catch (Exception ex) {
+throw new RuntimeException(ex);
+}
+}
+
+public RequestInterceptor createRequestInterceptor() {
+return template -> {
+logger.info("Feign Request URL: {}", template.url());
+logger.info("HTTP Method: {}", template.method());
+logger.info("Headers: {}", template.headers());
+if (template.body() != null) {
+logger.info("Body: {}", new String(template.body(),
StandardCharsets.UTF_8));
+}
+};
Review Comment:
Addressed it
--
This is an automated messa
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on code in PR #12563:
URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2885634574
##
plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/lifecycle/OntapPrimaryDatastoreLifecycle.java:
##
@@ -0,0 +1,527 @@
+/*
+ * 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.storage.lifecycle;
+
+
+import com.cloud.agent.api.StoragePoolInfo;
+import com.cloud.dc.ClusterVO;
+import com.cloud.dc.dao.ClusterDao;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.host.HostVO;
+import com.cloud.hypervisor.Hypervisor;
+import com.cloud.resource.ResourceManager;
+import com.cloud.storage.Storage;
+import com.cloud.storage.StorageManager;
+import com.cloud.storage.StoragePool;
+import com.cloud.storage.StoragePoolAutomation;
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.google.common.base.Preconditions;
+import org.apache.cloudstack.engine.subsystem.api.storage.ClusterScope;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.HostScope;
+import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
+import
org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreLifeCycle;
+import
org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreParameters;
+import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
+import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDetailsDao;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import
org.apache.cloudstack.storage.datastore.lifecycle.BasePrimaryDataStoreLifeCycleImpl;
+import org.apache.cloudstack.storage.feign.model.OntapStorage;
+import org.apache.cloudstack.storage.feign.model.Volume;
+import org.apache.cloudstack.storage.provider.StorageProviderFactory;
+import org.apache.cloudstack.storage.service.StorageStrategy;
+import org.apache.cloudstack.storage.service.model.AccessGroup;
+import org.apache.cloudstack.storage.service.model.ProtocolType;
+import org.apache.cloudstack.storage.utils.Constants;
+import org.apache.cloudstack.storage.utils.Utility;
+import org.apache.cloudstack.storage.volume.datastore.PrimaryDataStoreHelper;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import javax.inject.Inject;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+public class OntapPrimaryDatastoreLifecycle extends
BasePrimaryDataStoreLifeCycleImpl implements PrimaryDataStoreLifeCycle {
+@Inject private ClusterDao _clusterDao;
+@Inject private StorageManager _storageMgr;
+@Inject private ResourceManager _resourceMgr;
+@Inject private PrimaryDataStoreHelper _dataStoreHelper;
+@Inject private PrimaryDataStoreDetailsDao _datastoreDetailsDao;
+@Inject private StoragePoolAutomation _storagePoolAutomation;
+@Inject private PrimaryDataStoreDao storagePoolDao;
+@Inject private StoragePoolDetailsDao storagePoolDetailsDao;
+private static final Logger s_logger =
LogManager.getLogger(OntapPrimaryDatastoreLifecycle.class);
+
+private static final long ONTAP_MIN_VOLUME_SIZE = 1677721600L;
+
+@Override
+public DataStore initialize(Map dsInfos) {
+if (dsInfos == null) {
+throw new CloudRuntimeException("Datastore info map is null,
cannot create primary storage");
+}
+String url = (String) dsInfos.get("url");
+Long zoneId = (Long) dsInfos.get("zoneId");
+Long podId = (Long) dsInfos.get("podId");
+Long clusterId = (Long) dsInfos.get("clusterId");
+String storagePoolName = (String) dsInfos.get("name");
+String providerName = (String) dsInfos.get("providerName");
+Long capacityBytes = (Long) dsInfos.get("capacityBytes");
+boolean managed = (boolean) dsInfos.get("managed");
+String tags = (String) dsInfos.get("tags");
+Boolean i
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on code in PR #12563:
URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2885633242
##
plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/utils/Utility.java:
##
@@ -0,0 +1,75 @@
+/*
+ * 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.storage.utils;
+
+import com.cloud.storage.ScopeType;
+import com.cloud.utils.StringUtils;
+import com.cloud.utils.exception.CloudRuntimeException;
+import org.apache.cloudstack.storage.feign.model.OntapStorage;
+import org.apache.cloudstack.storage.provider.StorageProviderFactory;
+import org.apache.cloudstack.storage.service.StorageStrategy;
+import org.apache.cloudstack.storage.service.model.ProtocolType;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.util.Base64Utils;
+
+import java.util.Map;
+
+public class Utility {
+
+private static final Logger s_logger = LogManager.getLogger(Utility.class);
+
+private static final String BASIC = "Basic";
+private static final String AUTH_HEADER_COLON = ":";
+
+public static String generateAuthHeader (String username, String password)
{
+byte[] encodedBytes = Base64Utils.encode((username + AUTH_HEADER_COLON
+ password).getBytes());
+return BASIC + StringUtils.SPACE + new String(encodedBytes);
+}
Review Comment:
Addressed it
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on code in PR #12563:
URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2885632481
##
plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/service/UnifiedNASStrategy.java:
##
@@ -0,0 +1,319 @@
+/*
+ * 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.storage.service;
+
+import com.cloud.host.HostVO;
+import com.cloud.storage.dao.VolumeDao;
+import com.cloud.utils.exception.CloudRuntimeException;
+import feign.FeignException;
+import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
+import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
+import org.apache.cloudstack.storage.feign.FeignClientFactory;
+import org.apache.cloudstack.storage.feign.client.JobFeignClient;
+import org.apache.cloudstack.storage.feign.client.NASFeignClient;
+import org.apache.cloudstack.storage.feign.client.VolumeFeignClient;
+import org.apache.cloudstack.storage.feign.model.ExportPolicy;
+import org.apache.cloudstack.storage.feign.model.ExportRule;
+import org.apache.cloudstack.storage.feign.model.Job;
+import org.apache.cloudstack.storage.feign.model.Nas;
+import org.apache.cloudstack.storage.feign.model.OntapStorage;
+import org.apache.cloudstack.storage.feign.model.Svm;
+import org.apache.cloudstack.storage.feign.model.Volume;
+import org.apache.cloudstack.storage.feign.model.response.JobResponse;
+import org.apache.cloudstack.storage.feign.model.response.OntapResponse;
+import org.apache.cloudstack.storage.service.model.AccessGroup;
+import org.apache.cloudstack.storage.service.model.CloudStackVolume;
+import org.apache.cloudstack.storage.utils.Constants;
+import org.apache.cloudstack.storage.utils.Utility;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import javax.inject.Inject;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class UnifiedNASStrategy extends NASStrategy {
+
+private static final Logger s_logger =
LogManager.getLogger(UnifiedNASStrategy.class);
+private final FeignClientFactory feignClientFactory;
+private final NASFeignClient nasFeignClient;
+private final VolumeFeignClient volumeFeignClient;
+private final JobFeignClient jobFeignClient;
+@Inject private VolumeDao volumeDao;
+@Inject private EndPointSelector epSelector;
+@Inject private StoragePoolDetailsDao storagePoolDetailsDao;
+
+public UnifiedNASStrategy(OntapStorage ontapStorage) {
+super(ontapStorage);
+String baseURL = Constants.HTTPS + ontapStorage.getManagementLIF();
+this.feignClientFactory = new FeignClientFactory();
+this.nasFeignClient =
feignClientFactory.createClient(NASFeignClient.class, baseURL);
+this.volumeFeignClient =
feignClientFactory.createClient(VolumeFeignClient.class,baseURL );
+this.jobFeignClient =
feignClientFactory.createClient(JobFeignClient.class, baseURL );
+}
+
+public void setOntapStorage(OntapStorage ontapStorage) {
+this.storage = ontapStorage;
+}
+
+@Override
+public CloudStackVolume createCloudStackVolume(CloudStackVolume
cloudstackVolume) {
+return null;
+}
+
+@Override
+CloudStackVolume updateCloudStackVolume(CloudStackVolume cloudstackVolume)
{
+return null;
+}
+
+@Override
+public void deleteCloudStackVolume(CloudStackVolume cloudstackVolume) {
+}
+
+@Override
+public void copyCloudStackVolume(CloudStackVolume cloudstackVolume) {
+
+}
+
+@Override
+public CloudStackVolume getCloudStackVolume(Map
cloudStackVolumeMap) {
+return null;
+}
+
+@Override
+public AccessGroup createAccessGroup(AccessGroup accessGroup) {
+s_logger.info("createAccessGroup: Create access group {}: " ,
accessGroup);
+Map details =
accessGroup.getPrimaryDataStoreInfo().getDetails();
+String svmName = details.get(Constants.SVM_NAME);
+String volumeUUID = details.get(Constants.VOLUME_UUID);
+String volumeName = details.get(Constants.VOLUME_NAME);
+
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
nvazquez commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3950483291 Many thanks @rajiv-jain-netapp @sandeeplocharla -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
rajiv-jain-netapp commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3949153745 > Thanks @sandeeplocharla great work! An additional question about the functionalities, would SnapMirror be supported for volume replication? In case it is not, are there any plans to add support for it? Hi @nvazquez , we have yet to plan the replication features for the upcoming PRs. However, SnapMirror support will be one of the key ONTAP capabilities that we intend to leverage for the plugin‑side workflow. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3945494347 @sandeeplocharla , can you review co-pilot’s sugestions and close/refuse or implement them? -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
Copilot commented on code in PR #12563:
URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2841482124
##
plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/service/UnifiedNASStrategy.java:
##
@@ -0,0 +1,319 @@
+/*
+ * 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.storage.service;
+
+import com.cloud.host.HostVO;
+import com.cloud.storage.dao.VolumeDao;
+import com.cloud.utils.exception.CloudRuntimeException;
+import feign.FeignException;
+import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
+import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreInfo;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
+import org.apache.cloudstack.storage.feign.FeignClientFactory;
+import org.apache.cloudstack.storage.feign.client.JobFeignClient;
+import org.apache.cloudstack.storage.feign.client.NASFeignClient;
+import org.apache.cloudstack.storage.feign.client.VolumeFeignClient;
+import org.apache.cloudstack.storage.feign.model.ExportPolicy;
+import org.apache.cloudstack.storage.feign.model.ExportRule;
+import org.apache.cloudstack.storage.feign.model.Job;
+import org.apache.cloudstack.storage.feign.model.Nas;
+import org.apache.cloudstack.storage.feign.model.OntapStorage;
+import org.apache.cloudstack.storage.feign.model.Svm;
+import org.apache.cloudstack.storage.feign.model.Volume;
+import org.apache.cloudstack.storage.feign.model.response.JobResponse;
+import org.apache.cloudstack.storage.feign.model.response.OntapResponse;
+import org.apache.cloudstack.storage.service.model.AccessGroup;
+import org.apache.cloudstack.storage.service.model.CloudStackVolume;
+import org.apache.cloudstack.storage.utils.Constants;
+import org.apache.cloudstack.storage.utils.Utility;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import javax.inject.Inject;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class UnifiedNASStrategy extends NASStrategy {
+
+private static final Logger s_logger =
LogManager.getLogger(UnifiedNASStrategy.class);
+private final FeignClientFactory feignClientFactory;
+private final NASFeignClient nasFeignClient;
+private final VolumeFeignClient volumeFeignClient;
+private final JobFeignClient jobFeignClient;
+@Inject private VolumeDao volumeDao;
+@Inject private EndPointSelector epSelector;
+@Inject private StoragePoolDetailsDao storagePoolDetailsDao;
+
+public UnifiedNASStrategy(OntapStorage ontapStorage) {
+super(ontapStorage);
+String baseURL = Constants.HTTPS + ontapStorage.getManagementLIF();
+this.feignClientFactory = new FeignClientFactory();
+this.nasFeignClient =
feignClientFactory.createClient(NASFeignClient.class, baseURL);
+this.volumeFeignClient =
feignClientFactory.createClient(VolumeFeignClient.class,baseURL );
+this.jobFeignClient =
feignClientFactory.createClient(JobFeignClient.class, baseURL );
+}
+
+public void setOntapStorage(OntapStorage ontapStorage) {
+this.storage = ontapStorage;
+}
+
+@Override
+public CloudStackVolume createCloudStackVolume(CloudStackVolume
cloudstackVolume) {
+return null;
+}
+
+@Override
+CloudStackVolume updateCloudStackVolume(CloudStackVolume cloudstackVolume)
{
+return null;
+}
+
+@Override
+public void deleteCloudStackVolume(CloudStackVolume cloudstackVolume) {
+}
+
+@Override
+public void copyCloudStackVolume(CloudStackVolume cloudstackVolume) {
+
+}
+
+@Override
+public CloudStackVolume getCloudStackVolume(Map
cloudStackVolumeMap) {
+return null;
+}
+
+@Override
+public AccessGroup createAccessGroup(AccessGroup accessGroup) {
+s_logger.info("createAccessGroup: Create access group {}: " ,
accessGroup);
+Map details =
accessGroup.getPrimaryDataStoreInfo().getDetails();
+String svmName = details.get(Constants.SVM_NAME);
+String volumeUUID = details.get(Constants.VOLUME_UUID);
+String volumeName = details.get(Constants.VOLUME_NAME);
+
+
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3945374575 > Hello @DaanHoogland, let us know if this PR has to be rebased or if anything else should be done for this PR? No, @harikrishna-patnala @sureshanaparti @weizhouapache , can you review please? -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
nvazquez commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3944045860 Thanks @sandeeplocharla great work! An additional question about the functionalities, would SnapMirror be supported for volume replication? In case it is not, are there any plans to add support for it? -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3942524609 > > Will try to see if there's anything that we could do in RCA for the failing tests, but, in the meanwhile, please let us know how we could proceed from here? > > this is good enough until we encounter tangible issues. Please continue with the comment outstanding now. review effort will have to be made and I (or we) will hopefully get to this soon. Please be prepared for some rebasing and conflict resolving over the coming weeks 🥺 … unfortunately I cannot promise when further review will happen, but this PR is on my list. Hello @DaanHoogland, let us know if this PR has to be rebased or if anything else should be done for this PR? -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3927216457 [SF] Trillian test result (tid-15500) Environment: kvm-ol8 (x2), zone: Advanced Networking with Mgmt server ol8 Total time taken: 63136 seconds Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr12563-t15500-kvm-ol8.zip Smoke tests completed. 147 look OK, 3 have errors, 0 did not run Only failed and skipped tests results shown below: Test | Result | Time (s) | Test File --- | --- | --- | --- ContextSuite context=TestListIdsParams>:teardown | `Error` | 1.12 | test_list_ids_parameter.py test_01_snapshot_root_disk | `Error` | 3.85 | test_snapshots.py test_02_list_snapshots_with_removed_data_store | `Error` | 46.56 | test_snapshots.py test_02_list_snapshots_with_removed_data_store | `Error` | 46.57 | test_snapshots.py ContextSuite context=TestSnapshotStandaloneBackup>:teardown | `Error` | 27.38 | test_snapshots.py test_01_snapshot_usage | `Error` | 22.65 | test_usage.py test_01_vpn_usage | `Error` | 1.08 | test_usage.py -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3922572495 @DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3922568040 @blueorangutan test -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3920704724 Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 16874 -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3919789052 Packaging result [SF]: ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 16871 -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3919601163 @DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3919594273 @blueorangutan package -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on code in PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2763125128 ## plugins/storage/volume/ontap/pom.xml: ## Review Comment: thanks so much @sandeeplocharla 👍 -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on code in PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2763088528 ## plugins/storage/volume/ontap/pom.xml: ## Review Comment: Hi @DaanHoogland , I've cross-checked the licenses of the dependencies added in our pom.xml. I had to remove one which wasn't conforming with ACF guidelines that you've shared. Currently, all licenses in the ONTAP plugin are compliant with Apache CloudStack norms. All runtime dependencies use Apache License 2.0 (Category A). Test dependencies use MIT and EPL 2.0 licenses, which are also Category A compatible. No Category X licenses are present. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3845795259 > Will try to see if there's anything that we could do in RCA for the failing tests, but, in the meanwhile, please let us know how we could proceed from here? this is good enough until we encounter tangible issues. Please continue with the comment outstanding now. review effort will have to be made and I (or we) will hopefully get to this soon. Please be prepared for some rebasing and conflict resolving over the coming weeks 🥺 … unfortunately I cannot promise when further review will happen, but this PR is on my list. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3843946120 [SF] Trillian test result (tid-15359) Environment: kvm-ol8 (x2), zone: Advanced Networking with Mgmt server ol8 Total time taken: 54505 seconds Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr12563-t15359-kvm-ol8.zip Smoke tests completed. 146 look OK, 4 have errors, 0 did not run Only failed and skipped tests results shown below: Test | Result | Time (s) | Test File --- | --- | --- | --- test_provision_certificate | `Error` | 121.48 | test_certauthority_root.py ContextSuite context=TestListIdsParams>:teardown | `Error` | 1.11 | test_list_ids_parameter.py test_01_snapshot_root_disk | `Error` | 5.22 | test_snapshots.py test_02_list_snapshots_with_removed_data_store | `Error` | 45.47 | test_snapshots.py test_02_list_snapshots_with_removed_data_store | `Error` | 45.48 | test_snapshots.py ContextSuite context=TestSnapshotStandaloneBackup>:teardown | `Error` | 28.38 | test_snapshots.py test_01_snapshot_usage | `Error` | 25.62 | test_usage.py test_01_vpn_usage | `Error` | 1.07 | test_usage.py -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3842343520 > > Hi, the project level Code coverage seems to be failing, due to mutliple files that this code is indirectly touching, doesn't have coverage. What could be done in such a case? Also, please help us with the smoke and component tests that are failing? I don't think we have made changes that are relevant to those tests. > > @sandeeplocharla , we have ambitions on coverage that we don’t meet historically. Please trty to meet them on your part of the code, more we cannot ask. As for the failing tests, these seem te be the same that are failing on main as well. If you can give us any hints on them that will be very much appreciated ;) This PR does not have the benchmark coverage that we usually aim for within our team. But, we plan on having maximum code coverage possible for the code that we plan on adding, with the upcoming PRs. As for this PR, there are around 5400 indirect files because of which the coverage dropped. I'm not sure, how we would able to handle them all. Will try to see if there's anything that we could do in RCA for the failing tests, but, in the meanwhile, please let us know how we could proceed from here? -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on code in PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2759902140 ## plugins/storage/volume/ontap/pom.xml: ## Review Comment: Will check the licenses and get back to you. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on code in PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#discussion_r2759146260 ## plugins/storage/volume/ontap/pom.xml: ## Review Comment: did you do license checks on the extra dependencies added in this file? see https://apache.org/legal/resolved.html for explanation. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3841954165 > Hi, the project level Code coverage seems to be failing, due to mutliple files that this code is indirectly touching, doesn't have coverage. What could be done in such a case? Also, please help us with the smoke and component tests that are failing? I don't think we have made changes that are relevant to those tests. @sandeeplocharla , we have ambitions on coverage that we don’t meet historically. Please trty to meet them on your part of the code, more we cannot ask. As for the failing tests, these seem te be the same that are failing on main as well. If you can give us any hints on them that will be very much appreciated ;) -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3841442014 Hi, the project level Code coverage seems to be failing, due to mutliple files that this code is indirectly touching, doesn't have coverage. What could be done in such a case? -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
rajiv-jain-netapp commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3840034259 > Hey @sandeeplocharla et al, > > Great work, some issues came up in the github actions. Can you first look at the license check and the pre-commit actions? thanks for the extensive test description as well. We cannot guarantee 3rd party testing as I hope you understand. I’ll be sure to review your work and thanks again. Thank you, @DaanHoogland. We look forward to receiving your review comments and will address them as soon as possible. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3840023568 Hi @DaanHoogland Thank you! I'm trying to understand the errors. For us to have more clarity, could you please help us understand in brief on what is being checked in the tests that failed? -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
DaanHoogland commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3839872177 Hey @sandeeplocharla et al, Great work, some issues came up in the github actions. Can you first look at the license check and the pre-commit actions? thanks for the extensive test description as well. We cannot guarantee 3rd party testing as I hope you understand. I’ll be sure to review your work and thanks again. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3839298373 @kiranchavala a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
kiranchavala commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3839292253 @blueorangutan test -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3839170338 Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✖️ debian ✔️ suse15. SL-JID 16683 -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
blueorangutan commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3839092665 @kiranchavala a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
kiranchavala commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3839090548 @blueorangutan package -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
Re: [PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
codecov[bot] commented on PR #12563: URL: https://github.com/apache/cloudstack/pull/12563#issuecomment-3831229630 ## [Codecov](https://app.codecov.io/gh/apache/cloudstack/pull/12563?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report :white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 3.68%. Comparing base ([`7b94ccc`](https://app.codecov.io/gh/apache/cloudstack/commit/7b94ccc443fb89d11842f0611701d4410b531654?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`3a2c43b`](https://app.codecov.io/gh/apache/cloudstack/commit/3a2c43b909e960e88cdc026ee505b0db276f5f33?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)). :warning: Report is 11 commits behind head on main. > :exclamation: There is a different number of reports uploaded between BASE (7b94ccc) and HEAD (3a2c43b). Click for more details. > > HEAD has 1 upload less than BASE > >| Flag | BASE (7b94ccc) | HEAD (3a2c43b) | >|--|--|--| >|unittests|1|0| > Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #12563 +/- ## = - Coverage 17.89%3.68% -14.21% = Files 5936 452 -5484 Lines53263538385 -494250 Branches 65148 7102-58046 = - Hits 95298 1414-93884 + Misses 42666736784 -389883 + Partials 10670 187-10483 ``` | [Flag](https://app.codecov.io/gh/apache/cloudstack/pull/12563/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | | |---|---|---| | [uitests](https://app.codecov.io/gh/apache/cloudstack/pull/12563/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `3.68% <ø> (+<0.01%)` | :arrow_up: | | [unittests](https://app.codecov.io/gh/apache/cloudstack/pull/12563/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more. [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/cloudstack/pull/12563?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache). :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache). :rocket: New features to boost your workflow: - :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems. - :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
[PR] Create & Delete, Enable & Disable, Enter & Cancel maintenance of Prim… [cloudstack]
sandeeplocharla opened a new pull request, #12563:
URL: https://github.com/apache/cloudstack/pull/12563
…ary StoragePool with ONTAP storage
Co-authored-by: Rajiv Jain
### Description
# NetApp ONTAP Storage Plugin - Design Specification
## Introduction
This document describes in brief the design and implementation of the NetApp
ONTAP storage plugin for Apache CloudStack. The plugin enables CloudStack to
use NetApp ONTAP as a primary storage provider.
## ONTAP Terminology
| Term | Description |
|--|-|
| SVM | Storage Virtual Machine - a logical storage container that provides
data access to clients |
| FlexVolume | A logical volume that can grow or shrink within an aggregate |
| Aggregate | A collection of physical disks that provides storage for
volumes |
| LIF | Logical Interface - a network interface for client access
(Management LIF for admin, Data LIF for storage traffic) |
| iGroup | Initiator Group - a collection of host initiator IQNs used for
iSCSI access control |
| Export Policy | A set of rules that define NFS client access to volumes |
## Scope
### Current Implementation
The following operations are currently implemented:
| Operation | Description |
|---|-|
| Create Primary Storage Pool | Creates a FlexVolume on ONTAP and registers
it as a primary storage pool in CloudStack |
| Delete Primary Storage Pool | Removes the storage pool from CloudStack and
deletes the FlexVolume from ONTAP |
| Attach Cluster/Zone | Creates access groups (iGroups for iSCSI, export
policies for NFS) and connects hosts |
| Enable/Disable Storage Pool | Enables or disables the storage pool for use
|
| Enter/Cancel Maintenance | Places storage pool in maintenance mode or
brings it back online |
### Supported Configurations
| Configuration | Supported Values |
|---|--|
| Hypervisor | KVM |
| ONTAP Platform | Unified |
| Protocols | NFS 3.0, iSCSI |
| Storage Pool Scope | Cluster, Zone |
## Storage Pool Lifecycle
### Create Storage Pool
1. Validate input parameters (SVM, protocol, credentials)
2. Connect to ONTAP and verify SVM state and protocol enablement
3. Create FlexVolume on ONTAP
4. Register storage pool in CloudStack
### Attach to Cluster/Zone
1. Identify eligible hosts in the scope
2. Create access group (iGroup or export policy)
3. Connect each host to the storage pool
### Delete Storage Pool
1. Delete access groups from ONTAP
2. Delete FlexVolume from ONTAP
3. Remove storage pool from CloudStack
## Configuration Parameters
Parameters are passed via URL in semicolon-separated key=value format:
| Parameter | Description |
|---|--|
| `username` | ONTAP admin username |
| `password` | ONTAP admin password |
| `managementLIF` | ONTAP cluster management IP |
| `svmName` | Storage Virtual Machine name |
| `protocol` | `NFS3` or `ISCSI`|
| `isDisaggregated` | Must be `false` for now |
### Types of changes
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [X] New feature (non-breaking change which adds functionality)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Enhancement (improves an existing feature and functionality)
- [ ] Cleanup (Code refactoring and cleanup, that may add test cases)
- [ ] Build/CI
- [ ] Test (unit or integration test code)
### Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
- [X] Major
- [ ] Minor
Bug Severity
- [ ] BLOCKER
- [ ] Critical
- [X] Major
- [ ] Minor
- [ ] Trivial
### How Has This Been Tested?
1. **Management Server Operations:**
- Added a new zone using the Management server UI.
- Verified functionality of core and advanced zone types.
2. **Primary Storage Pool Operations:**
- **Create:** Verified creation of primary storage pool.
- **Delete:** Verified deletion of primary storage pool.
- **Enable/Disable:** Tested enabling and disabling the storage pool.
- **Maintenance Mode:** Verified entering and exiting maintenance mode.
- **Cancel Maintenance:** Ensured maintenance cancellation works.
Testing Environment:
- The test setup was conducted on an Ubuntu VM with the following components
installed and configured:
- Management server
- Cloudstack agent and KVM
- NFS server
- iSCSI initiator
- Testing has been done currently with a single host.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and us
