Skip to content

Commit dea5adc

Browse files
author
Jamie Hannaford
committed
Merge pull request #48 from php-opencloud/refactor
Add more networking functionality
2 parents 8fccc56 + 94d784a commit dea5adc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+2339
-177
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$networking = $openstack->networkingV2ExtLayer3();
16+
17+
/** @var \OpenStack\Networking\v2\Extensions\Layer3\Models\FloatingIp $ip */
18+
$ip = $networking->createFloatingIp([
19+
"floatingNetworkId" => "{networkId}",
20+
"portId" => "{portId}",
21+
]);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$openstack->networkingV2ExtLayer3()
16+
->getFloatingIp('{id}')
17+
->delete();
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
/** @var \OpenStack\Networking\v2\Extensions\Layer3\Models\FloatingIp $ip */
16+
$ip = $openstack->networkingV2ExtLayer3()
17+
->getFloatingIp('{id}');
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$floatingIps = $openstack->networkingV2ExtLayer3()
16+
->listFloatingIps();
17+
18+
foreach ($floatingIps as $floatingIp) {
19+
/** @var \OpenStack\Networking\v2\Extensions\Layer3\Models\FloatingIp $floatingIp */
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$floatingIp = $openstack->networkingV2ExtLayer3()
16+
->getFloatingIp('{id}');
17+
18+
$floatingIp->portId = '{newPortId}';
19+
$floatingIp->update();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$networking = $openstack->networkingV2ExtSecGroups();
16+
17+
/** @var \OpenStack\Networking\v2\Extensions\SecurityGroups\Models\SecurityGroupRule $rule */
18+
$rule = $networking->createSecurityGroupRule([
19+
"direction" => "ingress",
20+
"ethertype" => "IPv4",
21+
"portRangeMin" => "80",
22+
"portRangeMax" => "80",
23+
"protocol" => "tcp",
24+
"remoteGroupId" => "{groupId}",
25+
"securityGroupId" => "{secGroupId}",
26+
]);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
/** @var \OpenStack\Networking\v2\Extensions\SecurityGroups\Models\SecurityGroupRule $rule */
16+
$rule = $openstack->networkingV2ExtSecGroups()
17+
->getSecurityGroupRule('{id}');
18+
19+
$rule->delete();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
/** @var \OpenStack\Networking\v2\Extensions\SecurityGroups\Models\SecurityGroupRule $rule */
16+
$rule = $openstack->networkingV2ExtSecGroups()
17+
->getSecurityGroupRule('{id}');
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$rules = $openstack->networkingV2ExtSecGroups()
16+
->listSecurityGroupRules();
17+
18+
foreach ($rules as $rule) {
19+
/** @var \OpenStack\Networking\v2\Extensions\SecurityGroups\Models\SecurityGroupRule $rule */
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$networking = $openstack->networkingV2ExtSecGroups();
16+
17+
/** @var \OpenStack\Networking\v2\Extensions\SecurityGroups\Models\SecurityGroup $secGroup */
18+
$secGroup = $networking->createSecurityGroup([
19+
'name' => 'new-webservers',
20+
'description' => 'security group for webservers',
21+
]);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$networking = $openstack->networkingV2ExtSecGroups();
16+
17+
/** @var \OpenStack\Networking\v2\Extensions\SecurityGroups\Models\SecurityGroup $secGroup */
18+
$secGroup = $networking->getSecurityGroup('{id}');
19+
$secGroup->delete();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$networking = $openstack->networkingV2ExtSecGroups();
16+
17+
/** @var \OpenStack\Networking\v2\Extensions\SecurityGroups\Models\SecurityGroup $secGroup */
18+
$secGroup = $networking->getSecurityGroup('{id}');
19+
$secGroup->retrieve();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
$openstack = new OpenStack\OpenStack([
6+
'authUrl' => '{authUrl}',
7+
'region' => '{region}',
8+
'user' => [
9+
'id' => '{userId}',
10+
'password' => '{password}'
11+
],
12+
'scope' => ['project' => ['id' => '{projectId}']]
13+
]);
14+
15+
$networking = $openstack->networkingV2ExtSecGroups();
16+
17+
$secGroups = $networking->listSecurityGroups();
18+
19+
foreach ($secGroups as $secGroup) {
20+
/** @var \OpenStack\Networking\v2\Extensions\SecurityGroups\Models\SecurityGroup $secGroup */
21+
}

samples/networking/v2/subnets/create.php

+1-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@
99
'id' => '{userId}',
1010
'password' => '{password}'
1111
],
12-
'scope' => [
13-
'project' => [
14-
'id' => '{projectId}'
15-
]
16-
]
12+
'scope' => ['project' => ['id' => '{projectId}']]
1713
]);
1814

1915
$networking = $openstack->networkingV2();

