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>
|
<artifactId>cloud-engine-components-api</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.cloudstack</groupId>
|
|
||||||
<artifactId>cloud-engine-network</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.cloudstack</groupId>
|
<groupId>org.apache.cloudstack</groupId>
|
||||||
<artifactId>cloud-engine-orchestration</artifactId>
|
<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 -->
|
<!-- keep in alphabetic order -->
|
||||||
<module>api</module>
|
<module>api</module>
|
||||||
<module>components-api</module>
|
<module>components-api</module>
|
||||||
<module>network</module>
|
|
||||||
<module>orchestration</module>
|
<module>orchestration</module>
|
||||||
<module>schema</module>
|
<module>schema</module>
|
||||||
<module>service</module>
|
<module>service</module>
|
||||||
|
|||||||
@ -54,11 +54,6 @@
|
|||||||
<artifactId>cloud-engine-storage</artifactId>
|
<artifactId>cloud-engine-storage</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.cloudstack</groupId>
|
|
||||||
<artifactId>cloud-engine-network</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-context</artifactId>
|
<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) {
|
private String cloneResource(long csCloneId, VolumeInfo volumeInfo, StoragePoolVO storagePoolVO) {
|
||||||
// get the cached template on this storage
|
// get the cached template on this storage
|
||||||
VMTemplateStoragePoolVO tmplPoolRef = _vmTemplatePoolDao.findByPoolTemplate(
|
VMTemplateStoragePoolVO tmplPoolRef = _vmTemplatePoolDao.findByPoolTemplate(
|
||||||
@ -452,6 +465,11 @@ public class LinstorPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
s_logger.info("Clone resource definition " + cloneRes + " to " + rscName + " finished");
|
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());
|
applyAuxProps(linstorApi, rscName, volumeInfo.getName(), volumeInfo.getAttachedVmName());
|
||||||
applyQoSSettings(storagePoolVO, linstorApi, rscName, volumeInfo.getMaxIops());
|
applyQoSSettings(storagePoolVO, linstorApi, rscName, volumeInfo.getMaxIops());
|
||||||
|
|
||||||
@ -738,26 +756,16 @@ public class LinstorPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
|
|||||||
dfm.setSizeKib(resizeParameter.newSize / 1024);
|
dfm.setSizeKib(resizeParameter.newSize / 1024);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
resizeResource(api, rscName, resizeParameter.newSize);
|
||||||
|
|
||||||
applyQoSSettings(pool, api, rscName, resizeParameter.newMaxIops);
|
applyQoSSettings(pool, api, rscName, resizeParameter.newMaxIops);
|
||||||
{
|
{
|
||||||
final VolumeVO volume = _volumeDao.findById(vol.getId());
|
final VolumeVO volume = _volumeDao.findById(vol.getId());
|
||||||
volume.setMinIops(resizeParameter.newMinIops);
|
volume.setMinIops(resizeParameter.newMinIops);
|
||||||
volume.setMaxIops(resizeParameter.newMaxIops);
|
volume.setMaxIops(resizeParameter.newMaxIops);
|
||||||
|
volume.setSize(resizeParameter.newSize);
|
||||||
_volumeDao.update(volume.getId(), volume);
|
_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)
|
} catch (ApiException apiExc)
|
||||||
{
|
{
|
||||||
s_logger.error(apiExc);
|
s_logger.error(apiExc);
|
||||||
@ -765,12 +773,10 @@ public class LinstorPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
CreateCmdResult result;
|
CreateCmdResult result;
|
||||||
if (errMsg != null)
|
if (errMsg != null) {
|
||||||
{
|
|
||||||
result = new CreateCmdResult(null, new Answer(null, false, errMsg));
|
result = new CreateCmdResult(null, new Answer(null, false, errMsg));
|
||||||
result.setResult(errMsg);
|
result.setResult(errMsg);
|
||||||
} else
|
} else {
|
||||||
{
|
|
||||||
// notify guests
|
// notify guests
|
||||||
result = notifyResize(vol, oldSize, resizeParameter);
|
result = notifyResize(vol, oldSize, resizeParameter);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user