void PlatformProductInfo::initMode()

in fboss/lib/platforms/PlatformProductInfo.cpp [86:167]


void PlatformProductInfo::initMode() {
  if (FLAGS_mode.empty()) {
    auto modelName = getProductName();
    if (auto platformMode = getDevPlatformMode()) {
      mode_ = *platformMode;
    } else if (
        modelName.find("Wedge100") == 0 || modelName.find("WEDGE100") == 0) {
      // Wedge100 comes from fruid.json, WEDGE100 comes from fbwhoami
      mode_ = PlatformMode::WEDGE100;
    } else if (
        modelName.find("Wedge400c") == 0 || modelName.find("WEDGE400C") == 0) {
      mode_ = PlatformMode::WEDGE400C;
    } else if (
        modelName.find("Wedge400") == 0 || modelName.find("WEDGE400") == 0) {
      mode_ = PlatformMode::WEDGE400;
    } else if (
        modelName.find("Darwin") == 0 || modelName.find("DARWIN") == 0 ||
        modelName.find("DCS-7060") == 0) {
      mode_ = PlatformMode::DARWIN;
    } else if (modelName.find("Wedge") == 0 || modelName.find("WEDGE") == 0) {
      mode_ = PlatformMode::WEDGE;
    } else if (modelName.find("SCM-LC") == 0 || modelName.find("LC") == 0) {
      // TODO remove LC once fruid.json is fixed on Galaxy Linecards
      mode_ = PlatformMode::GALAXY_LC;
    } else if (
        modelName.find("SCM-FC") == 0 || modelName.find("SCM-FAB") == 0 ||
        modelName.find("FAB") == 0) {
      // TODO remove FAB once fruid.json is fixed on Galaxy fabric cards
      mode_ = PlatformMode::GALAXY_FC;
    } else if (
        modelName.find("MINIPACK") == 0 || modelName.find("MINIPHOTON") == 0) {
      mode_ = PlatformMode::MINIPACK;
    } else if (modelName.find("DCS-7368") == 0 || modelName.find("YAMP") == 0) {
      mode_ = PlatformMode::YAMP;
    } else if (
        modelName.find("DCS-7388") == 0 || modelName.find("ELBERT") == 0) {
      mode_ = PlatformMode::ELBERT;
    } else if (modelName.find("fake_wedge40") == 0) {
      mode_ = PlatformMode::FAKE_WEDGE40;
    } else if (modelName.find("fake_wedge") == 0) {
      mode_ = PlatformMode::FAKE_WEDGE;
    } else if (modelName.find("CLOUDRIPPER") == 0) {
      mode_ = PlatformMode::CLOUDRIPPER;
    } else if (modelName.find("Lassen") == 0 || modelName.find("LASSEN") == 0) {
      mode_ = PlatformMode::LASSEN;
    } else if (modelName.find("Sandia") == 0 || modelName.find("SANDIA") == 0) {
      mode_ = PlatformMode::SANDIA;
    } else {
      throw std::runtime_error("invalid model name " + modelName);
    }
  } else {
    if (FLAGS_mode == "wedge") {
      mode_ = PlatformMode::WEDGE;
    } else if (FLAGS_mode == "wedge100") {
      mode_ = PlatformMode::WEDGE100;
    } else if (FLAGS_mode == "galaxy_lc") {
      mode_ = PlatformMode::GALAXY_LC;
    } else if (FLAGS_mode == "galaxy_fc") {
      mode_ = PlatformMode::GALAXY_FC;
    } else if (FLAGS_mode == "minipack") {
      mode_ = PlatformMode::MINIPACK;
    } else if (FLAGS_mode == "yamp") {
      mode_ = PlatformMode::YAMP;
    } else if (FLAGS_mode == "fake_wedge40") {
      mode_ = PlatformMode::FAKE_WEDGE40;
    } else if (FLAGS_mode == "wedge400") {
      mode_ = PlatformMode::WEDGE400;
    } else if (FLAGS_mode == "fuji") {
      mode_ = PlatformMode::FUJI;
    } else if (FLAGS_mode == "elbert") {
      mode_ = PlatformMode::ELBERT;
    } else if (FLAGS_mode == "darwin") {
      mode_ = PlatformMode::DARWIN;
    } else if (FLAGS_mode == "lassen") {
      mode_ = PlatformMode::LASSEN;
    } else if (FLAGS_mode == "sandia") {
      mode_ = PlatformMode::SANDIA;
    } else {
      throw std::runtime_error("invalid mode " + FLAGS_mode);
    }
  }
}