adminapi

package
v0.0.0-...-1b39373 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2015 License: Apache-2.0, Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	STANDBY          = "standby"
	CPM_NODE_IMAGE   = "cpm-node-os"
	CPM_PGPOOL_IMAGE = "cpm-pgpool-os"
)
View Source
const CLUSTERADMIN_DB = "clusteradmin"
View Source
const CONTAINER_NOT_FOUND = "CONTAINER NOT FOUND"

Variables

View Source
var CPMTEST_DB = "cpmtest"
View Source
var CPMTEST_USER = "cpmtest"
View Source
var KubeEnv = false
View Source
var KubeURL = ""
View Source
var OPENSHIFT_URL string

Functions

func AddContainerUser

func AddContainerUser(w rest.ResponseWriter, r *rest.Request)

func AddProject

func AddProject(w rest.ResponseWriter, r *rest.Request)

func AddRole

func AddRole(w rest.ResponseWriter, r *rest.Request)

func AddSchedule

func AddSchedule(w rest.ResponseWriter, r *rest.Request)

func AddServer

func AddServer(w rest.ResponseWriter, r *rest.Request)

we use AddServer for both updating and inserting based on the ID passed in

func AddUser

func AddUser(w rest.ResponseWriter, r *rest.Request)

func AdminFailover

func AdminFailover(w rest.ResponseWriter, r *rest.Request)

func AdminStartNode

func AdminStartNode(w rest.ResponseWriter, r *rest.Request)

func AdminStartServerContainers

func AdminStartServerContainers(w rest.ResponseWriter, r *rest.Request)

func AdminStartpg

func AdminStartpg(w rest.ResponseWriter, r *rest.Request)

func AdminStopNode

func AdminStopNode(w rest.ResponseWriter, r *rest.Request)

func AdminStopServerContainers

func AdminStopServerContainers(w rest.ResponseWriter, r *rest.Request)

func AdminStoppg

func AdminStoppg(w rest.ResponseWriter, r *rest.Request)

func AutoCluster

func AutoCluster(w rest.ResponseWriter, r *rest.Request)

func BackupNow

func BackupNow(w rest.ResponseWriter, r *rest.Request)

func BadgerGenerate

func BadgerGenerate(w rest.ResponseWriter, r *rest.Request)

func ChangePassword

func ChangePassword(w rest.ResponseWriter, r *rest.Request)

func ConfigureCluster

func ConfigureCluster(w rest.ResponseWriter, r *rest.Request)

func ContainerAccessRuleGetAll

func ContainerAccessRuleGetAll(w rest.ResponseWriter, r *rest.Request)

func ContainerAccessRuleUpdate

func ContainerAccessRuleUpdate(w rest.ResponseWriter, r *rest.Request)
func ContainerAccessRuleDelete(w rest.ResponseWriter, r *rest.Request) {
	var err error
	err = secimpl.Authorize(r.PathParam("Token"), "perm-read")
	if err != nil {
		logit.Error.Println("ContainerRuleDelete: authorize error " + err.Error())
		rest.Error(w, err.Error(), http.StatusUnauthorized)
		return
	}

	containerRuleID := r.PathParam("ID")
	if containerRuleID == "" {
		rest.Error(w, "ID required", http.StatusBadRequest)
		return
	}

	err = DeleteContainerAccessRule(containerRuleID)
	if err != nil {
		logit.Error.Println("ContainerRuleDelete:" + err.Error())
		rest.Error(w, err.Error(), http.StatusBadRequest)
		return
	}

	status := SimpleStatus{}
	status.Status = "OK"
	w.WriteHeader(http.StatusOK)
	w.WriteJson(&status)
}
func ContainerAccessRuleInsert(w rest.ResponseWriter, r *rest.Request) {
	logit.Info.Println("ContainerAccessRuleInsert")
	car := ContainerAccessRule{}
	err := r.DecodeJsonPayload(&car)
	if err != nil {
		logit.Error.Println("ContainerAccessRuleInsert: error in decode" + err.Error())
		rest.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}

	err = secimpl.Authorize(car.Token, "perm-container")
	if err != nil {
		logit.Error.Println("ContainerAccessRuleInsert: authorize error " + err.Error())
		rest.Error(w, err.Error(), http.StatusUnauthorized)
		return
	}

	err = InsertContainerAccessRule(car)
	if err != nil {
		logit.Error.Println("ContainerAccessRuleUpdate: error " + err.Error())
		rest.Error(w, err.Error(), http.StatusBadRequest)
		return
	}

	status := SimpleStatus{}
	status.Status = "OK"
	w.WriteHeader(http.StatusOK)
	w.WriteJson(&status)
}

