Documentation ¶
Overview ¶
Package catalogue contains a partial implementation of the OpenBaton catalogue.
Index ¶
- Constants
- type Action
- type AutoScalePolicy
- type Component
- type Configuration
- type ConfigurationParameter
- type ConnectionPoint
- type ConstituentVDU
- type ConstituentVNF
- type Criteria
- type Date
- type DependencyParameters
- type DeploymentFlavour
- type Endpoint
- type Event
- type FaultManagementAction
- type FaultManagementPolicy
- type HighAvailability
- type HistoryLifecycleEvent
- type InternalVirtualLink
- type Ip
- type Key
- type LifecycleEvent
- type LifecycleEvents
- type LinkStatus
- type Location
- type NFVEntityDescriptor
- type NFVImage
- type Network
- type NetworkForwardingPath
- type NetworkServiceDeploymentFlavour
- type NetworkServiceRecord
- type PerceivedSeverity
- type PhysicalNetworkFunctionRecord
- 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 VIMInstance
- 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
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 ( 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"` 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 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 ConnectionPoint ¶
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 DependencyParameters ¶
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 FaultManagementAction ¶
type FaultManagementAction string
type FaultManagementPolicy ¶
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 InternalVirtualLink ¶
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 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 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 NetworkForwardingPath ¶
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 RedundancyModel ¶
type RedundancyModel string
type RequiresParameters ¶
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 ScalingMode ¶
type ScalingMode string
type ScalingType ¶
type ScalingType string
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 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 ¶
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