apache / apache/cloudstack

Support multiple storage providers for secondary storage in a zone

Open
#9,521 4 comments 1 reaction 0 assignees View on GitHub
component:secondary-storage type:enhancement type:improvement
Dominant language
Java
Stars
3.1k
Forks
1.4k
Avg merge
6d 19h
Merged PRs (30d)
32

Description

ISSUE TYPE

Enhancement/Improvement request

COMPONENT NAME

Component: UI

CLOUDSTACK VERSION

Cloudstack version 4.19

SUMMARY

Support multiple storage providers for secondary storage

Steps to reproduce the issue

Have an existing nfs secondary storage present

1. Navigate to Infrastructure > Secondary storage >

2. Add secondary storage for storage provider s3

![Screenshot 2024-08-13 at 1 35 07 PM](https://github.com/user-attachments/assets/65062a41-c263-4365-928f-6035731610a0)

![Screenshot 2024-08-13 at 2 51 15 PM](https://github.com/user-attachments/assets/37ead917-7cc3-4edc-b1f1-00d250d265e7)

Logs

```
root@ref-trl-7087-k-Mu24-kiran-chavala-mgmt1:~# cat /var/log/cloudstack/management/management-server.log |grep -i "logid:ab39b82d"
2024-08-02 07:17:32,204 DEBUG [c.c.a.ApiServlet] (qtp364604394-20:ctx-36924578) (logid:ab39b82d) ===START=== 10.0.3.251 -- GET name=minio&details[2].key=bucket&details[2].value=kiran-bucket2&details[3].key=usehttps&details[3].value=false&details[4].key=endpoint&details[4].value=http:%2F%2F10.0.32.251:9000&provider=S3&command=addImageStore&response=json
2024-08-02 07:17:32,204 DEBUG [c.c.a.ApiServlet] (qtp364604394-20:ctx-36924578) (logid:ab39b82d) Two factor authentication is already verified for the user 2, so skipping
2024-08-02 07:17:32,210 DEBUG [c.c.a.ApiServer] (qtp364604394-20:ctx-36924578 ctx-4856a5f7) (logid:ab39b82d) CIDRs from which account 'Account [{"accountName":"admin","id":2,"uuid":"97bbbe87-4fc8-11ef-82b1-1e00590001cf"}]' is allowed to perform API calls: 0.0.0.0/0,::/0
2024-08-02 07:17:32,213 DEBUG [o.a.c.a.StaticRoleBasedAPIAccessChecker] (qtp364604394-20:ctx-36924578 ctx-4856a5f7) (logid:ab39b82d) RoleService is enabled. We will use it instead of StaticRoleBasedAPIAccessChecker.
2024-08-02 07:17:32,214 DEBUG [o.a.c.r.ApiRateLimitServiceImpl] (qtp364604394-20:ctx-36924578 ctx-4856a5f7) (logid:ab39b82d) API rate limiting is disabled. We will not use ApiRateLimitService.
2024-08-02 07:17:32,216 INFO [c.c.a.ApiServer] (qtp364604394-20:ctx-36924578 ctx-4856a5f7) (logid:ab39b82d) You can only add new image stores from the same provider NFS already added
2024-08-02 07:17:32,216 DEBUG [c.c.a.ApiServlet] (qtp364604394-20:ctx-36924578 ctx-4856a5f7) (logid:ab39b82d) ===END=== 10.0.3.251 -- GET name=minio&details[2].key=bucket&details[2].value=kiran-bucket2&details[3].key=usehttps&details[3].value=false&details[4].key=endpoint&details[4].value=http:%2F%2F10.0.32.251:9000&provider=S3&command=addImageStore&response=json
```

Expected behaviour

It would be a useful feature if end user wants to migrate the secondary storage other storage providers

Contributor guide

Open the contributing guide

Research direction

Start with the Infrastructure > Secondary storage UI flow and the addImageStore API request shown in the issue logs. Trace where the existing NFS provider restriction is enforced, then define and verify behavior for adding multiple secondary-storage providers, including migrating storage between providers.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
cloud, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.