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  }