@@ -1738,6 +1738,67 @@ func (p *GRPCProvider) WriteStateBytes(r providers.WriteStateBytesRequest) (resp
17381738 return resp
17391739}
17401740
1741+ func (p * GRPCProvider ) LockState (r providers.LockStateRequest ) (resp providers.LockStateResponse ) {
1742+ logger .Trace ("GRPCProvider.v6: LockState" )
1743+
1744+ schema := p .GetProviderSchema ()
1745+ if schema .Diagnostics .HasErrors () {
1746+ resp .Diagnostics = schema .Diagnostics
1747+ return resp
1748+ }
1749+
1750+ _ , ok := schema .StateStores [r .TypeName ]
1751+ if ! ok {
1752+ resp .Diagnostics = resp .Diagnostics .Append (fmt .Errorf ("unknown state store type %q" , r .TypeName ))
1753+ return resp
1754+ }
1755+
1756+ protoReq := & proto6.LockState_Request {
1757+ TypeName : r .TypeName ,
1758+ StateId : r .StateId ,
1759+ Operation : r .Operation ,
1760+ }
1761+
1762+ protoResp , err := p .client .LockState (p .ctx , protoReq )
1763+ if err != nil {
1764+ resp .Diagnostics = resp .Diagnostics .Append (grpcErr (err ))
1765+ return resp
1766+ }
1767+ resp .LockId = protoResp .LockId
1768+ resp .Diagnostics = resp .Diagnostics .Append (convert .ProtoToDiagnostics (protoResp .Diagnostics ))
1769+ return resp
1770+ }
1771+
1772+ func (p * GRPCProvider ) UnlockState (r providers.UnlockStateRequest ) (resp providers.UnlockStateResponse ) {
1773+ logger .Trace ("GRPCProvider.v6: UnlockState" )
1774+
1775+ schema := p .GetProviderSchema ()
1776+ if schema .Diagnostics .HasErrors () {
1777+ resp .Diagnostics = schema .Diagnostics
1778+ return resp
1779+ }
1780+
1781+ _ , ok := schema .StateStores [r .TypeName ]
1782+ if ! ok {
1783+ resp .Diagnostics = resp .Diagnostics .Append (fmt .Errorf ("unknown state store type %q" , r .TypeName ))
1784+ return resp
1785+ }
1786+
1787+ protoReq := & proto6.UnlockState_Request {
1788+ TypeName : r .TypeName ,
1789+ StateId : r .StateId ,
1790+ LockId : r .LockId ,
1791+ }
1792+
1793+ protoResp , err := p .client .UnlockState (p .ctx , protoReq )
1794+ if err != nil {
1795+ resp .Diagnostics = resp .Diagnostics .Append (grpcErr (err ))
1796+ return resp
1797+ }
1798+ resp .Diagnostics = resp .Diagnostics .Append (convert .ProtoToDiagnostics (protoResp .Diagnostics ))
1799+ return resp
1800+ }
1801+
17411802func (p * GRPCProvider ) SetStateStoreChunkSize (typeName string , size int ) {
17421803 p .mu .Lock ()
17431804 defer p .mu .Unlock ()
0 commit comments