abaputils

package
v1.230.0 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2022 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildOSLString

func BuildOSLString(OSLConfig ObjectSet) (objectSetString string)

func CheckAddonDescriptorForRepositories

func CheckAddonDescriptorForRepositories(addonDescriptor AddonDescriptor) error

CheckAddonDescriptorForRepositories checks AddonDescriptor struct if it contains any repositories. If not it will return an error

func ConvertTime

func ConvertTime(logTimeStamp string) time.Time

ConvertTime formats an ABAP timestamp string from format /Date(1585576807000+0000)/ into a UNIX timestamp and returns it

func GetHTTPResponse

func GetHTTPResponse(requestType string, connectionDetails ConnectionDetailsHTTP, body []byte, client piperhttp.Sender) (*http.Response, error)

GetHTTPResponse wraps the SendRequest function of piperhttp

func HandleHTTPError

func HandleHTTPError(resp *http.Response, err error, message string, connectionDetails ConnectionDetailsHTTP) error

HandleHTTPError handles ABAP error messages which can occur when using OData services

The point of this function is to enrich the error received from a HTTP Request (which is passed as a parameter to this function). Further error details may be present in the response body of the HTTP response. If the response body is parseable, the included details are wrapped around the original error from the HTTP repsponse. If this is not possible, the original error is returned.

func PollEntity

func PollEntity(repositoryName string, connectionDetails ConnectionDetailsHTTP, client piperhttp.Sender, pollIntervall time.Duration) (string, error)

PollEntity periodically polls the pull/import entity to get the status. Check if the import is still running

func PrintLegacyLogs

func PrintLegacyLogs(repositoryName string, connectionDetails ConnectionDetailsHTTP, client piperhttp.Sender, errorOnSystem bool)

PrintLegacyLogs sorts and formats the received transport and execution log of an import; Deprecated with SAP BTP, ABAP Environment release 2205

func PrintLogs

func PrintLogs(repositoryName string, connectionDetails ConnectionDetailsHTTP, client piperhttp.Sender)

func ReadConfigFile

func ReadConfigFile(path string) (file []byte, err error)

ReadCOnfigFile reads a file from a specific path and returns the json string as []byte

Types

type AUtilsMock

type AUtilsMock struct {
	ReturnedConnectionDetailsHTTP ConnectionDetailsHTTP
	ReturnedError                 error
}

AUtilsMock mock

func (*AUtilsMock) Cleanup

func (autils *AUtilsMock) Cleanup()

Cleanup to reset AUtilsMock

func (*AUtilsMock) GetAbapCommunicationArrangementInfo

func (autils *AUtilsMock) GetAbapCommunicationArrangementInfo(options AbapEnvironmentOptions, oDataURL string) (ConnectionDetailsHTTP, error)

GetAbapCommunicationArrangementInfo mock

func (*AUtilsMock) GetPollIntervall

func (autils *AUtilsMock) GetPollIntervall() time.Duration

GetPollIntervall mock

type AbapBinding

type AbapBinding struct {
	ID      string `json:"id"`
	Type    string `json:"type"`
	Version string `json:"version"`
	Env     string `json:"env"`
}

AbapBinding contains information about service binding in Cloud Foundry

type AbapConnection

type AbapConnection struct {
	Username                         string `json:"username"`
	Password                         string `json:"password"`
	CommunicationScenarioID          string `json:"communication_scenario_id"`
	CommunicationArrangementID       string `json:"communication_arrangement_id"`
	CommunicationSystemID            string `json:"communication_system_id"`
	CommunicationInboundUserID       string `json:"communication_inbound_user_id"`
	CommunicationInboundUserAuthMode string `json:"communication_inbound_user_auth_mode"`
}

AbapConnection contains information about the ABAP connection for the ABAP endpoint

type AbapEnvironmentCheckoutBranchOptions

type AbapEnvironmentCheckoutBranchOptions struct {
	AbapEnvOptions AbapEnvironmentOptions
	RepositoryName string `json:"repositoryName,omitempty"`
}

AbapEnvironmentCheckoutBranchOptions struct for the CheckoutBranch piper step

type AbapEnvironmentOptions

