This commit is contained in:
Fraser Waters 2021-11-12 12:58:15 +00:00
parent 69496beead
commit 98e9e80d81
2 changed files with 78 additions and 3 deletions

View file

@ -56,8 +56,8 @@ test_all:: dotnet_test auto_test
dist::
go install -ldflags "-X github.com/pulumi/pulumi/sdk/v3/go/common/version.Version=${DOTNET_VERSION}" ${LANGHOST_PKG}
dotnet publish dist/Pulumi.Dynamic.csproj /p:Version=${DOTNET_VERSION} -r linux-x64
cp ./dist/bin/Debug/netcoreapp3.1/linux-x64/publish/Pulumi.Dynamic "$$(go env GOPATH)"/bin/pulumi-resource-pulumi-dotnet
dotnet publish Pulumi.Dynamic/Pulumi.Dynamic.csproj /p:Version=${DOTNET_VERSION} -r linux-x64
cp ./Pulumi.Dynamic/bin/Debug/netcoreapp3.1/linux-x64/publish/Pulumi.Dynamic "$$(go env GOPATH)"/bin/pulumi-resource-pulumi-dotnet
brew:: BREW_VERSION := $(shell ../../scripts/get-version HEAD)
brew::

View file

@ -1,7 +1,82 @@
using Pulumirpc;
using Grpc.Core;
using Google.Protobuf.WellKnownTypes;
using System.Linq;
using System.Threading.Tasks;
public static class Program
{
class DynamicResourceProviderServicer : ResourceProvider.ResourceProviderBase
{
// def CheckConfig(self, request, context):
// context.set_code(grpc.StatusCode.UNIMPLEMENTED)
// context.set_details("CheckConfig is not implemented by the dynamic provider")
// raise NotImplementedError("CheckConfig is not implemented by the dynamic provider")
//
// def DiffConfig(self, request, context):
// context.set_code(grpc.StatusCode.UNIMPLEMENTED)
// context.set_details("DiffConfig is not implemented by the dynamic provider")
// raise NotImplementedError("DiffConfig is not implemented by the dynamic provider")
//
// def Invoke(self, request, context):
// context.set_code(grpc.StatusCode.UNIMPLEMENTED)
// context.set_details("Invoke is not implemented by the dynamic provider")
// raise NotImplementedError(
// def GetSchema(self, request, context):
// context.set_code(grpc.StatusCode.UNIMPLEMENTED)
// context.set_details("GetSchema is not implemented by the dynamic provider")
// raise NotImplementedError("GetSchema is not implemented by the dynamic provider")f"unknown function {request.token}")
public override Task<ConfigureResponse> Configure(ConfigureRequest request, ServerCallContext context)
{
var response = new ConfigureResponse();
response.AcceptSecrets = false;
return Task.FromResult(response);
}
public override Task<PluginInfo> GetPluginInfo(Empty request, ServerCallContext context)
{
var response = new PluginInfo();
response.Version = "0.1.0";
return Task.FromResult(response);
}
public override Task<Empty> Cancel(Empty request, ServerCallContext context)
{
return Task.FromResult(new Empty());
}
public override Task<CreateResponse> Create(CreateRequest request, ServerCallContext context)
{
throw new System.Exception("BANG");
//return base.Create(request, context);
}
}
public static void Main(string[] args)
{
System.Console.WriteLine("Hello world");
var monitor = new DynamicResourceProviderServicer();
var server = new Server
{
Services = { ResourceProvider.BindService(monitor) },
Ports = { new ServerPort("0.0.0.0", 0, ServerCredentials.Insecure) }
};
server.Start();
var port = server.Ports.First();
System.Console.Error.WriteLine(port.ToString());
System.Threading.Tasks.Task? shutdownTask = null;
var exitEvent = new System.Threading.ManualResetEventSlim();
System.Console.CancelKeyPress += (System.ConsoleCancelEventHandler)((sender, e) => {
shutdownTask = server.ShutdownAsync();
exitEvent.Set();
});
exitEvent.Wait();
shutdownTask!.Wait();
}
}