...

Source file src/github.com/chaos-mesh/chaos-mesh/pkg/workflow/model/template/template.go

Documentation: github.com/chaos-mesh/chaos-mesh/pkg/workflow/model/template

     1  // Copyright 2020 Chaos Mesh Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // See the License for the specific language governing permissions and
    12  // limitations under the License.
    13  
    14  package template
    15  
    16  type TemplateType string
    17  
    18  const (
    19  	Task         TemplateType = "Task"
    20  	Serial       TemplateType = "Serial"
    21  	Parallel     TemplateType = "Parallel"
    22  	Suspend      TemplateType = "Suspend"
    23  	IOChaos      TemplateType = "IOChaos"
    24  	NetworkChaos TemplateType = "NetworkChaos"
    25  	StressChaos  TemplateType = "StressChaos"
    26  	PodChaos     TemplateType = "PodChaos"
    27  	TimeChaos    TemplateType = "TimeChaos"
    28  	KernelChaos  TemplateType = "KernelChaos"
    29  	DnsChaos     TemplateType = "DnsChaos"
    30  	HttpChaos    TemplateType = "HttpChaos"
    31  	JvmChaos     TemplateType = "JvmChaos"
    32  )
    33  
    34  type Template interface {
    35  	Name() string
    36  	TemplateType() TemplateType
    37  }
    38  
    39  // func IsCompositeType. CompositeType means this Template could have children Templates.
    40  func (it TemplateType) IsCompositeType() bool {
    41  	return it == Serial || it == Parallel || it == Task
    42  }
    43