Search in sources :

Example 1 with UiExtension

use of org.onosproject.ui.UiExtension in project onos by opennetworkinglab.

the class UiExtensionManager method createCoreExtension.

private UiExtension createCoreExtension() {
    List<LionBundle> lionBundles = generateBundles(LION_BASE, LION_TAGS);
    navLion = lionBundles.stream().filter(f -> f.id().equals("core.fw.Nav")).findFirst().get();
    List<UiView> coreViews = of(mkView(PLATFORM, "app", "nav_apps"), mkView(PLATFORM, "settings", "nav_settings"), mkView(PLATFORM, "cluster", "nav_cluster"), mkView(PLATFORM, "processor", "nav_processors"), mkView(PLATFORM, "partition", "nav_partitions"), mkView(NETWORK, "topo", "nav_topo"), // mkView(NETWORK, "topo2", "nav_topo2"),
    mkView(NETWORK, "device", "nav_devs"), new UiViewHidden("flow"), new UiViewHidden("port"), new UiViewHidden("group"), new UiViewHidden("meter"), new UiViewHidden("pipeconf"), mkView(NETWORK, "link", "nav_links"), mkView(NETWORK, "host", "nav_hosts"), mkView(NETWORK, "intent", "nav_intents"));
    UiMessageHandlerFactory messageHandlerFactory = () -> ImmutableList.of(new UserPreferencesMessageHandler(), new TopologyViewMessageHandler(), new Topo2ViewMessageHandler(), new Topo2TrafficMessageHandler(), new MapSelectorMessageHandler(), new DeviceViewMessageHandler(), new LinkViewMessageHandler(), new HostViewMessageHandler(), new FlowViewMessageHandler(), new PortViewMessageHandler(), new GroupViewMessageHandler(), new MeterViewMessageHandler(), new IntentViewMessageHandler(), new ApplicationViewMessageHandler(), new SettingsViewMessageHandler(), new ClusterViewMessageHandler(), new ProcessorViewMessageHandler(), new PartitionViewMessageHandler(), new PipeconfViewMessageHandler());
    UiTopoOverlayFactory topoOverlayFactory = () -> ImmutableList.of(new TrafficOverlay(), new ProtectedIntentOverlay());
    UiTopo2OverlayFactory topo2OverlayFactory = () -> ImmutableList.of(new Traffic2Overlay());
    UiTopoMapFactory topoMapFactory = () -> ImmutableList.of(new UiTopoMap("australia", "Australia", "*australia", 1.0), new UiTopoMap("americas", "North, Central and South America", "*americas", 0.7), new UiTopoMap("n_america", "North America", "*n_america", 0.9), new UiTopoMap("s_america", "South America", "*s_america", 0.9), new UiTopoMap("usa", "United States", "*continental_us", 1.3), new UiTopoMap("bayareaGEO", "Bay Area, California", "*bayarea", 1.0), new UiTopoMap("europe", "Europe", "*europe", 10.0), new UiTopoMap("italy", "Italy", "*italy", 0.8), new UiTopoMap("uk", "United Kingdom and Ireland", "*uk", 2.0), new UiTopoMap("japan", "Japan", "*japan", 0.8), new UiTopoMap("s_korea", "South Korea", "*s_korea", 0.75), new UiTopoMap("taiwan", "Taiwan", "*taiwan", 0.7), new UiTopoMap("africa", "Africa", "*africa", 0.7), new UiTopoMap("oceania", "Oceania", "*oceania", 0.7), new UiTopoMap("asia", "Asia", "*asia", 0.7));
    return new UiExtension.Builder(CL, coreViews).lionBundles(lionBundles).messageHandlerFactory(messageHandlerFactory).topoOverlayFactory(topoOverlayFactory).topo2OverlayFactory(topo2OverlayFactory).topoMapFactory(topoMapFactory).resourcePath(CORE).ui2().build();
}
Also used : ConsistentMap(org.onosproject.store.service.ConsistentMap) UiTokenService(org.onosproject.ui.UiTokenService) UiTopoMapFactory(org.onosproject.ui.UiTopoMapFactory) LoggerFactory(org.slf4j.LoggerFactory) UiTopo2OverlayFactory(org.onosproject.ui.UiTopo2OverlayFactory) UiView(org.onosproject.ui.UiView) Topo2ViewMessageHandler(org.onosproject.ui.impl.topo.Topo2ViewMessageHandler) LongNode(com.fasterxml.jackson.databind.node.LongNode) UiMessageHandlerFactory(org.onosproject.ui.UiMessageHandlerFactory) SecureRandom(java.security.SecureRandom) NullNode(com.fasterxml.jackson.databind.node.NullNode) LionUtils(org.onosproject.ui.lion.LionUtils) StorageService(org.onosproject.store.service.StorageService) Traffic2Overlay(org.onosproject.ui.impl.topo.Traffic2Overlay) Locale(java.util.Locale) Map(java.util.Map) UI_WRITE(org.onosproject.security.AppPermission.Type.UI_WRITE) JsonNode(com.fasterxml.jackson.databind.JsonNode) BigInteger(java.math.BigInteger) TRAFFIC_REFRESH_MS(org.onosproject.ui.impl.OsgiPropertyConstants.TRAFFIC_REFRESH_MS) KryoNamespaces(org.onosproject.store.serializers.KryoNamespaces) MastershipService(org.onosproject.mastership.MastershipService) Topo2TrafficMessageHandler(org.onosproject.ui.impl.topo.Topo2TrafficMessageHandler) LionBundle(org.onosproject.ui.lion.LionBundle) Collectors.toSet(java.util.stream.Collectors.toSet) ImmutableList.of(com.google.common.collect.ImmutableList.of) UiGlyphFactory(org.onosproject.ui.UiGlyphFactory) Serializer(org.onosproject.store.service.Serializer) NETWORK(org.onosproject.ui.UiView.Category.NETWORK) ImmutableSet(com.google.common.collect.ImmutableSet) UiSessionToken(org.onosproject.ui.UiSessionToken) ImmutableMap(com.google.common.collect.ImmutableMap) Deactivate(org.osgi.service.component.annotations.Deactivate) Set(java.util.Set) TextNode(com.fasterxml.jackson.databind.node.TextNode) Executors(java.util.concurrent.Executors) ArrayNode(com.fasterxml.jackson.databind.node.ArrayNode) TRAFFIC_REFRESH_MS_DEFAULT(org.onosproject.ui.impl.OsgiPropertyConstants.TRAFFIC_REFRESH_MS_DEFAULT) List(java.util.List) UI_READ(org.onosproject.security.AppPermission.Type.UI_READ) JsonNodeFactory(com.fasterxml.jackson.databind.node.JsonNodeFactory) UiSharedTopologyModel(org.onosproject.ui.impl.topo.model.UiSharedTopologyModel) AbstractTopoMonitor(org.onosproject.ui.topo.AbstractTopoMonitor) UiExtension(org.onosproject.ui.UiExtension) Dictionary(java.util.Dictionary) GLYPH_READ(org.onosproject.security.AppPermission.Type.GLYPH_READ) UiTopoMap(org.onosproject.ui.UiTopoMap) UiViewHidden(org.onosproject.ui.UiViewHidden) IntNode(com.fasterxml.jackson.databind.node.IntNode) Tools(org.onlab.util.Tools) UiTopoOverlayFactory(org.onosproject.ui.UiTopoOverlayFactory) UiExtensionService(org.onosproject.ui.UiExtensionService) ComponentContext(org.osgi.service.component.ComponentContext) AppGuard.checkPermission(org.onosproject.security.AppGuard.checkPermission) GLYPH_WRITE(org.onosproject.security.AppPermission.Type.GLYPH_WRITE) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) MapEventListener(org.onosproject.store.service.MapEventListener) LinkedHashMap(java.util.LinkedHashMap) Component(org.osgi.service.component.annotations.Component) Lists(com.google.common.collect.Lists) ImmutableList(com.google.common.collect.ImmutableList) UiTopoHighlighterFactory(org.onosproject.ui.UiTopoHighlighterFactory) UiGlyph(org.onosproject.ui.UiGlyph) Activate(org.osgi.service.component.annotations.Activate) ExecutorService(java.util.concurrent.ExecutorService) ComponentConfigService(org.onosproject.cfg.ComponentConfigService) Logger(org.slf4j.Logger) PLATFORM(org.onosproject.ui.UiView.Category.PLATFORM) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) UiPreferencesService(org.onosproject.ui.UiPreferencesService) BundleStitcher.generateBundles(org.onosproject.ui.impl.lion.BundleStitcher.generateBundles) Maps(com.google.common.collect.Maps) ReferenceCardinality(org.osgi.service.component.annotations.ReferenceCardinality) DoubleNode(com.fasterxml.jackson.databind.node.DoubleNode) MapEvent(org.onosproject.store.service.MapEvent) Modified(org.osgi.service.component.annotations.Modified) BooleanNode(com.fasterxml.jackson.databind.node.BooleanNode) ShortNode(com.fasterxml.jackson.databind.node.ShortNode) Reference(org.osgi.service.component.annotations.Reference) UiMessageHandlerFactory(org.onosproject.ui.UiMessageHandlerFactory) Topo2ViewMessageHandler(org.onosproject.ui.impl.topo.Topo2ViewMessageHandler) UiView(org.onosproject.ui.UiView) UiTopoMap(org.onosproject.ui.UiTopoMap) Traffic2Overlay(org.onosproject.ui.impl.topo.Traffic2Overlay) UiTopoOverlayFactory(org.onosproject.ui.UiTopoOverlayFactory) UiTopo2OverlayFactory(org.onosproject.ui.UiTopo2OverlayFactory) Topo2TrafficMessageHandler(org.onosproject.ui.impl.topo.Topo2TrafficMessageHandler) LionBundle(org.onosproject.ui.lion.LionBundle) UiTopoMapFactory(org.onosproject.ui.UiTopoMapFactory) UiViewHidden(org.onosproject.ui.UiViewHidden)

