49
49
import edu.ucsb.eucalyptus.cloud.ws.WalrusControl;
50
50
import edu.ucsb.eucalyptus.ic.StorageController;
51
51
import com.eucalyptus.util.StorageProperties;
52
import com.eucalyptus.config.Configuration;
53
import com.eucalyptus.config.ClusterConfiguration;
54
import com.eucalyptus.config.WalrusConfiguration;
55
import com.eucalyptus.config.StorageControllerConfiguration;
57
import com.eucalyptus.util.DatabaseUtil;
58
import edu.ucsb.eucalyptus.cloud.entities.StorageInfo;
59
import edu.ucsb.eucalyptus.cloud.entities.WalrusInfo;
60
import edu.ucsb.eucalyptus.cloud.ws.WalrusControl;
61
import java.security.cert.X509Certificate;
62
import com.eucalyptus.auth.X509Cert;
63
import com.eucalyptus.auth.ClusterCredentials;
53
//baseDir = "/disk1/import"
54
//targetDir = "/disk1/import"
55
65
baseDir = "${System.getenv('EUCALYPTUS')}/var/lib/eucalyptus/db";
56
66
targetDir = baseDir;
57
67
targetDbPrefix= "eucalyptus"
83
93
System.setProperty("euca.db.password", "${System.getenv('EUCALYPTUS_DB')}");
84
94
System.setProperty("euca.log.level", 'INFO');
96
def vtunPassFile = new File("${System.getenv('EUCALYPTUS')}/var/lib/eucalyptus/keys/vtunpass");
97
vtunPassFile.write("${System.getenv('EUCALYPTUS_DB')}");
86
99
["${baseDir}/eucalyptus_general.script","${baseDir}/eucalyptus_images.script","${baseDir}/eucalyptus_auth.script","${baseDir}/eucalyptus_config.script","${baseDir}/eucalyptus_walrus.script","${baseDir}/eucalyptus_storage.script","${baseDir}/eucalyptus_dns.script"].each{
87
100
new File(it).write("CREATE SCHEMA PUBLIC AUTHORIZATION DBA\n" +
88
101
"CREATE USER SA PASSWORD \"" + System.getProperty( "euca.db.password" ) + "\"\n" +
312
308
objectInfo.setGlobalWrite(obj.GLOBAL_WRITE);
313
309
objectInfo.setGlobalReadACP(obj.GLOBAL_READ_ACP);
314
310
objectInfo.setGlobalWriteACP(obj.GLOBAL_WRITE_ACP);
311
objectInfo.setSize(obj.SIZE);
315
312
objectInfo.setEtag(obj.ETAG);
316
313
objectInfo.setLastModified(new Date());
317
314
objectInfo.setStorageClass(obj.STORAGE_CLASS);
315
objectInfo.setContentType("");
316
objectInfo.setContentDisposition("");
318
317
db.rows("SELECT g.* FROM object_has_grants has_thing LEFT OUTER JOIN grants g on g.grant_id=has_thing.grant_id WHERE has_thing.object_id=${ obj.OBJECT_ID }").each{ grant ->
319
318
println "--> grant: ${obj.OBJECT_NAME}/${grant.USER_ID}"
320
319
GrantInfo grantInfo = new GrantInfo();
449
def clusterName = "testCluster";
448
451
db.rows('SELECT * FROM CLUSTERS').each{
449
println "CLUSTER: name=${it.CLUSTER_NAME} host=${it.CLUSTER_HOST} port=${it.CLUSTER_PORT}"
452
println "Adding CLUSTER: name=${it.CLUSTER_NAME} host=${it.CLUSTER_HOST} port=${it.CLUSTER_PORT}"
453
clusterName = it.CLUSTER_NAME;
454
EntityWrapper<ClusterConfiguration> dbClusterConfig = Configuration.getEntityWrapper();
456
ClusterConfiguration clusterConfig = new ClusterConfiguration(it.CLUSTER_NAME, it.CLUSTER_HOST, it.CLUSTER_PORT);
457
dbClusterConfig.add(clusterConfig);
458
dbClusterConfig.commit();
459
} catch (Throwable t) {
461
dbClusterConfig.rollback();
465
X509Cert certInfo = new X509Cert("cc-" + clusterName);
466
certInfo.setPemCertificate(System.getenv('EUCALYPTUS_CLUSTER_CERT'))
467
X509Cert ncCertInfo = new X509Cert("nc-" + clusterName);
468
ncCertInfo.setPemCertificate(System.getenv('EUCALYPTUS_NODE_CERT'))
469
ClusterCredentials clusterCreds = new ClusterCredentials(clusterName);
470
clusterCreds.setClusterCertificate(certInfo);
471
clusterCreds.setNodeCertificate(ncCertInfo);
472
EntityWrapper<X509Cert> dbCert = Credentials.getEntityWrapper();
473
dbCert.add(certInfo);
474
dbCert.add(ncCertInfo);
475
EntityWrapper<ClusterCredentials> dbClusterCreds = dbCert.recast(ClusterCredentials.class);
476
dbClusterCreds.add(clusterCreds);
479
dbVolumes.rows("SELECT * FROM SNAPSHOT").each{
480
println "Adding snapshot: ${it.DISPLAYNAME}"
482
EntityWrapper<Snapshot> dbSnap = SnapshotManager.getEntityWrapper( );
484
Snapshot s = new Snapshot(it.USERNAME,it.DISPLAYNAME);
485
s.setBirthday(it.BIRTHDAY);
486
s.setState(State.valueOf(it.STATE));
487
s.setParentVolume(it.PARENTVOLUME);
488
s.setCluster(clusterName);
489
s.setMappedState(StorageProperties.Status.pending.toString());
492
} catch (Throwable t) {
499
def oldEucaConf = new File("${System.getenv('EUCALYPTUS')}/etc/eucalyptus/eucalyptus.conf-1.5");
500
oldEucaConf.text.find(/VNET_INTERFACE="(.*)"/) { fullline, iface ->
501
return iface.toString()
505
db.rows('SELECT * FROM SYSTEM_INFO').each{
506
URI uri = new URI(it.SYSTEM_INFO_STORAGE_URL)
507
println "Adding Walrus: name=walrus host=${uri.getHost()} port=${uri.getPort()}"
508
EntityWrapper<WalrusConfiguration> dbWalrusConfig = Configuration.getEntityWrapper();
509
EntityWrapper<WalrusInfo> dbWalrus = WalrusControl.getEntityWrapper();
511
WalrusConfiguration walrusConfig = new WalrusConfiguration("walrus", uri.getHost(), uri.getPort());
512
dbWalrusConfig.add(walrusConfig);
513
dbWalrusConfig.commit();
515
WalrusInfo walrusInfo = dbWalrus.getUnique(new WalrusInfo());
516
walrusInfo.setStorageDir(it.SYSTEM_STORAGE_DIR)
517
walrusInfo.setStorageMaxBucketsPerUser(it.SYSTEM_STORAGE_MAX_BUCKETS_PER_USER)
518
walrusInfo.setStorageMaxBucketSizeInMB((int)(it.SYSTEM_STORAGE_MAX_BUCKET_SIZE_MB / WalrusProperties.M))
519
walrusInfo.setStorageMaxCacheSizeInMB((int)(it.SYSTEM_STORAGE_CACHE_SIZE_MB / WalrusProperties.M))
520
walrusInfo.setStorageMaxTotalSnapshotSizeInGb(it.SYSTEM_STORAGE_SNAPSHOT_SIZE_GB)
521
} catch(Throwable t) {
522
WalrusInfo walrusInfo = new WalrusInfo(WalrusProperties.NAME,
523
it.SYSTEM_STORAGE_DIR,
524
it.SYSTEM_STORAGE_MAX_BUCKETS_PER_USER,
525
(int)(it.SYSTEM_STORAGE_MAX_BUCKET_SIZE_MB / WalrusProperties.M),
526
(int)(it.SYSTEM_STORAGE_CACHE_SIZE_MB / WalrusProperties.M),
527
it.SYSTEM_STORAGE_SNAPSHOT_SIZE_GB)
528
dbWalrus.add(walrusInfo)
531
} catch(Throwable t) {
533
dbWalrusConfig.rollback();
536
println "Adding SC: name=StorageController-local host=${uri.getHost()} port=${uri.getPort()}"
537
EntityWrapper<StorageControllerConfiguration> dbSCConfig = Configuration.getEntityWrapper();
538
EntityWrapper<StorageInfo> dbSC = StorageController.getEntityWrapper();
540
StorageControllerConfiguration storageConfig = new StorageControllerConfiguration(clusterName, uri.getHost(), uri.getPort());
541
dbSCConfig.add(storageConfig);
543
StorageInfo storageInfo = new StorageInfo(StorageProperties.SC_LOCAL_NAME,
544
it.SYSTEM_STORAGE_MAX_VOLUME_SIZE_GB,
546
it.SYSTEM_STORAGE_VOLUME_SIZE_GB,
547
it.SYSTEM_STORAGE_VOLUMES_DIR,
549
dbSC.add(storageInfo);
551
} catch(Throwable t) {
553
dbSCConfig.rollback();
559
DatabaseUtil.closeAllEMFs();
560
//the db will not sync to disk even after a close in some cases. Wait a bit.
b'\\ No newline at end of file'