Skip to content

Commit 3bb713c

Browse files
committed
fix adding nfs primary storage and build and load
1 parent 8a52347 commit 3bb713c

6 files changed

Lines changed: 28 additions & 18 deletions

File tree

engine/storage/volume/src/org/apache/cloudstack/storage/datastore/lifecycle/AncientPrimaryDataStoreLifeCyclImpl.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,11 @@ public DataStore initialize(Map<String, Object> dsInfos) {
204204

205205
String scheme = uri.getScheme();
206206
String storageHost = uri.getHost();
207-
String hostPath = uri.getPath().replaceFirst("/", "");
207+
String hostPath = uri.getPath();
208+
Object localStorage = dsInfos.get("localStorage");
209+
if (localStorage != null) {
210+
hostPath = hostPath.replace("/", "");
211+
}
208212
String userInfo = uri.getUserInfo();
209213
int port = uri.getPort();
210214
StoragePoolVO pool = null;
@@ -310,7 +314,6 @@ public DataStore initialize(Map<String, Object> dsInfos) {
310314
"Unable to figure out the scheme for URI: " + uri);
311315
}
312316

313-
Object localStorage = dsInfos.get("localStorage");
314317
if (localStorage == null) {
315318
List<StoragePoolVO> pools = primaryDataStoreDao
316319
.listPoolByHostPath(storageHost, hostPath);
@@ -463,8 +466,11 @@ public boolean attachCluster(DataStore store, ClusterScope scope) {
463466

464467
@Override
465468
public boolean attachZone(DataStore dataStore, ZoneScope scope) {
466-
// TODO Auto-generated method stub
467-
return false;
469+
StoragePoolVO pool = this.primaryDataStoreDao.findById(dataStore.getId());
470+
pool.setScope(ScopeType.ZONE);
471+
pool.setStatus(StoragePoolStatus.Up);
472+
this.primaryDataStoreDao.update(pool.getId(), pool);
473+
return true;
468474
}
469475

470476
@Override

engine/storage/volume/src/org/apache/cloudstack/storage/datastore/manager/DefaultPrimaryDataStoreProviderManagerImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
3737
import org.springframework.stereotype.Component;
3838

39+
import com.cloud.storage.StorageManager;
40+
3941
@Component
4042
public class DefaultPrimaryDataStoreProviderManagerImpl implements PrimaryDataStoreProviderManager {
4143
@Inject
@@ -45,6 +47,7 @@ public class DefaultPrimaryDataStoreProviderManagerImpl implements PrimaryDataSt
4547
@Inject
4648
PrimaryDataStoreDao dataStoreDao;
4749
Map<String, PrimaryDataStoreDriver> driverMaps;
50+
@Inject StorageManager storageMgr;
4851

4952
@PostConstruct
5053
public void config() {
@@ -77,7 +80,6 @@ public PrimaryDataStore getPrimaryDataStore(String uuid) {
7780

7881
@Override
7982
public boolean registerHostListener(String uuid, HypervisorHostListener listener) {
80-
// TODO Auto-generated method stub
81-
return false;
83+
return storageMgr.registerHostListener(uuid, listener);
8284
}
8385
}

engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/AncientPrimaryDataStoreProviderImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import javax.inject.Inject;
2424

2525
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
26+
import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
2627
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
2728
import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager;
2829
import org.apache.cloudstack.storage.datastore.driver.AncientPrimaryDataStoreDriverImpl;
@@ -59,6 +60,8 @@ public boolean configure(Map<String, Object> params) {
5960
uuid = (String)params.get("uuid");
6061
id = (Long)params.get("id");
6162
storeMgr.registerDriver(uuid, this.driver);
63+
HypervisorHostListener listener = ComponentContext.inject(DefaultHostListener.class);
64+
storeMgr.registerHostListener(uuid, listener);
6265
return true;
6366
}
6467

plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsBladeDaoImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,14 @@
1717
package com.cloud.ucs.database;
1818

1919
import javax.ejb.Local;
20+
21+
import org.springframework.stereotype.Component;
2022

2123
import com.cloud.utils.db.DB;
2224
import com.cloud.utils.db.GenericDaoBase;
2325
@Local(value = { UcsBladeDao.class })
24-
@DB(txn = false)
26+
@DB(txn = false)
27+
@Component
2528
public class UcsBladeDaoImpl extends GenericDaoBase<UcsBladeVO, Long> implements UcsBladeDao {
2629

2730
}

plugins/hypervisors/ucs/src/com/cloud/ucs/database/UcsManagerDaoImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@
1717
package com.cloud.ucs.database;
1818

1919
import javax.ejb.Local;
20+
21+
import org.springframework.stereotype.Component;
2022

2123
import com.cloud.utils.db.DB;
2224
import com.cloud.utils.db.GenericDaoBase;
2325

2426
@Local(value = { UcsManagerDao.class })
25-
@DB(txn = false)
27+
@DB(txn = false)
28+
@Component
2629
public class UcsManagerDaoImpl extends GenericDaoBase<UcsManagerVO, Long> implements UcsManagerDao {
2730
}
2831

server/src/com/cloud/storage/StorageManagerImpl.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -772,8 +772,10 @@ public PrimaryDataStoreInfo createPool(CreateStoragePoolCmd cmd)
772772

773773
if (storeProvider == null) {
774774
storeProvider = dataStoreProviderMgr.getDefaultPrimaryDataStoreProvider();
775+
if (storeProvider == null) {
775776
throw new InvalidParameterValueException(
776-
"invalid storage provider uuid" + providerUuid);
777+
"can't find storage provider: " + providerUuid);
778+
}
777779
}
778780

779781
Long clusterId = cmd.getClusterId();
@@ -983,15 +985,6 @@ public void connectHostToSharedPool(long hostId, long poolId)
983985
HypervisorHostListener listener = hostListeners.get(provider.getUuid());
984986
listener.hostConnect(hostId, pool.getId());
985987
}
986-
987-
988-
989-
990-
991-
992-
993-
994-
995988

996989
@Override
997990
public void createCapacityEntry(StoragePoolVO storagePool, short capacityType, long allocated) {

0 commit comments

Comments
 (0)