inventory

package
v1.9.11 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MockExistingSites = map[string]*objects.Site{
	"existing_site1": {
		NetboxObject: objects.NetboxObject{
			ID:   1,
			Tags: []*objects.Tag{service.MockDefaultSsotTag},
		},
		Name: "existing_site1",
		Slug: "existing_site1",
	},
	"existing_site2": {
		NetboxObject: objects.NetboxObject{
			ID:   2,
			Tags: []*objects.Tag{service.MockDefaultSsotTag},
		},
		Name: "existing_site2",
		Slug: "existing_site2",
	},
}
View Source
var MockExistingTags = map[string]*objects.Tag{
	"existing_tag1": {
		Name:        "existing_tag1",
		Description: "Test exististing tag1",
		Slug:        "existing_tag1",
	},
	"existing_tag2": {
		Name:        "existing_tag2",
		Description: "Test exististing tag2",
		Slug:        "existing_tag2",
	},
}
View Source
var MockExistingTenants = map[string]*objects.Tenant{
	"existing_tenant1": {
		NetboxObject: objects.NetboxObject{
			ID:   1,
			Tags: []*objects.Tag{service.MockDefaultSsotTag},
		},
		Name: "existing_tenant1",
		Slug: "existing_tenant1",
	},
	"existing_tenant2": {
		NetboxObject: objects.NetboxObject{
			ID:   2,
			Tags: []*objects.Tag{service.MockDefaultSsotTag},
		},
		Name: "existing_tenant2",
		Slug: "existing_tenant2",
	},
}
View Source
var MockInventory = &NetboxInventory{
	Logger:             &logger.Logger{Logger: log.New(os.Stdout, "", log.LstdFlags)},
	tagsIndexByName:    MockExistingTags,
	tagsLock:           sync.Mutex{},
	tenantsIndexByName: MockExistingTenants,
	tenantsLock:        sync.Mutex{},
	sitesIndexByName:   MockExistingSites,
	sitesLock:          sync.Mutex{},
	NetboxAPI:          service.MockNetboxClient,
	Ctx: context.WithValue(
		context.Background(),
		constants.CtxSourceKey,
		"testInventory",
	),
	SsotTag: &objects.Tag{
		ID:          0,
		Name:        "netbox-ssot",
		Slug:        "netbox-ssot",
		Description: "default netbox-ssot tag",
		Color:       "ffffff",
	},
}

Functions

This section is empty.

Types

type NetboxInventory

type NetboxInventory struct {
	// Logger is the logger used for logging messages
	Logger *logger.Logger
	// NetboxConfig is the Netbox configuration
	NetboxConfig *parser.NetboxConfig
	// NetboxAPI is the Netbox API object, for communicating with the Netbox API
	NetboxAPI *service.NetboxClient
	// SourcePriority: if object is found on multiple sources, which source has
	// the priority for the object attributes.
	SourcePriority map[string]int
	// ArpDataLifeSpan determines the lifespan of arp entries in seconds.
	ArpDataLifeSpan int
	// OrphanManager object that manages orphaned objects.
	OrphanManager *OrphanManager
	// Tag used by netbox-ssot to mark devices that are managed by it.
	SsotTag *objects.Tag
	// Default context for the inventory, we use it to pass sourcename
	// to functions for logging.
	Ctx context.Context //nolint:containedctx
	// contains filtered or unexported fields
}

NetboxInventory is a singleton class to manage a inventory of NetBoxObject objects.

func NewNetboxInventory

func NewNetboxInventory(
	ctx context.Context,
	logger *logger.Logger,
	nbConfig *parser.NetboxConfig,
) *NetboxInventory

NewNetboxInventory creates a new NetBoxInventory object. It takes a logger and a NetboxConfig as parameters, and returns a pointer to the newly created NetBoxInventory. The logger is used for logging messages, and the NetboxConfig is used to configure the NetBoxInventory.

func (*NetboxInventory) AddCluster

func (nbi *NetboxInventory) AddCluster(
	ctx context.Context,
	newCluster *objects.Cluster,
) (*objects.Cluster, error)

AddCluster adds a new cluster to the Netbox inventory. It takes a context and a pointer to a Cluster object as input. It returns the newly created cluster object and an error, if any. If the cluster already exists in Netbox, it checks if the existing cluster is up to date. If it is not up to date, it patches the existing cluster with the changes from the new cluster. If the cluster does not exist in Netbox, it creates a new cluster.

