Add Entites and Alarms to the manu
Change-Id: Ibd2b8cd880053feb4ef036dd8e1f1d7f8129991f
This commit is contained in:
parent
e97eea170d
commit
039151beb9
@ -9,4 +9,10 @@ include setup.py
|
||||
|
||||
recursive-include vitragedashboard/enabled *
|
||||
recursive-include vitragedashboard/static *
|
||||
recursive-include vitragedashboard/templates *
|
||||
recursive-include vitragedashboard/templates *
|
||||
|
||||
recursive-include vitragealarms/static *
|
||||
recursive-include vitragealarms/templates *
|
||||
|
||||
recursive-include vitrageentities/static *
|
||||
recursive-include vitrageentities/templates *
|
@ -21,8 +21,11 @@ classifier =
|
||||
|
||||
[files]
|
||||
packages =
|
||||
vitrageentities
|
||||
vitragealarms
|
||||
vitragedashboard
|
||||
|
||||
|
||||
[build_sphinx]
|
||||
source-dir = doc/source
|
||||
build-dir = doc/build
|
||||
|
19
vitragealarms/__init__.py
Normal file
19
vitragealarms/__init__.py
Normal file
@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import pbr.version
|
||||
|
||||
|
||||
__version__ = pbr.version.VersionInfo(
|
||||
'vitragealarms').version_string()
|
22
vitragealarms/panel.py
Normal file
22
vitragealarms/panel.py
Normal file
@ -0,0 +1,22 @@
|
||||
# Copyright 2015 IBM Corp.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
import horizon
|
||||
|
||||
|
||||
class AlarmsVitrage(horizon.Panel):
|
||||
name = _("Alarms")
|
||||
slug = "vitragealarms"
|
15
vitragealarms/templates/alarms/index.html
Normal file
15
vitragealarms/templates/alarms/index.html
Normal file
@ -0,0 +1,15 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Topology" %}{% endblock %}
|
||||
|
||||
{% block page_header %}
|
||||
<hz-page-header header="Alarms Vitrage" description="Alarms Vitrage Desc"></hz-page-header>
|
||||
{% endblock page_header %}
|
||||
|
||||
{% block main %}
|
||||
|
||||
<!--<div ng-cloak ng-init='init({{ TOPOLOGY_VITRAGE_SETTINGS }})'>-->
|
||||
<!--<ng-include src="'{{STATIC_URL}}dashboard/project/layout/system-health.html'"></ng-include>-->
|
||||
<!--</div>-->
|
||||
{% endblock %}
|
||||
|
22
vitragealarms/urls.py
Normal file
22
vitragealarms/urls.py
Normal file
@ -0,0 +1,22 @@
|
||||
# Copyright 2015 IBM Corp.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from django.conf import urls
|
||||
|
||||
from vitragealarms import views
|
||||
|
||||
urlpatterns = urls.patterns(
|
||||
'',
|
||||
urls.url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
)
|
15
vitragealarms/version.py
Normal file
15
vitragealarms/version.py
Normal file
@ -0,0 +1,15 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import pbr.version
|
||||
|
||||
version_info = pbr.version.VersionInfo('vitrage_alarms_ui')
|
32
vitragealarms/views.py
Normal file
32
vitragealarms/views.py
Normal file
@ -0,0 +1,32 @@
|
||||
# Copyright 2012 Alcatel-Lucent, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from horizon import views
|
||||
|
||||
import json
|
||||
|
||||
|
||||
class IndexView(views.APIView):
|
||||
# A very simple class-based view...
|
||||
template_name = 'alarms/index.html'
|
||||
|
||||
def get_data(self, request, context, *args, **kwargs):
|
||||
topology_settings = {
|
||||
'VITRAGE_VERSION': {
|
||||
'VER': 1,
|
||||
'REL': 1
|
||||
}
|
||||
}
|
||||
context['TOPOLOGY_VITRAGE_SETTINGS'] = json.dumps(topology_settings)
|
||||
return context
|
27
vitragedashboard/enabled/_91_project_alarms_vitrage_panel.py
Normal file
27
vitragedashboard/enabled/_91_project_alarms_vitrage_panel.py
Normal file
@ -0,0 +1,27 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# The name of the panel to be added to HORIZON_CONFIG. Required.
|
||||
PANEL = 'alarms_vitrage_panel'
|
||||
# The name of the dashboard the PANEL associated with. Required.
|
||||
PANEL_DASHBOARD = 'project'
|
||||
# The name of the panel group the PANEL is associated with.
|
||||
PANEL_GROUP = 'vitrage_panel_group'
|
||||
|
||||
# Python panel class of the PANEL to be added.
|
||||
ADD_PANEL = 'vitragealarms.panel.AlarmsVitrage'
|
||||
|
||||
ADD_INSTALLED_APPS = ['vitragealarms']
|
||||
|
||||
ADD_ANGULAR_MODULES = ['horizon.dashboard.project.vitrage']
|
||||
|
||||
AUTO_DISCOVER_STATIC_FILES = True
|
@ -0,0 +1,27 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# The name of the panel to be added to HORIZON_CONFIG. Required.
|
||||
PANEL = 'alarms_vitrage_panel'
|
||||
# The name of the dashboard the PANEL associated with. Required.
|
||||
PANEL_DASHBOARD = 'project'
|
||||
# The name of the panel group the PANEL is associated with.
|
||||
PANEL_GROUP = 'vitrage_panel_group'
|
||||
|
||||
# Python panel class of the PANEL to be added.
|
||||
ADD_PANEL = 'vitrageentities.panel.EntitiesVitrage'
|
||||
|
||||
ADD_INSTALLED_APPS = ['vitrageentities']
|
||||
|
||||
ADD_ANGULAR_MODULES = ['horizon.dashboard.project.vitrage']
|
||||
|
||||
AUTO_DISCOVER_STATIC_FILES = True
|
@ -0,0 +1,35 @@
|
||||
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
angular
|
||||
.module('horizon.app.core.openstack-service-api')
|
||||
.factory('horizon.app.core.openstack-service-api.vitrage', vitrageAPI);
|
||||
|
||||
vitrageAPI.$inject = [
|
||||
'horizon.framework.util.http.service',
|
||||
'horizon.framework.widgets.toast.service'
|
||||
];
|
||||
|
||||
function vitrageAPI(apiService, toastService) {
|
||||
|
||||
return {
|
||||
getTopology: getTopology
|
||||
};
|
||||
|
||||
///////////
|
||||
|
||||
// Topology
|
||||
function getTopology() {
|
||||
console.log("**** getToplogy test ****");
|
||||
return apiService.get('/api/nova/keypairs/')
|
||||
.error(function () {
|
||||
toastService.add('error', gettext('Unable to get the Vitrage service Topology.'));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}());
|
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright 2015 Hewlett-Packard Development Company, L.P.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
describe('Vitrage API', function() {
|
||||
var testCall, service;
|
||||
var apiService = {};
|
||||
var toastService = {};
|
||||
|
||||
beforeEach(
|
||||
module('horizon.mock.openstack-service-api',
|
||||
function($provide, initServices) {
|
||||
testCall = initServices($provide, apiService, toastService);
|
||||
})
|
||||
);
|
||||
|
||||
beforeEach(module('horizon.app.core.openstack-service-api'));
|
||||
|
||||
beforeEach(inject(['horizon.app.core.openstack-service-api.vitrage', function(vitrageAPI) {
|
||||
service = vitrageAPI;
|
||||
}]));
|
||||
|
||||
it('defines the service', function() {
|
||||
expect(service).toBeDefined();
|
||||
});
|
||||
|
||||
var tests = [
|
||||
{
|
||||
"func": "getTopology",
|
||||
"method": "get",
|
||||
"path": "/api/vitrage/topology/",
|
||||
"error": "Unable to get the Vitrage service topology."
|
||||
}
|
||||
|
||||
];
|
||||
|
||||
// Iterate through the defined tests and apply as Jasmine specs.
|
||||
//noinspection JSCheckFunctionSignatures
|
||||
angular.forEach(tests, function(params) {
|
||||
it('defines the ' + params.func + ' call properly', function() {
|
||||
var callParams = [apiService, service, toastService, params];
|
||||
testCall.apply(this, callParams);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
})();
|
380
vitragedashboard/static/dashboard/project/topology/graph.json
Normal file
380
vitragedashboard/static/dashboard/project/topology/graph.json
Normal file
@ -0,0 +1,380 @@
|
||||
{
|
||||
"name": "flare",
|
||||
"children": [
|
||||
{
|
||||
"name": "analytics",
|
||||
"children": [
|
||||
{
|
||||
"name": "cluster",
|
||||
"children": [
|
||||
{"name": "AgglomerativeCluster", "size": 3938},
|
||||
{"name": "CommunityStructure", "size": 3812},
|
||||
{"name": "HierarchicalCluster", "size": 6714},
|
||||
{"name": "MergeEdge", "size": 743}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "graph",
|
||||
"children": [
|
||||
{"name": "BetweennessCentrality", "size": 3534},
|
||||
{"name": "LinkDistance", "size": 5731},
|
||||
{"name": "MaxFlowMinCut", "size": 7840},
|
||||
{"name": "ShortestPaths", "size": 5914},
|
||||
{"name": "SpanningTree", "size": 3416}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "optimization",
|
||||
"children": [
|
||||
{"name": "AspectRatioBanker", "size": 7074}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "animate",
|
||||
"children": [
|
||||
{"name": "Easing", "size": 17010},
|
||||
{"name": "FunctionSequence", "size": 5842},
|
||||
{
|
||||
"name": "interpolate",
|
||||
"children": [
|
||||
{"name": "ArrayInterpolator", "size": 1983},
|
||||
{"name": "ColorInterpolator", "size": 2047},
|
||||
{"name": "DateInterpolator", "size": 1375},
|
||||
{"name": "Interpolator", "size": 8746},
|
||||
{"name": "MatrixInterpolator", "size": 2202},
|
||||
{"name": "NumberInterpolator", "size": 1382},
|
||||
{"name": "ObjectInterpolator", "size": 1629},
|
||||
{"name": "PointInterpolator", "size": 1675},
|
||||
{"name": "RectangleInterpolator", "size": 2042}
|
||||
]
|
||||
},
|
||||
{"name": "ISchedulable", "size": 1041},
|
||||
{"name": "Parallel", "size": 5176},
|
||||
{"name": "Pause", "size": 449},
|
||||
{"name": "Scheduler", "size": 5593},
|
||||
{"name": "Sequence", "size": 5534},
|
||||
{"name": "Transition", "size": 9201},
|
||||
{"name": "Transitioner", "size": 19975},
|
||||
{"name": "TransitionEvent", "size": 1116},
|
||||
{"name": "Tween", "size": 6006}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "data",
|
||||
"children": [
|
||||
{
|
||||
"name": "converters",
|
||||
"children": [
|
||||
{"name": "Converters", "size": 721},
|
||||
{"name": "DelimitedTextConverter", "size": 4294},
|
||||
{"name": "GraphMLConverter", "size": 9800},
|
||||
{"name": "IDataConverter", "size": 1314},
|
||||
{"name": "JSONConverter", "size": 2220}
|
||||
]
|
||||
},
|
||||
{"name": "DataField", "size": 1759},
|
||||
{"name": "DataSchema", "size": 2165},
|
||||
{"name": "DataSet", "size": 586},
|
||||
{"name": "DataSource", "size": 3331},
|
||||
{"name": "DataTable", "size": 772},
|
||||
{"name": "DataUtil", "size": 3322}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "display",
|
||||
"children": [
|
||||
{"name": "DirtySprite", "size": 8833},
|
||||
{"name": "LineSprite", "size": 1732},
|
||||
{"name": "RectSprite", "size": 3623},
|
||||
{"name": "TextSprite", "size": 10066}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "flex",
|
||||
"children": [
|
||||
{"name": "FlareVis", "size": 4116}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "physics",
|
||||
"children": [
|
||||
{"name": "DragForce", "size": 1082},
|
||||
{"name": "GravityForce", "size": 1336},
|
||||
{"name": "IForce", "size": 319},
|
||||
{"name": "NBodyForce", "size": 10498},
|
||||
{"name": "Particle", "size": 2822},
|
||||
{"name": "Simulation", "size": 9983},
|
||||
{"name": "Spring", "size": 2213},
|
||||
{"name": "SpringForce", "size": 1681}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "query",
|
||||
"children": [
|
||||
{"name": "AggregateExpression", "size": 1616},
|
||||
{"name": "And", "size": 1027},
|
||||
{"name": "Arithmetic", "size": 3891},
|
||||
{"name": "Average", "size": 891},
|
||||
{"name": "BinaryExpression", "size": 2893},
|
||||
{"name": "Comparison", "size": 5103},
|
||||
{"name": "CompositeExpression", "size": 3677},
|
||||
{"name": "Count", "size": 781},
|
||||
{"name": "DateUtil", "size": 4141},
|
||||
{"name": "Distinct", "size": 933},
|
||||
{"name": "Expression", "size": 5130},
|
||||
{"name": "ExpressionIterator", "size": 3617},
|
||||
{"name": "Fn", "size": 3240},
|
||||
{"name": "If", "size": 2732},
|
||||
{"name": "IsA", "size": 2039},
|
||||
{"name": "Literal", "size": 1214},
|
||||
{"name": "Match", "size": 3748},
|
||||
{"name": "Maximum", "size": 843},
|
||||
{
|
||||
"name": "methods",
|
||||
"children": [
|
||||
{"name": "add", "size": 593},
|
||||
{"name": "and", "size": 330},
|
||||
{"name": "average", "size": 287},
|
||||
{"name": "count", "size": 277},
|
||||
{"name": "distinct", "size": 292},
|
||||
{"name": "div", "size": 595},
|
||||
{"name": "eq", "size": 594},
|
||||
{"name": "fn", "size": 460},
|
||||
{"name": "gt", "size": 603},
|
||||
{"name": "gte", "size": 625},
|
||||
{"name": "iff", "size": 748},
|
||||
{"name": "isa", "size": 461},
|
||||
{"name": "lt", "size": 597},
|
||||
{"name": "lte", "size": 619},
|
||||
{"name": "max", "size": 283},
|
||||
{"name": "min", "size": 283},
|
||||
{"name": "mod", "size": 591},
|
||||
{"name": "mul", "size": 603},
|
||||
{"name": "neq", "size": 599},
|
||||
{"name": "not", "size": 386},
|
||||
{"name": "or", "size": 323},
|
||||
{"name": "orderby", "size": 307},
|
||||
{"name": "range", "size": 772},
|
||||
{"name": "select", "size": 296},
|
||||
{"name": "stddev", "size": 363},
|
||||
{"name": "sub", "size": 600},
|
||||
{"name": "sum", "size": 280},
|
||||
{"name": "update", "size": 307},
|
||||
{"name": "variance", "size": 335},
|
||||
{"name": "where", "size": 299},
|
||||
{"name": "xor", "size": 354},
|
||||
{"name": "_", "size": 264}
|
||||
]
|
||||
},
|
||||
{"name": "Minimum", "size": 843},
|
||||
{"name": "Not", "size": 1554},
|
||||
{"name": "Or", "size": 970},
|
||||
{"name": "Query", "size": 13896},
|
||||
{"name": "Range", "size": 1594},
|
||||
{"name": "StringUtil", "size": 4130},
|
||||
{"name": "Sum", "size": 791},
|
||||
{"name": "Variable", "size": 1124},
|
||||
{"name": "Variance", "size": 1876},
|
||||
{"name": "Xor", "size": 1101}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "scale",
|
||||
"children": [
|
||||
{"name": "IScaleMap", "size": 2105},
|
||||
{"name": "LinearScale", "size": 1316},
|
||||
{"name": "LogScale", "size": 3151},
|
||||
{"name": "OrdinalScale", "size": 3770},
|
||||
{"name": "QuantileScale", "size": 2435},
|
||||
{"name": "QuantitativeScale", "size": 4839},
|
||||
{"name": "RootScale", "size": 1756},
|
||||
{"name": "Scale", "size": 4268},
|
||||
{"name": "ScaleType", "size": 1821},
|
||||
{"name": "TimeScale", "size": 5833}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "util",
|
||||
"children": [
|
||||
{"name": "Arrays", "size": 8258},
|
||||
{"name": "Colors", "size": 10001},
|
||||
{"name": "Dates", "size": 8217},
|
||||
{"name": "Displays", "size": 12555},
|
||||
{"name": "Filter", "size": 2324},
|
||||
{"name": "Geometry", "size": 10993},
|
||||
{
|
||||
"name": "heap",
|
||||
"children": [
|
||||
{"name": "FibonacciHeap", "size": 9354},
|
||||
{"name": "HeapNode", "size": 1233}
|
||||
]
|
||||
},
|
||||
{"name": "IEvaluable", "size": 335},
|
||||
{"name": "IPredicate", "size": 383},
|
||||
{"name": "IValueProxy", "size": 874},
|
||||
{
|
||||
"name": "math",
|
||||
"children": [
|
||||
{"name": "DenseMatrix", "size": 3165},
|
||||
{"name": "IMatrix", "size": 2815},
|
||||
{"name": "SparseMatrix", "size": 3366}
|
||||
]
|
||||
},
|
||||
{"name": "Maths", "size": 17705},
|
||||
{"name": "Orientation", "size": 1486},
|
||||
{
|
||||
"name": "palette",
|
||||
"children": [
|
||||
{"name": "ColorPalette", "size": 6367},
|
||||
{"name": "Palette", "size": 1229},
|
||||
{"name": "ShapePalette", "size": 2059},
|
||||
{"name": "SizePalette", "size": 2291}
|
||||
]
|
||||
},
|
||||
{"name": "Property", "size": 5559},
|
||||
{"name": "Shapes", "size": 19118},
|
||||
{"name": "Sort", "size": 6887},
|
||||
{"name": "Stats", "size": 6557},
|
||||
{"name": "Strings", "size": 22026}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "vis",
|
||||
"children": [
|
||||
{
|
||||
"name": "axis",
|
||||
"children": [
|
||||
{"name": "Axes", "size": 1302},
|
||||
{"name": "Axis", "size": 24593},
|
||||
{"name": "AxisGridLine", "size": 652},
|
||||
{"name": "AxisLabel", "size": 636},
|
||||
{"name": "CartesianAxes", "size": 6703}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "controls",
|
||||
"children": [
|
||||
{"name": "AnchorControl", "size": 2138},
|
||||
{"name": "ClickControl", "size": 3824},
|
||||
{"name": "Control", "size": 1353},
|
||||
{"name": "ControlList", "size": 4665},
|
||||
{"name": "DragControl", "size": 2649},
|
||||
{"name": "ExpandControl", "size": 2832},
|
||||
{"name": "HoverControl", "size": 4896},
|
||||
{"name": "IControl", "size": 763},
|
||||
{"name": "PanZoomControl", "size": 5222},
|
||||
{"name": "SelectionControl", "size": 7862},
|
||||
{"name": "TooltipControl", "size": 8435}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "data",
|
||||
"children": [
|
||||
{"name": "Data", "size": 20544},
|
||||
{"name": "DataList", "size": 19788},
|
||||
{"name": "DataSprite", "size": 10349},
|
||||
{"name": "EdgeSprite", "size": 3301},
|
||||
{"name": "NodeSprite", "size": 19382},
|
||||
{
|
||||
"name": "render",
|
||||
"children": [
|
||||
{"name": "ArrowType", "size": 698},
|
||||
{"name": "EdgeRenderer", "size": 5569},
|
||||
{"name": "IRenderer", "size": 353},
|
||||
{"name": "ShapeRenderer", "size": 2247}
|
||||
]
|
||||
},
|
||||
{"name": "ScaleBinding", "size": 11275},
|
||||
{"name": "Tree", "size": 7147},
|
||||
{"name": "TreeBuilder", "size": 9930}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "events",
|
||||
"children": [
|
||||
{"name": "DataEvent", "size": 2313},
|
||||
{"name": "SelectionEvent", "size": 1880},
|
||||
{"name": "TooltipEvent", "size": 1701},
|
||||
{"name": "VisualizationEvent", "size": 1117}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "legend",
|
||||
"children": [
|
||||
{"name": "Legend", "size": 20859},
|
||||
{"name": "LegendItem", "size": 4614},
|
||||
{"name": "LegendRange", "size": 10530}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "operator",
|
||||
"children": [
|
||||
{
|
||||
"name": "distortion",
|
||||
"children": [
|
||||
{"name": "BifocalDistortion", "size": 4461},
|
||||
{"name": "Distortion", "size": 6314},
|
||||
{"name": "FisheyeDistortion", "size": 3444}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "encoder",
|
||||
"children": [
|
||||
{"name": "ColorEncoder", "size": 3179},
|
||||
{"name": "Encoder", "size": 4060},
|
||||
{"name": "PropertyEncoder", "size": 4138},
|
||||
{"name": "ShapeEncoder", "size": 1690},
|
||||
{"name": "SizeEncoder", "size": 1830}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "filter",
|
||||
"children": [
|
||||
{"name": "FisheyeTreeFilter", "size": 5219},
|
||||
{"name": "GraphDistanceFilter", "size": 3165},
|
||||
{"name": "VisibilityFilter", "size": 3509}
|
||||
]
|
||||
},
|
||||
{"name": "IOperator", "size": 1286},
|
||||
{
|
||||
"name": "label",
|
||||
"children": [
|
||||
{"name": "Labeler", "size": 9956},
|
||||
{"name": "RadialLabeler", "size": 3899},
|
||||
{"name": "StackedAreaLabeler", "size": 3202}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "layout",
|
||||
"children": [
|
||||
{"name": "AxisLayout", "size": 6725},
|
||||
{"name": "BundledEdgeRouter", "size": 3727},
|
||||
{"name": "CircleLayout", "size": 9317},
|
||||
{"name": "CirclePackingLayout", "size": 12003},
|
||||
{"name": "DendrogramLayout", "size": 4853},
|
||||
{"name": "ForceDirectedLayout", "size": 8411},
|
||||
{"name": "IcicleTreeLayout", "size": 4864},
|
||||
{"name": "IndentedTreeLayout", "size": 3174},
|
||||
{"name": "Layout", "size": 7881},
|
||||
{"name": "NodeLinkTreeLayout", "size": 12870},
|
||||
{"name": "PieLayout", "size": 2728},
|
||||
{"name": "RadialTreeLayout", "size": 12348},
|
||||
{"name": "RandomLayout", "size": 870},
|
||||
{"name": "StackedAreaLayout", "size": 9121},
|
||||
{"name": "TreeMapLayout", "size": 9191}
|
||||
]
|
||||
},
|
||||
{"name": "Operator", "size": 2490},
|
||||
{"name": "OperatorList", "size": 5248},
|
||||
{"name": "OperatorSequence", "size": 4190},
|
||||
{"name": "OperatorSwitch", "size": 2581},
|
||||
{"name": "SortOperator", "size": 2023}
|
||||
]
|
||||
},
|
||||
{"name": "Visualization", "size": 16540}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
19
vitrageentities/__init__.py
Normal file
19
vitrageentities/__init__.py
Normal file
@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import pbr.version
|
||||
|
||||
|
||||
__version__ = pbr.version.VersionInfo(
|
||||
'vitrageentities').version_string()
|
22
vitrageentities/panel.py
Normal file
22
vitrageentities/panel.py
Normal file
@ -0,0 +1,22 @@
|
||||
# Copyright 2015 IBM Corp.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
import horizon
|
||||
|
||||
|
||||
class EntitiesVitrage(horizon.Panel):
|
||||
name = _("Entities")
|
||||
slug = "vitrageentities"
|
15
vitrageentities/templates/entities/index.html
Normal file
15
vitrageentities/templates/entities/index.html
Normal file
@ -0,0 +1,15 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Topology" %}{% endblock %}
|
||||
|
||||
{% block page_header %}
|
||||
<hz-page-header header="Entities Vitrage" description="Entites Vitrage Desc"></hz-page-header>
|
||||
{% endblock page_header %}
|
||||
|
||||
{% block main %}
|
||||
|
||||
<!--<div ng-cloak ng-init='init({{ TOPOLOGY_VITRAGE_SETTINGS }})'>-->
|
||||
<!--<ng-include src="'{{STATIC_URL}}dashboard/project/layout/system-health.html'"></ng-include>-->
|
||||
<!--</div>-->
|
||||
{% endblock %}
|
||||
|
22
vitrageentities/urls.py
Normal file
22
vitrageentities/urls.py
Normal file
@ -0,0 +1,22 @@
|
||||
# Copyright 2015 IBM Corp.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from django.conf import urls
|
||||
|
||||
from vitrageentities import views
|
||||
|
||||
urlpatterns = urls.patterns(
|
||||
'',
|
||||
urls.url(r'^$', views.IndexView.as_view(), name='index'),
|
||||
)
|
15
vitrageentities/version.py
Normal file
15
vitrageentities/version.py
Normal file
@ -0,0 +1,15 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import pbr.version
|
||||
|
||||
version_info = pbr.version.VersionInfo('vitrage_entities_ui')
|
32
vitrageentities/views.py
Normal file
32
vitrageentities/views.py
Normal file
@ -0,0 +1,32 @@
|
||||
# Copyright 2012 Alcatel-Lucent, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from horizon import views
|
||||
|
||||
import json
|
||||
|
||||
|
||||
class IndexView(views.APIView):
|
||||
# A very simple class-based view...
|
||||
template_name = 'entities/index.html'
|
||||
|
||||
def get_data(self, request, context, *args, **kwargs):
|
||||
topology_settings = {
|
||||
'VITRAGE_VERSION': {
|
||||
'VER': 1,
|
||||
'REL': 1
|
||||
}
|
||||
}
|
||||
context['TOPOLOGY_VITRAGE_SETTINGS'] = json.dumps(topology_settings)
|
||||
return context
|
Loading…
x
Reference in New Issue
Block a user