Interface MorpheusNetworkService

All Superinterfaces:
MorpheusDataQueryService<Network>, MorpheusDataService<Network,NetworkIdentityProjection>, MorpheusIdentityService<NetworkIdentityProjection>

Morpheus Context as it relates to network related operations. This context contains methods for querying things like network pools network domains, and other network related objects. It also contains methods for applying updates ore creating new objects related to networks. Typically this class is accessed via the primary MorpheusContext.
See Also:
  • Method Details

    • getPool

      Returns the NetworkPoolContext used for performing updates or queries on NetworkPool related assets within Morpheus. Typically this would be called by a DNSProvider or IPAMProvider.
      Returns:
      An instance of the Network Pool Context to be used for calls by various network providers
    • getDomain

      Returns the NetworkDomainContext used for performing updates/queries on NetworkDomain related assets within Morpheus. Most useful when implementing DNS related services.
      Returns:
      An instance of the Network Domain Context to be used for calls by various network providers
    • getType

      Returns the MorpheusNetworkTypeContext used for performing updates/queries on NetworkType related assets within Morpheus.
      Returns:
      An instance of the NetworkTypeContext to be used for calls by various network providers
    • getServer

      Returns the MorpheusNetworkServerService used for performing updates/queries on NetworkServer related assets within Morpheus
      Returns:
      An instance of the MorpheusNetworkServerService
    • getRouter

      Returns the MorpheusNetworkRouterService used for performing updates/queries on NetworkRouter related assets within Morpheus
      Returns:
      An instance of the MorpheusNetworkRouterService
    • getRouteTable

      Returns the MorpheusNetworkRouteTableService used for performing updates/queries on NetworkRouteTable related assets within Morpheus
      Returns:
      An instance of the MorpheusNetworkRouteTableService
    • getNetworkProxy

      MorpheusNetworkProxyService getNetworkProxy()
      Returns the MorpheusNetworkProxyService used for performing updates/queries on NetworkProxy related assets within Morpheus
      Returns:
      An instance of the MorpheusNetworkProxyService
    • updateNetworkPoolServerStatus

      io.reactivex.rxjava3.core.Completable updateNetworkPoolServerStatus(NetworkPoolServer poolServer, AccountIntegration.Status status, String message)
      Used for updating the status of a NetworkPoolServer integration.
      Parameters:
      poolServer - the pool integration with which we want to update the status.
      status - the status of the pool server (ok,syncing,error)
      message - the status message for more details. typically only used when status is 'error'.
      Returns:
      a Completable for notification or subscription
    • updateNetworkPoolServerStatus

      io.reactivex.rxjava3.core.Completable updateNetworkPoolServerStatus(NetworkPoolServer poolServer, AccountIntegration.Status status)
      Used for updating the status of a NetworkPoolServer integration.
      Parameters:
      poolServer - the pool integration with which we want to update the status.
      status - the status string of the pool server (ok,syncing,error)
      Returns:
      the on complete state
    • listIdentityProjections

      io.reactivex.rxjava3.core.Observable<NetworkIdentityProjection> listIdentityProjections(AccountIntegration accountIntegration)
      Lists all network projection objects for a specified integration id. The projection is a subset of the properties on a full Network object for sync matching.
      Parameters:
      accountIntegration - the AccountIntegration identifier associated to the networks to be listed.
      Returns:
      an RxJava Observable stream of result projection objects.
    • listIdentityProjections

      io.reactivex.rxjava3.core.Observable<NetworkIdentityProjection> listIdentityProjections(Cloud cloud)
      Lists all network projection objects for a specified cloud. The projection is a subset of the properties on a full Network object for sync matching.
      Parameters:
      cloud - the Cloud identifier associated to the domains to be listed.
      Returns:
      an RxJava Observable stream of result projection objects.
    • listIdentityProjections

      io.reactivex.rxjava3.core.Observable<NetworkIdentityProjection> listIdentityProjections(Long cloudId)
      Lists all network projection objects for a specified cloud. The projection is a subset of the properties on a full Network object for sync matching.
      Parameters:
      cloudId - the id of the Cloud associated to the domains to be listed.
      Returns:
      an RxJava Observable stream of result projection objects.
    • listIdentityProjections

      io.reactivex.rxjava3.core.Observable<NetworkIdentityProjection> listIdentityProjections(Long cloudId, String regionCode)
      Lists all network projection objects for a specified cloud. The projection is a subset of the properties on a full Network object for sync matching.
      Parameters:
      cloudId - the id of the Cloud associated to the domains to be listed.
      regionCode - the ComputeZoneRegion to optionally filter by
      Returns:
      an RxJava Observable stream of result projection objects.
    • listIdentityProjections

      io.reactivex.rxjava3.core.Observable<NetworkIdentityProjection> listIdentityProjections(Long cloudId, Long zonePoolId)
      Lists all network projection objects for a specified cloud. The projection is a subset of the properties on a full Network object for sync matching.
      Parameters:
      cloudId - the id of the Cloud associated to the domains to be listed.
      zonePoolId - the id of the ComputeZonePool that this network may be scoped to. NOTE: if a network is associated with many assignedZonePools this field zonePoolId is not used.
      Returns:
      an RxJava Observable stream of result projection objects.
    • listSyncProjections

      @Deprecated io.reactivex.rxjava3.core.Observable<NetworkIdentityProjection> listSyncProjections(Long cloudId)
      Deprecated.
      Lists all network projection objects for a specified cloud. The projection is a subset of the properties on a full Network object for sync matching.
      Parameters:
      cloudId - the id of the Cloud associated to the domains to be listed.
      Returns:
      an RxJava Observable stream of result projection objects.
    • listSyncProjections

      @Deprecated io.reactivex.rxjava3.core.Observable<NetworkIdentityProjection> listSyncProjections(Long cloudId, Long zonePoolId)
      Deprecated.
      Lists all network projection objects for a specified cloud. The projection is a subset of the properties on a full Network object for sync matching.
      Parameters:
      cloudId - the id of the Cloud associated to the domains to be listed.
      zonePoolId - the id of the ComputeZonePool that this network may be scoped to. NOTE: if a network is associated with many assignedZonePools this field zonePoolId is not used.
      Returns:
      an RxJava Observable stream of result projection objects.
    • listById

      @Deprecated(since="0.15.4") io.reactivex.rxjava3.core.Observable<Network> listById(Collection<Long> ids)
      Deprecated.
      Lists all Network objects by a list of Identifiers. This is commonly used in sync / caching logic.
      Parameters:
      ids - list of ids to grab Network objects from.
      Returns:
      an RxJava Observable stream of Network to be subscribed to.
    • listByCloudAndExternalIdIn

      @Deprecated(since="0.15.4") io.reactivex.rxjava3.core.Observable<Network> listByCloudAndExternalIdIn(Long cloudId, Collection<String> externalIds)
      Deprecated.
      Lists all Network objects by a list of Identifiers. This is commonly used in sync / caching logic.
      Parameters:
      cloudId - the cloud to filter the list of networks by.
      externalIds - a Collection of external Ids to filter the list of networks by
      Returns:
      an RxJava Observable stream of Network to be subscribed to.
    • remove

      @Deprecated(since="0.15.4") io.reactivex.rxjava3.core.Single<Boolean> remove(List<NetworkIdentityProjection> removeList)
      Removes Missing Networks on the Morpheus side. This accepts the Projection Object instead of the main Object. It is important to note this is a Observer pattern and must be subscribed to in order for the action to occur

      Example:

      
       morpheusContext.getNetwork().remove(removeItems).blockingGet()
       
      Specified by:
      remove in interface MorpheusDataService<Network,NetworkIdentityProjection>
      Parameters:
      removeList - a list of network projections to be removed
      Returns:
      a Single Observable returning the success status of the operation.
      See Also:
    • create

      @Deprecated(since="0.15.4") io.reactivex.rxjava3.core.Single<Boolean> create(List<Network> addList)
      Creates new Network Domains from cache / sync implementations This ensures the refType and refId match the poolServer as well as the owner default
      Specified by:
      create in interface MorpheusDataService<Network,NetworkIdentityProjection>
      Parameters:
      addList - List of new Network objects to be inserted into the database
      Returns:
      notification of completion if someone really cares about it
      See Also:
    • save

      @Deprecated(since="0.15.4") io.reactivex.rxjava3.core.Single<Boolean> save(List<Network> networksToSave)
      Saves a list of Network objects. Be mindful this is an RxJava implementation and must be subscribed to for any action to actually take place.
      Specified by:
      save in interface MorpheusDataService<Network,NetworkIdentityProjection>
      Parameters:
      networksToSave - a List of Network objects that need to be updated in the database.
      Returns:
      the Single Observable stating the success state of the save attempt
      See Also:
    • removePoolIp

      io.reactivex.rxjava3.core.Single<Void> removePoolIp(NetworkPool networkPool, NetworkPoolIp ipAddress)
    • getPoolServerByAccountIntegration

      io.reactivex.rxjava3.core.Single<NetworkPoolServer> getPoolServerByAccountIntegration(AccountIntegration integration)
    • getPoolServerById

      io.reactivex.rxjava3.core.Single<NetworkPoolServer> getPoolServerById(Long id)
    • getNetworkIp

      io.reactivex.rxjava3.core.Single<NetworkPoolIp> getNetworkIp(NetworkPool networkPool, String assignedType, Long assignedId, Long subAssignedId)
    • loadNetworkPoolIp

      io.reactivex.rxjava3.core.Single<NetworkPoolIp> loadNetworkPoolIp(NetworkPool pool, String ipAddress)
    • setComputeServerNetwork

      io.reactivex.rxjava3.core.Single<Network> setComputeServerNetwork(ComputeServer server, String privateIp, String publicIp, String hostname, Long networkPoolId)
    • getNetworkServerById

      io.reactivex.rxjava3.core.Single<NetworkServer> getNetworkServerById(Long id)
      Get a NetworkServer by id.
      Parameters:
      id - NetworkServer id
      Returns:
      Observable stream of sync projection