catalogue

package
v0.0.0-...-c4de470 Latest Latest
Warning

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

Go to latest
Published: Feb 4, 2017 License: Apache-2.0 Imports: 3 Imported by: 0

README

Catalogue

catalogue contains a partial implementation of the OpenBaton catalogue.

Documentation

Overview

Package catalogue contains a partial implementation of the OpenBaton catalogue.

Index

Constants

View Source
const (
	EventGranted  = Event("GRANTED")
	EventAllocate = Event("ALLOCATE")
	EventScale    = Event("SCALE")
	EventRelease  = Event("RELEASE")
	EventError    = Event("ERROR")

	EventInstantiate     = Event("INSTANTIATE")
	EventTerminate       = Event("TERMINATE")
	EventConfigure       = Event("CONFIGURE")
	EventStart           = Event("START")
	EventStop            = Event("STOP")
	EventHeal            = Event("HEAL")
	EventScaleOut        = Event("SCALE_OUT")
	EventScaleIn         = Event("SCALE_IN")
	EventScaleUp         = Event("SCALE_UP")
	EventScaleDown       = Event("SCALE_DOWN")
	EventUpdate          = Event("UPDATE")
	EventUpdateRollback  = Event("UPDATE_ROLLBACK")
	EventUpgrade         = Event("UPGRADE")
	EventUpgradeRollback = Event("UPGRADE_ROLLBACK")
	EventReset           = Event("RESET")
)
View Source
const (
	RedundancyActive  = RedundancyModel("ACTIVE")
	RedundancyStandby = RedundancyModel("STANDBY")
)
View Source
const (
	ResiliencyActiveStandbyStateless = ResiliencyLevel("ACTIVE_STANDBY_STATELESS")
	ResiliencyActiveStandbyStateful  = ResiliencyLevel("ACTIVE_STANDBY_STATEFUL")
)
View Source
const (
	ScaleOut          = ScalingActionType("SCALE_OUT")
	ScaleOutTo        = ScalingActionType("SCALE_OUT_TO")
	ScaleOutToFlavour = ScalingActionType("SCALE_OUT_TO_FLAVOUR")
	ScaleIn           = ScalingActionType("SCALE_IN")
	ScaleInTo         = ScalingActionType("SCALE_IN_TO")
	ScaleInToFlavour  = ScalingActionType("SCALE_IN_TO_FLAVOUR")
)
View Source
const (
	ScaleModeReactive   = ScalingMode("REACTIVE")
	ScaleModeProactive  = ScalingMode("PROACTIVE")
	ScaleModePredictive = ScalingMode("PREDICTIVE")
)
View Source
const (
	ScaleTypeSingle   = ScalingType("SINGLE")
	ScaleTypeVoted    = ScalingType("VOTED")
	ScaleTypeWeighted = ScalingType("WEIGHTED")
)
View Source
const (
	FaultRestart              = FaultManagementAction("RESTART")
	FaultReinstantiateService = FaultManagementAction("REINSTANTIATE_SERVICE")
	FaultHeal                 = FaultManagementAction("HEAL")
	FaultReinstantiate        = FaultManagementAction("REINSTANTIATE")
	FaultSwitchToStandby      = FaultManagementAction("SWITCH_TO_STANDBY")
	FaultSwitchToActive       = FaultManagementAction("SWITCH_TO_ACTIVE")
)
View Source
const (
	SelectorAtLeastOne = VNFCSelector("at_least_one")
	SelectorAll        = VNFCSelector("all")
)
View Source
const (
	SeverityIndeterminate = PerceivedSeverity("INDETERMINATE")
	SeverityWarning       = PerceivedSeverity("WARNING")
	SeverityMinor         = PerceivedSeverity("MINOR")
	SeverityMajor         = PerceivedSeverity("MAJOR")
	SeverityCritical      = PerceivedSeverity("CRITICAL")
)
View Source
const (
	LinkDown                           = LinkStatus("LINKDOWN")
	LinkNormalOperation                = LinkStatus("NORMALOPERATION")
	LinkDegradeOperation               = LinkStatus("DEGRADEDOPERATION")
	LinkOfflineThroughManagementAction = LinkStatus("OFFLINETHROUGHMANAGEMENTACTION")
)
View Source
const (
	// Error
	StatusError = Status("ERROR")

	// Null
	StatusNull = Status("NULL")

	//Instantiated - Not Configured
	StatusInitialized = Status("INITIALIZED")

	// Inactive - Configured
	StatusInactive = Status("INACTIVE")

	// Scaling
	StatusScaling = Status("SCALING")

	// Active - Configured
	StatusActive = Status("ACTIVE")

	// Terminated
	StatusTerminated = Status("TERMINATED")

	// Resuming
	StatusResuming = Status("RESUMING")
)
View Source
const (
	ActionGrantOperation         = Action("GRANT_OPERATION")
	ActionAllocateResources      = Action("ALLOCATE_RESOURCES")
	ActionScaleIn                = Action("SCALE_IN")
	ActionScaleOut               = Action("SCALE_OUT")
	ActionScaling                = Action("SCALING")
	ActionError                  = Action("ERROR")
	ActionReleaseResources       = Action("RELEASE_RESOURCES")
	ActionInstantiate            = Action("INSTANTIATE")
	ActionModify                 = Action("MODIFY")
	ActionHeal                   = Action("HEAL")
	ActionUpdateVNFR             = Action("UPDATEVNFR")
	ActionUpdate                 = Action("UPDATE")
	ActionScaled                 = Action("SCALED")
	ActionReleaseResourcesFinish = Action("RELEASE_RESOURCES_FINISH")
	ActionInstantiateFinish      = Action("INSTANTIATE_FINISH")
	ActionConfigure              = Action("CONFIGURE")
	ActionStart                  = Action("START")
	ActionStop                   = Action("STOP")
	ActionResume                 = Action("RESUME")

	NoActionSpecified = Action("")
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Action

type Action string

type AutoScalePolicy

type AutoScalePolicy struct {
	ID                 string           `json:"id,omitempty"`
	Version            int              `json:"version"`
	Name               string           `json:"name"`
	Threshold          float64          `json:"threshold"`
	ComparisonOperator string           `json:"comparisonOperator"`
	Period             int              `json:"period"`
	Cooldown           int              `json:"cooldown"`
	Mode               ScalingMode      `json:"mode,omitempty"`
	Type               ScalingType      `json:"type,omitempty"`
	Alarms             []*ScalingAlarm  `json:"alarms,omitempty"`
	Actions            []*ScalingAction `json:"actions,omitempty"`
}

type Component

type Component interface{}

Component represents a generic component.

type Configuration

type Configuration struct {
	ID                      string                    `json:"id,omitempty"`
	Version                 int                       `json:"version"`
	ProjectID               string                    `json:"projectId"`
	ConfigurationParameters []*ConfigurationParameter `json:"configurationParameters"`
	Name                    string                    `json:"name"`
}

func (*Configuration) Append

func (cfg *Configuration) Append(p *ConfigurationParameter)

type ConfigurationParameter

type ConfigurationParameter struct {
	ID          string `json:"id,omitempty"`
	Version     int    `json:"version,omitempty"`
	Description string `json:"description,omitempty"`
	ConfKey     string `json:"confKey"`
	Value       string `json:"value,omitempty"`
}

type ConnectionPoint

type ConnectionPoint struct {
	ID      string `json:"id,omitempty"`
	Version int    `json:"version"`
	Type    string `json:"type"`
}

type ConstituentVDU

type ConstituentVDU struct {
	ID                string `json:"id,omitempty"`
	Version           int    `json:"version"`
	VDUReference      string `json:"vdu_reference"`
	NumberOfInstances int    `json:"number_of_instances"`
	ConstituentVNFC   string `json:"constituent_vnfc"`
}

ConstituentVDU as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type ConstituentVNF

type ConstituentVNF struct {
	ID                    string          `json:"id,omitempty"`
	VnfReference          string          `json:"vnf_reference"`
	VnfFlavourIDReference string          `json:"vnf_flavour_id_reference"`
	RedundancyModel       RedundancyModel `json:"redundancy_modelid"`
	Affinity              string          `json:"affinity"`
	Capability            string          `json:"capability"`
	NumberOfInstances     int             `json:"number_of_instancesid"`
	Version               int             `json:"version"`
}

ConstituentVNF as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type Criteria

type Criteria struct {
	ID                 string       `json:"id,omitempty"`
	Version            int          `json:"version"`
	Name               string       `json:"name"`
	ParameterRef       string       `json:"parameter_ref"`
	Function           string       `json:"function"`
	VNFCSelector       VNFCSelector `json:"vnfc_selector"`
	ComparisonOperator string       `json:"comparison_operator"`
	Threshold          string       `json:"threshold"`
}

type Date

type Date string

func NewDate

func NewDate() Date

func NewDateWithTime

func NewDateWithTime(t time.Time) Date

func UnixDate

func UnixDate(timestamp int64) Date

func (Date) Time

func (d Date) Time() time.Time

type DependencyParameters

type DependencyParameters struct {
	ID         string            `json:"id,omitempty"`
	Version    int               `json:"version"`
	Parameters map[string]string `json:"parameters"`
}

type DeploymentFlavour

type DeploymentFlavour struct {
	ID         string `json:"id,omitempty"`
	Version    int    `json:"version"`
	FlavourKey string `json:"flavour_key"`
	ExtID      string `json:"extId"`
	RAM        int    `json:"ram"`
	Disk       int    `json:"disk"`
	VCPUs      int    `json:"vcpus"`
}

DeploymentFlavour as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type Endpoint

type Endpoint struct {
	ID           string `json:"id,omitempty"`
	Version      int    `json:"version"`
	Type         string `json:"type"`
	EndpointType string `json:"endpointType"`
	Endpoint     string `json:"endpoint"`
	Description  string `json:"description"`
	Enabled      bool   `json:"enabled"`
	Active       bool   `json:"active"`
}

type Event

type Event string

type FaultManagementAction

type FaultManagementAction string

type FaultManagementPolicy

type FaultManagementPolicy struct {
	ID       string            `json:"id,omitempty"`
	Name     string            `json:"name"`
	VNFAlarm bool              `json:"VNFAlarm"`
	Period   int               `json:"period"`
	Severity PerceivedSeverity `json:"severity"`
	Criteria []*Criteria       `json:"criteria"`
	Version  int               `json:"version"`
}

type HighAvailability

type HighAvailability struct {
	ID               string          `json:"id,omitempty"`
	Version          int             `json:"version"`
	ResiliencyLevel  ResiliencyLevel `json:"resiliencyLevel"`
	GeoRedundancy    bool            `json:"geoRedundancy"`
	RedundancyScheme string          `json:"redundancyScheme"`
}

type HistoryLifecycleEvent

type HistoryLifecycleEvent struct {
	ID          string `json:"id,omitempty"`
	Event       string `json:"event"`
	Description string `json:"description"`
	ExecutedAt  string `json:"executedAt"`
}
type InternalVirtualLink struct {
	VirtualLink

	ConnectionPointsReferences []string `json:"connection_points_references"`
}

An extended Virtual Link based on ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type Ip

type Ip struct {
	ID      string `json:"id,omitempty"`
	Version int    `json:"version"`
	NetName string `json:"netname"`
	Ip      string `json:"ip"`
}

type Key

type Key struct {
	ID          string `json:"id,omitempty"`
	Name        string `json:"name"`
	ProjectID   string `json:"projectId"`
	PublicKey   string `json:"publicKey"`
	Fingerprint string `json:"fingerprint"`
}

type LifecycleEvent

type LifecycleEvent struct {
	ID              string   `json:"id,omitempty"`
	Version         int      `json:"version"`
	Event           Event    `json:"event"`
	LifecycleEvents []string `json:"lifecycle_events"`
}

LifecycleEvent as specified in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type LifecycleEvents

type LifecycleEvents []*LifecycleEvent

LifecycleEvents represents a list of LifecycleEvent.

func (LifecycleEvents) Filter

func (les LifecycleEvents) Filter(event Event) LifecycleEvents

Filter returns only the LifecycleEvent having the given Event from the list of events.

type LinkStatus

type LinkStatus string

type Location

type Location struct {
	ID        string `json:"id,omitempty"`
	Version   int    `json:"version,omitempty"`
	Name      string `json:"name,omitempty"`
	Latitude  string `json:"latitude,omitempty"`
	Longitude string `json:"longitude,omitempty"`
}

type NFVEntityDescriptor

type NFVEntityDescriptor struct {
	ID                        string                          `json:"id,omitempty"`
	HbVersion                 int                             `json:"hb_version,omitempty"`
	Name                      string                          `json:"name"`
	ProjectID                 string                          `json:"projectId"`
	Vendor                    string                          `json:"vendor"`
	Version                   string                          `json:"version"`
	VNFFGDs                   []*VNFForwardingGraphDescriptor `json:"vnffgd"`
	VLDs                      []*VirtualLinkDescriptor        `json:"vld"`
	MonitoringParameters      []string                        `json:"monitoring_parameter"`
	ServiceDeploymentFlavours []*DeploymentFlavour            `json:"service_deployment_flavour"`
	AutoScalePolicies         []*AutoScalePolicy              `json:"auto_scale_policy"`
	ConnectionPoints          []*ConnectionPoint              `json:"connection_point"`
}

type NFVImage

type NFVImage struct {
	ID              string `json:"id,omitempty"`
	Version         int    `json:"version"`
	ExtID           string `json:"extId"`
	Name            string `json:"name"`
	MinRAM          int64  `json:"minRam"`
	MinDiskSpace    int64  `json:"minDiskSpace"`
	MinCPU          string `json:"minCPU,omitempty"`
	Public          bool   `json:"public,omitempty"`
	DiskFormat      string `json:"diskFormat,omitempty"`
	ContainerFormat string `json:"containerFormat,omitempty"`
	Created         Date   `json:"created,omitempty"`
	Updated         Date   `json:"updated,omitempty"`
	IsPublic        bool   `json:"isPublic"`
}

type Network

type Network struct {
	ID       string    `json:"id,omitempty"`
	Version  int       `json:"version"`
	Name     string    `json:"name"`
	ExtID    string    `json:"extId"`
	External bool      `json:"external"`
	Shared   bool      `json:"shared"`
	Subnets  []*Subnet `json:"subnets"`
}

type NetworkForwardingPath

type NetworkForwardingPath struct {
	ID         string            `json:"id,omitempty"`
	Version    int               `json:"version"`
	Policy     *Policy           `json:"policy,omitempty"`
	Connection map[string]string `json:"connection,omitempty"`
}

type NetworkServiceDeploymentFlavour

type NetworkServiceDeploymentFlavour struct {
	Vendor                string                      `json:"vendor"`
	Version               string                      `json:"version"`
	NumberOfEndpoints     int                         `json:"number_of_endpoints"`
	ParentNs              string                      `json:"parent_ns"`
	VNFFGRReference       []*VNFForwardingGraphRecord `json:"vnffgr_reference"`
	DescriptorReference   string                      `json:"descriptor_reference"`
	VimID                 string                      `json:"vim_id"`
	AllocatedCapacity     []string                    `json:"allocated_capacity"`
	Status                LinkStatus                  `json:"status"`
	Notification          []string                    `json:"notification"`
	LifecycleEventHistory LifecycleEvents             `json:"lifecycle_event_history"`
	AuditLog              []string                    `json:"audit_log"`
	Connection            []string                    `json:"connection"`
}

NetworkServiceDeploymentFlavour as specified in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type NetworkServiceRecord

type NetworkServiceRecord struct {
	ID                       string                           `json:"id,omitempty"`
	AutoScalePolicy          []*AutoScalePolicy               `json:"auto_scale_policy"`
	ConnectionPoint          []*ConnectionPoint               `json:"connection_point"`
	MonitoringParameter      []string                         `json:"monitoring_parameterid"`
	ServiceDeploymentFlavour NetworkServiceDeploymentFlavour  `json:"service_deployment_flavour"`
	Vendor                   string                           `json:"vendor"`
	ProjectID                string                           `json:"projectId"`
	Task                     string                           `json:"task"`
	Version                  string                           `json:"version"`
	VLR                      []*VirtualLinkRecord             `json:"vlr"`
	VNFR                     []*VirtualNetworkFunctionRecord  `json:"vnfr"`
	VNFDependency            []*VNFRecordDependency           `json:"vnf_dependency"`
	LifecycleEvents          LifecycleEvents                  `json:"lifecycle_event"`
	VNFFGR                   []*VNFForwardingGraphRecord      `json:"vnffgr"`
	PNFR                     []*PhysicalNetworkFunctionRecord `json:"pnfr"`
	FaultManagementPolicy    []*FaultManagementPolicy         `json:"faultManagementPolicy"`
	DescriptorReference      string                           `json:"descriptor_reference"`
	ResourceReservation      string                           `json:"resource_reservation"`
	RuntimePolicyInfo        string                           `json:"runtime_policy_info"`
	Status                   Status                           `json:"status"`
	Notification             string                           `json:"notification"`
	LifecycleEventHistory    LifecycleEvents                  `json:"lifecycle_event_history"`
	AuditLog                 string                           `json:"audit_log"`
	CreatedAt                string                           `json:"createdAt"`
	KeyNames                 []string                         `json:"keyNames"`
	Name                     string                           `json:"name"`
}

NetworkServiceRecord as defined by ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type PerceivedSeverity

type PerceivedSeverity string

type PhysicalNetworkFunctionRecord

type PhysicalNetworkFunctionRecord struct {
	ID                   string                      `json:"id,omitempty"`
	Vendor               string                      `json:"vendor"`
	Version              string                      `json:"version"`
	Description          string                      `json:"description"`
	ProjectID            string                      `json:"projectId"`
	ConnectionPoint      []*ConnectionPoint          `json:"connection_point"`
	ParentNSID           string                      `json:"parent_ns_id"`
	DescriptorReference  string                      `json:"descriptor_reference"`
	VNFFGR               []*VNFForwardingGraphRecord `json:"vnffgr"`
	OamReference         string                      `json:"oam_reference"`
	ConnectedVirtualLink []*VirtualLinkRecord        `json:"connected_virtual_link"`
	PNFAddress           []string                    `json:"pnf_address"`
}

PhysicalNetworkFunctionRecord based on ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type Policy

type Policy struct {
	ID      string `json:"id,omitempty"`
	Version int    `json:"version"`
}

type Quota

type Quota struct {
	ID          string `json:"id"`
	Version     int    `json:"version"`
	Tenant      string `json:"tenant"`
	Cores       int    `json:"cores"`
	FloatingIPs int    `json:"floatingIps"`
	Instances   int    `json:"instances"`
	KeyPairs    int    `json:"keyPairs"`
	RAM         int    `json:"ram"`
}

type RedundancyModel

type RedundancyModel string

type RequiresParameters

type RequiresParameters struct {
	ID         string   `json:"id,omitempty"`
	Version    int      `json:"version"`
	Parameters []string `json:"parameters"`
}

type ResiliencyLevel

type ResiliencyLevel string

type ScalingAction

type ScalingAction struct {
	ID      string            `json:"id,omitempty"`
	Version int               `json:"version"`
	Type    ScalingActionType `json:"type"`
	Value   string            `json:"value,omitempty"`
	Target  string            `json:"target,omitempty"`
}

type ScalingActionType

type ScalingActionType string

type ScalingAlarm

type ScalingAlarm struct {
	ID                 string  `json:"id,omitempty"`
	Version            int     `json:"version"`
	Metric             string  `json:"metric"`
	Statistic          string  `json:"statistic"`
	ComparisonOperator string  `json:"comparisonOperator"`
	Threshold          float64 `json:"threshold"`
	Weight             float64 `json:"weight"`
}

type ScalingMode

type ScalingMode string

type ScalingType

type ScalingType string

type Script

type Script struct {
	ID      string `json:"id,omitempty"`
	Version int    `json:"version"`
	Name    string `json:"name"`
	Payload []byte `json:"-"`
}

type Security

type Security struct {
	ID      string `json:"id,omitempty"`
	Version int    `json:"version"`
}

type Server

type Server struct {
	ID                 string              `json:"id,omitempty"`
	Version            int                 `json:"version"`
	Name               string              `json:"name"`
	Image              *NFVImage           `json:"image"`
	Flavour            *DeploymentFlavour  `json:"flavor"`
	Status             string              `json:"status"`
	ExtendedStatus     string              `json:"extendedStatus"`
	ExtID              string              `json:"extId"`
	IPs                map[string][]string `json:"ips"`
	FloatingIPs        map[string]string   `json:"floatingIps"`
	Created            Date                `json:"created,omitempty"`
	Updated            Date                `json:"updated,omitempty"`
	HostName           string              `json:"hostName"`
	HypervisorHostName string              `json:"hypervisorHostName"`
	InstanceName       string              `json:"instanceName"`
}

type Status

type Status string

type Subnet

type Subnet struct {
	ID        string `json:"id,omitempty"`
	Version   int    `json:"version"`
	Name      string `json:"name"`
	ExtID     string `json:"extId"`
	NetworkID string `json:"networkId"`
	CIDR      string `json:"cidr"`
	GatewayIP string `json:"gatewayIp"`
}

type VDUDependency

type VDUDependency struct {
	ID      string                 `json:"id,omitempty"`
	Version int                    `json:"version"`
	Source  *VirtualDeploymentUnit `json:"source,omitempty"`
	Target  *VirtualDeploymentUnit `json:"target,omitempty"`
}

VDUDepencency as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VIMInstance

type VIMInstance struct {
	ID             string               `json:"id,omitempty"`
	Version        int                  `json:"version"`
	Name           string               `json:"name"`
	AuthURL        string               `json:"authUrl"`
	Tenant         string               `json:"tenant"`
	Username       string               `json:"username"`
	Password       string               `json:"password"`
	KeyPair        string               `json:"keyPair"`
	Location       *Location            `json:"location,omitempty"`
	SecurityGroups []string             `json:"securityGroups"`
	Flavours       []*DeploymentFlavour `json:"flavours"`
	Type           string               `json:"type"`
	Images         []*NFVImage          `json:"images"`
	Networks       []*Network           `json:"networks"`
	ProjectID      string               `json:"projectId"`
	Active         bool                 `json:"active"`
}

func (*VIMInstance) HasFlavour

func (vi *VIMInstance) HasFlavour(key string) bool

type VNFCDependencyParameters

type VNFCDependencyParameters struct {
	VNFCID     string                           `json:"vnfcId"`
	ID         string                           `json:"id,omitempty"`
	Version    int                              `json:"version"`
	Parameters map[string]*DependencyParameters `json:"parameters"`
}

type VNFCInstance

type VNFCInstance struct {
	VNFComponent

	VIMID              string        `json:"vim_id"`
	VCID               string        `json:"vc_id"`
	Hostname           string        `json:"hostname"`
	State              string        `json:"state"`
	NestedVNFComponent *VNFComponent `json:"vnfComponent,omitempty"`
	FloatingIPs        []*Ip         `json:"floatingIps"`
	IPs                []*Ip         `json:"ips"`
}

type VNFCSelector

type VNFCSelector string

type VNFComponent

type VNFComponent struct {
	ID               string                 `json:"id,omitempty"`
	Version          int                    `json:"version"`
	ConnectionPoints []*VNFDConnectionPoint `json:"connection_component"`
}

A VNFComponent as defined by ETSI GS NFV-MAN 001 V1.1.1

type VNFDConnectionPoint

type VNFDConnectionPoint struct {
	ConnectionPoint

	VirtualLinkReference string `json:"virtual_link_reference"`
	FloatingIP           string `json:"floatingIp"`
}

Virtual Network Function Descriptor Connection Point as defined by ETSI GS NFV-MAN 001 V1.1.1

type VNFDeploymentFlavour

type VNFDeploymentFlavour struct {
	DeploymentFlavour
	DfConstraint   []string          `json:"df_constraint"`
	ConstituentVDU []*ConstituentVDU `json:"constituent_vdu"`
}

type VNFForwardingGraphDescriptor

type VNFForwardingGraphDescriptor struct {
	ID                     string                   `json:"id,omitempty"`
	HbVersion              int                      `json:"hb_version"`
	Vendor                 string                   `json:"vendor"`
	Version                string                   `json:"version"`
	NumberOfEndpoints      int                      `json:"number_of_endpoints"`
	NumberOfVirtualLinks   int                      `json:"number_of_virtual_links"`
	DependentVirtualLinks  []*VirtualLinkDescriptor `json:"dependent_virtual_link"`
	NetworkForwardingPaths []*NetworkForwardingPath `json:"network_forwarding_path"`
	ConnectionPoints       []*ConnectionPoint       `json:"connection_point"`
	DescriptorVersion      string                   `json:"descriptor_version"`
	ConstituentVnfs        []*ConstituentVNF        `json:"constituent_vnfs"`
	VnffgdSecurity         *Security                `json:"vnffgd_security,omitempty"`
}

VNFForwardingGraphDescriptor as defined by ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VNFForwardingGraphRecord

type VNFForwardingGraphRecord struct {
	ID                    string                          `json:"id,omitempty"`
	DescriptorReference   *VNFForwardingGraphDescriptor   `json:"descriptor_reference"`
	ParentNS              *NetworkServiceRecord           `json:"parent_ns"`
	DependentVirtualLink  []*VirtualLinkRecord            `json:"dependent_virtual_link"`
	Status                *Status                         `json:"status,omitempty"`
	Notification          []string                        `json:"notification"`
	LifecycleEventHistory LifecycleEvents                 `json:"lifecycle_event_history"`
	AuditLog              string                          `json:"audit_log"`
	NetworkForwardingPath *NetworkForwardingPath          `json:"network_forwarding_path,omitempty"`
	ConnectionPoint       []*VNFDConnectionPoint          `json:"connection_point"`
	MemberVNFs            []*VirtualNetworkFunctionRecord `json:"member_vnfs"`
	Vendor                string                          `json:"vendor"`
	Version               string                          `json:"version"`
	NumberOfEndpoints     int                             `json:"number_of_endpoints"`
	NumberOfVNFs          int                             `json:"number_of_vnfs"`
	NumberOfPNFs          int                             `json:"number_of_pnfs"`
	NumberOfVirtualLinks  int                             `json:"number_of_virtual_links"`
}

Based on ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VNFPackage

type VNFPackage struct {
	ID          string    `json:"id,omitempty"`
	Version     int       `json:"version"`
	Name        string    `json:"name"`
	NFVOVersion string    `json:"nfvo_version"`
	VIMTypes    []string  `json:"vimTypes"`
	ImageLink   string    `json:"imageLink,omitempty"`
	ScriptsLink string    `json:"scriptsLink,omitempty"`
	Image       *NFVImage `json:"image,omitempty"`
	Scripts     []*Script `json:"scripts"`
	ProjectID   string    `json:"projectId"`
}

type VNFRecordDependency

type VNFRecordDependency struct {
	ID             string                               `json:"id,omitempty"`
	Version        int                                  `json:"version"`
	Target         string                               `json:"target"`
	Parameters     map[string]*DependencyParameters     `json:"parameters"`
	VNFCParameters map[string]*VNFCDependencyParameters `json:"vnfcParameters"`
	IDType         map[string]string                    `json:"idType"`
}

type VRFaultManagementPolicy

type VRFaultManagementPolicy struct {
	FaultManagementPolicy

	Action FaultManagementAction `json:"action"`
}

type VirtualDeploymentUnit

type VirtualDeploymentUnit struct {
	ID                              string                     `json:"id,omitempty"`
	Version                         int                        `json:"version"`
	ProjectID                       string                     `json:"projectId"`
	Name                            string                     `json:"name"`
	VMImages                        []string                   `json:"vm_image"`
	ParentVDU                       string                     `json:"parent_vdu"`
	ComputationRequirement          string                     `json:"computation_requirement"`
	VirtualMemoryResourceElement    string                     `json:"virtual_memory_resource_element"`
	VirtualNetworkBandwidthResource string                     `json:"virtual_network_bandwidth_resource"`
	LifecycleEvents                 LifecycleEvents            `json:"lifecycle_event"`
	VduConstraint                   string                     `json:"vdu_constraint"`
	HighAvailability                *HighAvailability          `json:"high_availability,omitempty"`
	FaultManagementPolicies         []*VRFaultManagementPolicy `json:"fault_management_policy,omitempty"`
	ScaleInOut                      int                        `json:"scale_in_out"`
	VNFCs                           []*VNFComponent            `json:"vnfc"`
	VNFCInstances                   []*VNFCInstance            `json:"vnfc_instance"`
	MonitoringParameters            []string                   `json:"monitoring_parameter"`
	Hostname                        string                     `json:"hostname"`
	VIMInstanceNames                []string                   `json:"vimInstanceName"`
}
type VirtualLink struct {
	ID               string   `json:"id,omitempty"`
	HbVersion        int      `json:"hb_version"`
	ExtID            string   `json:"extId"`
	RootRequirement  string   `json:"root_requirement"`
	LeafRequirement  string   `json:"leaf_requirement"`
	QoS              []string `json:"qos"`
	TestAccess       []string `json:"test_access"`
	ConnectivityType []string `json:"connectivity_type"`
	Name             string   `json:"name"`
}

VirtualLink (abstract) based on ETSI GS NFV-MAN 001 V1.1.1 (2014-12) The VLD describes the basic topology of the connectivity (e.g. E-LAN, E-Line, E-Tree) between one or more VNFs connected to this VL and other required parameters (e.g. bandwidth and QoS class). The VLD connection parameters are expected to have similar attributes to those used on the ports on VNFs in ETSI GS NFV-SWA 001 [i.8]. Therefore a set of VLs in a Network Service can be mapped to a Network Connectivity Topology (NCT) as defined in ETSI GS NFV-SWA 001 [i.8].

type VirtualLinkDescriptor

type VirtualLinkDescriptor struct {
	VirtualLink
	ProjectID         string    `json:"projectId"`
	Vendor            string    `json:"vendor"`
	DescriptorVersion string    `json:"descriptor_version"`
	NumberOfEndpoints int       `json:"number_of_endpoints"`
	Connections       []string  `json:"connection"`
	VLDSecurity       *Security `json:"vld_security,omitempty"`
	Name              string    `json:"name"`
}

VirtualLinkDescriptor as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VirtualLinkRecord

type VirtualLinkRecord struct {
	VirtualLink

	Vendor                string                      `json:"vendor"`
	Version               string                      `json:"version"`
	NumberOfEndpoints     int                         `json:"number_of_endpoints"`
	ParentNs              string                      `json:"parent_ns"`
	VNFFGRReference       []*VNFForwardingGraphRecord `json:"vnffgr_reference"`
	DescriptorReference   string                      `json:"descriptor_reference"`
	VimID                 string                      `json:"vim_id"`
	AllocatedCapacity     []string                    `json:"allocated_capacity"`
	Status                LinkStatus                  `json:"status"`
	Notification          []string                    `json:"notification"`
	LifecycleEventHistory LifecycleEvents             `json:"lifecycle_event_history"`
	AuditLog              []string                    `json:"audit_log"`
	Connection            []string                    `json:"connection"`
}

type VirtualNetworkFunctionDescriptor

type VirtualNetworkFunctionDescriptor struct {
	NFVEntityDescriptor

	LifecycleEvents      LifecycleEvents                `json:"lifecycle_event"`
	Configurations       *Configuration                 `json:"configurations,omitempty"`
	VDUs                 []*VirtualDeploymentUnit       `json:"vdu"`
	VirtualLinks         []*InternalVirtualLink         `json:"virtual_link"`
	VDUDependencies      []*VDUDependency               `json:"vdu_dependency"`
	DeploymentFlavours   []*VNFDeploymentFlavour        `json:"deployment_flavour"`
	ManifestFile         string                         `json:"manifest_file"`
	ManifestFileSecurity []*Security                    `json:"manifest_file_security"`
	Type                 string                         `json:"type"`
	Endpoint             string                         `json:"endpoint"`
	VNFPackageLocation   string                         `json:"vnfPackageLocation"`
	Requires             map[string]*RequiresParameters `json:"requires,omitempty"`
	Provides             []string                       `json:"provides,omitempty"`
	CyclicDependency     bool                           `json:"cyclicDependency"`
	ConnectionPoints     []*ConnectionPoint             `json:"connection_point"`
	VNFDConnectionPoints []*VNFDConnectionPoint         `json:"VNFDConnection_point"`
}

VirtualNetworkFunctionDescriptor as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)

