Package org.xbib.elasticsearch.action.skywalker.support

Source Code of org.xbib.elasticsearch.action.skywalker.support.MetaDataToXContent

package org.xbib.elasticsearch.action.skywalker.support;

import org.elasticsearch.cluster.metadata.AliasMetaData;
import org.elasticsearch.cluster.metadata.IndexMetaData;
import org.elasticsearch.cluster.metadata.IndexTemplateMetaData;
import org.elasticsearch.cluster.metadata.MappingMetaData;
import org.elasticsearch.cluster.metadata.MetaData;
import org.elasticsearch.common.collect.ImmutableOpenMap;
import org.elasticsearch.common.hppc.cursors.ObjectCursor;
import org.elasticsearch.common.xcontent.ToXContent;
import org.elasticsearch.common.xcontent.XContentBuilder;

import java.io.IOException;
import java.util.Map;

/**
* Metadata to XContent
*/
public class MetaDataToXContent implements ToXContent {

    MetaData metadata;

    public MetaDataToXContent metadata(MetaData metadata) {
        this.metadata = metadata;
        return this;
    }

    @Override
    public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
        builder.startObject();
        builder.field("version", metadata.version());
        builder.field("numberOfShards", metadata.numberOfShards());
        builder.startArray("concreteIndices");
        for (String index : metadata.concreteAllIndices()) {
            builder.value(index);
        }
        builder.endArray();
        ImmutableOpenMap<String, ImmutableOpenMap<String, AliasMetaData>> aliases = metadata.getAliases();
        builder.startArray("aliases");
        for (ObjectCursor<String> alias : aliases.keys()) {
            builder.startObject(alias.value);
            builder.startArray("aliasMetadata");
            for (ObjectCursor<String> s : aliases.get(alias.value).keys()) {
                builder.startObject();
                AliasMetaData amd = aliases.get(alias.value).get(s.value);
                builder.field("alias", amd.getAlias());
                builder.field("filter", amd.getFilter().string());
                builder.field("indexRouting", amd.getIndexRouting());
                builder.field("searchRouting", amd.getSearchRouting());
                builder.endObject();
            }
            builder.endArray();
            builder.endObject();
        }
        builder.endArray();
        builder.startArray("indexes");
        ImmutableOpenMap<String,IndexMetaData> indices = metadata.getIndices();
        for (ObjectCursor<String> s : indices.keys()) {
            IndexMetaData imd = indices.get(s.value);
            builder.startObject();
            builder.field("index", imd.getIndex());
            builder.field("state", imd.getState().name());
            builder.field("numberOfReplicas", imd.getNumberOfReplicas());
            builder.field("numberOfShards", imd.getNumberOfShards());
            builder.field("totalNumberOfShards", imd.getTotalNumberOfShards());
            builder.field("version", imd.getVersion());
            builder.field("settings", imd.getSettings().getAsMap());
            ImmutableOpenMap<String, MappingMetaData> m = imd.getMappings();
            // skip mappings here
            builder.endObject();
        }
        builder.endArray();
        builder.startArray("templates");
        ImmutableOpenMap<String,IndexTemplateMetaData> templates = metadata.getTemplates();
        for (ObjectCursor<String> s : templates.keys()) {
            IndexTemplateMetaData itmd = templates.get(s.value);
            itmd.getName();
            itmd.getOrder();
            itmd.getTemplate();
            itmd.getSettings();
            itmd.getMappings();
        }
        builder.endArray();
        builder.endObject();
        return builder;
    }
}
TOP

Related Classes of org.xbib.elasticsearch.action.skywalker.support.MetaDataToXContent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.