infocmdb

package
v1.1.1-0...-115938a Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WORKFLOW_ENV_APPLICATION_ENV      = "APPLICATION_ENV"
	WORKFLOW_ENV_APPLICATION_PATH     = "APPLICATION_PATH"
	WORKFLOW_ENV_APPLICATION_URL      = "APPLICATION_URL"
	WORKFLOW_ENV_APPLICATION_DATA     = "APPLICATION_DATA"
	WORKFLOW_ENV_APPLICATION_PUBLIC   = "APPLICATION_PUBLIC"
	WORKFLOW_ENV_WORKFLOW_CONFIG_PATH = "WORKFLOW_CONFIG_PATH"
	WORKFLOW_ENV_WORKFLOW_DEBUGGING   = "WORKFLOW_DEBUGGING"

	WORKFLOW_TRIGGER_TYPE_CI_CREATE = "ci_create"
	WORKFLOW_TRIGGER_TYPE_CI_UPDATE = "ci_update"
	WORKFLOW_TRIGGER_TYPE_CI_DELETE = "ci_delete"

	WORKFLOW_TRIGGER_TYPE_CI_TYPE_CHANGE_UPDATE = "ci_type_change_update"

	WORKFLOW_TRIGGER_TYPE_CI_ATTRIBUTE_CREATE = "ci_attribute_create"
	WORKFLOW_TRIGGER_TYPE_CI_ATTRIBUTE_UPDATE = "ci_attribute_update"
	WORKFLOW_TRIGGER_TYPE_CI_ATTRIBUTE_DELETE = "ci_attribute_delete"

	WORKFLOW_TRIGGER_TYPE_CI_RELATION_CREATE = "ci_relation_create"
	WORKFLOW_TRIGGER_TYPE_CI_RELATION_DELETE = "ci_relation_delete"

	WORKFLOW_TRIGGER_TYPE_CI_PROJECT_CREATE = "ci_project_create"
	WORKFLOW_TRIGGER_TYPE_CI_PROJECT_DELETE = "ci_project_delete"

	WORKFLOW_TRIGGER_TYPE_FILEIMPORT_BEFORE           = "fileimport_before"
	WORKFLOW_TRIGGER_TYPE_FILEIMPORT_AFTER            = "fileimport_after"
	WORKFLOW_TRIGGER_TYPE_FILEIMPORT_BEFORE_AND_AFTER = "fileimport_before_and_after"
)

Variables

View Source
var (
	ErrFailedToCreateInfoCMDB  = errors.New("failed to create infocmdb object")
	ErrNoCredentials           = errors.New("must provide credentials")
	ErrNotImplemented          = errors.New("not implemented")
	ErrNoResult                = errors.New("query returned no result")
	ErrTooManyResults          = errors.New("query returned to many results, expected one")
	ErrWebserviceResponseNotOk = errors.New("webservice response was not ok")
)

Functions

This section is empty.

Types

type Attribute