type VirtualNetworkFunctionRecord

type VirtualNetworkFunctionRecord struct {
	ID                            string                   `json:"id,omitempty"`
	HbVersion                     int                      `json:"hb_version"`
	AutoScalePolicies             []*AutoScalePolicy       `json:"auto_scale_policy"`
	ConnectionPoints              []*ConnectionPoint       `json:"connection_point"`
	ProjectID                     string                   `json:"projectId"`
	DeploymentFlavourKey          string                   `json:"deployment_flavour_key"`
	Configurations                *Configuration           `json:"configurations,omitempty"`
	LifecycleEvents               LifecycleEvents          `json:"lifecycle_event"`
	LifecycleEventHistory         []*HistoryLifecycleEvent `json:"lifecycle_event_history"`
	Localization                  string                   `json:"localization"`
	MonitoringParameters          []string                 `json:"monitoring_parameter"`
	VDUs                          []*VirtualDeploymentUnit `json:"vdu"`
	Vendor                        string                   `json:"vendor"`
	Version                       string                   `json:"version"`
	VirtualLinks                  []*InternalVirtualLink   `json:"virtual_link"`
	ParentNsID                    string                   `json:"parent_ns_id"`
	DescriptorReference           string                   `json:"descriptor_reference"`
	VNFMID                        string                   `json:"vnfm_id"`
	ConnectedExternalVirtualLinks []*VirtualLinkRecord     `json:"connected_external_virtual_link"`
	VNFAddresses                  []string                 `json:"vnf_address"`
	Status                        Status                   `json:"status"`
	Notifications                 []string                 `json:"notification"`
	AuditLog                      string                   `json:"audit_log"`
	RuntimePolicyInfos            []string                 `json:"runtime_policy_info"`
	Name                          string                   `json:"name"`
	Type                          string                   `json:"type"`
	Endpoint                      string                   `json:"endpoint"`
	Task                          string                   `json:"task"`
	Requires                      *Configuration           `json:"requires,omitempty"`
	Provides                      *Configuration           `json:"provides,omitempty"`
	CyclicDependency              bool                     `json:"cyclic_dependency"`
	PackageID                     string                   `json:"packageId"`
}

A VirtualNetworkFunctionRecord as described by ETSI GS NFV-MAN 001 V1.1.1

func NewVNFR

func NewVNFR(
	vnfd *VirtualNetworkFunctionDescriptor,
	flavourKey string,
	vlrs []*VirtualLinkRecord,
	extension map[string]string,
	vimInstances map[string][]*VIMInstance) (*VirtualNetworkFunctionRecord, error)

NewVNFR returns a new VNFR. TODO: CHECK THIS FUNCTION! Errors here may cause weird, unpredictable bugs.

func (*VirtualNetworkFunctionRecord) FindComponentInstance

func (vnfr *VirtualNetworkFunctionRecord) FindComponentInstance(component *VNFComponent) *VNFCInstance

FindComponentInstance searches an instance of a given VNFComponent inside the VirtualDeploymentUnit of the current VirtualNetworkFunctionRecord.

func (*VirtualNetworkFunctionRecord) String

func (vnfr *VirtualNetworkFunctionRecord) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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