Skip to content

Commit 219ee16

Browse files
authored
Merge pull request #886 from inex/nf-select-export-to-ixf
NF: add vlan.export_to_ixf to allow operator to select which vlans are exported to IX-F
2 parents c7672ed + 8230f19 commit 219ee16

20 files changed

+920
-548
lines changed

.phpstorm.meta.php/laravel.meta.php

+11
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@
226226
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
227227
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
228228
'parsedown' => \Parsedown::class,
229+
'purifier' => \Mews\Purifier\Purifier::class,
229230
'queue' => \Illuminate\Queue\QueueManager::class,
230231
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
231232
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -462,6 +463,7 @@
462463
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
463464
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
464465
'parsedown' => \Parsedown::class,
466+
'purifier' => \Mews\Purifier\Purifier::class,
465467
'queue' => \Illuminate\Queue\QueueManager::class,
466468
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
467469
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -698,6 +700,7 @@
698700
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
699701
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
700702
'parsedown' => \Parsedown::class,
703+
'purifier' => \Mews\Purifier\Purifier::class,
701704
'queue' => \Illuminate\Queue\QueueManager::class,
702705
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
703706
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -934,6 +937,7 @@
934937
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
935938
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
936939
'parsedown' => \Parsedown::class,
940+
'purifier' => \Mews\Purifier\Purifier::class,
937941
'queue' => \Illuminate\Queue\QueueManager::class,
938942
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
939943
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -1170,6 +1174,7 @@
11701174
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
11711175
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
11721176
'parsedown' => \Parsedown::class,
1177+
'purifier' => \Mews\Purifier\Purifier::class,
11731178
'queue' => \Illuminate\Queue\QueueManager::class,
11741179
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
11751180
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -1406,6 +1411,7 @@
14061411
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
14071412
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
14081413
'parsedown' => \Parsedown::class,
1414+
'purifier' => \Mews\Purifier\Purifier::class,
14091415
'queue' => \Illuminate\Queue\QueueManager::class,
14101416
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
14111417
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -1642,6 +1648,7 @@
16421648
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
16431649
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
16441650
'parsedown' => \Parsedown::class,
1651+
'purifier' => \Mews\Purifier\Purifier::class,
16451652
'queue' => \Illuminate\Queue\QueueManager::class,
16461653
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
16471654
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -1878,6 +1885,7 @@
18781885
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
18791886
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
18801887
'parsedown' => \Parsedown::class,
1888+
'purifier' => \Mews\Purifier\Purifier::class,
18811889
'queue' => \Illuminate\Queue\QueueManager::class,
18821890
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
18831891
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -2114,6 +2122,7 @@
21142122
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
21152123
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
21162124
'parsedown' => \Parsedown::class,
2125+
'purifier' => \Mews\Purifier\Purifier::class,
21172126
'queue' => \Illuminate\Queue\QueueManager::class,
21182127
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
21192128
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -2350,6 +2359,7 @@
23502359
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
23512360
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
23522361
'parsedown' => \Parsedown::class,
2362+
'purifier' => \Mews\Purifier\Purifier::class,
23532363
'queue' => \Illuminate\Queue\QueueManager::class,
23542364
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
23552365
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,
@@ -2586,6 +2596,7 @@
25862596
'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class,
25872597
'migrator' => \Illuminate\Database\Migrations\Migrator::class,
25882598
'parsedown' => \Parsedown::class,
2599+
'purifier' => \Mews\Purifier\Purifier::class,
25892600
'queue' => \Illuminate\Queue\QueueManager::class,
25902601
'queue.connection' => \Illuminate\Queue\SyncQueue::class,
25912602
'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class,

_ide_helper.php

