Object

nelson

Nelson

Related Doc: package nelson

Permalink

object Nelson

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Nelson
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class CommitUnit(unitName: UnitName, version: Version, target: NamespaceName) extends Product with Serializable

    Permalink
  2. final case class LoadbalancerSummary(namespace: Namespace, loadbalancer: LoadbalancerDeployment, outboundDependencies: Vector[RoutingNode]) extends Product with Serializable

    Permalink
  3. type NelsonFK[F[_[_], _], U] = Kleisli[[β$0$]F[Task, β$0$], NelsonConfig, U]

    Permalink
  4. type NelsonK[U] = Kleisli[Task, NelsonConfig, U]

    Permalink

    NelsonK[U] provides us with a context that accepts a configuration and gives us a scalaz Task[U] NelsonFK[F[_[_], _], U] provides a context that accepts a configuration and gives us an F[Task, U] this gives us the flexibility of defining a monadic function that yields scalaz streams of Task and U as emitted values (e.g.

    NelsonK[U] provides us with a context that accepts a configuration and gives us a scalaz Task[U] NelsonFK[F[_[_], _], U] provides a context that accepts a configuration and gives us an F[Task, U] this gives us the flexibility of defining a monadic function that yields scalaz streams of Task and U as emitted values (e.g. Process[Task, U], Sink[Task, U])

  5. final case class RecentStatistics(statusCounts: List[(String, Int)], mostDeployed: List[(String, Int)], leastDeployed: List[(String, Int)]) extends Product with Serializable

    Permalink
  6. final case class RuntimeSummary(deployment: DeploymentSummary, health: List[ConsulHealthStatus], currentStatus: DeploymentStatus, expiresAt: Instant) extends Product with Serializable

    Permalink
  7. final case class StackSummary(namespace: Namespace, deployment: Deployment, statuses: List[(DeploymentStatus, Option[String], Instant)], expiration: Instant, inboundDependencies: Vector[(RoutePath, RoutingNode)], outboundDependencies: Vector[(RoutePath, RoutingNode)]) extends Product with Serializable

    Permalink
  8. type StorageK[U] = Kleisli[Task, ~>[StoreOp, Task], U]

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def commit(un: UnitName, v: Version, ns: NamespaceName): NelsonK[Unit]

    Permalink
  7. def commit(un: UnitName, ns: NamespaceName, dcs: List[Datacenter], m: @@[Manifest, Versioned]): NelsonK[Unit]

    Permalink
  8. def commitLoadbalancer(name: String, v: Int, dcName: DatacenterRef, ns: NamespaceName): NelsonK[Unit]

    Permalink
  9. val config: NelsonK[NelsonConfig]

    Permalink
    Attributes
    protected
  10. def createDatacenters(list: List[Datacenter]): NelsonK[Unit]

    Permalink

    This is a bootstrapping function - definitions of datacenters come from the Nelson configuration, and the database is a read-only reference of that, simply so we can provide forigen key constraints when doing queries.

    This is a bootstrapping function - definitions of datacenters come from the Nelson configuration, and the database is a read-only reference of that, simply so we can provide forigen key constraints when doing queries.

    This function should only ever be called at bootup.

  11. def createDefaultNamespaceIfAbsent(dcs: List[Datacenter], ns: NamespaceName): NelsonK[Unit]

    Permalink
  12. def createHook(session: Session, slug: Slug): NelsonK[Repo]

    Permalink

    Actually setup the webhook both in the nelson database, and also on the remote github repository.

    Actually setup the webhook both in the nelson database, and also on the remote github repository. The user must have admin privileges on the repo for this to successfully work.

  13. def createManualDeployment(s: Session, m: ManualDeployment): NelsonK[GUID]

    Permalink

    Create a manual deployment.

    Create a manual deployment. That is to say, let Nelson know about something that was not deployed via Nelson (e.g. databases and other ops-infrastructure)

  14. def createSessionFromGithubToken(githubToken: AccessToken): NelsonK[Session]

    Permalink

    Given a users Github personal access token - obtained either directly by user input, or via the OAtuh web flow - and lift it into a Github session.

    Given a users Github personal access token - obtained either directly by user input, or via the OAtuh web flow - and lift it into a Github session. This function is distinct from createSessionFromOAuthCode because we require a way for non-web clients to obtain a token they can use when calling the Nelson API programatically.

  15. def createSessionFromOAuthCode(code: TempoaryAccessCode): NelsonK[Session]

    Permalink

    Create a Nelson session based on the web-flow Github provides.

    Create a Nelson session based on the web-flow Github provides. The AccessToken is an opaque, one-time code used to obtain the github token for the user who is currently logged in. This function will only ever work in an OAuth web-flow, as TempoaryAccessCode tokens cannot be obtained apiori or out of band.

  16. def deleteHook(session: Session, slug: Slug): NelsonK[Unit]

    Permalink

    Remove the webhook from the repository.

  17. def deleteLoadbalancerDeployment(guid: GUID): NelsonK[Unit]

    Permalink
  18. def deploy(actions: List[Action]): NelsonK[Unit]

    Permalink
  19. def deprecateService(sn: ServiceName): NelsonK[Unit]

    Permalink

    Deprecates all deloyments for a service / feature version accross all datacenters and namepaces

  20. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  21. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  22. def expireService(sn: ServiceName): NelsonK[Unit]

    Permalink

    Expires all deloyments for a service accross all datacenters and namepaces

  23. def fetchDatacenterByName(name: String): NelsonK[Option[(Datacenter, Set[Namespace])]]

    Permalink

    Fetch a specific datacenter based on its name, along with the namespaces that are avalible in that specific datacenter (if any).

  24. def fetchDeployment(guid: GUID): NelsonK[Option[StackSummary]]

    Permalink
  25. def fetchDeploymentStatuses(guid: GUID): NelsonK[List[(DeploymentStatus, Option[String], Instant)]]

    Permalink

    Given a deployment GUID, list the deployment statuses

  26. def fetchLoadbalancerDeployment(guid: GUID): NelsonK[Option[LoadbalancerSummary]]

    Permalink
  27. def fetchRawRepoManifest(token: AccessToken)(slug: Slug, tagOrBranch: String = "master"): NelsonK[String]

    Permalink
  28. def fetchRepoManifestAndValidateDeployable(slug: Slug, tagOrBranch: String = "master"): NelsonK[ValidationNel[NelsonError, Manifest]]

    Permalink

    Actually reach out to the repository in question using the github content API and fetch the manifest file, if it exists.

    Actually reach out to the repository in question using the github content API and fetch the manifest file, if it exists.

    This function ensures that the file exists, that its content can be loaded into a Manifest instance, and validates that it cab be deployed

    Anything else is just not cricket.

  29. def fetchWorkflowLog(guid: GUID, offset: Int): NelsonK[Option[(Int, List[String])]]

    Permalink
  30. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  31. def findDeploymentExpiration(guid: GUID): NelsonK[Option[Instant]]

    Permalink
  32. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  33. def getDeploymentsByDatacenter(dc: Datacenter, f: (Namespace) ⇒ StoreOpF[List[Deployment]]): StoreOpF[Set[Deployment]]

    Permalink
  34. def getLoadbalancerByGUID(guid: GUID): NelsonK[Option[LoadbalancerDeployment]]

    Permalink
  35. def getOrCreateNamespace(dc: DatacenterRef, ns: NamespaceName): StoreOpF[ID]

    Permalink
  36. def getRelease(id: Long): NelsonK[==>>[Released, List[ReleasedDeployment]]]

    Permalink

    Given the ID of a particular release, show the release information and any associated deployments

  37. def getRoutingGraphs(dc: DatacenterRef, ns: List[NamespaceName]): NelsonK[List[(Namespace, RoutingGraph)]]

    Permalink

    Gets routing graphs for a given datacenter and list of namespaces.

    Gets routing graphs for a given datacenter and list of namespaces. If namespaces is not provided then default to all namespaces

  38. def getRuntimeSummary(guid: GUID): NelsonK[Option[RuntimeSummary]]

    Permalink
  39. def getStatusOfReleaseUnit(s: Slug, u: UnitName): NelsonK[Option[DeploymentStatus]]

    Permalink

    Given a repo slug and a specific unit, figure out what the state of the latest released version is, for the specified unit only.

    Given a repo slug and a specific unit, figure out what the state of the latest released version is, for the specified unit only. This is primarily used to power the SVG badging.

    TIM: REALLY NEEDS CACHING TO SCALE; *PROBALLY* TOO EXPENSIVE RIGHT NOW.

  40. def getVersionedManifestForRelease(r: Released): NelsonK[@@[Manifest, Versioned]]

    Permalink
  41. def handleRelease(e: ReleaseEvent): NelsonK[Unit]

    Permalink

    Invoked when the inbound webhook from Github arrives, notifying Nelson that a new deployment needs to take place.

  42. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  43. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  44. def lift[F[_[_], _], U](f: (NelsonConfig) ⇒ F[Task, U]): Kleisli[[β$1$]F[Task, β$1$], NelsonConfig, U]

    Permalink

    a simple lift operation for easy construction of a NelsonFK

  45. def listAuditEvents(limit: Long, offset: Long, releaseId: Option[Long], action: Option[String], category: Option[String]): NelsonK[List[AuditLog]]

    Permalink
  46. def listDatacenterDeployments(dcName: String, ns: NonEmptyList[NamespaceName], status: NonEmptyList[DeploymentStatus], unit: Option[UnitName]): NelsonK[List[(Namespace, Deployment, DeploymentStatus)]]

    Permalink

    Given a specific datacenter and a list of namespaces figure out deployments by DeploymentStatus.

    Given a specific datacenter and a list of namespaces figure out deployments by DeploymentStatus. TIM: this probally wont scale, but its likley ok for the moment.

  47. def listDatacenterUnitsByStatus(dc: String, ns: NonEmptyList[NamespaceName], status: NonEmptyList[DeploymentStatus]): NelsonK[List[(Namespace, GUID, ServiceName)]]

    Permalink
  48. def listDatacenters: NelsonK[Map[Datacenter, Set[Namespace]]]

    Permalink

    List all the datacenters Nelson is currently aware of, and return the namespaces associated with that datacenter.

  49. def listDeployments(dcs: List[String], ns: NonEmptyList[NamespaceName], status: NonEmptyList[DeploymentStatus], unit: Option[UnitName]): NelsonK[List[(DatacenterRef, Namespace, Deployment, DeploymentStatus)]]

    Permalink
  50. def listDeploymentsWithDeprecatedDependencies(dc: Datacenter): NelsonK[Vector[DependencyEdge]]

    Permalink

    Like listDeploymentsWithDeprecatedDependencies but for a single Datacenter

  51. def listDeploymentsWithDeprecatedDependencies: NelsonK[Vector[DependencyEdge]]

    Permalink

    Lists all deployments accross datacenters and namspaces that depend on a deployment that is deprecated.

  52. def listLoadbalancerDeployments(dc: DatacenterRef, ns: NonEmptyList[NamespaceName]): NelsonK[List[(Namespace, LoadbalancerDeployment)]]

    Permalink
  53. def listLoadbalancers(dcs: List[String], ns: NonEmptyList[NamespaceName]): NelsonK[List[(DatacenterRef, Namespace, LoadbalancerDeployment)]]

    Permalink
  54. def listReleases(limit: Option[Int]): NelsonK[==>>[Released, List[ReleasedDeployment]]]

    Permalink

    list recent releases, regardless of repository.

  55. def listRepositories(session: Session, owner: Option[String]): NelsonK[List[Repo]]

    Permalink
    Annotations
    @SuppressWarnings()
  56. def listRepositoryReleases(s: Slug): NelsonK[==>>[Released, List[ReleasedDeployment]]]

    Permalink

    list releases this repository has had.

    list releases this repository has had. Feels a little hack to be doing the jiggery pokery with ==>> but whatever, its better than using Map.

  57. def listUnitsByStatus(dcs: List[DatacenterRef], ns: NonEmptyList[NamespaceName], status: NonEmptyList[DeploymentStatus]): NelsonK[List[(DatacenterRef, Namespace, GUID, ServiceName)]]

    Permalink
  58. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  59. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  60. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  61. def recentActivityStatistics: NelsonK[RecentStatistics]

    Permalink

    Fetches statistics about what happened over the last N days, where N is defined by the whence instance of java.time.Instant.

  62. def recursiveCreateNamespace(dc: DatacenterRef, ns: NamespaceName): NelsonK[Unit]

    Permalink
  63. def recursiveCreateSubordinateNamespace(dc: DatacenterRef, ns: NamespaceName): NelsonK[Unit]

    Permalink
  64. def redeploy(deploymentGuid: GUID): NelsonK[Unit]

    Permalink
  65. def reverseTrafficShift(guid: GUID): NelsonK[TrafficShift]

    Permalink
  66. def storeManifest(m: @@[Manifest, Versioned], repoId: ID): NelsonK[Unit]

    Permalink
  67. def syncRepos(session: Session): NelsonK[Unit]

    Permalink

    Given a session, sync up the users repositories to nelson to make sure we have the latest set of repos and their associated access.

  68. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  69. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  70. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  71. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  72. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped