Skip to content

Commit 7fc5f00

Browse files
committed
Implement LBAAS API into lib
1 parent 307ce90 commit 7fc5f00

34 files changed

+2568
-1
lines changed

src/Networking/v2/Api.php

Lines changed: 350 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,4 +350,354 @@ public function deleteQuota() : array
350350
]
351351
];
352352
}
353+
354+
public function getLoadBalancers(): array
355+
{
356+
return [
357+
'method' => 'GET',
358+
'path' => $this->pathPrefix . '/lbaas/loadbalancers',
359+
'params' => []
360+
];
361+
}
362+
363+
public function getLoadBalancer(): array
364+
{
365+
return [
366+
'method' => 'GET',
367+
'path' => $this->pathPrefix . '/lbaas/loadbalancers/{id}',
368+
'params' => []
369+
];
370+
}
371+
372+
public function postLoadBalancer(): array
373+
{
374+
return [
375+
'method' => 'POST',
376+
'path' => $this->pathPrefix . '/lbaas/loadbalancers',
377+
'jsonKey' => 'loadbalancer',
378+
'params' => [
379+
'name' => $this->params->name('loadbalancer'),
380+
'description' => $this->params->descriptionJson(),
381+
'tenantId' => $this->params->tenantId(),
382+
'vipSubnetId' => $this->params->vipSubnetId(),
383+
'vipAddress' => $this->params->vipAddress(),
384+
'adminStateUp' => $this->params->adminStateUp(),
385+
'provider' => $this->params->provider()
386+
]
387+
];
388+
}
389+
390+
public function putLoadBalancer(): array
391+
{
392+
return [
393+
'method' => 'PUT',
394+
'path' => $this->pathPrefix . '/lbaas/loadbalancers/{id}',
395+
'jsonKey' => 'loadbalancer',
396+
'params' => [
397+
'id' => $this->params->idPath(),
398+
'name' => $this->params->name('loadbalancer'),
399+
'description' => $this->params->descriptionJson(),
400+
'AdminStateUp' => $this->params->adminStateUp()
401+
]
402+
];
403+
}
404+
405+
public function deleteLoadBalancer() : array
406+
{
407+
return [
408+
'method' => 'DELETE',
409+
'path' => $this->pathPrefix . '/lbaas/loadbalancers/{id}',
410+
'params' => [
411+
'id' => $this->params->idPath()
412+
]
413+
];
414+
}
415+
416+
public function getLoadBalancerListeners(): array
417+
{
418+
return [
419+
'method' => 'GET',
420+
'path' => $this->pathPrefix . '/lbaas/listeners',
421+
'params' => []
422+
];
423+
}
424+
425+
public function getLoadBalancerListener(): array
426+
{
427+
return [
428+
'method' => 'GET',
429+
'path' => $this->pathPrefix . '/lbaas/listeners/{id}',
430+
'params' => []
431+
];
432+
}
433+
434+
public function postLoadBalancerListener(): array
435+
{
436+
return [
437+
'method' => 'POST',
438+
'path' => $this->pathPrefix . '/lbaas/listeners',
439+
'jsonKey' => 'listener',
440+
'params' => [
441+
'name' => $this->params->name('listener'),
442+
'description' => $this->params->descriptionJson(),
443+
'loadbalancerId' => $this->params->loadbalancerId(),
444+
'protocol' => $this->params->protocol(),
445+
'protocolPort' => $this->params->protocolPort(),
446+
'tenantId' => $this->params->tenantId(),
447+
'adminStateUp' => $this->params->adminStateUp(),
448+
'connectionLimit' => $this->params->connectionLimit()
449+
]
450+
];
451+
}
452+
453+
public function putLoadBalancerListener(): array
454+
{
455+
return [
456+
'method' => 'PUT',
457+
'path' => $this->pathPrefix . '/lbaas/listeners/{id}',
458+
'jsonKey' => 'listener',
459+
'params' => [
460+
'id' => $this->params->idPath(),
461+
'name' => $this->params->name('listener'),
462+
'description' => $this->params->descriptionJson(),
463+
'adminStateUp' => $this->params->adminStateUp(),
464+
'connectionLimit' => $this->params->connectionLimit()
465+
]
466+
];
467+
}
468+
469+
public function deleteLoadBalancerListener() : array
470+
{
471+
return [
472+
'method' => 'DELETE',
473+
'path' => $this->pathPrefix . '/lbaas/listeners/{id}',
474+
'params' => [
475+
'id' => $this->params->idPath()
476+
]
477+
];
478+
}
479+
480+
public function getLoadBalancerPools(): array
481+
{
482+
return [
483+
'method' => 'GET',
484+
'path' => $this->pathPrefix . '/lbaas/pools',
485+
'params' => []
486+
];
487+
}
488+
489+
public function getLoadBalancerPool(): array
490+
{
491+
return [
492+
'method' => 'GET',
493+
'path' => $this->pathPrefix . '/lbaas/pools/{id}',
494+
'params' => []
495+
];
496+
}
497+
498+
public function postLoadBalancerPool(): array
499+
{
500+
return [
501+
'method' => 'POST',
502+
'path' => $this->pathPrefix . '/lbaas/pools',
503+
'jsonKey' => 'pool',
504+
'params' => [
505+
'name' => $this->params->name('pool'),
506+
'description' => $this->params->descriptionJson(),
507+
'adminStateUp' => $this->params->adminStateUp(),
508+
'protocol' => $this->params->protocol(),
509+
'lbAlgorithm' => $this->params->lbAlgorithm(),
510+
'listenerId' => $this->params->listenerId(),
511+
'sessionPersistence' => $this->params->sessionPersistence()
512+
]
513+
];
514+
}
515+
516+
public function putLoadBalancerPool(): array
517+
{
518+
return [
519+
'method' => 'PUT',
520+
'path' => $this->pathPrefix . '/lbaas/pools/{id}',
521+
'jsonKey' => 'pool',
522+
'params' => [
523+
'id' => $this->params->idPath(),
524+
'name' => $this->params->name('pool'),
525+
'description' => $this->params->descriptionJson(),
526+
'adminStateUp' => $this->params->adminStateUp(),
527+
'lbAlgorithm' => $this->params->lbAlgorithm(),
528+
'sessionPersistence' => $this->params->sessionPersistence()
529+
]
530+
];
531+
}
532+
533+
public function deleteLoadBalancerPool() : array
534+
{
535+
return [
536+
'method' => 'DELETE',
537+
'path' => $this->pathPrefix . '/lbaas/pools/{id}',
538+
'params' => [
539+
'id' => $this->params->idPath()
540+
]
541+
];
542+
}
543+
544+
public function getLoadBalancerMembers(): array
545+
{
546+
return [
547+
'method' => 'GET',
548+
'path' => $this->pathPrefix . '/lbaas/pools/{poolId}/members',
549+
'params' => [
550+
'poolId' => $this->params->poolId()
551+
]
552+
];
553+
}
554+
555+
public function getLoadBalancerMember(): array
556+
{
557+
return [
558+
'method' => 'GET',
559+
'path' => $this->pathPrefix . '/lbaas/pools/{poolId}/members/{id}',
560+
'params' => [
561+
'id' => $this->params->idPath('member'),
562+
'poolId' => $this->params->poolId()
563+
]
564+
];
565+
}
566+
567+
public function postLoadBalancerMember(): array
568+
{
569+
return [
570+
'method' => 'POST',
571+
'path' => $this->pathPrefix . '/lbaas/pools/{poolId}/members',
572+
'jsonKey' => 'member',
573+
'params' => [
574+
'poolId' => $this->params->poolId(),
575+
'address' => $this->params->address(),
576+
'protocolPort' => $this->params->protocolPort(),
577+
'adminStateUp' => $this->params->adminStateUp(),
578+
'weight' => $this->params->weight(),
579+
'subnetId' => $this->params->subnetId()
580+
]
581+
];
582+
}
583+
584+
public function putLoadBalancerMember(): array
585+
{
586+
return [
587+
'method' => 'PUT',
588+
'path' => $this->pathPrefix . '/lbaas/pools/{poolId}/members/{id}',
589+
'jsonKey' => 'member',
590+
'params' => [
591+
'poolId' => $this->params->poolId(),
592+
'id' => $this->params->idPath(),
593+
'weight' => $this->params->weight(),
594+
'adminStateUp' => $this->params->adminStateUp()
595+
]
596+
];
597+
}
598+
599+
public function deleteLoadBalancerMember() : array
600+
{
601+
return [
602+
'method' => 'DELETE',
603+
'path' => $this->pathPrefix . '/lbaas/pools/{poolId}/members/{id}',
604+
'params' => [
605+
'poolId' => $this->params->poolId(),
606+
'id' => $this->params->idPath()
607+
]
608+
];
609+
}
610+
611+
public function getLoadBalancerStats(): array
612+
{
613+
return [
614+
'method' => 'GET',
615+
'path' => $this->pathPrefix . '/lbaas/loadbalancers/{loadbalancerId}/stats',
616+
'params' => [
617+
'loadbalancerId' => $this->params->loadBalancerIdUrl()
618+
]
619+
];
620+
}
621+
622+
public function getLoadBalancerStatuses(): array
623+
{
624+
return [
625+
'method' => 'GET',
626+
'path' => $this->pathPrefix . '/lbaas/loadbalancers/{loadbalancerId}/statuses',
627+
'params' => [
628+
'loadbalancerId' => $this->params->loadBalancerIdUrl()
629+
]
630+
];
631+
}
632+
633+
public function getLoadBalancerHealthMonitors(): array
634+
{
635+
return [
636+
'method' => 'GET',
637+
'path' => $this->pathPrefix . '/lbaas/healthmonitors',
638+
'params' => []
639+
];
640+
}
641+
642+
public function getLoadBalancerHealthMonitor(): array
643+
{
644+
return [
645+
'method' => 'GET',
646+
'path' => $this->pathPrefix . '/lbaas/healthmonitors/{id}',
647+
'params' => [
648+
'id' => $this->params->idPath()
649+
]
650+
];
651+
}
652+
653+
public function postLoadBalancerHealthMonitor(): array
654+
{
655+
return [
656+
'method' => 'POST',
657+
'path' => $this->pathPrefix . '/lbaas/healthmonitors',
658+
'jsonKey' => 'healthmonitor',
659+
'params' => [
660+
'type' => $this->params->type(),
661+
'delay' => $this->params->delay(),
662+
'timeout' => $this->params->timeout(),
663+
'maxRetries' => $this->params->maxRetries(),
664+
'poolId' => $this->params->poolIdJson(),
665+
'tenantId' => $this->params->tenantId(),
666+
'adminStateUp' => $this->params->adminStateUp(),
667+
'httpMethod' => $this->params->httpMethod(),
668+
'urlPath' => $this->params->urlPath(),
669+
'expectedCodes' => $this->params->expectedCodes()
670+
]
671+
];
672+
}
673+
674+
public function putLoadBalancerHealthMonitor(): array
675+
{
676+
return [
677+
'method' => 'PUT',
678+
'path' => $this->pathPrefix . '/lbaas/healthmonitors/{id}',
679+
'jsonKey' => 'healthmonitor',
680+
'params' => [
681+
'id' => $this->params->idPath(),
682+
'delay' => $this->params->delay(),
683+
'timeout' => $this->params->timeout(),
684+
'adminStateUp' => $this->params->adminStateUp(),
685+
'maxRetries' => $this->params->maxRetries(),
686+
'httpMethod' => $this->params->httpMethod(),
687+
'urlPath' => $this->params->urlPath(),
688+
'expectedCodes' => $this->params->expectedCodes()
689+
]
690+
];
691+
}
692+
693+
public function deleteLoadBalancerHealthMonitor() : array
694+
{
695+
return [
696+
'method' => 'DELETE',
697+
'path' => $this->pathPrefix . '/lbaas/healthmonitors/{id}',
698+
'params' => [
699+
'id' => $this->params->idPath()
700+
]
701+
];
702+
}
353703
}

0 commit comments

Comments
 (0)