/* * Copyright (C) 2014 Intel Corporation * All rights reserved. */ package com.intel.mtwilson.trustagent.setup; import com.intel.dcsg.cpg.configuration.PropertiesConfiguration; import com.intel.dcsg.cpg.extensions.Extensions; import com.intel.mtwilson.MyFilesystem; import com.intel.mtwilson.setup.SetupTask; import com.intel.mtwilson.trustagent.TrustagentConfiguration; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.junit.Test; import java.util.Properties; /** * * @author jbuhacoff */ public class SetupTest { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(SetupTest.class); public static List<SetupTask> getTasks() { ArrayList<SetupTask> list = new ArrayList<>(); list.add(new ConfigureFromEnvironment()); list.add(new CreateKeystorePassword()); list.add(new CreateTlsKeypair()); list.add(new CreateAdminUser()); list.add(new CreateTpmOwnerSecret()); list.add(new CreateAikSecret()); list.add(new TakeOwnership()); list.add(new DownloadMtWilsonTlsCertificate()); list.add(new DownloadMtWilsonPrivacyCACertificate()); list.add(new RequestEndorsementCertificate()); list.add(new RequestAikCertificate()); // TODO: register host with Mt Wilson (TBD - requires Mt Wilson to allow registration and setting trust policy as separate steps, which is not yet implemented) return list; } // copied from mtwilson-trustagent-console:Setup protected File getConfigurationFile() { File file = new File(MyFilesystem.getApplicationFilesystem().getConfigurationPath() + File.separator + "trustagent.properties"); return file; } // copied from mtwilson-setup:SetupManager protected PropertiesConfiguration loadConfiguration() throws IOException { File file = getConfigurationFile(); try (FileInputStream in = new FileInputStream(file)) { Properties properties = new Properties(); properties.load(in); PropertiesConfiguration configuration = new PropertiesConfiguration(properties); return configuration; } } // copied from mtwilson-setup:SetupManager protected void storeConfiguration(PropertiesConfiguration configuration) throws IOException { // write the configuration back to disk File file = getConfigurationFile(); try (FileOutputStream out = new FileOutputStream(file)) { configuration.getProperties().store(out, "saved by mtwilson setup"); } } @Test public void testSetupTasks() throws IOException { PropertiesConfiguration configuration = loadConfiguration(); List<SetupTask> tasks = getTasks(); for (SetupTask task : tasks) { task.setConfiguration(configuration); if (task.isConfigured()) { log.debug("Running task: {}", task.getClass().getName()); task.run(); } else { log.error("Configuration errors: {}", task.getConfigurationFaults()); } } } @Test public void testOneSetupTask() throws IOException { PropertiesConfiguration configuration = loadConfiguration(); SetupTask task = new CreateAdminUser(); task.setConfiguration(configuration); if (task.isConfigured()) { log.debug("Running task: {}", task.getClass().getName()); task.run(); } else { log.error("Configuration errors: {}", task.getConfigurationFaults()); } } }