mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Merge branch '4.18'
This commit is contained in:
commit
d627539688
@ -417,11 +417,6 @@
|
||||
<artifactId>cloud-engine-components-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-engine-network</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-engine-orchestration</artifactId>
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<project xmlns="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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-engine-network</artifactId>
|
||||
<name>Apache CloudStack Cloud Engine API</name>
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-engine</artifactId>
|
||||
<version>4.19.0.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-engine-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-engine-components-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-framework-ipc</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@ -1,40 +0,0 @@
|
||||
/*
|
||||
* 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.network;
|
||||
|
||||
public interface NetworkOrchestrator {
|
||||
|
||||
/**
|
||||
* Prepares for a VM to join a network
|
||||
* @param vm vm
|
||||
* @param reservationId reservation id
|
||||
*/
|
||||
void prepare(String vm, String reservationId);
|
||||
|
||||
/**
|
||||
* Release all reservation
|
||||
*/
|
||||
void release(String vm, String reservationId);
|
||||
|
||||
/**
|
||||
* Cancel a previous reservation
|
||||
* @param reservationId
|
||||
*/
|
||||
void cancel(String reservationId);
|
||||
}
|
||||
@ -47,7 +47,6 @@
|
||||
<!-- keep in alphabetic order -->
|
||||
<module>api</module>
|
||||
<module>components-api</module>
|
||||
<module>network</module>
|
||||
<module>orchestration</module>
|
||||
<module>schema</module>
|
||||
<module>service</module>
|
||||
|
||||
@ -54,11 +54,6 @@
|
||||
<artifactId>cloud-engine-storage</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-engine-network</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
|
||||
@ -428,6 +428,19 @@ public class LinstorPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
|
||||
}
|
||||
}
|
||||
|
||||
private void resizeResource(DevelopersApi api, String resourceName, long sizeByte) throws ApiException {
|
||||
VolumeDefinitionModify dfm = new VolumeDefinitionModify();
|
||||
dfm.setSizeKib(sizeByte / 1024);
|
||||
|
||||
ApiCallRcList answers = api.volumeDefinitionModify(resourceName, 0, dfm);
|
||||
if (answers.hasError()) {
|
||||
s_logger.error("Resize error: " + answers.get(0).getMessage());
|
||||
throw new CloudRuntimeException(answers.get(0).getMessage());
|
||||
} else {
|
||||
s_logger.info(String.format("Successfully resized %s to %d kib", resourceName, dfm.getSizeKib()));
|
||||
}
|
||||
}
|
||||
|
||||
private String cloneResource(long csCloneId, VolumeInfo volumeInfo, StoragePoolVO storagePoolVO) {
|
||||
// get the cached template on this storage
|
||||
VMTemplateStoragePoolVO tmplPoolRef = _vmTemplatePoolDao.findByPoolTemplate(
|
||||
@ -452,6 +465,11 @@ public class LinstorPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
|
||||
}
|
||||
|
||||
s_logger.info("Clone resource definition " + cloneRes + " to " + rscName + " finished");
|
||||
|
||||
if (volumeInfo.getSize() != null && volumeInfo.getSize() > 0) {
|
||||
resizeResource(linstorApi, rscName, volumeInfo.getSize());
|
||||
}
|
||||
|
||||
applyAuxProps(linstorApi, rscName, volumeInfo.getName(), volumeInfo.getAttachedVmName());
|
||||
applyQoSSettings(storagePoolVO, linstorApi, rscName, volumeInfo.getMaxIops());
|
||||
|
||||
@ -738,26 +756,16 @@ public class LinstorPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
|
||||
dfm.setSizeKib(resizeParameter.newSize / 1024);
|
||||
try
|
||||
{
|
||||
resizeResource(api, rscName, resizeParameter.newSize);
|
||||
|
||||
applyQoSSettings(pool, api, rscName, resizeParameter.newMaxIops);
|
||||
{
|
||||
final VolumeVO volume = _volumeDao.findById(vol.getId());
|
||||
volume.setMinIops(resizeParameter.newMinIops);
|
||||
volume.setMaxIops(resizeParameter.newMaxIops);
|
||||
volume.setSize(resizeParameter.newSize);
|
||||
_volumeDao.update(volume.getId(), volume);
|
||||
}
|
||||
|
||||
ApiCallRcList answers = api.volumeDefinitionModify(rscName, 0, dfm);
|
||||
if (answers.hasError())
|
||||
{
|
||||
s_logger.error("Resize error: " + answers.get(0).getMessage());
|
||||
errMsg = answers.get(0).getMessage();
|
||||
} else
|
||||
{
|
||||
s_logger.info(String.format("Successfully resized %s to %d kib", rscName, dfm.getSizeKib()));
|
||||
vol.setSize(resizeParameter.newSize);
|
||||
vol.update();
|
||||
}
|
||||
|
||||
} catch (ApiException apiExc)
|
||||
{
|
||||
s_logger.error(apiExc);
|
||||
@ -765,12 +773,10 @@ public class LinstorPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
|
||||
}
|
||||
|
||||
CreateCmdResult result;
|
||||
if (errMsg != null)
|
||||
{
|
||||
if (errMsg != null) {
|
||||
result = new CreateCmdResult(null, new Answer(null, false, errMsg));
|
||||
result.setResult(errMsg);
|
||||
} else
|
||||
{
|
||||
} else {
|
||||
// notify guests
|
||||
result = notifyResize(vol, oldSize, resizeParameter);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user