Example 2 with UiExtension

use of org.onosproject.ui.UiExtension in project onos by opennetworkinglab.

the class NavResource method getNavigation.

@GET
@Path("uiextensions")
@Produces(MediaType.APPLICATION_JSON)
public Response getNavigation() throws JsonProcessingException {
    UiExtensionService service = get(UiExtensionService.class);
    UiViewSerializer serializer = new UiViewSerializer(UiView.class);
    ObjectMapper mapper = new ObjectMapper();
    SimpleModule module = new SimpleModule("UiViewSerializer");
    module.addSerializer(serializer);
    mapper.registerModule(module);
    StringBuilder sb = new StringBuilder("[");
    boolean first = true;
    for (UiExtension uiExt : service.getExtensions()) {
        for (UiView view : uiExt.views()) {
            if (first) {
                first = false;
            } else {
                sb.append(",");
            }
            sb.append(mapper.writeValueAsString(view));
        }
    }
    sb.append("]");
    return ok(sb.toString()).build();
}
Also used : UiView(org.onosproject.ui.UiView) UiExtension(org.onosproject.ui.UiExtension) UiExtensionService(org.onosproject.ui.UiExtensionService) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) SimpleModule(com.fasterxml.jackson.databind.module.SimpleModule) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET)

Example 3 with UiExtension

