in clients/cli/src/main/java/org/apache/gravitino/cli/commands/RemoveAllTags.java [65:158]
public void handle() {
if (!AreYouSure.really(force)) {
return;
}
String entity = "unknown";
String[] tags = new String[0];
try {
GravitinoClient client = buildClient(metalake);
if (name.getLevel() == 3) {
String catalog = name.getCatalogName();
Catalog catalogObject = client.loadCatalog(catalog);
switch (catalogObject.type()) {
case RELATIONAL:
entity = "table";
TableCatalog tableCatalog = catalogObject.asTableCatalog();
Table gTable = tableCatalog.loadTable(FullNameUtil.toTable(name));
tags = gTable.supportsTags().listTags();
if (tags.length > 0) {
gTable.supportsTags().associateTags(null, tags);
}
break;
case MODEL:
entity = "model";
ModelCatalog modelCatalog = catalogObject.asModelCatalog();
Model gModel = modelCatalog.getModel(FullNameUtil.toModel(name));
tags = gModel.supportsTags().listTags();
if (tags.length > 0) {
gModel.supportsTags().associateTags(null, tags);
}
break;
case FILESET:
entity = "fileset";
FilesetCatalog filesetCatalog = catalogObject.asFilesetCatalog();
Fileset gFileset = filesetCatalog.loadFileset(FullNameUtil.toFileset(name));
tags = gFileset.supportsTags().listTags();
if (tags.length > 0) {
gFileset.supportsTags().associateTags(null, tags);
}
break;
case MESSAGING:
entity = "topic";
TopicCatalog topicCatalog = catalogObject.asTopicCatalog();
Topic gTopic = topicCatalog.loadTopic(FullNameUtil.toTopic(name));
tags = gTopic.supportsTags().listTags();
if (tags.length > 0) {
gTopic.supportsTags().associateTags(null, tags);
}
break;
default:
break;
}
} else if (name.hasSchemaName()) {
String catalog = name.getCatalogName();
String schema = name.getSchemaName();
Schema gSchema = client.loadCatalog(catalog).asSchemas().loadSchema(schema);
tags = gSchema.supportsTags().listTags();
if (tags.length > 0) {
gSchema.supportsTags().associateTags(null, tags);
}
entity = schema;
} else if (name.hasCatalogName()) {
String catalog = name.getCatalogName();
Catalog gCatalog = client.loadCatalog(catalog);
tags = gCatalog.supportsTags().listTags();
if (tags.length > 0) {
gCatalog.supportsTags().associateTags(null, tags);
}
entity = catalog;
}
} catch (NoSuchMetalakeException err) {
exitWithError(ErrorMessages.UNKNOWN_METALAKE);
} catch (NoSuchCatalogException err) {
exitWithError(ErrorMessages.UNKNOWN_CATALOG);
} catch (NoSuchSchemaException err) {
exitWithError(ErrorMessages.UNKNOWN_SCHEMA);
} catch (NoSuchTableException err) {
exitWithError(ErrorMessages.UNKNOWN_TABLE);
} catch (Exception exp) {
exitWithError(exp.getMessage());
}
if (tags.length > 0) {
printInformation(
entity + " removed tags " + String.join(",", tags) + " now tagged with nothing");
} else {
printInformation(entity + " has no tags");
}
}