Skip to content

Commit 82ab4fc

Browse files
committed
localstorage uuid is generated by uuidgen, other than from hostip+localstoragepath
1 parent 6256c88 commit 82ab4fc

4 files changed

Lines changed: 31 additions & 9 deletions

File tree

agent/bindir/cloud-setup-agent.in

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import logging
44
import sys
55
import socket
66
from cloudutils.cloudException import CloudRuntimeException, CloudInternalException
7-
from cloudutils.utilities import initLoging
7+
from cloudutils.utilities import initLoging, bash
88
from cloudutils.configFileOps import configFileOps
99
from cloudutils.globalEnv import globalEnv
1010
from cloudutils.networkConfig import networkConfig
@@ -13,7 +13,7 @@ from cloudutils.syscfg import sysConfigFactory
1313
from optparse import OptionParser
1414

1515
def getUserInputs():
16-
print "Welcome to myCloud Setup:"
16+
print "Welcome to Cloud Agent Setup:"
1717

1818
cfo = configFileOps("/etc/cloud/agent/agent.properties")
1919
oldMgt = cfo.getEntry("host")
@@ -28,11 +28,22 @@ def getUserInputs():
2828
exit(1)
2929

3030
oldToken = cfo.getEntry("zone")
31-
zoneToken = raw_input("Please input the Zone Token:[%s]"%oldToken)
31+
zoneToken = raw_input("Please input the Zone Id:[%s]"%oldToken)
3232

3333
if zoneToken == "":
3434
zoneToken = oldToken
3535

36+
oldPod = cfo.getEntry("pod")
37+
podId = raw_input("Please input the Pod Id:[%s]"%oldPod)
38+
39+
if podId == "":
40+
podId = oldToken
41+
42+
oldCluster = cfo.getEntry("cluster")
43+
clusterId = raw_input("Please input the Cluster Id:[%s]"%oldCluster)
44+
if clusterId == "":
45+
clusterId = oldCluster
46+
3647
try:
3748
defaultNic = networkConfig.getDefaultNetwork()
3849
except:
@@ -48,7 +59,7 @@ def getUserInputs():
4859
elif network == "":
4960
network = defNic
5061

51-
return [mgtSvr, zoneToken, network]
62+
return [mgtSvr, zoneToken, network, podId, clusterId]
5263

5364
if __name__ == '__main__':
5465
initLoging("/var/log/cloud/setupAgent.log")
@@ -73,6 +84,8 @@ if __name__ == '__main__':
7384
glbEnv.mgtSvr = userInputs[0]
7485
glbEnv.zone = userInputs[1]
7586
glbEnv.defaultNic = userInputs[2]
87+
glbEnv.pod = userInputs[3]
88+
glbEnv.cluster = userInputs[4]
7689
#generate UUID
7790
glbEnv.uuid = configFileOps("/etc/cloud/agent/agent.properties").getEntry("guid")
7891
if glbEnv.uuid == "":

agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ protected String getDefaultScriptsDir() {
294294
protected String _localGateway;
295295
private boolean _can_bridge_firewall;
296296
protected String _localStoragePath;
297+
protected String _localStorageUUID;
297298
private Pair<String, String> _pifs;
298299
private final Map<String, vmStats> _vmStats = new ConcurrentHashMap<String, vmStats>();
299300

@@ -562,6 +563,11 @@ public boolean configure(String name, Map<String, Object> params)
562563
_localStoragePath = "/var/lib/libvirt/images/";
563564
}
564565

566+
_localStorageUUID = (String)params.get("local.storage.uuid");
567+
if (_localStorageUUID == null) {
568+
throw new ConfigurationException("Can't find local.storage.uuid");
569+
}
570+
565571
value = (String)params.get("scripts.timeout");
566572
_timeout = NumbersUtil.parseInt(value, 30*60) * 1000;
567573

@@ -2509,7 +2515,7 @@ private Map<String, String> getVersionStrings() {
25092515
StartupStorageCommand sscmd = null;
25102516
try {
25112517
Connect conn = LibvirtConnection.getConnection();
2512-
com.cloud.agent.api.StoragePoolInfo pi = _storageResource.initializeLocalStorage(conn, _localStoragePath, cmd.getPrivateIpAddress());
2518+
com.cloud.agent.api.StoragePoolInfo pi = _storageResource.initializeLocalStorage(conn, _localStoragePath, cmd.getPrivateIpAddress(), _localStorageUUID);
25132519
sscmd = new StartupStorageCommand();
25142520
sscmd.setPoolInfo(pi);
25152521
sscmd.setGuid(pi.getUuid());

agent/src/com/cloud/agent/resource/computing/LibvirtStorageResource.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,8 @@ public StorageVol getVolumeFromURI(Connect conn, String volPath) throws LibvirtE
416416
}
417417
}
418418
}
419-
public com.cloud.agent.api.StoragePoolInfo initializeLocalStorage(Connect conn, String localStoragePath, String hostIp) {
419+
420+
public com.cloud.agent.api.StoragePoolInfo initializeLocalStorage(Connect conn, String localStoragePath, String hostIp, String uuid) {
420421
if (!(_storageLayer.exists(localStoragePath) && _storageLayer.isDirectory(localStoragePath))) {
421422
return null;
422423
}
@@ -425,8 +426,6 @@ public com.cloud.agent.api.StoragePoolInfo initializeLocalStorage(Connect conn,
425426
if (!(path.canWrite() && path.canRead() && path.canExecute())) {
426427
return null;
427428
}
428-
String lh = hostIp + localStoragePath;
429-
String uuid = UUID.nameUUIDFromBytes(lh.getBytes()).toString();
430429
StoragePool pool = null;
431430
try {
432431
pool = conn.storagePoolLookupByUUIDString(uuid);

python/lib/cloudutils/serviceConfig.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ def config(self):
254254
self.syscfg.svo.disableService("NetworkManager")
255255

256256

257-
if not bash("service network restart").success():
257+
if not bash("service network restart").isSuccess():
258258
raise CloudInternalException("Can't restart network")
259259

260260
self.syscfg.env.nics.append(self.brName)
@@ -537,6 +537,8 @@ def configMyCloud(self):
537537
cfo.addEntry("private.network.device", self.syscfg.env.nics[0])
538538
cfo.addEntry("public.network.device", self.syscfg.env.nics[1])
539539
cfo.addEntry("guest.network.device", self.syscfg.env.nics[2])
540+
if cfo.getEntry("local.storage.uuid") == "":
541+
cfo.addEntry("local.storage.uuid", str(bash("uuidgen").getStdout()))
540542
cfo.addEntry("guid", str(self.syscfg.env.uuid))
541543
cfo.addEntry("mount.path", "/mnt")
542544
cfo.addEntry("resource", "com.cloud.storage.resource.LocalSecondaryStorageResource|com.cloud.agent.resource.computing.CloudZonesComputingResource")
@@ -560,6 +562,8 @@ def configAgent(self):
560562
cfo.addEntry("public.network.device", self.syscfg.env.nics[1])
561563
cfo.addEntry("guest.network.device", self.syscfg.env.nics[2])
562564
cfo.addEntry("guid", str(self.syscfg.env.uuid))
565+
if cfo.getEntry("local.storage.uuid") == "":
566+
cfo.addEntry("local.storage.uuid", str(bash("uuidgen").getStdout()))
563567
cfo.addEntry("resource", "com.cloud.agent.resource.computing.LibvirtComputingResource")
564568
cfo.save()
565569

0 commit comments

Comments
 (0)