+24-16
Original file line numberDiff line numberDiff line change
@@ -16425,17 +16425,23 @@ public static function getRules($name)
1642516425
/**
1642616426
*
1642716427
*
16428-
* @method static \Barryvdh\DomPDF\PDF setPaper($paper, $orientation = 'portrait')
16429-
* @method static \Barryvdh\DomPDF\PDF setBaseHost(string $baseHost)
16430-
* @method static \Barryvdh\DomPDF\PDF setProtocol(string $protocol)
16431-
* @method static \Barryvdh\DomPDF\PDF setHttpContext($httpContext)
16432-
* @method static \Barryvdh\DomPDF\PDF setCallbacks(array $callbacks)
16428+
* @method static BasePDF setBaseHost(string $baseHost)
16429+
* @method static BasePDF setBasePath(string $basePath)
16430+
* @method static BasePDF setCanvas(\Dompdf\Canvas $canvas)
16431+
* @method static BasePDF setCallbacks(array $callbacks)
16432+
* @method static BasePDF setCss(\Dompdf\Css\Stylesheet $css)
16433+
* @method static BasePDF setDefaultView(string $defaultView, array $options)
16434+
* @method static BasePDF setDom(\DOMDocument $dom)
16435+
* @method static BasePDF setFontMetrics(\Dompdf\FontMetrics $fontMetrics)
16436+
* @method static BasePDF setHttpContext(resource|array $httpContext)
16437+
* @method static BasePDF setPaper(string|float[] $paper, string $orientation = 'portrait')
16438+
* @method static BasePDF setProtocol(string $protocol)
16439+
* @method static BasePDF setTree(\Dompdf\Frame\FrameTree $tree)
1643316440
*/
1643416441
class Pdf {
1643516442
/**
1643616443
* Get the DomPDF instance
1643716444
*
16438-
* @return \Dompdf\Dompdf
1643916445
* @static
1644016446
*/
1644116447
public static function getDomPDF()
@@ -16478,7 +16484,6 @@ public static function loadFile($file)
1647816484
* Add metadata info
1647916485
*
1648016486
* @param array<string, string> $info
16481-
* @return static
1648216487
* @static
1648316488
*/
1648416489
public static function addInfo($info)
@@ -16504,7 +16509,6 @@ public static function loadView($view, $data = [], $mergeData = [], $encoding =
1650416509
*
1650516510
* @param array<string, mixed>|string $attribute
1650616511
* @param null|mixed $value
16507-
* @return \Barryvdh\DomPDF\PDF
1650816512
* @static
1650916513
*/
1651016514
public static function setOption($attribute, $value = null)
@@ -16597,17 +16601,23 @@ public static function setEncryption($password, $ownerpassword = '', $pc = [])
1659716601
/**
1659816602
*
1659916603
*
16600-
* @method static \Barryvdh\DomPDF\PDF setPaper($paper, $orientation = 'portrait')
16601-
* @method static \Barryvdh\DomPDF\PDF setBaseHost(string $baseHost)
16602-
* @method static \Barryvdh\DomPDF\PDF setProtocol(string $protocol)
16603-
* @method static \Barryvdh\DomPDF\PDF setHttpContext($httpContext)
16604-
* @method static \Barryvdh\DomPDF\PDF setCallbacks(array $callbacks)
16604+
* @method static BasePDF setBaseHost(string $baseHost)
16605+
* @method static BasePDF setBasePath(string $basePath)
16606+
* @method static BasePDF setCanvas(\Dompdf\Canvas $canvas)
16607+
* @method static BasePDF setCallbacks(array $callbacks)
16608+
* @method static BasePDF setCss(\Dompdf\Css\Stylesheet $css)
16609+
* @method static BasePDF setDefaultView(string $defaultView, array $options)
16610+
* @method static BasePDF setDom(\DOMDocument $dom)
16611+
* @method static BasePDF setFontMetrics(\Dompdf\FontMetrics $fontMetrics)
16612+
* @method static BasePDF setHttpContext(resource|array $httpContext)
16613+
* @method static BasePDF setPaper(string|float[] $paper, string $orientation = 'portrait')
16614+
* @method static BasePDF setProtocol(string $protocol)
16615+
* @method static BasePDF setTree(\Dompdf\Frame\FrameTree $tree)
1660516616
*/
1660616617
class Pdf {
1660716618
/**
1660816619
* Get the DomPDF instance
1660916620
*
16610-
* @return \Dompdf\Dompdf
1661116621
* @static
1661216622
*/
1661316623
public static function getDomPDF()
@@ -16650,7 +16660,6 @@ public static function loadFile($file)
1665016660
* Add metadata info
1665116661
*
1665216662
* @param array<string, string> $info
16653-
* @return static
1665416663
* @static
1665516664
*/
1665616665
public static function addInfo($info)
@@ -16676,7 +16685,6 @@ public static function loadView($view, $data = [], $mergeData = [], $encoding =
1667616685
*
1667716686
* @param array<string, mixed>|string $attribute
1667816687
* @param null|mixed $value
16679-
* @return \Barryvdh\DomPDF\PDF
1668016688
* @static
1668116689
*/
1668216690
public static function setOption($attribute, $value = null)

app/Http/Controllers/VlanController.php

+5
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ public function feInit(): void
102102
'title' => 'Peering Manager',
103103
'type' => self::$FE_COL_TYPES[ 'YES_NO' ],
104104
],
105+
'export_to_ixf' => [
106+
'title' => 'Export to IX-F',
107+
'type' => self::$FE_COL_TYPES[ 'YES_NO' ],
108+
],
105109
'notes' => [
106110
'title' => 'Notes',
107111
'type' => self::$FE_COL_TYPES[ 'PARSDOWN' ]
@@ -214,6 +218,7 @@ protected function editPrepareForm( $id = null ): array
214218
'private' => request()->old( 'private', $this->object->private ),
215219
'peering_matrix' => request()->old( 'peering_matrix', $this->object->peering_matrix ),
216220
'peering_manager' => request()->old( 'peering_manager', $this->object->peering_manager ),
221+
'export_to_ixf' => request()->old( 'export_to_ixf', $this->object->export_to_ixf ),
217222
'notes' => request()->old( 'notes', $this->object->notes ),
218223
]);
219224

app/Models/Aggregators/VlanAggregator.php

+2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
* @property int $infrastructureid
4343
* @property int $peering_matrix
4444
* @property int $peering_manager
45+
* @property bool $export_to_ixf
4546
* @property string|null $config_name
4647
* @property \Illuminate\Support\Carbon|null $created_at
4748
* @property \Illuminate\Support\Carbon|null $updated_at
@@ -68,6 +69,7 @@
6869
* @method static \Illuminate\Database\Eloquent\Builder|VlanAggregator query()
6970
* @method static \Illuminate\Database\Eloquent\Builder|VlanAggregator whereConfigName($value)
7071
* @method static \Illuminate\Database\Eloquent\Builder|VlanAggregator whereCreatedAt($value)
72+
* @method static \Illuminate\Database\Eloquent\Builder|VlanAggregator whereExportToIxf($value)
7173
* @method static \Illuminate\Database\Eloquent\Builder|VlanAggregator whereId($value)
7274
* @method static \Illuminate\Database\Eloquent\Builder|VlanAggregator whereInfrastructureid($value)
7375
* @method static \Illuminate\Database\Eloquent\Builder|VlanAggregator whereName($value)

app/Models/Vlan.php

+4
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
* @property int $infrastructureid
4444
* @property int $peering_matrix
4545
* @property int $peering_manager
46+
* @property bool $export_to_ixf
4647
* @property string|null $config_name
4748
* @property \Illuminate\Support\Carbon|null $created_at
4849
* @property \Illuminate\Support\Carbon|null $updated_at
@@ -69,6 +70,7 @@
6970
* @method static Builder|Vlan query()
7071
* @method static Builder|Vlan whereConfigName($value)
7172
* @method static Builder|Vlan whereCreatedAt($value)
73+
* @method static Builder|Vlan whereExportToIxf($value)
7274
* @method static Builder|Vlan whereId($value)
7375
* @method static Builder|Vlan whereInfrastructureid($value)
7476
* @method static Builder|Vlan whereName($value)
@@ -103,6 +105,7 @@ class Vlan extends Model
103105
'infrastructureid',
104106
'peering_matrix',
105107
'peering_manager',
108+
'export_to_ixf',
106109
'config_name',
107110
];
108111

@@ -113,6 +116,7 @@ class Vlan extends Model
113116
*/
114117
protected $casts = [
115118
'private' => 'boolean',
119+
'export_to_ixf' => 'boolean',
116120
];
117121

118122
/**

app/Utils/Export/JsonSchema.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -195,12 +195,13 @@ private function getIXPInfo( string $version ): array
195195

196196
$i['peering_policy_list'] = array_values( Customer::$PEERING_POLICIES);
197197

198-
$result = NetworkInfo::leftJoin( 'vlan', 'vlan.id', 'networkinfo.vlanid' )
198+
$vlansToExport = NetworkInfo::join( 'vlan', 'vlan.id', 'networkinfo.vlanid' )
199199
->where( 'vlan.infrastructureid', $infra->id )
200+
->where( 'vlan.export_to_ixf', true )
200201
->get()->toArray();
201202

202203
$vlanentry = [];
203-
foreach( $result as $ni )
204+
foreach( $vlansToExport as $ni )
204205
{
205206
$id = $ni['id'];
206207
$vlanentry[$id]['id'] = $ni['id'];
@@ -402,7 +403,7 @@ private function getMemberInfo( string $version, bool $detailed, bool $tags ): a
402403

403404
$vlanentries = [];
404405
foreach( $vi->vlanInterfaces as $vli ) {
405-
if( $vli->vlan->private ) {
406+
if( $vli->vlan->private || !$vli->vlan->export_to_ixf ) {
406407
continue;
407408
}
408409

composer.json

+8-8
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,20 @@
5555
"doctrine/dbal": "^3.0"
5656
},
5757
"require-dev": {
58+
"barryvdh/laravel-debugbar": "^3.5.2",
59+
"barryvdh/laravel-ide-helper": "^2.9",
60+
"beyondcode/laravel-dump-server": "^1.7",
5861
"facade/ignition": "^2.5",
5962
"fakerphp/faker": "^1.9.1",
63+
"laravel/dusk": "^6.25",
6064
"laravel/sail": "^1.0.1",
61-
"beyondcode/laravel-dump-server": "^1.7",
62-
"phpunit/phpunit": "^9.3.3",
6365
"mockery/mockery": "^1.4.2",
64-
"barryvdh/laravel-ide-helper": "^2.9",
65-
"laravel/dusk": "^6.13.0",
6666
"nunomaduro/collision": "^5.0",
67+
"phpunit/phpunit": "^9.3.3",
68+
"psalm/plugin-laravel": "^1.4",
6769
"staudenmeir/dusk-updater": "^1.2.2",
68-
"barryvdh/laravel-debugbar": "^3.5.2",
69-
"vimeo/psalm": "^4.7",
70-
"psalm/plugin-laravel": "^1.4"
71-
},
70+
"vimeo/psalm": "^4.7"
71+
},
7272
"support": {
7373
"issues": "https://www.ixpmanager.org/support.php",
7474
"forum": "https://www.inex.ie/mailman/listinfo/ixpmanager",

0 commit comments

Comments
 (0)