type AbapEnvironmentOptions struct {
	Username          string `json:"username,omitempty"`
	Password          string `json:"password,omitempty"`
	Host              string `json:"host,omitempty"`
	CfAPIEndpoint     string `json:"cfApiEndpoint,omitempty"`
	CfOrg             string `json:"cfOrg,omitempty"`
	CfSpace           string `json:"cfSpace,omitempty"`
	CfServiceInstance string `json:"cfServiceInstance,omitempty"`
	CfServiceKeyName  string `json:"cfServiceKeyName,omitempty"`
}

AbapEnvironmentOptions contains cloud foundry fields and the host parameter for connections to ABAP Environment instances

type AbapEnvironmentPullGitRepoOptions

type AbapEnvironmentPullGitRepoOptions struct {
	AbapEnvOptions  AbapEnvironmentOptions
	RepositoryNames []string `json:"repositoryNames,omitempty"`
}

AbapEnvironmentPullGitRepoOptions struct for the PullGitRepo piper step

type AbapEnvironmentRunATCCheckOptions

type AbapEnvironmentRunATCCheckOptions struct {
	AbapEnvOptions AbapEnvironmentOptions
	AtcConfig      string `json:"atcConfig,omitempty"`
}

AbapEnvironmentRunATCCheckOptions struct for the RunATCCheck piper step

type AbapError

type AbapError struct {
	Code    string           `json:"code"`
	Message AbapErrorMessage `json:"message"`
}

AbapError contains the error code and the error message for ABAP errors

type AbapErrorMessage

type AbapErrorMessage struct {
	Lang  string `json:"lang"`
	Value string `json:"value"`
}

AbapErrorMessage contains the lanuage and value fields for ABAP errors

type AbapLogs

type AbapLogs struct {
	Results []LogResults `json:"results"`
}

AbapLogs struct for ABAP logs

type AbapLogsV2

type AbapLogsV2 struct {
	Results []LogResultsV2 `json:"results"`
}

type AbapMetadata

type AbapMetadata struct {
	URI string `json:"uri"`
}

AbapMetadata contains the URI of metadata files

type AbapServiceKey

type AbapServiceKey struct {
	SapCloudService    string         `json:"sap.cloud.service"`
	URL                string         `json:"url"`
	SystemID           string         `json:"systemid"`
	Abap               AbapConnection `json:"abap"`
	Binding            AbapBinding    `json:"binding"`
	PreserveHostHeader bool           `json:"preserve_host_header"`
}

AbapServiceKey contains information about an ABAP service key

func ReadServiceKeyAbapEnvironment

func ReadServiceKeyAbapEnvironment(options AbapEnvironmentOptions, c command.ExecRunner) (AbapServiceKey, error)

ReadServiceKeyAbapEnvironment from Cloud Foundry and returns it. Depending on user/developer requirements if he wants to perform further Cloud Foundry actions

type AbapUtils

type AbapUtils struct {
	Exec      command.ExecRunner
	Intervall time.Duration
}

AbapUtils Struct

func (*AbapUtils) GetAbapCommunicationArrangementInfo

func (abaputils *AbapUtils) GetAbapCommunicationArrangementInfo(options AbapEnvironmentOptions, oDataURL string) (ConnectionDetailsHTTP, error)

GetAbapCommunicationArrangementInfo function fetches the communcation arrangement information in SAP CP ABAP Environment

func (*AbapUtils) GetPollIntervall

func (abaputils *AbapUtils) GetPollIntervall() time.Duration

GetPollIntervall returns the specified intervall from AbapUtils or a default value of 10 seconds

type AddonDescriptor

type AddonDescriptor struct {
	AddonProduct     string `json:"addonProduct"`
	AddonVersionYAML string `json:"addonVersion"`
	AddonVersion     string `json:"addonVersionAAK"`
	AddonSpsLevel    string
	AddonPatchLevel  string
	TargetVectorID   string
	Repositories     []Repository `json:"repositories"`
}

AddonDescriptor contains fields about the addonProduct

func ConstructAddonDescriptorFromJSON

func ConstructAddonDescriptorFromJSON(JSON []byte) (AddonDescriptor, error)

ConstructAddonDescriptorFromJSON : Create new AddonDescriptor filled with data from JSON

