iaas

package
v0.0.0-...-9649b88 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2020 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CheckNetService = func(openstack iaasaccessor.IaaS) error {
	_, err := openstack.GetNetwork("this-is-a-error-uuid-for-auth")
	if err != nil && strings.Contains(err.Error(), "GetNetwork: socket-error") {
		return err
	}
	return nil
}
View Source
var CheckOpenstackConfig = func(conf *openstack.OpenStackConf) (*gophercloud.ProviderClient, error) {
	var config gophercloud.AuthOptions
	config.Username = conf.Username
	config.Password = conf.Password
	config.TenantName = conf.TenantName
	config.TenantID = conf.Tenantid
	config.IdentityEndpoint = conf.Url + "/tokens"
	c, err := openstack.AuthenticatedClientV2(config)
	if err != nil {
		klog.Error("CheckOpenstackConfig call AuthenticatedClient Error:", err)
		return nil, err
	}

	if c.TenantID == "" || c.TenantName == "" {
		klog.Error("openstack user info input error TenantID[", c.TenantID, "]TenantName[", c.TenantName, "]")
		return nil, errors.New("openstack user info input error")
	}

	return c, nil
}
View Source
var GetDefaultPhysnet = func() (string, error) {
	key := dbaccessor.GetKeyOfDefaultPhysnet()
	physnet, errR := common.GetDataBase().ReadLeaf(key)
	if errR != nil {
		klog.Errorf("ReadLeaf:key[%v] Err: %v", key, errR)
		return "", errR
	}
	return physnet, nil
}
View Source
var GetIaaS = func(paasTenantID string) iaasaccessor.IaaS {
	iaasTenantID, _ := GetIaasTenantIDByPaasTenantID(paasTenantID)
	if iaasTenantID == "" {
		iaasObj, err := InitIaasForDefault(paasTenantID)
		if err != nil {
			return nil
		}
		return iaasObj.IaaSInterface
	}
	timeNow := time.Now().Unix()
	iaasObj, err := GetIaasObjMgrSingleton().Get(iaasTenantID)
	if err == nil {
		return iaasObj.IaaSInterface
	}
	isInitIaas := (err.Error() == constvalue.ErrOfIaasTenantNotExist) ||
		(err.Error() == constvalue.ErrOfIaasInterfaceNil && timeNow-iaasObj.TimeLastGetIaas >= authIntenal)
	if isInitIaas {
		err := InitIaasByKnitterJSON(iaasTenantID)
		if err != nil {
			return nil
		}
		iaasObjAfterInit, _ := GetIaasObjMgrSingleton().Get(iaasTenantID)
		return iaasObjAfterInit.IaaSInterface
	}
	return nil
}
View Source
var GetSceneByKnitterJSON = func() (string, error) {
	return constvalue.EMBEDDED, nil
}
View Source
var InitIaaS = func() error {
	var err error

	cfg := common.GetOpenstackCfg()
	klog.Info("OpenStack Configration:", cfg)
	openstack := openstack.NewOpenstack()
	err = openstack.SetOpenstackConfig(cfg)
	if err != nil {
		klog.Warning("IaaS-SetOpenstackConfig-ERROR")
		return err
	}
	err = openstack.Auth()
	if err != nil {
		klog.Warning("IaaS-auth-ERROR")
		return err
	}
	err = CheckNetService(openstack)
	if err != nil {
		klog.Error("NetService-check-ERROR")
		return err
	}
	klog.Info("IaaS-auth-OK")
	SetIaaS(openstack.GetTenantID(), openstack)

	return nil
}
View Source
var SaveDefaultPhysnet = func(defaultPhysnet string) error {
	key := dbaccessor.GetKeyOfDefaultPhysnet()
	klog.Infof("DefaultPhysnet: %v", defaultPhysnet)
	errE := common.GetDataBase().SaveLeaf(key, defaultPhysnet)
	if errE != nil {
		klog.Errorf("SaveLeaf:key[%v],value[%v]: %v", key, defaultPhysnet, errE)
		return errE
	}
	return nil
}

Functions

func DelIaasTenantInfoFromDB

func DelIaasTenantInfoFromDB(tenantid string) error

func GetExternalPortName

func GetExternalPortName(iaasID, paasID, vmID, podID, portName string) string

func GetIaasTenantIDByPaasTenantID

func GetIaasTenantIDByPaasTenantID(paasTenantID string) (string, error)

func GetIaasTenantInfoFromDB

func GetIaasTenantInfoFromDB(tenantid string) (string, error)

func GetMultipleIaasTenantsFlag

func GetMultipleIaasTenantsFlag() bool

func GetOriginalPortName

func GetOriginalPortName(longName string) string

func InitDefaultIaasForTECS

func InitDefaultIaasForTECS(paasTenantID string) (string, string, error)

func InitIaasByKnitterJSON

func InitIaasByKnitterJSON(tenantID string) error

func InitIaasForTECS

func InitIaasForTECS(tenantID string) error

func InitNoAuth

func InitNoAuth(cfg *jason.Object) error

func InitNoauthOpenStack

func InitNoauthOpenStack(openstackConf noauth_openstack.NoauthOpenStackConf, neutronConf noauth_openstack.NoauthNeutronConf)

func SaveIaasTenantInfoToDB

func SaveIaasTenantInfoToDB(conf *openstack.OpenStackConf) error

func SaveTenantInfoWithIaasIDToDB

func SaveTenantInfoWithIaasIDToDB(paasTenantID, iaasTenantID, iaasTenantName string) error

func SetIaaS

func SetIaaS(tenantID string, i iaasaccessor.IaaS) error

func SetMultipleIaasTenantsFlag

func SetMultipleIaasTenantsFlag(isMultiple bool)

Types

type IaaSObj

type IaaSObj struct {
	TimeLastGetIaas int64
	IaaSInterface   iaasaccessor.IaaS
}

func InitIaasForDefault

func InitIaasForDefault(paasTenantID string) (*IaaSObj, error)

type IaasObjMgr

type IaasObjMgr struct {
	Mng  map[string]IaaSObj
	Lock sync.RWMutex
}

func GetIaasObjMgrSingleton

func GetIaasObjMgrSingleton() *IaasObjMgr

func (*IaasObjMgr) Add

func (p *IaasObjMgr) Add(tenantID string, i iaasaccessor.IaaS) error

func (*IaasObjMgr) Del

func (p *IaasObjMgr) Del(tenantID string) error

func (*IaasObjMgr) Get

func (p *IaasObjMgr) Get(tenantID string) (*IaaSObj, error)

type PaasTenantWithIaasID

type PaasTenantWithIaasID struct {
	TenantName     string `json:"tenant_name"`
	TenantUUID     string `json:"tenant_uuid"`
	Networks       string `json:"networks"`
	Interfaces     string `json:"interfaces"`
	Quota          int    `json:"net_quota"`
	NetNum         int    `json:"net_number"`
	IsCancelling   bool   `json:"is_cancelling"`
	CreateTime     string `json:"create_time"`
	IaasTenantID   string `json:"iaas_tenant_id"`
	IaasTenantName string `json:"iaas_tenant_name"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL