| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- // Copyright 2019 Yunion
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package models
- import (
- computeapi "yunion.io/x/onecloud/pkg/apis/compute"
- "yunion.io/x/onecloud/pkg/compute/models"
- )
- type Network struct {
- *models.SNetwork
- }
- func (el *Network) Copy() *Network {
- return &Network{
- SNetwork: el.SNetwork,
- }
- }
- type LoadbalancerNetwork struct {
- *models.SLoadbalancerNetwork
- Loadbalancer *Loadbalancer `json:"-"`
- Network *Network `json:"-"`
- }
- func (el *LoadbalancerNetwork) Copy() *LoadbalancerNetwork {
- return &LoadbalancerNetwork{
- SLoadbalancerNetwork: el.SLoadbalancerNetwork,
- }
- }
- type Loadbalancer struct {
- *models.SLoadbalancer
- LoadbalancerNetwork *LoadbalancerNetwork `json:"-"`
- Listeners LoadbalancerListeners
- BackendGroups LoadbalancerBackendGroups
- ListenAddress string
- }
- func (el *Loadbalancer) Copy() *Loadbalancer {
- return &Loadbalancer{
- SLoadbalancer: el.SLoadbalancer,
- }
- }
- func (lb *Loadbalancer) GetAddress() string {
- if lb.NetworkType == computeapi.LB_NETWORK_TYPE_VPC {
- return lb.ListenAddress
- }
- return lb.Address
- }
- type LoadbalancerListener struct {
- *models.SLoadbalancerListener
- loadbalancer *Loadbalancer
- certificate *LoadbalancerCertificate
- rules LoadbalancerListenerRules
- }
- func (el *LoadbalancerListener) Copy() *LoadbalancerListener {
- return &LoadbalancerListener{
- SLoadbalancerListener: el.SLoadbalancerListener,
- }
- }
- type LoadbalancerListenerRule struct {
- *models.SLoadbalancerListenerRule
- listener *LoadbalancerListener
- }
- func (el *LoadbalancerListenerRule) Copy() *LoadbalancerListenerRule {
- return &LoadbalancerListenerRule{
- SLoadbalancerListenerRule: el.SLoadbalancerListenerRule,
- }
- }
- type LoadbalancerBackendGroup struct {
- *models.SLoadbalancerBackendGroup
- Backends LoadbalancerBackends
- loadbalancer *Loadbalancer
- }
- func (el *LoadbalancerBackendGroup) Copy() *LoadbalancerBackendGroup {
- return &LoadbalancerBackendGroup{
- SLoadbalancerBackendGroup: el.SLoadbalancerBackendGroup,
- }
- }
- type LoadbalancerBackend struct {
- *models.SLoadbalancerBackend
- backendGroup *LoadbalancerBackendGroup
- ConnectAddress string
- ConnectPort int
- }
- func (el *LoadbalancerBackend) Copy() *LoadbalancerBackend {
- return &LoadbalancerBackend{
- SLoadbalancerBackend: el.SLoadbalancerBackend,
- }
- }
- func (lbbackend *LoadbalancerBackend) GetAddressPort() (addr string, port int) {
- backendGroup := lbbackend.backendGroup
- if backendGroup == nil {
- return
- }
- lb := backendGroup.loadbalancer
- if lb == nil {
- return
- }
- if lb.NetworkType == computeapi.LB_NETWORK_TYPE_VPC {
- return lbbackend.ConnectAddress, lbbackend.ConnectPort
- }
- return lbbackend.Address, lbbackend.Port
- }
- type LoadbalancerAcl struct {
- *models.SLoadbalancerAcl
- }
- func (el *LoadbalancerAcl) Copy() *LoadbalancerAcl {
- return &LoadbalancerAcl{
- SLoadbalancerAcl: el.SLoadbalancerAcl,
- }
- }
- type LoadbalancerCertificate struct {
- *models.SLoadbalancerCertificate
- }
- func (el *LoadbalancerCertificate) Copy() *LoadbalancerCertificate {
- return &LoadbalancerCertificate{
- SLoadbalancerCertificate: el.SLoadbalancerCertificate,
- }
- }
|