type Attribute struct {
	ID                   string `json:"id"`
	Name                 string `json:"name"`
	Description          string `json:"description"`
	Note                 string `json:"note"`
	Hint                 string `json:"hint"`
	AttributeTypeID      string `json:"attribute_type_id"`
	AttributeGroupID     string `json:"attribute_group_id"`
	OrderNumber          string `json:"order_number"`
	Column               string `json:"column"`
	IsUnique             string `json:"is_unique"`
	IsNumeric            string `json:"is_numeric"`
	IsBold               string `json:"is_bold"`
	IsEvent              string `json:"is_event"`
	IsUniqueCheck        string `json:"is_unique_check"`
	IsAutocomplete       string `json:"is_autocomplete"`
	IsMultiselect        string `json:"is_multiselect"`
	IsProjectRestricted  string `json:"is_project_restricted"`
	Regex                string `json:"regex"`
	WorkflowID           int    `json:"workflow_id,string"`
	ScriptName           string `json:"script_name"`
	Tag                  string `json:"tag"`
	InputMaxlength       string `json:"input_maxlength"`
	TextareaCols         string `json:"textarea_cols"`
	TextareaRows         string `json:"textarea_rows"`
	IsActive             string `json:"is_active"`
	UserID               string `json:"user_id"`
	ValidFrom            string `json:"valid_from"`
	Historicize          string `json:"historicize"`
	DisplayStyle         string `json:"display_style"`
	AttributeTypeName    string `json:"attributeTypeName"`
	AttributeGroup       string `json:"attribute_group"`
	ParentAttributeGroup string `json:"parent_attribute_group"`
	ValueText            string `json:"value_text"`
	ValueDate            string `json:"value_date"`
	ValueCi              string `json:"value_ci"`
	CiAttributeID        string `json:"ciAttributeId"`
	Initial              string `json:"initial"`
	ValueNote            string `json:"valueNote"`
	HistoryID            string `json:"history_id"`
	ValueDefault         string `json:"value_default"`
}

type AttributeValueType

type AttributeValueType string
const (
	ATTRIBUTE_VALUE_TYPE_TEXT    AttributeValueType = "value_text"
	ATTRIBUTE_VALUE_TYPE_DATE    AttributeValueType = "value_date"
	ATTRIBUTE_VALUE_TYPE_DEFAULT AttributeValueType = "value_default"
	ATTRIBUTE_VALUE_TYPE_CI      AttributeValueType = "value_ci"
)

type CiDetail

type CiDetail struct {
	//Relations  map[int]Relation          `json:"relations"`
	Projects   map[int]Project           `json:"projects"`
	CiTypeID   string                    `json:"ciTypeId"`
	CiTypeName string                    `json:"ciTypeName"`
	Attributes map[int]map[int]Attribute `json:"attributes"`
}

func (*CiDetail) GetFirstAttributeByName

func (ciDetail *CiDetail) GetFirstAttributeByName(name string) *Attribute

func (*CiDetail) GetFirstAttributeValueCiByName

func (ciDetail *CiDetail) GetFirstAttributeValueCiByName(name string) (int, bool)

func (*CiDetail) GetFirstAttributeValueTextByName

func (ciDetail *CiDetail) GetFirstAttributeValueTextByName(name string) (string, bool)

type CiRelationDirection

type CiRelationDirection string
const (
	CI_RELATION_DIRECTION_ALL             CiRelationDirection = "all"
	CI_RELATION_DIRECTION_DIRECTED_FROM   CiRelationDirection = "directed_from"
	CI_RELATION_DIRECTION_DIRECTED_TO     CiRelationDirection = "directed_to"
	CI_RELATION_DIRECTION_BIDIRECTIONAL   CiRelationDirection = "bidirectional"
	CI_RELATION_DIRECTION_OMNIDIRECTIONAL CiRelationDirection = "omnidirectional"
)

func NewCiRelationDirection

func NewCiRelationDirection(directionId int) (direction CiRelationDirection, err error)

func (CiRelationDirection) GetId

func (direction CiRelationDirection) GetId() (directionId int, err error)

type Cmdb

type Cmdb struct {
	Config Config
	Cache  *cache.Cache
	Client *client.Client
	Logger *log.Logger
	Error  error
}

func New

func New() (cmdb *Cmdb)

New returns a new Cmdb Client to access the V2 Api

func (*Cmdb) CiDetailByCiId

func (cmdb *Cmdb) CiDetailByCiId(ciId int64) (ciDetail GetCiDetailResponse, restyRes *resty.Response, err error)

func (*Cmdb) CiListByCiTypeID

func (cmdb *Cmdb) CiListByCiTypeID(ciTypeID int, out interface{}) (err error)

func (*Cmdb) GetWorkflowContext

func (cmdb *Cmdb) GetWorkflowContext(workflowInstanceId int) (workflowContext *WorkflowContext, err error)