func (*NetboxInventory) AddClusterGroup

func (nbi *NetboxInventory) AddClusterGroup(
	ctx context.Context,
	newCg *objects.ClusterGroup,
) (*objects.ClusterGroup, error)

AddClusterGroup adds a new cluster group to the Netbox inventory. It takes a context and a newCg object as input and returns the newly created cluster group and an error (if any). If the cluster group already exists in Netbox, it checks if it is up to date and patches it if necessary. If the cluster group does not exist, it creates a new one. The function also updates the cluster group index by name and removes the ID from the orphan manager.

func (*NetboxInventory) AddClusterType

func (nbi *NetboxInventory) AddClusterType(
	ctx context.Context,
	newClusterType *objects.ClusterType,
) (*objects.ClusterType, error)

AddClusterType adds a new cluster type to the Netbox inventory. It takes a context and a newClusterType object as input and returns the created or updated cluster type object and an error, if any. If the cluster type already exists in Netbox, it checks if it is up to date. If not, it patches the existing cluster type. If the cluster type does not exist, it creates a new one.

func (*NetboxInventory) AddContact

func (nbi *NetboxInventory) AddContact(
	ctx context.Context,
	newContact *objects.Contact,
) (*objects.Contact, error)

AddContact adds a contact to the local netbox inventory.

func (*NetboxInventory) AddContactAssignment

func (nbi *NetboxInventory) AddContactAssignment(
	ctx context.Context,
	newCA *objects.ContactAssignment,
) (*objects.ContactAssignment, error)

AddContact assignment adds a contact assignment to the local netbox inventory. TODO: Make index check less code and more universal, checking each level is ugly.

func (*NetboxInventory) AddContactGroup

func (nbi *NetboxInventory) AddContactGroup(
	ctx context.Context,
	newContactGroup *objects.ContactGroup,
) (*objects.ContactGroup, error)

AddContactGroup adds contact group to the local netbox inventory.

func (*NetboxInventory) AddContactRole

func (nbi *NetboxInventory) AddContactRole(
	ctx context.Context,
	newContactRole *objects.ContactRole,
) (*objects.ContactRole, error)

AddContactRole adds the newContactRole to the local netbox inventory.

func (*NetboxInventory) AddContainerDeviceRole added in v1.6.0

func (nbi *NetboxInventory) AddContainerDeviceRole(
	ctx context.Context,
) (*objects.DeviceRole, error)

func (*NetboxInventory) AddCustomField

func (nbi *NetboxInventory) AddCustomField(
	ctx context.Context,
	newCf *objects.CustomField,
) (*objects.CustomField, error)

AddCustomField adds a custom field to the Netbox inventory. It takes a context and a newCf object as input and returns the created or patched custom field along with any error encountered. If the custom field already exists in Netbox but is out of date, it will be patched with the new values. If the custom field does not exist, it will be created.

func (*NetboxInventory) AddDevice

func (nbi *NetboxInventory) AddDevice(
	ctx context.Context,
	newDevice *objects.Device,
) (*objects.Device, error)

AddRackRole adds a new rack role to the Netbox inventory. It takes a context and a newRackRole object as input and returns the created or updated rack role object and an error, if any. If the rack role already exists in Netbox, it checks if it is up to date and patches it if necessary. If the rack role does not exist, it creates a new one.

func (*NetboxInventory) AddDeviceRole

func (nbi *NetboxInventory) AddDeviceRole(
	ctx context.Context,
	newDeviceRole *objects.DeviceRole,
) (*objects.DeviceRole, error)

AddDeviceRole adds a new device role to the Netbox inventory. It takes a context and a newDeviceRole object as input and returns the created device role object and an error, if any. If the device role already exists in Netbox, it checks if it is up to date and patches it if necessary. If the device role does not exist, it creates a new one.

func (*NetboxInventory) AddDeviceType

func (nbi *NetboxInventory) AddDeviceType(
	ctx context.Context,
	newDeviceType *objects.DeviceType,
) (*objects.DeviceType, error)

AddDeviceType adds a new device type to the Netbox inventory. It takes a context and a newDeviceType object as input and returns the created or updated device type object and an error, if any. If the device type already exists in Netbox, it checks if it is up to date and patches it if necessary. If the device type does not exist, it creates a new one.

