Completed
Push — develop ( fa7d09...bed248 )
by Tony
10s
created

Port::scopeIsIgnored()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2
Metric Value
dl 0
loc 7
rs 9.4285
ccs 0
cts 0
cp 0
cc 1
eloc 4
nc 1
nop 1
crap 2
1
<?php
2
3
namespace App\Models;
4
5
use Illuminate\Database\Eloquent\Model;
6
7
/**
8
 * App\Models\Port
9
 *
10
 * @property integer $port_id
11
 * @property integer $device_id
12
 * @property string $port_descr_type
13
 * @property string $port_descr_descr
14
 * @property string $port_descr_circuit
15
 * @property string $port_descr_speed
16
 * @property string $port_descr_notes
17
 * @property string $ifDescr
18
 * @property string $ifName
19
 * @property string $portName
20
 * @property integer $ifIndex
21
 * @property integer $ifSpeed
22
 * @property string $ifConnectorPresent
23
 * @property string $ifPromiscuousMode
24
 * @property integer $ifHighSpeed
25
 * @property string $ifOperStatus
26
 * @property string $ifAdminStatus
27
 * @property string $ifDuplex
28
 * @property integer $ifMtu
29
 * @property string $ifType
30
 * @property string $ifAlias
31
 * @property string $ifPhysAddress
32
 * @property string $ifHardType
33
 * @property string $ifLastChange
34
 * @property string $ifVlan
35
 * @property string $ifTrunk
36
 * @property integer $ifVrf
37
 * @property integer $counter_in
38
 * @property integer $counter_out
39
 * @property boolean $ignore
40
 * @property boolean $disabled
41
 * @property boolean $detailed
42
 * @property boolean $deleted
43
 * @property string $pagpOperationMode
44
 * @property string $pagpPortState
45
 * @property string $pagpPartnerDeviceId
46
 * @property string $pagpPartnerLearnMethod
47
 * @property integer $pagpPartnerIfIndex
48
 * @property integer $pagpPartnerGroupIfIndex
49
 * @property string $pagpPartnerDeviceName
50
 * @property string $pagpEthcOperationMode
51
 * @property string $pagpDeviceId
52
 * @property integer $pagpGroupIfIndex
53
 * @property integer $ifInUcastPkts
54
 * @property integer $ifInUcastPkts_prev
55
 * @property integer $ifInUcastPkts_delta
56
 * @property integer $ifInUcastPkts_rate
57
 * @property integer $ifOutUcastPkts
58
 * @property integer $ifOutUcastPkts_prev
59
 * @property integer $ifOutUcastPkts_delta
60
 * @property integer $ifOutUcastPkts_rate
61
 * @property integer $ifInErrors
62
 * @property integer $ifInErrors_prev
63
 * @property integer $ifInErrors_delta
64
 * @property integer $ifInErrors_rate
65
 * @property integer $ifOutErrors
66
 * @property integer $ifOutErrors_prev
67
 * @property integer $ifOutErrors_delta
68
 * @property integer $ifOutErrors_rate
69
 * @property integer $ifInOctets
70
 * @property integer $ifInOctets_prev
71
 * @property integer $ifInOctets_delta
72
 * @property integer $ifInOctets_rate
73
 * @property integer $ifOutOctets
74
 * @property integer $ifOutOctets_prev
75
 * @property integer $ifOutOctets_delta
76
 * @property integer $ifOutOctets_rate
77
 * @property integer $poll_time
78
 * @property integer $poll_prev
79
 * @property integer $poll_period
80
 * @property-read \App\Models\Device $device
81
 * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\User[] $users
82
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePortId($value)
83
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereDeviceId($value)
84
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePortDescrType($value)
85
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePortDescrDescr($value)
86
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePortDescrCircuit($value)
87
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePortDescrSpeed($value)
88
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePortDescrNotes($value)
89
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfDescr($value)
90
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfName($value)
91
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePortName($value)
92
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfIndex($value)
93
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfSpeed($value)
94
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfConnectorPresent($value)
95
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfPromiscuousMode($value)
96
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfHighSpeed($value)
97
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOperStatus($value)
98
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfAdminStatus($value)
99
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfDuplex($value)
100
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfMtu($value)
101
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfType($value)
102
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfAlias($value)
103
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfPhysAddress($value)
104
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfHardType($value)
105
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfLastChange($value)
106
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfVlan($value)
107
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfTrunk($value)
108
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfVrf($value)
109
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereCounterIn($value)
110
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereCounterOut($value)
111
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIgnore($value)
112
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereDisabled($value)
113
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereDetailed($value)
114
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereDeleted($value)
115
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpOperationMode($value)
116
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpPortState($value)
117
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpPartnerDeviceId($value)
118
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpPartnerLearnMethod($value)
119
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpPartnerIfIndex($value)
120
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpPartnerGroupIfIndex($value)
121
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpPartnerDeviceName($value)
122
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpEthcOperationMode($value)
123
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpDeviceId($value)
124
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePagpGroupIfIndex($value)
125
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInUcastPkts($value)
126
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInUcastPktsPrev($value)
127
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInUcastPktsDelta($value)
128
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInUcastPktsRate($value)
129
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutUcastPkts($value)
130
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutUcastPktsPrev($value)
131
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutUcastPktsDelta($value)
132
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutUcastPktsRate($value)
133
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInErrors($value)
134
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInErrorsPrev($value)
135
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInErrorsDelta($value)
136
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInErrorsRate($value)
137
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutErrors($value)
138
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutErrorsPrev($value)
139
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutErrorsDelta($value)
140
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutErrorsRate($value)
141
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInOctets($value)
142
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInOctetsPrev($value)
143
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInOctetsDelta($value)
144
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfInOctetsRate($value)
145
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutOctets($value)
146
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutOctetsPrev($value)
147
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutOctetsDelta($value)
148
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port whereIfOutOctetsRate($value)
149
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePollTime($value)
150
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePollPrev($value)
151
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Port wherePollPeriod($value)
152
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Notification NotDeleted()
153
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Notification IsUp()
154
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Notification IsDown()
155
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Notification IsIgnored()
156
 * @method static \Illuminate\Database\Query\Builder|\App\Models\Notification IsDisabled()
157
 * @mixin \Eloquent
158
 */
