|
21 | 21 | use OpenCloud\DNS\Resource\HasPtrRecordsInterface;
|
22 | 22 | use OpenCloud\Image\Resource\ImageInterface;
|
23 | 23 | use OpenCloud\Networking\Resource\NetworkInterface;
|
| 24 | +use OpenCloud\Networking\Resource\Port; |
24 | 25 | use OpenCloud\Volume\Resource\Volume;
|
25 | 26 | use OpenCloud\Common\Exceptions;
|
26 | 27 | use OpenCloud\Common\Http\Message\Formatter;
|
@@ -689,22 +690,18 @@ protected function createJson()
|
689 | 690 | $server->networks = array();
|
690 | 691 |
|
691 | 692 | foreach ($this->networks as $network) {
|
692 |
| - if (!$network instanceof NetworkInterface) { |
| 693 | + if ($network instanceof NetworkInterface) { |
| 694 | + $server->networks[] = (object) array('uuid' => $network->getId()); |
| 695 | + } elseif ($network instanceof Port) { |
| 696 | + $server->networks[] = (object) array('port' => $network->getId()); |
| 697 | + } else { |
693 | 698 | throw new Exceptions\InvalidParameterError(sprintf(
|
694 | 699 | 'When creating a server, the "networks" key must be an ' .
|
695 |
| - 'array of objects which implement OpenCloud\Networking\Resource\NetworkInterface;' . |
696 |
| - 'variable passed in was a [%s]', |
| 700 | + 'array of objects which implement either OpenCloud\Networking\Resource\NetworkInterface ' . |
| 701 | + 'or OpenCloud\Networking\Resource\Port. The variable you passed in was a [%s]', |
697 | 702 | gettype($network)
|
698 | 703 | ));
|
699 | 704 | }
|
700 |
| - if (!($networkId = $network->getId())) { |
701 |
| - $this->getLogger()->warning('When creating a server, the ' |
702 |
| - . 'network objects passed in must have an ID' |
703 |
| - ); |
704 |
| - continue; |
705 |
| - } |
706 |
| - // Stock networks array |
707 |
| - $server->networks[] = (object) array('uuid' => $networkId); |
708 | 705 | }
|
709 | 706 | }
|
710 | 707 |
|
|
0 commit comments