func (*Cmdb) LoadConfig

func (cmdb *Cmdb) LoadConfig(config Config)

func (*Cmdb) LoadConfigFile

func (cmdb *Cmdb) LoadConfigFile(path string) (err error)

func (*Cmdb) Login

func (cmdb *Cmdb) Login() (err error)

func (*Cmdb) Query

func (cmdb *Cmdb) Query(query string, out interface{}, params map[string]string) (err error)

func (*Cmdb) QueryRaw

func (cmdb *Cmdb) QueryRaw(query string, params map[string]string) (r string, err error)

func (*Cmdb) UpdateCiAttribute

func (cmdb *Cmdb) UpdateCiAttribute(ci int, ua []UpdateCiAttribute) (err error)

type Config

type Config struct {
	Url      string `yaml:"apiUrl"`
	Username string `yaml:"apiUser"`
	Password string `yaml:"apiPassword"`
	BasePath string `yaml:"BasePath"`
}

type Data

type Data struct {
	Old *CiDetail `json:"old"`
	New *CiDetail `json:"new"`
}

type ErrorReturn

type ErrorReturn struct {
	Message string `json:"message"`
	Success bool   `json:"success"`
}

type GetCiDetailResponse

type GetCiDetailResponse struct {
	Success bool   `json:"success"`
	Message string `json:"message"`
	Data    struct {
		Data struct {
			Ci struct {
				ID        string `json:"id"`
				CiTypeID  string `json:"ci_type_id"`
				Icon      string `json:"icon"`
				HistoryID string `json:"history_id"`
				ValidFrom string `json:"valid_from"`
				CreatedAt string `json:"created_at"`
				UpdatedAt string `json:"updated_at"`
			} `json:"ci"`
			CiType struct {
				ID                      string `json:"id"`
				Name                    string `json:"name"`
				Description             string `json:"description"`
				Note                    string `json:"note"`
				ParentCiTypeID          string `json:"parent_ci_type_id"`
				OrderNumber             string `json:"order_number"`
				CreateButtonDescription string `json:"create_button_description"`
				Icon                    string `json:"icon"`
				Query                   string `json:"query"`
				DefaultProjectID        string `json:"default_project_id"`
				DefaultAttributeID      string `json:"default_attribute_id"`
				DefaultSortAttributeID  string `json:"default_sort_attribute_id"`
				IsDefaultSortAsc        string `json:"is_default_sort_asc"`
				IsCiAttach              string `json:"is_ci_attach"`
				IsAttributeAttach       string `json:"is_attribute_attach"`
				Tag                     string `json:"tag"`
				IsTabEnabled            string `json:"is_tab_enabled"`
				IsEventEnabled          string `json:"is_event_enabled"`
				IsActive                string `json:"is_active"`
				UserID                  string `json:"user_id"`
				ValidFrom               string `json:"valid_from"`
			} `json:"ciType"`
			HistoryCreated string `json:"historyCreated"`
			HistoryChanged string `json:"historyChange"`
			ProjectList    []struct {
				ID                 string `json:"id"`
				Name               string `json:"name"`
				Description        string `json:"description"`
				Note               string `json:"note"`
				OrderNumber        string `json:"order_number"`
				IsActive           string `json:"is_active"`
				UserID             string `json:"user_id"`
				ValidFrom          string `json:"valid_from"`
				CiProjectValidFrom string `json:"ci_project_valid_from"`
				CiProjectHistoryID string `json:"ci_project_history_id"`
			} `json:"projectList"`
			AttributeList map[string]struct {
				ID          string `json:"id"`
				Name        string `json:"name"`
				Description string `json:"description"`
				Columns     int    `json:"columns"`
				Attributes  map[string][]struct {
					ID                   string `json:"id"`
					Name                 string `json:"name"`
					Description          string `json:"description"`
					Note                 string `json:"note"`
					Hint                 string `json:"hint"`
					AttributeTypeID      string `json:"attribute_type_id"`
					AttributeGroupID     string `json:"attribute_group_id"`
					OrderNumber          string `json:"order_number"`
					Column               string `json:"column"`
					IsUnique             string `json:"is_unique"`
					IsNumeric            string `json:"is_numeric"`
					IsBold               string `json:"is_bold"`
					IsEvent              string `json:"is_event"`
					IsUniqueCheck        string `json:"is_unique_check"`
					IsAutocomplete       string `json:"is_autocomplete"`
					IsMultiselect        string `json:"is_multiselect"`
					IsProjectRestricted  string `json:"is_project_restricted"`
					Regex                string `json:"regex"`
					WorkflowID           string `json:"workflow_id"`
					Tag                  string `json:"tag"`
					InputMaxlength       string `json:"input_maxlength"`
					TextareaCols         string `json:"textarea_cols"`
					TextareaRows         string `json:"textarea_rows"`
					IsActive             string `json:"is_active"`
					UserID               string `json:"user_id"`
					ValidFrom            string `json:"valid_from"`
					Historicize          string `json:"historicize"`
					DisplayStyle         string `json:"display_style"`
					AttributeTypeName    string `json:"attributeTypeName"`
					AttributeGroup       string `json:"attribute_group"`
					ParentAttributeGroup string `json:"parent_attribute_group"`
					ValueText            string `json:"value_text,omitempty"`
					ValueDate            string `json:"value_date"`
					ValueCi              string `json:"value_ci"`
					CiAttributeID        string `json:"ciAttributeId"`
					Initial              string `json:"initial"`
					ValueNote            string `json:"valueNote"`
					HistoryID            string `json:"history_id"`
					ValueDefault         string `json:"value_default"`
					PermissionWrite      string `json:"permission_write"`
				} `json:"attributes"`
				ReadCount  int `json:"readCount"`
				WriteCount int `json:"writeCount"`
			} `json:"attributeList"`
			Icon        string        `json:"icon"`
			Relations   []interface{} `json:"relations"`
			Breadcrumbs []struct {
				ID                      string      `json:"id,omitempty"`
				Name                    string      `json:"name,omitempty"`
				Description             interface{} `json:"description"`
				Note                    string      `json:"note,omitempty"`
				ParentCiTypeID          string      `json:"parent_ci_type_id,omitempty"`
				OrderNumber             string      `json:"order_number,omitempty"`
				CreateButtonDescription interface{} `json:"create_button_description,omitempty"`
				Icon                    interface{} `json:"icon,omitempty"`
				Query                   interface{} `json:"query,omitempty"`
				DefaultProjectID        interface{} `json:"default_project_id,omitempty"`
				DefaultAttributeID      interface{} `json:"default_attribute_id,omitempty"`
				DefaultSortAttributeID  interface{} `json:"default_sort_attribute_id,omitempty"`
				IsDefaultSortAsc        string      `json:"is_default_sort_asc,omitempty"`
				IsCiAttach              string      `json:"is_ci_attach,omitempty"`
				IsAttributeAttach       string      `json:"is_attribute_attach,omitempty"`
				Tag                     interface{} `json:"tag,omitempty"`
				IsTabEnabled            string      `json:"is_tab_enabled,omitempty"`
				IsEventEnabled          string      `json:"is_event_enabled,omitempty"`
				IsActive                string      `json:"is_active,omitempty"`
				UserID                  string      `json:"user_id,omitempty"`
				ValidFrom               string      `json:"valid_from,omitempty"`
				CrumbType               string      `json:"crumbType"`
			} `json:"breadcrumbs"`
			Tickets   []interface{} `json:"tickets"`
			Ticketurl string        `json:"ticketurl"`
			Events    []struct {
				ID                   string      `json:"id"`
				Name                 string      `json:"name"`
				Description          string      `json:"description"`
				Note                 string      `json:"note"`
				Hint                 string      `json:"hint"`
				AttributeTypeID      string      `json:"attribute_type_id"`
				AttributeGroupID     string      `json:"attribute_group_id"`
				OrderNumber          string      `json:"order_number"`
				Column               string      `json:"column"`
				IsUnique             string      `json:"is_unique"`
				IsNumeric            string      `json:"is_numeric"`
				IsBold               string      `json:"is_bold"`
				IsEvent              string      `json:"is_event"`
				IsUniqueCheck        string      `json:"is_unique_check"`
				IsAutocomplete       string      `json:"is_autocomplete"`
				IsMultiselect        string      `json:"is_multiselect"`
				IsProjectRestricted  string      `json:"is_project_restricted"`
				Regex                interface{} `json:"regex"`
				WorkflowID           string      `json:"workflow_id"`
				ScriptName           interface{} `json:"script_name"`
				Tag                  string      `json:"tag"`
				InputMaxlength       interface{} `json:"input_maxlength"`
				TextareaCols         interface{} `json:"textarea_cols"`
				TextareaRows         interface{} `json:"textarea_rows"`
				IsActive             string      `json:"is_active"`
				UserID               string      `json:"user_id"`
				ValidFrom            string      `json:"valid_from"`
				Historicize          string      `json:"historicize"`
				DisplayStyle         interface{} `json:"display_style"`
				AttributeTypeName    string      `json:"attributeTypeName"`
				AttributeGroup       string      `json:"attribute_group"`
				ParentAttributeGroup interface{} `json:"parent_attribute_group"`
				ValueText            interface{} `json:"value_text"`
				ValueDate            interface{} `json:"value_date"`
				ValueCi              interface{} `json:"value_ci"`
				CiAttributeID        string      `json:"ciAttributeId"`
				Initial              string      `json:"initial"`
				ValueNote            interface{} `json:"valueNote"`
				HistoryID            string      `json:"history_id"`
				ValueDefault         interface{} `json:"value_default"`
				PermissionWrite      string      `json:"permission_write"`
			} `json:"events"`
		} `json:"data"`
	} `json:"data"`
}