func ContainerInfoBgwriter

func ContainerInfoBgwriter(w rest.ResponseWriter, r *rest.Request)

func ContainerInfoStatdatabase

func ContainerInfoStatdatabase(w rest.ResponseWriter, r *rest.Request)

func ContainerInfoStatrepl

func ContainerInfoStatrepl(w rest.ResponseWriter, r *rest.Request)

func ContainerLoadTest

func ContainerLoadTest(w rest.ResponseWriter, r *rest.Request)

func DeleteCluster

func DeleteCluster(w rest.ResponseWriter, r *rest.Request)

func DeleteContainerAccessRule

func DeleteContainerAccessRule(dbConn *sql.DB, ID string) error

func DeleteContainerUser

func DeleteContainerUser(w rest.ResponseWriter, r *rest.Request)

func DeleteNode

func DeleteNode(w rest.ResponseWriter, r *rest.Request)

TODO refactor this to share code with DeleteCluster!!!!!

func DeleteProject

func DeleteProject(w rest.ResponseWriter, r *rest.Request)

func DeleteRole

func DeleteRole(w rest.ResponseWriter, r *rest.Request)

func DeleteRule

func DeleteRule(dbConn *sql.DB, ID string) error

func DeleteSchedule

func DeleteSchedule(w rest.ResponseWriter, r *rest.Request)

func DeleteServer

func DeleteServer(w rest.ResponseWriter, r *rest.Request)

func DeleteUser

func DeleteUser(w rest.ResponseWriter, r *rest.Request)

func EventJoinCluster

func EventJoinCluster(w rest.ResponseWriter, r *rest.Request)

func GetAllClusters

func GetAllClusters(w rest.ResponseWriter, r *rest.Request)

func GetAllClustersForProject

func GetAllClustersForProject(w rest.ResponseWriter, r *rest.Request)

func GetAllGeneralSettings

func GetAllGeneralSettings(w rest.ResponseWriter, r *rest.Request)

func GetAllNodes

func GetAllNodes(w rest.ResponseWriter, r *rest.Request)

func GetAllNodesForCluster

func GetAllNodesForCluster(w rest.ResponseWriter, r *rest.Request)

func GetAllNodesForProject

func GetAllNodesForProject(w rest.ResponseWriter, r *rest.Request)

func GetAllNodesForServer

func GetAllNodesForServer(w rest.ResponseWriter, r *rest.Request)

func GetAllNodesNotInCluster

func GetAllNodesNotInCluster(w rest.ResponseWriter, r *rest.Request)

func GetAllProjects

func GetAllProjects(w rest.ResponseWriter, r *rest.Request)

func GetAllRoles

func GetAllRoles(w rest.ResponseWriter, r *rest.Request)

func GetAllSchedules

func GetAllSchedules(w rest.ResponseWriter, r *rest.Request)

func GetAllServers

func GetAllServers(w rest.ResponseWriter, r *rest.Request)

func GetAllSettings

func GetAllSettings(w rest.ResponseWriter, r *rest.Request)

func GetAllStatus

func GetAllStatus(w rest.ResponseWriter, r *rest.Request)

func GetAllUsers

func GetAllUsers(w rest.ResponseWriter, r *rest.Request)

func GetAllUsersForContainer

func GetAllUsersForContainer(w rest.ResponseWriter, r *rest.Request)

func GetBackupNodes

func GetBackupNodes(w rest.ResponseWriter, r *rest.Request)

func GetCluster

func GetCluster(w rest.ResponseWriter, r *rest.Request)

func GetContainerUser

func GetContainerUser(w rest.ResponseWriter, r *rest.Request)

func GetHealthCheck

func GetHealthCheck(w rest.ResponseWriter, r *rest.Request)

func GetNode

func GetNode(w rest.ResponseWriter, r *rest.Request)

func GetPGStatus2

func GetPGStatus2(dbConn *sql.DB, nodename string, hostname string) (string, error)

func GetProject

func GetProject(w rest.ResponseWriter, r *rest.Request)

func GetRole

func GetRole(w rest.ResponseWriter, r *rest.Request)

func GetSchedule

func GetSchedule(w rest.ResponseWriter, r *rest.Request)

func GetServer

func GetServer(w rest.ResponseWriter, r *rest.Request)

func GetStatus

func GetStatus(w rest.ResponseWriter, r *rest.Request)

func GetUser