src/BlockStorage/v2/Models/Snapshot.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace OpenStack\BlockStorage\v2\Models;
44

5-
use OpenCloud\Common\Resource\AbstractResource;
5+
use OpenCloud\Common\Resource\OperatorResource;
66
use OpenCloud\Common\Resource\Creatable;
77
use OpenCloud\Common\Resource\Deletable;
88
use OpenCloud\Common\Resource\HasMetadata;
@@ -16,7 +16,7 @@
1616
/**
1717
* @property \OpenStack\BlockStorage\v2\Api $api
1818
*/
19-
class Snapshot extends AbstractResource implements Listable, Creatable, Updateable, Deletable, Retrievable, HasMetadata
19+
class Snapshot extends OperatorResource implements Listable, Creatable, Updateable, Deletable, Retrievable, HasMetadata
2020
{
2121
use HasWaiterTrait;
2222

src/BlockStorage/v2/Models/Volume.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php declare (strict_types=1);
22
namespace OpenStack\BlockStorage\v2\Models;
33

4-
use OpenCloud\Common\Resource\AbstractResource;
4+
use OpenCloud\Common\Resource\OperatorResource;
55
use OpenCloud\Common\Resource\Creatable;
66
use OpenCloud\Common\Resource\Deletable;
77
use OpenCloud\Common\Resource\HasMetadata;
@@ -15,7 +15,7 @@
1515
/**
1616
* @property \OpenStack\BlockStorage\v2\Api $api
1717
*/
18-
class Volume extends AbstractResource implements Creatable, Listable, Updateable, Deletable, Retrievable, HasMetadata
18+
class Volume extends OperatorResource implements Creatable, Listable, Updateable, Deletable, Retrievable, HasMetadata
1919
{
2020
use HasWaiterTrait;
2121

src/BlockStorage/v2/Models/VolumeType.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace OpenStack\BlockStorage\v2\Models;
44

5-
use OpenCloud\Common\Resource\AbstractResource;
5+
use OpenCloud\Common\Resource\OperatorResource;
66
use OpenCloud\Common\Resource\Creatable;
77
use OpenCloud\Common\Resource\Deletable;
88
use OpenCloud\Common\Resource\Listable;
@@ -11,7 +11,7 @@
1111
/**
1212
* @property \OpenStack\BlockStorage\v2\Api $api
1313
*/
14-
class VolumeType extends AbstractResource implements Listable, Creatable, Updateable, Deletable
14+
class VolumeType extends OperatorResource implements Listable, Creatable, Updateable, Deletable
1515
{
1616
/** @var string */
1717
public $id;

src/Compute/v2/Models/Flavor.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace OpenStack\Compute\v2\Models;
44

5-
use OpenCloud\Common\Resource\AbstractResource;
5+
use OpenCloud\Common\Resource\OperatorResource;
66
use OpenCloud\Common\Resource\Listable;
77
use OpenCloud\Common\Resource\Retrievable;
88

@@ -11,7 +11,7 @@
1111
*
1212
* @property \OpenStack\Compute\v2\Api $api
1313
*/
14-
class Flavor extends AbstractResource implements Listable, Retrievable
14+
class Flavor extends OperatorResource implements Listable, Retrievable
1515
{
1616
/** @var int */
1717
public $disk;

src/Compute/v2/Models/Image.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace OpenStack\Compute\v2\Models;
44

5-
use OpenCloud\Common\Resource\AbstractResource;
5+
use OpenCloud\Common\Resource\OperatorResource;
66
use OpenCloud\Common\Resource\Deletable;
77
use OpenCloud\Common\Resource\HasMetadata;
88
use OpenCloud\Common\Resource\Listable;
@@ -15,7 +15,7 @@
1515
*
1616
* @property \OpenStack\Compute\v2\Api $api
1717
*/
18-
class Image extends AbstractResource implements Listable, Retrievable, Deletable, HasMetadata
18+
class Image extends OperatorResource implements Listable, Retrievable, Deletable, HasMetadata
1919
{
2020
/** @var string */
2121
public $id;

src/Compute/v2/Models/Server.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
use OpenCloud\Common\Resource\Listable;
99
use OpenCloud\Common\Resource\Retrievable;
1010
use OpenCloud\Common\Resource\Updateable;
11-
use OpenCloud\Common\Resource\AbstractResource;
11+
use OpenCloud\Common\Resource\OperatorResource;
1212
use OpenCloud\Common\Transport\Utils;
1313
use OpenStack\Compute\v2\Enum;
1414
use Psr\Http\Message\ResponseInterface;
1515

1616
/**
1717
* @property \OpenStack\Compute\v2\Api $api
1818
*/
19-
class Server extends AbstractResource implements
19+
class Server extends OperatorResource implements
2020
Creatable,
2121
Updateable,
2222
Deletable,

0 commit comments

Comments
 (0)