summaryrefslogtreecommitdiffstats
path: root/lib_edges.py
blob: e2f96f63fce805eeaf6ba5a6930b2d75f5706a4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# vim: set fileencoding=UTF-8:
# Copyright 2013 Red Hat, Inc.
# Author: Jan Pokorný <jpokorny at redhat dot com>
# Distributed under GPLv2+;  generated content under CC-BY-SA 3.0
# (to view a copy, visit http://creativecommons.org/licenses/by-sa/3.0/)
"""Edge library incl. visual aspects"""

from lib import LibEdge
from lib_attributes import *


class EdgeInvisible(LibEdge):
    defaults = dict((
        STYLE.invis,
        ARROWHEAD.none,
    ))


class DBUS(LibEdge):
    defaults = dict((
        STYLE.dotted,
    ))


class OddjobExec(DBUS):
    defaults = dict((
        LABEL('oddjob\nexec'),
    ))


class HTTPS(LibEdge):
    defaults = dict((
        STYLE.bold,
    ))
    summary = 'HTTP over SSL/TLS'


class HTTPSDst(LibEdge):
    common_dst_of = HTTPS


class ApplicationSpecificProtocol(LibEdge):
    defaults = dict((
        STYLE.dashed,
    ))


class SNMP(ApplicationSpecificProtocol):
    defaults = dict((
        LABEL('port 161'),
    ))


class CIM(ApplicationSpecificProtocol):
    defaults = dict((
        LABEL('port 898[89]'),
    ))


class Consume(LibEdge):
    defaults = dict((
        COLOR.darkgreen,
        FONTCOLOR.darkgreen,
    ))


class ConsumeReversed(Consume):
    defaults = dict((
        DIR.back,
    ))


class Produce(LibEdge):
    defaults = dict((
        COLOR.orangered,
        FONTCOLOR.orangered,
    ))


class Delegate(LibEdge):
    defaults = dict((
        COLOR.navy,
        FONTCOLOR.navy,
        #DIR.both,
    ))


class FencedBy(LibEdge):
    defaults = dict((
        COLOR.red,
        DIR.back,
    ))


# peer-to-peer (1:1 hence constraint='false')
class Exchange(LibEdge):
    defaults = dict((
        COLOR.saddlebrown,
        FONTCOLOR.saddlebrown,
        DIR.both,
        CONSTRAINT.false,
    ))


# data bus
class Databus(Exchange):
    defaults = dict((
        COLOR.saddlebrown,
        FONTCOLOR.saddlebrown,
    ))


# mixing

class DelegateOddjobExec(Delegate, OddjobExec):
    pass



class DelegateSNMP(Delegate, SNMP):
    pass


class DelegateCIM(Delegate, CIM):
    pass