159
class Port extends Model
160
{
161
    /**
162
     * Indicates if the model should be timestamped.
163
     *
164
     * @var bool
165
     */
166
    public $timestamps = false;
167
    /**
168
     * The table associated with the model.
169
     *
170
     * @var string
171
     */
172
    protected $table = 'ports';
173
    /**
174
     * The primary key column name.
175
     *
176
     * @var string
177
     */
178
    protected $primaryKey = 'port_id';
179
180
181
    // ---- Accessors/Mutators ----
182
183
184
    // ---- Define Reletionships ----
185
186
    /**
187
     * Get the device this port belongs to.
188
     *
189
     */
190
    public function device()
191
    {
192
        return $this->belongsTo('App\Models\Device', 'device_id', 'device_id');
193
    }
194
195
    /**
196
     * Returns a list of users that can access this port.
197
     */
198
    public function users()
199
    {
200
        return $this->belongsToMany('App\Models\User', 'ports_perms', 'port_id', 'user_id');
201
    }
202
203
    /**
204
     * @return \Illuminate\Database\Eloquent\Relations\hasMany
205
     */
206
    public function ipv4()
207
    {
208
        return $this->hasMany('App\Models\General\IPv4', 'port_id');
209
    }
210
211
    /**
212
     * @return \Illuminate\Database\Eloquent\Relations\hasMany
213
     */
214
    public function ipv6()
215
    {
216
        return $this->hasMany('App\Models\General\IPv6', 'port_id');
217
    }
218
219
    // ---- Accessors/Mutators ----
220
221
    public function getIfPhysAddressAttribute($mac)
222
    {
223
        if (!empty($mac)) {
224
            return preg_replace('/(..)(..)(..)(..)(..)(..)/', '\\1:\\2:\\3:\\4:\\5:\\6', $mac);
225
        }
226
        return null;
227
    }
228
229
    // ---- Query scopes ----
230
231
    public function scopeNotDeleted($query)
232
    {
233
        return $query->where([
234
            ['deleted', '=', 0]
235
        ]);
236
    }
237
238
    public function scopeIsUp($query)
239
    {
240
        return $query->where([
241
            ['deleted', '=', 0],
242
            ['ignore', '=', 0],
243
            ['ifOperStatus', '=', 'up']
244
        ]);
245
    }
246
247
    public function scopeIsDown($query)
248
    {
249
        return $query->where([
250
            ['deleted', '=', 0],
251
            ['ignore', '=', 0],
252
            ['ifOperStatus', '=', 'down'],
253
            ['ifAdminStatus', '=', 'up']
254
        ]);
255
    }
256
257
    public function scopeIsIgnored($query)
258
    {
259
        return $query->where([
260
            ['deleted', '=', 0],
261
            ['ignore', '=', 1]
262
        ]);
263
    }
264
265
    public function scopeIsDisabled($query)
266
    {
267
        return $query->where([
268
            ['deleted', '=', 0],
269
            ['ignore', '=', 0],
270
            ['ifAdminStatus', '=', 'down']
271
        ]);
272
    }
273
274
}
275