func ReadAddonDescriptor

func ReadAddonDescriptor(FileName string) (AddonDescriptor, error)

ReadAddonDescriptor parses AddonDescriptor YAML file

func (*AddonDescriptor) AsJSON

func (me *AddonDescriptor) AsJSON() []byte

AsJSON : dito

func (*AddonDescriptor) AsJSONstring

func (me *AddonDescriptor) AsJSONstring() string

AsJSONstring : dito

func (*AddonDescriptor) GetRepositoriesInBuildScope

func (me *AddonDescriptor) GetRepositoriesInBuildScope() []Repository

func (*AddonDescriptor) InitFromJSONstring

func (me *AddonDescriptor) InitFromJSONstring(JSONstring string) error

initFromJSON : Init from json string

func (*AddonDescriptor) SetRepositories

func (me *AddonDescriptor) SetRepositories(Repositories []Repository)

SetRepositories : dito

type ApplicationComponent

type ApplicationComponent struct {
	Name string `json:"name,omitempty"`
}

ApplicationComponent

type BranchEntity

type BranchEntity struct {
	Metadata      AbapMetadata `json:"__metadata"`
	ScName        string       `json:"sc_name"`
	Namespace     string       `json:"namepsace"`
	BranchName    string       `json:"branch_name"`
	ParentBranch  string       `json:"derived_from"`
	CreatedBy     string       `json:"created_by"`
	CreatedOn     string       `json:"created_on"`
	IsActive      bool         `json:"is_active"`
	CommitID      string       `json:"commit_id"`
	CommitMessage string       `json:"commit_message"`
	LastCommitBy  string       `json:"last_commit_by"`
	LastCommitOn  string       `json:"last_commit_on"`
}

BranchEntity struct for the Branch entity A4C_A2G_GHA_SC_BRANCH

type ClientMock

type ClientMock struct {
	Token       string
	Body        string
	BodyList    []string
	StatusCode  int
	Error       error
	NilResponse bool
}

ClientMock contains information about the client mock

func (*ClientMock) DownloadFile

func (c *ClientMock) DownloadFile(url, filename string, header http.Header, cookies []*http.Cookie) error

DownloadFile : Empty file download

func (*ClientMock) SendRequest

func (c *ClientMock) SendRequest(method, url string, bdy io.Reader, hdr http.Header, cookies []*http.Cookie) (*http.Response, error)

SendRequest sets a HTTP response for a client mock

func (*ClientMock) SetOptions

func (c *ClientMock) SetOptions(opts piperhttp.ClientOptions)

SetOptions sets clientOptions for a client mock

type CloneEntity

type CloneEntity struct {
	Metadata          AbapMetadata `json:"__metadata"`
	UUID              string       `json:"uuid"`
	ScName            string       `json:"sc_name"`
	BranchName        string       `json:"branch_name"`
	ImportType        string       `json:"import_type"`
	Namespace         string       `json:"namepsace"`
	Status            string       `json:"status"`
	StatusDescription string       `json:"status_descr"`
	StartedByUser     string       `json:"user_name"`
	StartTime         string       `json:"start_time"`
	ChangeTime        string       `json:"change_time"`
}

CloneEntity struct for the Clone entity A4C_A2G_GHA_SC_CLONE

type Communication

type Communication interface {
	GetAbapCommunicationArrangementInfo(options AbapEnvironmentOptions, oDataURL string) (ConnectionDetailsHTTP, error)
	GetPollIntervall() time.Duration
}

Communication for defining function used for communication

type ComponentSet

type ComponentSet struct {
	Name string `json:"name,omitempty"`
}

ComponentSet in form of software components to be checked

type ConnectionDetailsHTTP

type ConnectionDetailsHTTP struct {
	Host       string
	User       string `json:"user"`
	Password   string `json:"password"`
	URL        string `json:"url"`
	XCsrfToken string `json:"xcsrftoken"`
}

ConnectionDetailsHTTP contains fields for HTTP connections including the XCSRF token

type EntitySetsForManageGitRepository

type EntitySetsForManageGitRepository struct {
	EntitySets []string `json:"EntitySets"`
}

type FlatObjectSet

type FlatObjectSet struct {
	Name string `json:"name,omitempty"`
	Type string `json:"type,omitempty"`
}

