/**
  * Determines if initial setup has been completed.
  *
  * @return true if initial setup is complete.
  */
 public static boolean isInitialSetupComplete() {
   if (isComplete) {
     return true;
   }
   isComplete = SetupUtils.isSetupComplete();
   return isComplete;
 }
 /** Skips initial setup, advancing to the license screen. This is only available in DEV mode. */
 public static void skip() {
   if (!Play.mode.isDev()) {
     forbidden();
   }
   checkCompleteAndLicensed();
   SetupUtils.markSetupComplete();
   license();
 }
Example #3
0
 /**
  * starts "number" additional OSDs.
  *
  * @param number
  * @throws Exception
  */
 public void startAdditionalOSDs(int number) throws Exception {
   OSDConfig[] osdConfigs = SetupUtils.createMultipleOSDConfigs(number, osds.size());
   for (OSDConfig config : osdConfigs) {
     TestOSD osd = new TestOSD(new OSDRequestDispatcher(config));
     osd.start();
     osds.put(config.getUUID().toString(), osd);
   }
 }
  private static Map<String, String> getUpdatedProperties(SetupForm setup) {
    Map<String, String> properties = Maps.newHashMap();
    // Network
    properties.put(ConfigProperty.NAMESERVERS, setup.nameservers);
    properties.put(ConfigProperty.NTPSERVERS, setup.ntpservers);

    // Passwords
    properties.put(ConfigProperty.ROOT_PASSWORD, setup.rootPassword.hashedValue());
    // Use the same password for proxyuser, svcuser, sysmonitor
    properties.put(
        ConfigProperty.PROXYUSER_PASSWORD,
        PasswordUtil.decryptedValue(setup.systemPasswords.value));
    properties.put(ConfigProperty.SVCUSER_PASSWORD, setup.systemPasswords.hashedValue());
    properties.put(ConfigProperty.SYSMONITOR_PASSWORD, setup.systemPasswords.hashedValue());

    // SMTP settings
    if (StringUtils.isNotBlank(setup.smtpServer)) {
      properties.put(ConfigProperty.SMTP_SERVER, setup.smtpServer);
      properties.put(ConfigProperty.SMTP_ENABLE_TLS, setup.smtpEnableTls);
      properties.put(ConfigProperty.SMTP_FROM_ADDRESS, setup.smtpFrom);
      properties.put(ConfigProperty.SMTP_AUTH_TYPE, setup.smtpAuthType);

      if (!StringUtils.equalsIgnoreCase(setup.smtpAuthType, "None")) {
        properties.put(ConfigProperty.SMTP_USERNAME, setup.smtpUsername);
        properties.put(
            ConfigProperty.SMTP_PASSWORD, PasswordUtil.decryptedValue(setup.smtpPassword));
      }
    }

    if (!SetupUtils.isOssBuild()) {
      // ConnectEMC settings
      properties.put(ConfigProperty.CONNECTEMC_TRANSPORT, setup.connectEmcTransport);
      if (!StringUtils.equalsIgnoreCase(setup.connectEmcTransport, "None")) {
        properties.put(ConfigProperty.CONNECTEMC_NOTIFY_EMAIL, setup.connectEmcNotifyEmail);
      }
    }
    return properties;
  }
    public void validate() {
      if (!PropertiesConfigurationValidator.validateIpList(nameservers)) {
        Validation.addError("setup.nameservers", "configProperties.error.iplist");
      }
      if (!PropertiesConfigurationValidator.validateIpList(ntpservers)) {
        Validation.addError("setup.ntpservers", "configProperties.error.iplist");
      }

      validatePasswords();

      if (StringUtils.isNotBlank(smtpServer)
          || StringUtils.equalsIgnoreCase(connectEmcTransport, "SMTP")) {
        validateSmtp();
      }

      if (!SetupUtils.isOssBuild()) {
        Validation.required("setup.connectEmcTransport", connectEmcTransport);

        if (!StringUtils.equalsIgnoreCase(connectEmcTransport, "None")) {
          Validation.required("setup.connectEmcNotifyEmail", connectEmcNotifyEmail);
          Validation.email("setup.connectEmcNotifyEmail", connectEmcNotifyEmail);
        }
      }
    }
 /**
  * Determines if the product is licensed.
  *
  * @return true if the product is licensed.
  */
 public static boolean isLicensed() {
   if (SetupUtils.isOssBuild()) {
     return true;
   }
   return LicenseUtils.isLicensed(false);
 }
 /**
  * Completes initial setup with the given configuration properties.
  *
  * @param properties the properties to update.
  */
 private static void completeInitialSetup(Map<String, String> properties) {
   SetupUtils.markSetupComplete();
   ConfigPropertyUtils.saveProperties(BourneUtil.getSysClient(), properties);
   complete();
 }