type Project

type Project struct {
	ID                 string `json:"id"`
	Name               string `json:"name"`
	Description        string `json:"description"`
	Note               string `json:"note"`
	OrderNumber        string `json:"order_number"`
	IsActive           string `json:"is_active"`
	UserID             string `json:"user_id"`
	ValidFrom          string `json:"valid_from"`
	CiProjectValidFrom string `json:"ci_project_valid_from"`
	CiProjectHistoryID string `json:"ci_project_history_id"`
}

type Relation

type Relation struct {
	CiId1            string  `json:"ci_id_1"`
	CiId2            string  `json:"ci_id_2"`
	RelationTypeId   string  `json:"relation_type_id"`
	Direction        string  `json:"direction"`
	RelationTypeName string  `json:"relation_type_name"`
	DirectionName    *string `json:"direction_name"`
}

type UpdateCiAttribute

type UpdateCiAttribute struct {
	Mode          UpdateMode `json:"mode"`
	Name          string     `json:"name"`
	Value         string     `json:"value"`
	CiAttributeID int        `json:"ciAttributeId"`
	UploadID      string     `json:"uploadId"`
}

type UpdateMode

type UpdateMode string
const (
	UPDATE_MODE_INSERT UpdateMode = "insert"
	UPDATE_MODE_UPDATE UpdateMode = "update"
	UPDATE_MODE_DELETE UpdateMode = "delete"
	UPDATE_MODE_SET    UpdateMode = "set"
)

type WorkflowContext

type WorkflowContext struct {
	Environment map[string]string `json:"Environment"`
	Ciid        int               `json:"ciid"`
	TriggerType string            `json:"triggerType"`
	Data        Data              `json:"data"`
	UserID      string            `json:"user_id"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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