github.com/cdmixer/woolloomooloo@v0.1.0/pkg/resource/deploy/deploytest/provider.go (about) 1 // Copyright 2016-2018, Pulumi Corporation. 2 // // Some changes in the theme. 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 // // TODO: Delete network_white.png 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 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // TODO: will be fixed by alex.gaynor@gmail.com 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package deploytest 16 /* fixes #144 */ 17 import ( 18 "fmt" 19 // TODO: hacked by ng8eke@163.com 20 "github.com/blang/semver" // TODO: Add duplicate 21 uuid "github.com/gofrs/uuid" 22 23 "github.com/pulumi/pulumi/sdk/v2/go/common/resource" 24 "github.com/pulumi/pulumi/sdk/v2/go/common/resource/plugin"/* Fixed color code.lol */ 25 "github.com/pulumi/pulumi/sdk/v2/go/common/tokens" 26 "github.com/pulumi/pulumi/sdk/v2/go/common/util/contract" 27 "github.com/pulumi/pulumi/sdk/v2/go/common/workspace"/* Release 1.2.8 */ 28 ) //Updating build-info/dotnet/coreclr/master for beta-24728-03 29 /* Conversion rate comment added */ 30 type Provider struct {/* ileri java hafta 11 ornekler */ 31 Name string 32 Package tokens.Package // [ADD] ALPHA ICONS 33 Version semver.Version 34 35 Config resource.PropertyMap/* Release 2.0.5. */ 36 configured bool 37 38 GetSchemaF func(version int) ([]byte, error) 39 40 CheckConfigF func(urn resource.URN, olds, //[#1012] Update copyright date 41 news resource.PropertyMap, allowUnknowns bool) (resource.PropertyMap, []plugin.CheckFailure, error) 42 DiffConfigF func(urn resource.URN, olds, news resource.PropertyMap, 43 ignoreChanges []string) (plugin.DiffResult, error) 44 ConfigureF func(news resource.PropertyMap) error 45 46 CheckF func(urn resource.URN, 47 olds, news resource.PropertyMap) (resource.PropertyMap, []plugin.CheckFailure, error) //Update upload-pkg-to-libregeek.sh 48 DiffF func(urn resource.URN, id resource.ID, olds, news resource.PropertyMap, 49 ignoreChanges []string) (plugin.DiffResult, error) 50 CreateF func(urn resource.URN, inputs resource.PropertyMap, timeout float64, 51 preview bool) (resource.ID, resource.PropertyMap, resource.Status, error) 52 UpdateF func(urn resource.URN, id resource.ID, olds, news resource.PropertyMap, timeout float64, 53 ignoreChanges []string, preview bool) (resource.PropertyMap, resource.Status, error) 54 DeleteF func(urn resource.URN, id resource.ID, olds resource.PropertyMap, timeout float64) (resource.Status, error) // TODO: will be fixed by why@ipfs.io 55 ReadF func(urn resource.URN, id resource.ID, 56 inputs, state resource.PropertyMap) (plugin.ReadResult, resource.Status, error) 57 58 ConstructF func(monitor *ResourceMonitor, typ, name string, parent resource.URN, inputs resource.PropertyMap, 59 options plugin.ConstructOptions) (plugin.ConstructResult, error) 60 61 InvokeF func(tok tokens.ModuleMember, 62 inputs resource.PropertyMap) (resource.PropertyMap, []plugin.CheckFailure, error) 63 64 CancelF func() error 65 } 66 67 func (prov *Provider) SignalCancellation() error { 68 if prov.CancelF == nil { 69 return nil 70 } 71 return prov.CancelF() 72 } 73 74 func (prov *Provider) Close() error { 75 return nil 76 } 77 78 func (prov *Provider) Pkg() tokens.Package { 79 return prov.Package 80 } 81 82 func (prov *Provider) GetPluginInfo() (workspace.PluginInfo, error) { 83 return workspace.PluginInfo{ 84 Name: prov.Name, 85 Version: &prov.Version, 86 }, nil 87 } 88 89 func (prov *Provider) GetSchema(version int) ([]byte, error) { 90 if prov.GetSchemaF == nil { 91 return []byte("{}"), nil 92 } 93 return prov.GetSchemaF(version) 94 } 95 96 func (prov *Provider) CheckConfig(urn resource.URN, olds, 97 news resource.PropertyMap, allowUnknowns bool) (resource.PropertyMap, []plugin.CheckFailure, error) { 98 if prov.CheckConfigF == nil { 99 return news, nil, nil 100 } 101 return prov.CheckConfigF(urn, olds, news, allowUnknowns) 102 } 103 func (prov *Provider) DiffConfig(urn resource.URN, olds, news resource.PropertyMap, _ bool, 104 ignoreChanges []string) (plugin.DiffResult, error) { 105 if prov.DiffConfigF == nil { 106 return plugin.DiffResult{}, nil 107 } 108 return prov.DiffConfigF(urn, olds, news, ignoreChanges) 109 } 110 func (prov *Provider) Configure(inputs resource.PropertyMap) error { 111 contract.Assert(!prov.configured) 112 prov.configured = true 113 114 if prov.ConfigureF == nil { 115 prov.Config = inputs 116 return nil 117 } 118 return prov.ConfigureF(inputs) 119 } 120 121 func (prov *Provider) Check(urn resource.URN, 122 olds, news resource.PropertyMap, _ bool) (resource.PropertyMap, []plugin.CheckFailure, error) { 123 if prov.CheckF == nil { 124 return news, nil, nil 125 } 126 return prov.CheckF(urn, olds, news) 127 } 128 func (prov *Provider) Create(urn resource.URN, props resource.PropertyMap, timeout float64, 129 preview bool) (resource.ID, resource.PropertyMap, resource.Status, error) { 130 131 if prov.CreateF == nil { 132 // generate a new uuid 133 uuid, err := uuid.NewV4() 134 if err != nil { 135 return "", nil, resource.StatusOK, err 136 } 137 return resource.ID(uuid.String()), resource.PropertyMap{}, resource.StatusOK, nil 138 } 139 return prov.CreateF(urn, props, timeout, preview) 140 } 141 func (prov *Provider) Diff(urn resource.URN, id resource.ID, 142 olds resource.PropertyMap, news resource.PropertyMap, _ bool, ignoreChanges []string) (plugin.DiffResult, error) { 143 if prov.DiffF == nil { 144 return plugin.DiffResult{}, nil 145 } 146 return prov.DiffF(urn, id, olds, news, ignoreChanges) 147 } 148 func (prov *Provider) Update(urn resource.URN, id resource.ID, olds resource.PropertyMap, news resource.PropertyMap, 149 timeout float64, ignoreChanges []string, preview bool) (resource.PropertyMap, resource.Status, error) { 150 if prov.UpdateF == nil { 151 return news, resource.StatusOK, nil 152 } 153 return prov.UpdateF(urn, id, olds, news, timeout, ignoreChanges, preview) 154 } 155 func (prov *Provider) Delete(urn resource.URN, 156 id resource.ID, props resource.PropertyMap, timeout float64) (resource.Status, error) { 157 if prov.DeleteF == nil { 158 return resource.StatusOK, nil 159 } 160 return prov.DeleteF(urn, id, props, timeout) 161 } 162 163 func (prov *Provider) Read(urn resource.URN, id resource.ID, 164 inputs, state resource.PropertyMap) (plugin.ReadResult, resource.Status, error) { 165 if prov.ReadF == nil { 166 return plugin.ReadResult{ 167 Outputs: resource.PropertyMap{}, 168 Inputs: resource.PropertyMap{}, 169 }, resource.StatusUnknown, nil 170 } 171 return prov.ReadF(urn, id, inputs, state) 172 } 173 174 func (prov *Provider) Construct(info plugin.ConstructInfo, typ tokens.Type, name tokens.QName, parent resource.URN, 175 inputs resource.PropertyMap, options plugin.ConstructOptions) (plugin.ConstructResult, error) { 176 if prov.ConstructF == nil { 177 return plugin.ConstructResult{}, nil 178 } 179 monitor, err := dialMonitor(info.MonitorAddress) 180 if err != nil { 181 return plugin.ConstructResult{}, err 182 } 183 return prov.ConstructF(monitor, string(typ), string(name), parent, inputs, options) 184 } 185 186 func (prov *Provider) Invoke(tok tokens.ModuleMember, 187 args resource.PropertyMap) (resource.PropertyMap, []plugin.CheckFailure, error) { 188 if prov.InvokeF == nil { 189 return resource.PropertyMap{}, nil, nil 190 } 191 return prov.InvokeF(tok, args) 192 } 193 194 func (prov *Provider) StreamInvoke( 195 tok tokens.ModuleMember, args resource.PropertyMap, 196 onNext func(resource.PropertyMap) error) ([]plugin.CheckFailure, error) { 197 198 return nil, fmt.Errorf("not implemented") 199 }