use of org.onosproject.ui.UiExtension in project onos by opennetworkinglab.

the class MainNavResource method includeNavItems.

// Produces an input stream of nav item injections from all extensions.
private InputStream includeNavItems(UiExtensionService service) {
    List<UiExtension> extensions = service.getExtensions();
    LionBundle navLion = service.getNavLionBundle();
    StringBuilder sb = new StringBuilder("\n");
    for (UiView.Category cat : UiView.Category.values()) {
        if (cat == UiView.Category.HIDDEN) {
            continue;
        }
        List<UiView> catViews = getViewsForCat(extensions, cat);
        if (!catViews.isEmpty()) {
            addCatHeader(sb, cat, navLion);
            addCatItems(sb, catViews);
        }
    }
    return new ByteArrayInputStream(sb.toString().getBytes());
}
Also used : UiView(org.onosproject.ui.UiView) ByteArrayInputStream(java.io.ByteArrayInputStream) UiExtension(org.onosproject.ui.UiExtension) LionBundle(org.onosproject.ui.lion.LionBundle)

Example 4 with UiExtension

use of org.onosproject.ui.UiExtension in project onos by opennetworkinglab.

the class MainViewResource method getViewResource.

@Path("{view}/{resource}")
@GET
public Response getViewResource(@PathParam("view") String viewId, @PathParam("resource") String resource) throws IOException {
    UiExtensionService service = get(UiExtensionService.class);
    UiExtension extension = service.getViewExtension(viewId);
    return extension != null ? Response.ok(extension.resource(viewId, resource)).header(CONTENT_TYPE, contentType(resource)).build() : Response.status(Response.Status.NOT_FOUND).build();
}
Also used : UiExtension(org.onosproject.ui.UiExtension) UiExtensionService(org.onosproject.ui.UiExtensionService) Path(javax.ws.rs.Path) GET(javax.ws.rs.GET)