func (*NetboxInventory) AddFirewallDeviceRole added in v1.6.0

func (nbi *NetboxInventory) AddFirewallDeviceRole(
	ctx context.Context,
) (*objects.DeviceRole, error)

func (*NetboxInventory) AddIPAddress

func (nbi *NetboxInventory) AddIPAddress(
	ctx context.Context,
	newIPAddress *objects.IPAddress,
) (*objects.IPAddress, error)

AddIPAddress adds a new IP address to the Netbox inventory. It takes a context and a newIPAddress object as input and returns the created or updated IP address object and an error, if any. If the IP address already exists in Netbox, it checks if it is up to date and patches it if necessary. If the IP address does not exist, it creates a new one.

func (*NetboxInventory) AddInterface

func (nbi *NetboxInventory) AddInterface(
	ctx context.Context,
	newInterface *objects.Interface,
) (*objects.Interface, error)

AddInterface adds a new interface to the Netbox inventory. It takes a context and a newInterface object as input and returns the created or updated interface object and an error, if any. If the interface already exists in Netbox, it checks if it is up to date and patches it if necessary. If the interface does not exist, it creates a new one.

func (*NetboxInventory) AddMACAddress added in v1.9.0

func (nbi *NetboxInventory) AddMACAddress(
	ctx context.Context,
	newMACAddress *objects.MACAddress,
) (*objects.MACAddress, error)

AddMACAddress adds a new MAC address to the Netbox inventory. It takes a context and a newMACAddress object as input and returns the created or updated MAC address object and an error, if any. If the MAC address already exists in Netbox, it checks if it is up to date and patches it if necessary. If the MAC address does not exist, it creates a new one.

func (*NetboxInventory) AddManufacturer

func (nbi *NetboxInventory) AddManufacturer(
	ctx context.Context,
	newManufacturer *objects.Manufacturer,
) (*objects.Manufacturer, error)

AddManufacturer adds a new manufacturer to the Netbox inventory. It takes a context, `ctx`, and a pointer to a `newManufacturer` object as input. The function returns a pointer to the newly created manufacturer and an error, if any. If the manufacturer already exists in Netbox, the function checks if it is up to date. If it is not up to date, the function patches the existing manufacturer with the updated information. If the manufacturer does not exist in Netbox, the function creates a new one.

func (*NetboxInventory) AddPlatform

func (nbi *NetboxInventory) AddPlatform(
	ctx context.Context,
	newPlatform *objects.Platform,
) (*objects.Platform, error)

AddPlatform adds a new platform to the Netbox inventory. It takes a context and a newPlatform object as input and returns the created or updated platform object and an error, if any. If the platform already exists in Netbox, it checks if it is up to date and patches it if necessary. If the platform does not exist, it creates a new one.

func (*NetboxInventory) AddPrefix

func (nbi *NetboxInventory) AddPrefix(
	ctx context.Context,
	newPrefix *objects.Prefix,
) (*objects.Prefix, error)

AddPrefix adds a new prefix to the Netbox inventory. It takes a context and a newPrefix object as input and returns the created or updated prefix object and an error, if any. If the prefix already exists in Netbox, it checks if it is up to date and patches it if necessary. If the prefix does not exist, it creates a new one.

func (*NetboxInventory) AddServerDeviceRole added in v1.6.0

func (nbi *NetboxInventory) AddServerDeviceRole(ctx context.Context) (*objects.DeviceRole, error)

func (*NetboxInventory) AddSite

func (nbi *NetboxInventory) AddSite(
	ctx context.Context,
	newSite *objects.Site,
) (*objects.Site, error)

AddSite adds a site to the local netbox inventory.

func (*NetboxInventory) AddSiteGroup added in v1.9.3

func (nbi *NetboxInventory) AddSiteGroup(
	ctx context.Context,
	newSiteGroup *objects.SiteGroup,
) (*objects.SiteGroup, error)

AddSiteGroup adds a SiteGroup to the local netbox inventory.

func (*NetboxInventory) AddSwitchDeviceRole added in v1.6.0

func (nbi *NetboxInventory) AddSwitchDeviceRole(ctx context.Context) (*objects.DeviceRole, error)

func (*NetboxInventory) AddTag

