Files
librenms-librenms/database/factories/Ipv4AddressFactory.php
Jellyfrog 2b3575a5e9 Laravel 10.x Shift (#14995)
* Apply code style

* Remove explicit call to register policies

* Shift core files

* Shift config files

* Default config files

In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them and merged your true customizations -
where ENV variables may not be used.

* Bump Laravel dependencies

* Add type hints for Laravel 10

* Shift cleanup

* wip

* wip

* sync translation

* Sync back config

* Public Path Binding

* QueryException

* monolog

* db::raw

* monolog

* db::raw

* fix larastan collections

* fix phpstan bug looping forever

* larastan errors

* larastan: fix column type

* styleci

* initialize array

* fixes

* fixes

---------

Co-authored-by: Shift <shift@laravelshift.com>
2023-05-24 22:21:54 +02:00

40 lines
1.1 KiB
PHP

<?php
namespace Database\Factories;
use App\Models\Ipv4Address;
use App\Models\Ipv4Network;
use App\Models\Port;
use Illuminate\Database\Eloquent\Factories\Factory;
use LibreNMS\Util\IPv4;
/** @extends Factory<Ipv4Address> */
class Ipv4AddressFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition(): array
{
$prefix = $this->faker->numberBetween(0, 32);
$ip = new IPv4($this->faker->ipv4() . '/' . $prefix);
return [
'ipv4_address' => $ip->uncompressed(),
'ipv4_prefixlen' => $prefix,
'port_id' => function () {
$port = Port::factory()->create(); /** @var Port $port */
return $port->port_id;
},
'ipv4_network_id' => function () use ($ip) {
$ipv4 = Ipv4Network::factory()->create(['ipv4_network' => $ip->getNetworkAddress() . '/' . $ip->cidr]); /** @var Ipv4Address $ipv4 */
return $ipv4->ipv4_network_id;
},
];
}
}