func GetUser(w rest.ResponseWriter, r *rest.Request)

func GetVersion

func GetVersion(w rest.ResponseWriter, r *rest.Request)

func InsertContainerAccessRule

func InsertContainerAccessRule(dbConn *sql.DB, car ContainerAccessRule) error

func InsertRule

func InsertRule(dbConn *sql.DB, rule Rule) error

func Login

func Login(w rest.ResponseWriter, r *rest.Request)

func Logout

func Logout(w rest.ResponseWriter, r *rest.Request)

func MonitorContainerControldata

func MonitorContainerControldata(w rest.ResponseWriter, r *rest.Request)

func MonitorContainerSettings

func MonitorContainerSettings(w rest.ResponseWriter, r *rest.Request)

func MonitorServerGetInfo

func MonitorServerGetInfo(w rest.ResponseWriter, r *rest.Request)

monitor server - get info

func MonitorStatements

func MonitorStatements(w rest.ResponseWriter, r *rest.Request)

func OpenshiftCreate

func OpenshiftCreate(username string, password string, templatePath string) error

func OpenshiftDelete

func OpenshiftDelete(username string, password string, objectName string, objectType string) error

func PostCluster

func PostCluster(w rest.ResponseWriter, r *rest.Request)

we use POST for both updating and inserting based on the ID passed in

func Provision

func Provision(w rest.ResponseWriter, r *rest.Request)

docker run TODO: convert this to POST

func RulesDelete

func RulesDelete(w rest.ResponseWriter, r *rest.Request)

func RulesGet

func RulesGet(w rest.ResponseWriter, r *rest.Request)

func RulesGetAll

func RulesGetAll(w rest.ResponseWriter, r *rest.Request)

func RulesInsert

func RulesInsert(w rest.ResponseWriter, r *rest.Request)

func RulesUpdate

func RulesUpdate(w rest.ResponseWriter, r *rest.Request)

func SaveClusterProfiles

func SaveClusterProfiles(w rest.ResponseWriter, r *rest.Request)

func SaveProfiles

func SaveProfiles(w rest.ResponseWriter, r *rest.Request)

func SaveSetting

func SaveSetting(w rest.ResponseWriter, r *rest.Request)

func SaveSettings

func SaveSettings(w rest.ResponseWriter, r *rest.Request)

func ScaleUpCluster

func ScaleUpCluster(w rest.ResponseWriter, r *rest.Request)

func UpdateContainerUser

func UpdateContainerUser(w rest.ResponseWriter, r *rest.Request)

func UpdateProject

func UpdateProject(w rest.ResponseWriter, r *rest.Request)

func UpdateRole

func UpdateRole(w rest.ResponseWriter, r *rest.Request)

func UpdateRule

func UpdateRule(dbConn *sql.DB, rule Rule) error

func UpdateSchedule

func UpdateSchedule(w rest.ResponseWriter, r *rest.Request)

func UpdateUser

func UpdateUser(w rest.ResponseWriter, r *rest.Request)

Types

type AddSchedulePost

type AddSchedulePost struct {
	ID            string
	Token         string
	ServerID      string
	ProfileName   string
	Name          string
	Enabled       string
	ContainerName string
	Minutes       string
	Hours         string
	DayOfMonth    string
	Month         string
	DayOfWeek     string
}

type AutoClusterInfo

type AutoClusterInfo struct {
	Name           string
	ProjectID      string
	ClusterType    string
	ClusterProfile string
	Token          string
}

type BackupNowPost

type BackupNowPost struct {
	Token       string
	ServerID    string
	ProfileName string
	ScheduleID  string
}

type Bgwriter

type Bgwriter struct {
	Now            string
	AllocMbps      string
	CheckpointMbps string
	CleanMbps      string
	BackendMbps    string
	WriteMbps      string
}

type ChgPassword

type ChgPassword struct {
	Username string
	Password string
	Token    string
}

type Child

type Child struct {
	Name      string  `json:"name"`
	Type      string  `json:"type"`
	ID        string  `json:"id"`
	ProjectID string  `json:"projectid"`
	Children  []Child `json:"children"`
}

type Child2

type Child2 struct {
	Name      string `json:"name"`
	Type      string `json:"type"`
	ID        string `json:"id"`
	ProjectID string `json:"projectid"`
}

type Cluster

type Cluster struct {
	ID          string
	ProjectID   string
	Name        string
	ClusterType string
	Status      string
	CreateDate  string
	Token       string
	Containers  map[string]string
}

type ClusterNode