func (nbi *NetboxInventory) AddTag(ctx context.Context, newTag *objects.Tag) (*objects.Tag, error)

AddTag adds the newTag from source sourceName to the local inventory.

func (*NetboxInventory) AddTenant added in v0.2.2

func (nbi *NetboxInventory) AddTenant(
	ctx context.Context,
	newTenant *objects.Tenant,
) (*objects.Tenant, error)

AddTenants adds a new tenant to the local netbox inventory.

func (*NetboxInventory) AddVM

func (nbi *NetboxInventory) AddVM(ctx context.Context, newVM *objects.VM) (*objects.VM, error)

AddVM adds a new virtual machine to the Netbox inventory. It takes a context and a newVM object as input and returns the created or updated virtual machine object and an error, if any. If the virtual machine already exists in Netbox, it checks if it is up to date and patches it if necessary. If the virtual machine does not exist, it creates a new one.

func (*NetboxInventory) AddVMDeviceRole added in v1.6.0

func (nbi *NetboxInventory) AddVMDeviceRole(ctx context.Context) (*objects.DeviceRole, error)

func (*NetboxInventory) AddVMInterface

func (nbi *NetboxInventory) AddVMInterface(
	ctx context.Context,
	newVMInterface *objects.VMInterface,
) (*objects.VMInterface, error)

AddVMInterface adds a new virtual machine interface to the Netbox inventory. It takes a context and a newVMInterface object as input and returns the created or updated virtual machine interface object and an error, if any. If the virtual machine interface already exists in Netbox, it checks if it is up to date and patches it if necessary. If the virtual machine interface does not exist, it creates a new one.

func (*NetboxInventory) AddVMTemplateDeviceRole added in v1.6.0

func (nbi *NetboxInventory) AddVMTemplateDeviceRole(
	ctx context.Context,
) (*objects.DeviceRole, error)

func (*NetboxInventory) AddVirtualDeviceContext added in v0.4.0

func (nbi *NetboxInventory) AddVirtualDeviceContext(
	ctx context.Context,
	newVDC *objects.VirtualDeviceContext,
) (*objects.VirtualDeviceContext, error)

AddVirtualDeviceContext adds new virtual device context to the local inventory. It takes a context and a newVDC object as input and returns the created or updated virtual device context object and an error, if any. If the virtual device context already exists in Netbox, it checks if it is up to date and patches it if necessary. If the virtual device context does not exist, it creates a new one.

func (*NetboxInventory) AddVlan

func (nbi *NetboxInventory) AddVlan(
	ctx context.Context,
	newVlan *objects.Vlan,
) (*objects.Vlan, error)

AddVlan adds a new vlan to the Netbox inventory. It takes a context and a newVlan object as input and returns the created or updated vlan object and an error, if any. If the vlan already exists in Netbox, it checks if it is up to date and patches it if necessary. If the vlan does not exist, it creates a new one.

func (*NetboxInventory) AddVlanGroup

func (nbi *NetboxInventory) AddVlanGroup(
	ctx context.Context,
	newVlanGroup *objects.VlanGroup,
) (*objects.VlanGroup, error)

AddVlanGroup adds a new vlan group to the Netbox inventory. It takes a context and a newVlanGroup object as input and returns the created or updated vlan group object and an error, if any. If the vlan group already exists in Netbox, it checks if it is up to date and patches it if necessary. If the vlan group does not exist, it creates a new one.

func (*NetboxInventory) AddWirelessLAN added in v1.5.0

func (nbi *NetboxInventory) AddWirelessLAN(
	ctx context.Context,
	newWirelessLan *objects.WirelessLAN,
) (*objects.WirelessLAN, error)

AddWirelessLAN adds a new wireless LAN to the Netbox inventory. It takes a context and a newWirelessLan object as input and returns the created or updated wireless LAN object and an error, if any. If the wireless LAN already exists in Netbox, it checks if it is up to date and patches it if necessary. If the wireless LAN does not exist, it creates a new one.

func (*NetboxInventory) AddWirelessLANGroup added in v1.5.0

func (nbi *NetboxInventory) AddWirelessLANGroup(
	ctx context.Context,
	newWirelessLANGroup *objects.WirelessLANGroup,
) (*objects.WirelessLANGroup, error)

