mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 01:32:18 +02:00
Compare commits
5 Commits
619a4a9128
...
59e2c39818
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59e2c39818 | ||
|
|
4b74a99a57 | ||
|
|
2fcf96267d | ||
|
|
8bbe253b00 | ||
|
|
a6068a850c |
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@ -29,7 +29,7 @@ permissions:
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
if: github.repository == 'apache/cloudstack'
|
if: github.repository == 'apache/cloudstack'
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-24.04
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@ -236,7 +236,7 @@ jobs:
|
|||||||
- name: Install Build Dependencies
|
- name: Install Build Dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y git uuid-runtime genisoimage netcat ipmitool build-essential libgcrypt20 libgpg-error-dev libgpg-error0 libopenipmi0 ipmitool libpython3-dev libssl-dev libffi-dev python3-openssl python3-dev python3-setuptools
|
sudo apt-get install -y git uuid-runtime genisoimage netcat-openbsd ipmitool build-essential libgcrypt20 libgpg-error-dev libgpg-error0 libopenipmi0 ipmitool libpython3-dev libssl-dev libffi-dev python3-openssl python3-dev python3-setuptools
|
||||||
|
|
||||||
- name: Install Python dependencies
|
- name: Install Python dependencies
|
||||||
run: |
|
run: |
|
||||||
@ -275,7 +275,7 @@ jobs:
|
|||||||
- name: Setup Simulator Prerequisites
|
- name: Setup Simulator Prerequisites
|
||||||
run: |
|
run: |
|
||||||
sudo python3 -m pip install --upgrade netaddr mysql-connector-python
|
sudo python3 -m pip install --upgrade netaddr mysql-connector-python
|
||||||
python3 -m pip install --user --upgrade tools/marvin/dist/Marvin-*.tar.gz
|
python3 -m pip install --user --upgrade tools/marvin/dist/[mM]arvin-*.tar.gz
|
||||||
mvn -q -Pdeveloper -pl developer -Ddeploydb
|
mvn -q -Pdeveloper -pl developer -Ddeploydb
|
||||||
mvn -q -Pdeveloper -pl developer -Ddeploydb-simulator
|
mvn -q -Pdeveloper -pl developer -Ddeploydb-simulator
|
||||||
|
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
[](https://cloudstack.apache.org/)
|
[](https://cloudstack.apache.org/)
|
||||||
|
|
||||||
Apache CloudStack is open source software designed to deploy and manage large
|
Apache CloudStack is open-source software designed to deploy and manage large
|
||||||
networks of virtual machines, as a highly available, highly scalable
|
networks of virtual machines, as a highly available, highly scalable
|
||||||
Infrastructure as a Service (IaaS) cloud computing platform. CloudStack is used
|
Infrastructure as a Service (IaaS) cloud computing platform. CloudStack is used
|
||||||
by a number of service providers to offer public cloud services, and by many
|
by a number of service providers to offer public cloud services, and by many
|
||||||
|
|||||||
@ -209,7 +209,10 @@ public class ImportVmTasksManagerImpl implements ImportVmTasksManager {
|
|||||||
}
|
}
|
||||||
if (task.getVmId() != null) {
|
if (task.getVmId() != null) {
|
||||||
UserVmVO userVm = userVmDao.findById(task.getVmId());
|
UserVmVO userVm = userVmDao.findById(task.getVmId());
|
||||||
response.setVirtualMachineId(userVm.getUuid());
|
if (userVm != null) {
|
||||||
|
// Migrated VM could have been removed from CloudStack after the migration
|
||||||
|
response.setVirtualMachineId(userVm.getUuid());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
response.setCreated(task.getCreated());
|
response.setCreated(task.getCreated());
|
||||||
response.setLastUpdated(task.getUpdated());
|
response.setLastUpdated(task.getUpdated());
|
||||||
|
|||||||
@ -259,26 +259,6 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="resource-detail-item" v-if="'gpucardname' in resource && resource.gpucardname !== ''">
|
|
||||||
<div class="resource-detail-item__label">{{ $t('label.gpu') }}</div>
|
|
||||||
<div class="resource-detail-item__details">
|
|
||||||
<font-awesome-icon
|
|
||||||
:icon="['fa-solid', 'fa-microchip']"
|
|
||||||
class="anticon"
|
|
||||||
:style="[$store.getters.darkMode ? { color: 'rgba(255, 255, 255, 0.65)' } : { color: '#888' }]" />
|
|
||||||
<span>
|
|
||||||
{{ resource.gpucount ? resource.gpucount + ' x ' : '' }}
|
|
||||||
<router-link v-if="resource.gpucardid" :to="{ path: '/gpucard/' + resource.gpucardid }">{{ resource.gpucardname}} </router-link>
|
|
||||||
<span v-else>{{ resource.gpucardname }}</span>
|
|
||||||
<router-link v-if="resource.vgpuprofilename !== 'passthrough' && resource.vgpuprofileid" :to="{ path: '/vgpuprofile/' + resource.vgpuprofileid }">{{ ' (' + resource.vgpuprofilename + ')' }}</router-link>
|
|
||||||
<span v-else-if="resource.vgpuprofilename !== 'passthrough' &&resource.vgpuprofilename">{{ ' (' + resource.vgpuprofilename + ')' }}</span>
|
|
||||||
<span v-if="resource.videoram || (resource.maxresolutionx || resource.maxresolutiony)">
|
|
||||||
<br/>{{ ' [' + (resource.videoram ? (resource.videoram + 'MB') : '') + ((resource.videoram && resource.maxresolutionx && resource.maxresolutiony) ? ', ' : '') +
|
|
||||||
(resource.maxresolutionx && resource.maxresolutiony ? resource.maxresolutionx + 'x' + resource.maxresolutiony : '') + ']' }}
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="resource-detail-item" v-else-if="resource.memorytotalgb">
|
<div class="resource-detail-item" v-else-if="resource.memorytotalgb">
|
||||||
<div class="resource-detail-item__label">{{ $t('label.memory') }}</div>
|
<div class="resource-detail-item__label">{{ $t('label.memory') }}</div>
|
||||||
<div class="resource-detail-item__details">
|
<div class="resource-detail-item__details">
|
||||||
@ -344,6 +324,26 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="resource-detail-item" v-if="'gpucardname' in resource && resource.gpucardname !== ''">
|
||||||
|
<div class="resource-detail-item__label">{{ $t('label.gpu') }}</div>
|
||||||
|
<div class="resource-detail-item__details">
|
||||||
|
<font-awesome-icon
|
||||||
|
:icon="['fa-solid', 'fa-microchip']"
|
||||||
|
class="anticon"
|
||||||
|
:style="[$store.getters.darkMode ? { color: 'rgba(255, 255, 255, 0.65)' } : { color: '#888' }]" />
|
||||||
|
<span>
|
||||||
|
{{ resource.gpucount ? resource.gpucount + ' x ' : '' }}
|
||||||
|
<router-link v-if="resource.gpucardid" :to="{ path: '/gpucard/' + resource.gpucardid }">{{ resource.gpucardname}} </router-link>
|
||||||
|
<span v-else>{{ resource.gpucardname }}</span>
|
||||||
|
<router-link v-if="resource.vgpuprofilename !== 'passthrough' && resource.vgpuprofileid" :to="{ path: '/vgpuprofile/' + resource.vgpuprofileid }">{{ ' (' + resource.vgpuprofilename + ')' }}</router-link>
|
||||||
|
<span v-else-if="resource.vgpuprofilename !== 'passthrough' &&resource.vgpuprofilename">{{ ' (' + resource.vgpuprofilename + ')' }}</span>
|
||||||
|
<span v-if="resource.videoram || (resource.maxresolutionx || resource.maxresolutiony)">
|
||||||
|
<br/>{{ ' [' + (resource.videoram ? (resource.videoram + 'MB') : '') + ((resource.videoram && resource.maxresolutionx && resource.maxresolutiony) ? ', ' : '') +
|
||||||
|
(resource.maxresolutionx && resource.maxresolutiony ? resource.maxresolutionx + 'x' + resource.maxresolutiony : '') + ']' }}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="resource-detail-item" v-if="resource.gputotal">
|
<div class="resource-detail-item" v-if="resource.gputotal">
|
||||||
<div class="resource-detail-item__label">{{ $t('label.gpu') }}</div>
|
<div class="resource-detail-item__label">{{ $t('label.gpu') }}</div>
|
||||||
<div class="resource-detail-item__details">
|
<div class="resource-detail-item__details">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user