Documentation ¶
Overview ¶
Package catalogue contains a partial implementation of the OpenBaton catalogue.
Index ¶
- Constants
- type Action
- type AutoScalePolicy
- type BaseEntity
- type BaseImageInt
- type BaseNetwork
- type BaseNetworkInt
- type BaseNfvImage
- type BaseVimInstance
- type Component
- type Configuration
- type ConfigurationParameter
- type ConnectionPoint
- type ConstituentVDU
- type ConstituentVNF
- type Criteria
- type Date
- type DependencyParameters
- type DeploymentFlavour
- type DockerImage
- type DockerNetwork
- type DockerVimInstance
- type Endpoint
- type Event
- type FaultManagementAction
- type FaultManagementPolicy
- type HighAvailability
- type HistoryLifecycleEvent
- type IP
- type ImageStatus
- type InternalVirtualLink
- type Key
- type KubernatesNamespeces
- type KubernetesVimInstance
- type LifecycleEvent
- type LifecycleEvents
- type LinkStatus
- type Location
- type ManagerCredentials
- type ManagerUnregisterMessage
- type NFVEntityDescriptor
- type NetworkForwardingPath
- type NetworkServiceDeploymentFlavour
- type NetworkServiceRecord
- type OpenstackVimInstance
- type PerceivedSeverity
- type PhysicalNetworkFunctionRecord
- type PluginRegisterMessage
- type Policy
- type Quota
- type RedundancyModel
- type RequiresParameters
- type ResiliencyLevel
- type ScalingAction
- type ScalingActionType
- type ScalingAlarm
- type ScalingMode
- type ScalingType
- type Script
- type Security
- type Server
- type Status
- type Subnet
- type VDUDependency
- type VNFCDependencyParameters
- type VNFCInstance
- type VNFCSelector
- type VNFComponent
- type VNFDConnectionPoint
- type VNFDeploymentFlavour
- type VNFForwardingGraphDescriptor
- type VNFForwardingGraphRecord
- type VNFPackage
- type VNFRecordDependency
- type VRFaultManagementPolicy
- type VirtualDeploymentUnit
- type VirtualLink
- type VirtualLinkDescriptor
- type VirtualLinkRecord
- type VirtualNetworkFunctionDescriptor
- type VirtualNetworkFunctionRecord
- type VnfmManagerUnregisterMessage
- type VnfmRegisterMessage
Constants ¶
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") )
const ( RedundancyActive = RedundancyModel("ACTIVE") RedundancyStandby = RedundancyModel("STANDBY") )
const ( ResiliencyActiveStandbyStateless = ResiliencyLevel("ACTIVE_STANDBY_STATELESS") ResiliencyActiveStandbyStateful = ResiliencyLevel("ACTIVE_STANDBY_STATEFUL") )
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") )
const ( ScaleModeReactive = ScalingMode("REACTIVE") ScaleModeProactive = ScalingMode("PROACTIVE") ScaleModePredictive = ScalingMode("PREDICTIVE") )
const ( ScaleTypeSingle = ScalingType("SINGLE") ScaleTypeVoted = ScalingType("VOTED") ScaleTypeWeighted = ScalingType("WEIGHTED") )
const ( FaultRestart = FaultManagementAction("RESTART") FaultReinstantiateService = FaultManagementAction("REINSTANTIATE_SERVICE") FaultHeal = FaultManagementAction("HEAL") FaultReinstantiate = FaultManagementAction("REINSTANTIATE") FaultSwitchToStandby = FaultManagementAction("SWITCH_TO_STANDBY") FaultSwitchToActive = FaultManagementAction("SWITCH_TO_ACTIVE") )
const ( SelectorAtLeastOne = VNFCSelector("at_least_one") SelectorAll = VNFCSelector("all") )
const ( SeverityIndeterminate = PerceivedSeverity("INDETERMINATE") SeverityWarning = PerceivedSeverity("WARNING") SeverityMinor = PerceivedSeverity("MINOR") SeverityMajor = PerceivedSeverity("MAJOR") SeverityCritical = PerceivedSeverity("CRITICAL") )
const ( LinkDown = LinkStatus("LINKDOWN") LinkNormalOperation = LinkStatus("NORMALOPERATION") LinkDegradeOperation = LinkStatus("DEGRADEDOPERATION") LinkOfflineThroughManagementAction = LinkStatus("OFFLINETHROUGHMANAGEMENTACTION") )
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") )
const ( Active = ImageStatus("ACTIVE") Error = ImageStatus("ERROR") )
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 AutoScalePolicy ¶
type AutoScalePolicy struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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 BaseEntity ¶
type BaseImageInt ¶
type BaseImageInt interface{}
type BaseNetwork ¶
type BaseNetworkInt ¶
type BaseNetworkInt interface{}
type BaseNfvImage ¶
type BaseVimInstance ¶
type BaseVimInstance struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Name string `json:"name"` AuthURL string `json:"authUrl"` Active bool `json:"active"` Location *Location `json:"location,omitempty"` Type string `json:"type"` }
type Configuration ¶
type Configuration struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Description string `json:"description,omitempty"` ConfKey string `json:"confKey"` Value string `json:"value,omitempty"` }
type ConnectionPoint ¶
type ConstituentVDU ¶
type ConstituentVDU struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,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 DependencyParameters ¶
type DeploymentFlavour ¶
type DeploymentFlavour struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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 DockerImage ¶
type DockerImage struct { BaseNfvImage Tags []string `json:"tags"` }
type DockerNetwork ¶
type DockerNetwork struct { BaseNetwork Scope string `json:"scope"` Driver string `json:"driver"` Gateway string `json:"gateway"` Subnet string `json:"subnet"` }
type DockerVimInstance ¶
type DockerVimInstance struct { BaseVimInstance Ca string `json:"ca"` Cert string `json:"cert"` DockerKey string `json:"dockerKey"` Images []DockerImage `json:"images"` Networks []DockerNetwork `json:"networks"` }
type Endpoint ¶
type Endpoint struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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 FaultManagementAction ¶
type FaultManagementAction string
type FaultManagementPolicy ¶
type HighAvailability ¶
type HighAvailability struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` ResiliencyLevel ResiliencyLevel `json:"resiliencyLevel"` GeoRedundancy bool `json:"geoRedundancy"` RedundancyScheme string `json:"redundancyScheme"` }
type HistoryLifecycleEvent ¶
type HistoryLifecycleEvent struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Event string `json:"event"` Description string `json:"description"` ExecutedAt string `json:"executedAt"` }
type ImageStatus ¶
type ImageStatus string
type InternalVirtualLink ¶
type InternalVirtualLink struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` ConnectionPointsReferences []string `json:"connection_points_references"` }
An extended Virtual Link based on ETSI GS NFV-MAN 001 V1.1.1 (2014-12)
type KubernatesNamespeces ¶
type KubernatesNamespeces struct {
Name string `json:"name"`
}
type KubernetesVimInstance ¶
type KubernetesVimInstance struct { BaseVimInstance ConfigFilePath string `json:"configFilePath"` Namespaces []*KubernatesNamespeces `json:"networks"` Images []string `json:"images"` }
type LifecycleEvent ¶
type LifecycleEvent struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Name string `json:"name,omitempty"` Latitude string `json:"latitude,omitempty"` Longitude string `json:"longitude,omitempty"` }
type ManagerCredentials ¶
type NFVEntityDescriptor ¶
type NFVEntityDescriptor struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Name string `json:"name"` 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 NetworkForwardingPath ¶
type NetworkForwardingPath struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Policy *Policy `json:"policy,omitempty"` Connection map[string]string `json:"connection,omitempty"` }
type NetworkServiceDeploymentFlavour ¶
type NetworkServiceDeploymentFlavour struct { DeploymentFlavour 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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,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"` 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 OpenstackVimInstance ¶
type OpenstackVimInstance struct { BaseVimInstance Username string `json:"username"` Password string `json:"password"` KeyPair string `json:"keyPair"` Tenant string `json:"tenant"` }
type PerceivedSeverity ¶
type PerceivedSeverity string
type PhysicalNetworkFunctionRecord ¶
type PhysicalNetworkFunctionRecord struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Vendor string `json:"vendor"` Version string `json:"version"` Description string `json:"description"` 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 PluginRegisterMessage ¶
type Quota ¶
type Quota struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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 ResiliencyLevel ¶
type ResiliencyLevel string
type ScalingAction ¶
type ScalingAction struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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 Server ¶
type Server struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Name string `json:"name"` Image BaseImageInt `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 Subnet ¶
type Subnet struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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 VNFCDependencyParameters ¶
type VNFCDependencyParameters struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` VNFCID string `json:"vnfcId"` Parameters map[string]*DependencyParameters `json:"parameters"` }
type VNFCInstance ¶
type VNFCInstance struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` ConnectionPoints []*VNFDConnectionPoint `json:"connection_point"` VIMID string `json:"vim_id"` VCID string `json:"vc_id"` Hostname string `json:"hostname"` State string `json:"state"` VNFComponent *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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` ConnectionPoints []*VNFDConnectionPoint `json:"connection_point"` }
A VNFComponent as defined by ETSI GS NFV-MAN 001 V1.1.1
type VNFDConnectionPoint ¶
type VNFDConnectionPoint struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Type string `json:"type"` FixedIp string `json:"fixedIp"` ChosenPool string `json:"chosenPool"` VirtualLinkReference string `json:"virtual_link_reference"` VirtualLinkReferenceId string `json:"virtual_link_reference_id"` FloatingIP string `json:"floatingIp"` InterfaceID int `json:"interfaceId"` }
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:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Name string `json:"name"` NFVOVersion string `json:"nfvo_version"` VIMTypes []string `json:"vimTypes"` ImageLink string `json:"imageLink,omitempty"` ScriptsLink string `json:"scriptsLink,omitempty"` Image *BaseNfvImage `json:"image,omitempty"` Scripts []*Script `json:"scripts"` }
type VNFRecordDependency ¶
type VNFRecordDependency struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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 ¶
type VirtualLink struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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 { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` 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"` }
VirtualLinkDescriptor as described in ETSI GS NFV-MAN 001 V1.1.1 (2014-12)
type VirtualLinkRecord ¶
type VirtualLinkRecord struct { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` 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"` 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 { ID string `json:"id,omitempty"` HbVersion int `json:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` Name string `json:"name"` 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"` 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"` 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:"hbVersion,omitempty"` ProjectID string `json:"projectId"` Metadata map[string]string `json:"metadata,omitempty"` AutoScalePolicies []*AutoScalePolicy `json:"auto_scale_policy"` ConnectionPoints []*ConnectionPoint `json:"connection_point"` 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][]interface{}) (*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