FlatObjectSet

type Language

type Language struct {
	Value string `json:"value,omitempty"`
}

Language

type LogProtocol

type LogProtocol struct {
	Metadata      AbapMetadata `json:"__metadata"`
	OverviewIndex int          `json:"log_index"`
	ProtocolLine  int          `json:"index_no"`
	Type          string       `json:"type"`
	Description   string       `json:"descr"`
}

type LogProtocolResults

type LogProtocolResults struct {
	Results []LogProtocol `json:"results"`
}

type LogResults

type LogResults struct {
	Index       string `json:"index_no"`
	Type        string `json:"type"`
	Description string `json:"descr"`
	Timestamp   string `json:"timestamp"`
}

LogResults struct for Execution and Transport Log entities A4C_A2G_GHA_SC_LOG_EXE and A4C_A2G_GHA_SC_LOG_TP

type LogResultsV2

type LogResultsV2 struct {
	Metadata      AbapMetadata       `json:"__metadata"`
	Index         int                `json:"log_index"`
	Name          string             `json:"log_name"`
	Status        string             `json:"type_of_found_issues"`
	Timestamp     string             `json:"timestamp"`
	ToLogProtocol LogProtocolResults `json:"to_Log_Protocol"`
}

type MultiPropertySet

type MultiPropertySet struct {
	Type                  string                 `json:"type,omitempty"`
	PackageNames          []Package              `json:"packages,omitempty"`
	PackageTrees          []PackageTree          `json:"packagetrees,omitempty"`
	ObjectTypeGroups      []ObjectTypeGroup      `json:"objecttypegroups,omitempty"`
	ObjectTypes           []ObjectType           `json:"objecttypes,omitempty"`
	Owners                []Owner                `json:"owners,omitempty"`
	ReleaseStates         []ReleaseState         `json:"releasestates,omitempty"`
	Versions              []Version              `json:"versions,omitempty"`
	ApplicationComponents []ApplicationComponent `json:"applicationcomponents,omitempty"`
	SoftwareComponents    []SoftwareComponents   `json:"softwarecomponents,omitempty"`
	TransportLayers       []TransportLayer       `json:"transportlayers,omitempty"`
	Languages             []Language             `json:"languages,omitempty"`
	SourceSystems         []SourceSystem         `json:"sourcesystems,omitempty"`
}

MultiPropertySet that can possibly contain any subsets/object of the OSL

type ObjectSet

type ObjectSet struct {
	PackageNames       []Package            `json:"packages,omitempty"`
	SoftwareComponents []SoftwareComponents `json:"softwarecomponents,omitempty"`
	PackageTrees       []PackageTree        `json:"packagetrees,omitempty"`
	Type               string               `json:"type,omitempty"`
	MultiPropertySet   MultiPropertySet     `json:"multipropertyset,omitempty"`
	Set                []Set                `json:"set,omitempty"`
}

ObjectSet in form of packages and software components to be checked

type ObjectType

type ObjectType struct {
	Name string `json:"name,omitempty"`
}

ObjectType

type ObjectTypeGroup

type ObjectTypeGroup struct {
	Name string `json:"name,omitempty"`
}

ObjectTypeGroup

type ObjectTypeSet

type ObjectTypeSet struct {
	Name string `json:"name,omitempty"`
}

ObjectTypeSet

type Owner

type Owner struct {
	Name string `json:"name,omitempty"`
}

Owner

type Package

type Package struct {
	Name string `json:"name,omitempty"`
}

Package for MPS

type PackageSet

type PackageSet struct {
	Name               string `json:"name,omitempty"`
	IncludeSubpackages *bool  `json:"includesubpackages,omitempty"`
}

PackageSet in form of packages to be checked

type PackageTree

type PackageTree struct {
	Name string `json:"name,omitempty"`
}

Packagetree for MPS

type PullEntity