type ClusterNode struct {
	ID          string
	ClusterID   string
	ServerID    string
	Name        string
	Role        string
	Image       string
	CreateDate  string
	Status      string
	ProjectID   string
	ProjectName string
	ServerName  string
	ClusterName string
}

type ClusterProfiles

type ClusterProfiles struct {
	Size           string
	Count          string
	Algo           string
	MasterProfile  string
	StandbyProfile string
	MasterServer   string
	StandbyServer  string
	Token          string
}

type ContainerAccessRule

type ContainerAccessRule struct {
	ID             string
	Token          string
	ContainerID    string
	AccessRuleID   string
	AccessRuleName string
	Selected       string
	CreateDate     string
}

func GetAllContainerAccessRule

func GetAllContainerAccessRule(dbConn *sql.DB, containerID string) ([]ContainerAccessRule, error)

func GetContainerAccessRule

func GetContainerAccessRule(dbConn *sql.DB, ID string) (ContainerAccessRule, error)

type KubeResponse

type KubeResponse struct {
	URL string
}

type LinuxStats

type LinuxStats struct {
	ID        string
	ClusterID string
	Stats     string
}

type Loadtestresults

type Loadtestresults struct {
	Operation string
	Count     int
	Results   string
}

type LoginToken

type LoginToken struct {
	Contents string
}

type MonitorContainerParam

type MonitorContainerParam struct {
	ID           string
	Metric       string
	DatabaseName string
}

type MonitorOutput

type MonitorOutput struct {
	Metric   string
	Response string
}

type MonitorServerParam

type MonitorServerParam struct {
	ServerID string
	Metric   string
}

type NodeUser

type NodeUser struct {
	ID             string
	Containername  string
	Rolname        string
	Passwd         string
	Updatedt       string
	Token          string
	Rolsuper       bool
	Rolinherit     bool
	Rolcreaterole  bool
	Rolcreatedb    bool
	Rollogin       bool
	Rolreplication bool
}

type PGStats

type PGStats struct {
	ID        string
	ClusterID string
	Stats     string
}

type PostgresControldata

type PostgresControldata struct {
	Name  string
	Value string
}

type PostgresSetting

type PostgresSetting struct {
	Name           string
	CurrentSetting string
	Source         string
}

type PostgresStatement

type PostgresStatement struct {
	Database   string
	Query      string
	Calls      string
	TotalTime  string
	Rows       string
	HitPercent string
}

type Profiles

type Profiles struct {
	SmallCPU  string
	SmallMEM  string
	MediumCPU string
	MediumMEM string
	LargeCPU  string
	LargeMEM  string
	Token     string
}

type Project

type Project struct {
	ID         string
	Name       string
	Desc       string
	UpdateDate string
	Token      string
	Containers map[string]string
	Clusters   map[string]string
}

type Project2

type Project2 struct {
	Name     string  `json:"name"`
	Type     string  `json:"type"`
	ID       string  `json:"id"`
	Children []Child `json:"children"`
}

type Rule

type Rule struct {
	ID          string
	Token       string
	Name        string
	Type        string
	Database    string
	User        string
	Address     string
	Method      string
	Description string
	CreateDate  string
	UpdateDate  string
}

func GetAccessRule

func GetAccessRule(dbConn *sql.DB, ID string) (Rule, error)

func GetAllRules

func GetAllRules(dbConn *sql.DB) ([]Rule, error)

type Server

type Server struct {
	ID             string
	Name           string
	IPAddress      string
	DockerBridgeIP string
	PGDataPath     string
	ServerClass    string
	CreateDate     string
}

type Setting

type Setting struct {
	Name       string
	Value      string
	UpdateDate string
	Token      string
}

type Settings

type Settings struct {
	AdminURL       string
	DockerRegistry string
	PGPort         string
	DomainName     string
	Token          string
}

type SimpleStatus

type SimpleStatus struct {
	Status string
}

type Statdatabase

type Statdatabase struct {
	Datname     string
	BlksRead    string
	TupReturned string
	TupFetched  string
	TupInserted string
	TupUpdated  string
	TupDeleted  string
	StatsReset  string
}

type Statrepl

type Statrepl struct {
	Pid            string
	Usesysid       string
	Usename        string
	AppName        string
	ClientAddr     string
	ClientHostname string
	ClientPort     string
	BackendStart   string
	State          string
	SentLocation   string
	WriteLocation  string
	FlushLocation  string
	ReplayLocation string
	SyncPriority   string
	SyncState      string
}

Jump to

Keyboard shortcuts

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