Example #8
0
 public InetSocketAddress getDIRAddress() throws IOException {
   return new InetSocketAddress("localhost", SetupUtils.createDIRConfig().getPort());
 }
Example #9
0
  public void start() throws Exception {
    try {
      // ensure that TEST_DIR is empty
      File testDir = new File(SetupUtils.TEST_DIR);
      FSUtils.delTree(testDir);
      testDir.mkdirs();

      rpcClient = SetupUtils.createRPCClient(10000);
      getRpcClient().start();
      getRpcClient().waitForStartup();

      dirClient = SetupUtils.createDIRClient(getRpcClient());

      if (enabledServs.contains(Services.DIR_SERVICE)) {
        dirService =
            new DIRRequestDispatcher(SetupUtils.createDIRConfig(), SetupUtils.createDIRdbsConfig());
        dirService.startup();
        dirService.waitForStartup();
        Logging.logMessage(Logging.LEVEL_DEBUG, this, "DIR running");
      }

      if (enabledServs.contains(Services.TIME_SYNC) || enabledServs.contains(Services.MOCKUP_OSD)) {
        tsInstance = TimeSync.initializeLocal(50);
        tsInstance.waitForStartup();
      }

      if (enabledServs.contains(Services.UUID_RESOLVER)) {
        DIRClient dc =
            new DIRClient(dirClient, new InetSocketAddress[] {getDIRAddress()}, 10, 1000 * 5);
        UUIDResolver.start(dc, 1000, 10 * 10 * 1000);
        SetupUtils.localResolver();
      }

      if (enabledServs.contains(Services.MOCKUP_OSD)) {
        Map<String, String> dmap = new HashMap();
        dmap.put("free", "1000000000");
        dmap.put("total", "1000000000");
        dmap.put("load", "0");
        dmap.put("totalRAM", "1000000000");
        dmap.put("usedRAM", "0");
        dmap.put("proto_version", "" + OSDServiceConstants.INTERFACE_ID);
        Service reg =
            Service.newBuilder()
                .setType(ServiceType.SERVICE_TYPE_OSD)
                .setName("mockUpOSD")
                .setUuid("mockUpOSD")
                .setVersion(0)
                .setLastUpdatedS(0)
                .setData(ServiceDataMap.newBuilder().addAllData(KeyValuePairs.fromMap(dmap)))
                .build();
        RPCResponse<serviceRegisterResponse> response =
            dirClient.xtreemfs_service_register(
                null, RPCAuthentication.authNone, RPCAuthentication.userService, reg);
        response.get();
        response.freeBuffers();

        UUIDResolver.addLocalMapping("mockUpOSD", 11111, Schemes.SCHEME_PBRPC);
      }

      if (enabledServs.contains(Services.MOCKUP_OSD2)) {
        Map<String, String> dmap = new HashMap();
        dmap.put("free", "1000000000");
        dmap.put("total", "1000000000");
        dmap.put("load", "0");
        dmap.put("totalRAM", "1000000000");
        dmap.put("usedRAM", "0");
        dmap.put("proto_version", "" + OSDServiceConstants.INTERFACE_ID);
        Service reg =
            Service.newBuilder()
                .setType(ServiceType.SERVICE_TYPE_OSD)
                .setName("mockUpOSD2")
                .setUuid("mockUpOSD2")
                .setVersion(0)
                .setLastUpdatedS(0)
                .setData(ServiceDataMap.newBuilder().addAllData(KeyValuePairs.fromMap(dmap)))
                .build();
        RPCResponse<serviceRegisterResponse> response =
            dirClient.xtreemfs_service_register(
                null, RPCAuthentication.authNone, RPCAuthentication.userService, reg);
        response.get();
        response.freeBuffers();

        UUIDResolver.addLocalMapping("mockUpOSD2", 11111, Schemes.SCHEME_PBRPC);
      }

      if (enabledServs.contains(Services.MOCKUP_OSD3)) {
        Map<String, String> dmap = new HashMap();
        dmap.put("free", "1000000000");
        dmap.put("total", "1000000000");
        dmap.put("load", "0");
        dmap.put("totalRAM", "1000000000");
        dmap.put("usedRAM", "0");
        dmap.put("proto_version", "" + OSDServiceConstants.INTERFACE_ID);
        Service reg =
            Service.newBuilder()
                .setType(ServiceType.SERVICE_TYPE_OSD)
                .setName("mockUpOSD3")
                .setUuid("mockUpOSD3")
                .setVersion(0)
                .setLastUpdatedS(0)
                .setData(ServiceDataMap.newBuilder().addAllData(KeyValuePairs.fromMap(dmap)))
                .build();
        RPCResponse<serviceRegisterResponse> response =
            dirClient.xtreemfs_service_register(
                null, RPCAuthentication.authNone, RPCAuthentication.userService, reg);
        response.get();
        response.freeBuffers();

        UUIDResolver.addLocalMapping("mockUpOSD3", 11111, Schemes.SCHEME_PBRPC);
      }

      if (enabledServs.contains(Services.OSD)) {
        int osdCount = Collections.frequency(enabledServs, Services.OSD);
        osds = new HashMap<String, TestOSD>(osdCount);
        osdConfigs = SetupUtils.createMultipleOSDConfigs(osdCount);
        for (OSDConfig config : osdConfigs) {
          TestOSD osd = new TestOSD(new OSDRequestDispatcher(config));
          osd.start();
          osds.put(config.getUUID().toString(), osd);
        }

        // Save address of first OSD for getOSDAdress method.
        firstOSDAddress = osdConfigs[0].getUUID().getAddress();

        Logging.logMessage(Logging.LEVEL_DEBUG, this, "OSDs 1-" + osdCount + " running");
      }

      if (enabledServs.contains(Services.MRC)) {
        mrc =
            new MRCRequestDispatcher(
                SetupUtils.createMRC1Config(), SetupUtils.createMRC1dbsConfig());
        mrc.startup();
        Logging.logMessage(Logging.LEVEL_DEBUG, this, "MRC running");
      }

      if (enabledServs.contains(Services.MRC_CLIENT)) {
        mrcClient = new MRCServiceClient(rpcClient, null);
      }

      if (enabledServs.contains(Services.OSD_CLIENT)) {
        osdClient = new OSDServiceClient(rpcClient, null);
      }
    } catch (Exception ex) {
      ex.printStackTrace();
      // Shutdown servers which were already started or they will block ports.
      shutdown();

      // After shutdown, log remaining threads in case of blocked ports to debug the issue.
      if (ex instanceof BindException && ex.getMessage().contains("Address already in use")) {
        Logging.logMessage(
            Logging.LEVEL_ERROR,
            this,
            "TestEnvironment could not be started because: "
                + ex.getMessage()
                + " Please examine the following dump of threads to check if a previous test method did not correctly stop all servers.");
        StringBuilder threadStates = new StringBuilder();
        CrashReporter.reportThreadStates(threadStates);
        Logging.logMessage(Logging.LEVEL_ERROR, this, "Thread States: %s", threadStates.toString());
      }

      throw ex;
    }
  }