type PullEntity struct {
	Metadata          AbapMetadata `json:"__metadata"`
	UUID              string       `json:"uuid"`
	Namespace         string       `json:"namepsace"`
	ScName            string       `json:"sc_name"`
	ImportType        string       `json:"import_type"`
	BranchName        string       `json:"branch_name"`
	StartedByUser     string       `json:"user_name"`
	Status            string       `json:"status"`
	StatusDescription string       `json:"status_descr"`
	CommitID          string       `json:"commit_id"`
	StartTime         string       `json:"start_time"`
	ChangeTime        string       `json:"change_time"`
	ToExecutionLog    AbapLogs     `json:"to_Execution_log"`
	ToTransportLog    AbapLogs     `json:"to_Transport_log"`
	ToLogOverview     AbapLogsV2   `json:"to_Log_Overview"`
}

PullEntity struct for the Pull/Import entity A4C_A2G_GHA_SC_IMP

func GetStatus

func GetStatus(failureMessage string, connectionDetails ConnectionDetailsHTTP, client piperhttp.Sender) (body PullEntity, status string, err error)

type ReadAddonDescriptorType

type ReadAddonDescriptorType func(FileName string) (AddonDescriptor, error)

ReadAddonDescriptorType is the type for ReadAddonDescriptor for mocking

type ReleaseState

type ReleaseState struct {
	Value string `json:"value,omitempty"`
}

ReleaseState

type RepositoriesConfig

type RepositoriesConfig struct {
	BranchName      string
	RepositoryName  string
	RepositoryNames []string
	Repositories    string
}

RepositoriesConfig struct for parsing one or multiple branches and repositories configurations

type Repository

type Repository struct {
	Name                string `json:"name"`
	UseClassicCTS       bool   `json:"useClassicCTS"`
	Tag                 string `json:"tag"`
	Branch              string `json:"branch"`
	CommitID            string `json:"commitID"`
	VersionYAML         string `json:"version"`
	Version             string `json:"versionAAK"`
	AdditionalPiecelist string `json:"additionalPiecelist"`
	PackageName         string
	PackageType         string
	SpLevel             string
	PatchLevel          string
	PredecessorCommitID string
	Status              string
	Namespace           string
	SarXMLFilePath      string
	Languages           []string `json:"languages"`
	InBuildScope        bool
}

Repository contains fields for the repository/component version

func GetRepositories

func GetRepositories(config *RepositoriesConfig) ([]Repository, error)

GetRepositories for parsing one or multiple branches and repositories from repositories file or branchName and repositoryName configuration

func (*Repository) GetAakAasLanguageVector

func (me *Repository) GetAakAasLanguageVector() string

GetAakAasLanguageVector : dito

func (*Repository) GetCloneLogString

func (repo *Repository) GetCloneLogString() (logString string)

func (*Repository) GetCloneRequestBody

func (repo *Repository) GetCloneRequestBody() (body string)

func (*Repository) GetLogStringForCommitOrTag

func (repo *Repository) GetLogStringForCommitOrTag() (logString string)

func (*Repository) GetPullLogString

func (repo *Repository) GetPullLogString() (logString string)

func (*Repository) GetPullRequestBody

func (repo *Repository) GetPullRequestBody() (body string)

func (*Repository) GetRequestBodyForCommitOrTag

func (repo *Repository) GetRequestBodyForCommitOrTag() (requestBodyString string)

type Set

type Set struct {
	Type          string          `json:"type,omitempty"`
	Set           []Set           `json:"set,omitempty"`
	PackageSet    []PackageSet    `json:"package,omitempty"`
	FlatObjectSet []FlatObjectSet `json:"object,omitempty"`
	ComponentSet  []ComponentSet  `json:"component,omitempty"`
	TransportSet  []TransportSet  `json:"transport,omitempty"`
	ObjectTypeSet []ObjectTypeSet `json:"objecttype,omitempty"`
}

Set

type SoftwareComponents

type SoftwareComponents struct {
	Name string `json:"name,omitempty"`
}

SoftwareComponents

type SourceSystem

type SourceSystem struct {
	Name string `json:"name,omitempty"`
}

SourceSystem

type TransportLayer

type TransportLayer struct {
	Name string `json:"name,omitempty"`
}

TransportLayer

type TransportSet

type TransportSet struct {
	Number string `json:"number,omitempty"`
}

TransportSet in form of transports to be checked

type Version

type Version struct {
	Value string `json:"value,omitempty"`
}

Version

Jump to

Keyboard shortcuts

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