cfenv

package
v0.0.0-...-b684ecc Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2016 License: Apache-2.0, MIT Imports: 6 Imported by: 0

README

Go CF Environment Package Build Status - Master

Overview

GoDoc

cfenv is a package to assist you in writing Go apps that run on Cloud Foundry. It provides convenience functions and structures that map to Cloud Foundry environment variable primitives (http://docs.cloudfoundry.org/devguide/deploy-apps/environment-variable.html).

Usage

go get github.com/cloudfoundry-community/go-cfenv

package main

import (
	"github.com/cloudfoundry-community/go-cfenv"
)

func main() {
	appEnv, _ := cfenv.Current()

	fmt.Println("ID:", appEnv.ID)
	fmt.Println("Index:", appEnv.Index)
	fmt.Println("Name:", appEnv.Name)
	fmt.Println("Host:", appEnv.Host)
	fmt.Println("Port:", appEnv.Port)
	fmt.Println("Version:", appEnv.Version)
	fmt.Println("Home:", appEnv.Home)
	fmt.Println("MemoryLimit:", appEnv.MemoryLimit)
	fmt.Println("WorkingDir:", appEnv.WorkingDir)
	fmt.Println("TempDir:", appEnv.TempDir)
	fmt.Println("User:", appEnv.User)
	fmt.Println("Services:", appEnv.Services)
}
Contributing

Pull requests welcomed.

Documentation

Overview

Package cfenv provides information about the current app deployed on Cloud Foundry, including any bound service(s).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CurrentEnv

func CurrentEnv() map[string]string

CurrentEnv translates the current environment to a map[string]string.

func Env

func Env(env []string) map[string]string

Env translates the provided environment to a map[string]string.

Types

type App

type App struct {
	ID              string   `json:"instance_id"`      // id of the app
	Index           int      `json:"instance_index"`   // index of the app
	Name            string   `json:"name"`             // name of the app
	Host            string   `json:"host"`             // host of the app
	Port            int      `json:"port"`             // port of the app
	Version         string   `json:"version"`          // version of the app
	ApplicationURIs []string `json:"application_uris"` // application uri of the app
	SpaceID         string   `json:"space_id"`         // id of the space
	SpaceName       string   `json:"space_name"`       // name of the space
	Home            string   // root folder for the deployed app
	MemoryLimit     string   // maximum amount of memory that each instance of the application can consume
	WorkingDir      string   // present working directory, where the buildpack that processed the application ran
	TempDir         string   // directory location where temporary and staging files are stored
	User            string   // user account under which the DEA runs
	Services        Services // services bound to the app
}

An App holds information about the current app running on Cloud Foundry

func Current

func Current() (*App, error)

Current creates a new App with the current environment.

func New

func New(env map[string]string) (*App, error)

New creates a new App with the provided environment.

type Service

type Service struct {
	Name        string                 // name of the service
	Label       string                 // label of the service
	Tags        []string               // tags for the service
	Plan        string                 // plan of the service
	Credentials map[string]interface{} // credentials for the service
}

Service describes a bound service. For bindable services Cloud Foundry will add connection details to the VCAP_SERVICES environment variable when you restart your application, after binding a service instance to your application.

The results are returned as a JSON document that contains an object for each service for which one or more instances are bound to the application. The service object contains a child object for each service instance of that service that is bound to the application.

func (*Service) CredentialString

func (s *Service) CredentialString(key string) (string, bool)

type Services

type Services map[string][]Service

Services is an association of service labels to a slice of services with that label.

func (*Services) WithLabel

func (s *Services) WithLabel(label string) ([]Service, error)

WithLabel finds the service with the specified label.

func (*Services) WithName

func (s *Services) WithName(name string) (*Service, error)

WithName finds the service with the specified name.

func (*Services) WithNameUsingPattern

func (s *Services) WithNameUsingPattern(namePattern string) ([]Service, error)

WithName finds the service with a name pattern.

func (*Services) WithTag

func (s *Services) WithTag(tag string) ([]Service, error)

WithTag finds services with the specified tag.

func (*Services) WithTagUsingPattern

func (s *Services) WithTagUsingPattern(tagPattern string) ([]Service, error)

WithTag finds services with a tag pattern.

Jump to

Keyboard shortcuts

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