AddWirelessLANGroup adds a new wireless LAN group to the Netbox inventory. It takes a context and a newWirelessLANGroup object as input and returns the created or updated wireless LAN group object and an error, if any. If the wireless LAN group already exists in Netbox, it checks if it is up to date and patches it if necessary. If the wireless LAN group does not exist, it creates a new one.

func (*NetboxInventory) CreateDefaultVlanGroupForVlan added in v1.8.0

func (nbi *NetboxInventory) CreateDefaultVlanGroupForVlan(
	ctx context.Context,
	vlanSite *objects.Site,
) (*objects.VlanGroup, error)

Inits default VlanGroup, which is required to group all Vlans that are not part of other vlangroups into it. Each vlan is indexed by their (vlanGroup, vid).

func (*NetboxInventory) DeleteOrphans

func (nbi *NetboxInventory) DeleteOrphans(hard bool) error

func (*NetboxInventory) GetCluster added in v1.4.1

func (nbi *NetboxInventory) GetCluster(clusterName string) (*objects.Cluster, bool)

GetCluster returns the Cluster for the given clusterName. It returns nil if the Cluster is not found. This function is thread-safe.

func (*NetboxInventory) GetClusterGroup added in v1.4.1

func (nbi *NetboxInventory) GetClusterGroup(clusterGroupName string) (*objects.ClusterGroup, bool)

GetClusterGroup returns the ClusterGroup for the given clusterGroupName. It returns nil if the ClusterGroup is not found. This function is thread-safe.

func (*NetboxInventory) GetContactAssignment added in v1.6.0

func (nbi *NetboxInventory) GetContactAssignment(
	contentType constants.ContentType,
	objectID int,
	contactID int,
	roleID int,
) (*objects.ContactAssignment, bool)

GetContactAssignment returns the ContactAssignment for the given contentType, objectID, contactID and roleID. It returns nil if the ContactAssignment is not found. This function is thread-safe.

func (*NetboxInventory) GetContactRole added in v1.6.0

func (nbi *NetboxInventory) GetContactRole(contactRoleName string) (*objects.ContactRole, bool)

GetContactRole returns the ContactRole for the given contactRoleName. It returns nil if the ContactRole is not found. This function is thread-safe.

func (*NetboxInventory) GetCustomField added in v1.6.0

func (nbi *NetboxInventory) GetCustomField(customFieldName string) (*objects.CustomField, bool)

GetCustomField returns the CustomField for the given customFieldName. It returns nil if the CustomField is not found. This function is thread-safe.

func (*NetboxInventory) GetDevice added in v1.4.1

func (nbi *NetboxInventory) GetDevice(deviceName string, siteID int) (*objects.Device, bool)

func (*NetboxInventory) GetDeviceByID added in v1.9.0

func (nbi *NetboxInventory) GetDeviceByID(deviceID int) *objects.Device

GetDeviceByID returns the Device for the given deviceID. It returns nil if the Device is not found. This function is thread-safe.

func (*NetboxInventory) GetDeviceRole added in v1.4.7

func (nbi *NetboxInventory) GetDeviceRole(deviceRoleName string) (*objects.DeviceRole, bool)

func (*NetboxInventory) GetInterface added in v1.6.0

func (nbi *NetboxInventory) GetInterface(
	interfaceName string,
	deviceID int,
) (*objects.Interface, bool)

GetInterface returns the Interface for the given interfaceName and deviceID. It returns nil if the Interface is not found. This function is thread-safe.

func (*NetboxInventory) GetInterfaceByID added in v1.9.0

func (nbi *NetboxInventory) GetInterfaceByID(interfaceID int) *objects.Interface

GetInterfaceByID returns the Interface for the given interfaceID. It returns nil if the Interface is not found. This function is thread-safe.

func (*NetboxInventory) GetManufacturer added in v1.6.0

func (nbi *NetboxInventory) GetManufacturer(manufacturerName string) (*objects.Manufacturer, bool)

GetManufacturer returns the Manufacturer for the given manufacturerName. It returns nil if the Manufacturer is not found. This function is thread-safe.

func (*NetboxInventory) GetSite added in v1.4.1

func (nbi *NetboxInventory) GetSite(siteName string) (*objects.Site, bool)

GetSite returns the Site for the given siteName. It returns nil if the Site is not found. This function is thread-safe.

func (*NetboxInventory) GetSiteByID added in v1.9.0

func (nbi *NetboxInventory) GetSiteByID(siteID int) *objects.Site

GetSiteByID returns the Site for the given siteID. It returns nil if the Site is not found. This function is thread-safe.

func (*NetboxInventory) GetTag added in v1.6.0

func (nbi *NetboxInventory) GetTag(tagName string) (*objects.Tag, bool)

GetTag returns the Tag for the given tagName. It returns nil if the Tag is not found. This function is thread-safe.

func (*NetboxInventory) GetTenant added in v1.4.1

func (nbi *NetboxInventory) GetTenant(tenantName string) (*objects.Tenant, bool)

GetTenant returns the Tenant for the given tenantName. It returns nil if the Tenant is not found. This function is thread-safe.

func (*NetboxInventory) GetVMByID added in v1.9.0

func (nbi *NetboxInventory) GetVMByID(vmID int) *objects.VM

GetVMByID returns the VirtualMachine for the given vmID. It returns nil if the VirtualMachine is not found. This function is thread-safe.

func (*NetboxInventory) GetVMInterfaceByID added in v1.9.0

func (nbi *NetboxInventory) GetVMInterfaceByID(vmInterfaceID int) *objects.VMInterface

GetVMInterfaceByID returns the VMInterface for the given vmInterfaceID. It returns nil if the VMInterface is not found. This function is thread-safe.

func (*NetboxInventory) GetVirtualDeviceContext added in v1.6.0

func (nbi *NetboxInventory) GetVirtualDeviceContext(
	zoneName string,
	deviceID int,
) (*objects.VirtualDeviceContext, bool)

GetVirtualDeviceContext returns the VirtualDeviceContext for the given zoneName and deviceID. It returns nil if the VirtualDeviceContext is not found. This function is thread-safe.

func (*NetboxInventory) GetVlan added in v1.4.0

func (nbi *NetboxInventory) GetVlan(groupID, vlanID int) (*objects.Vlan, bool)

GetVlan returns the VLAN for the given groupID and vlanID. It returns nil if the VLAN is not found. This function is thread-safe.

func (*NetboxInventory) GetVlanGroup added in v1.4.1

func (nbi *NetboxInventory) GetVlanGroup(vlanGroupName string) (*objects.VlanGroup, bool)

GetVlanGroup returns the VlanGroup for the given vlanGroupName. It returns nil if the VlanGroup is not found. This function is thread-safe.

func (*NetboxInventory) Init

func (nbi *NetboxInventory) Init() error

Init function that initializes the NetBoxInventory object with objects from Netbox.

func (*NetboxInventory) String

func (nbi *NetboxInventory) String() string

Func string representation.

type OrphanManager added in v1.6.0

type OrphanManager struct {
	// ItemsSet is a map of objectAPIPath to a set of managed ids for that object type.
	//
	// {
	//		"/api/dcim/devices/": {22: true, 3: true, ...},
	//		"/api/dcim/interface/": {15: true, 36: true, ...},
	//  	"/api/virtualization/clusters/": {121: true, 122: true, ...},
	//  	"...": [...]
	// }
	//
	// It stores which objects have been created by netbox-ssot and can be deleted
	// because they are not available in the sources anymore
	Items map[constants.APIPath]map[int]objects.OrphanItem
	// OrphanObjectPriority is a map that stores priorities for each object. This is necessary
	// because map order is non deterministic and if we delete dependent object first we will
	// get the dependency error.
	//
	// {
	//   0: service.TagApiPath,
	//   1: service.CustomFieldApiPath,
	//   ...
	// }
	OrphanObjectPriority map[int]constants.APIPath
	// Tag for orphaned objects. Initialized in initTags.
	Tag *objects.Tag
	// Logger for orphan manager
	Logger *logger.Logger
	// Context for orphan manager
	Ctx context.Context
}

func NewOrphanManager added in v1.6.0

func NewOrphanManager(logger *logger.Logger) *OrphanManager

func (*OrphanManager) AddItem added in v1.6.0

func (orphanManager *OrphanManager) AddItem(orphanItem objects.OrphanItem)

func (*OrphanManager) RemoveItem added in v1.6.0

func (orphanManager *OrphanManager) RemoveItem(obj objects.OrphanItem)

Jump to

Keyboard shortcuts

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