cout << " zonegroup placement add add a placement target id to a zonegroup\n";
cout << " zonegroup placement modify modify a placement target of a specific zonegroup\n";
cout << " zonegroup placement rm remove a placement target from a zonegroup\n";
+ cout << " zonegroup placement default set a zonegroup's default placement target\n";
cout << " zonegroup-map get show zonegroup-map\n";
cout << " zonegroup-map set set zonegroup-map (requires infile)\n";
cout << " zone create create a new zone\n";
OPT_ZONEGROUP_PLACEMENT_MODIFY,
OPT_ZONEGROUP_PLACEMENT_RM,
OPT_ZONEGROUP_PLACEMENT_LIST,
+ OPT_ZONEGROUP_PLACEMENT_DEFAULT,
OPT_ZONEGROUPMAP_GET,
OPT_ZONEGROUPMAP_SET,
OPT_ZONEGROUPMAP_UPDATE,
return OPT_ZONEGROUP_PLACEMENT_RM;
if (strcmp(cmd, "list") == 0)
return OPT_ZONEGROUP_PLACEMENT_LIST;
+ if (strcmp(cmd, "default") == 0)
+ return OPT_ZONEGROUP_PLACEMENT_DEFAULT;
} else if (strcmp(prev_cmd, "zonegroup") == 0 ||
strcmp(prev_cmd, "region") == 0) {
if (strcmp(cmd, "add") == 0)
OPT_ZONEGROUP_REMOVE,
OPT_ZONEGROUP_PLACEMENT_ADD, OPT_ZONEGROUP_PLACEMENT_RM,
OPT_ZONEGROUP_PLACEMENT_MODIFY, OPT_ZONEGROUP_PLACEMENT_LIST,
+ OPT_ZONEGROUP_PLACEMENT_DEFAULT,
OPT_ZONEGROUPMAP_GET, OPT_ZONEGROUPMAP_SET,
OPT_ZONEGROUPMAP_UPDATE,
OPT_ZONE_CREATE, OPT_ZONE_DELETE,
case OPT_ZONEGROUP_PLACEMENT_ADD:
case OPT_ZONEGROUP_PLACEMENT_MODIFY:
case OPT_ZONEGROUP_PLACEMENT_RM:
+ case OPT_ZONEGROUP_PLACEMENT_DEFAULT:
{
if (placement_id.empty()) {
cerr << "ERROR: --placement-id not specified" << std::endl;
}
} else if (opt_cmd == OPT_ZONEGROUP_PLACEMENT_RM) {
zonegroup.placement_targets.erase(placement_id);
+ } else if (opt_cmd == OPT_ZONEGROUP_PLACEMENT_DEFAULT) {
+ if (!zonegroup.placement_targets.count(placement_id)) {
+ cerr << "failed to find a zonegroup placement target named '"
+ << placement_id << "'" << std::endl;
+ return -ENOENT;
+ }
+ zonegroup.default_placement = placement_id;
}
zonegroup.post_process_params();