Example 5 with UiExtension

use of org.onosproject.ui.UiExtension in project onos by opennetworkinglab.

the class UiViewListCommand method json.

private JsonNode json(List<UiExtension> extensions) {
    ObjectMapper mapper = new ObjectMapper();
    ArrayNode node = mapper.createArrayNode();
    extensions.forEach(ext -> ext.views().forEach(v -> node.add(mapper.createObjectNode().put("id", v.id()).put("category", v.category().toString()).put("label", v.label()).put("icon", v.iconId()))));
    return node;
}
Also used : ArrayNode(com.fasterxml.jackson.databind.node.ArrayNode) AbstractShellCommand(org.onosproject.cli.AbstractShellCommand) List(java.util.List) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Service(org.apache.karaf.shell.api.action.lifecycle.Service) UiExtensionService(org.onosproject.ui.UiExtensionService) JsonNode(com.fasterxml.jackson.databind.JsonNode) UiExtension(org.onosproject.ui.UiExtension) Command(org.apache.karaf.shell.api.action.Command) ArrayNode(com.fasterxml.jackson.databind.node.ArrayNode) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)

Aggregations

UiExtension (org.onosproject.ui.UiExtension)5 UiExtensionService (org.onosproject.ui.UiExtensionService)4 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)3 UiView (org.onosproject.ui.UiView)3 JsonNode (com.fasterxml.jackson.databind.JsonNode)2 ArrayNode (com.fasterxml.jackson.databind.node.ArrayNode)2 List (java.util.List)2 GET (javax.ws.rs.GET)2 Path (javax.ws.rs.Path)2 SimpleModule (com.fasterxml.jackson.databind.module.SimpleModule)1 BooleanNode (com.fasterxml.jackson.databind.node.BooleanNode)1 DoubleNode (com.fasterxml.jackson.databind.node.DoubleNode)1 IntNode (com.fasterxml.jackson.databind.node.IntNode)1 JsonNodeFactory (com.fasterxml.jackson.databind.node.JsonNodeFactory)1 LongNode (com.fasterxml.jackson.databind.node.LongNode)1 NullNode (com.fasterxml.jackson.databind.node.NullNode)1 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1 ShortNode (com.fasterxml.jackson.databind.node.ShortNode)1 TextNode (com.fasterxml.jackson.databind.node.TextNode)1 ImmutableList (com.google.common.collect.ImmutableList)1