Skip to content

Commit

Permalink
Adjust to latest golem-wit changes (host side)
Browse files Browse the repository at this point in the history
  • Loading branch information
vigoo committed Jan 16, 2025
1 parent 91c63c2 commit bbea717
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 41 deletions.
72 changes: 36 additions & 36 deletions golem-worker-executor-base/src/durable_host/durability.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ use crate::durable_host::DurableWorkerCtx;
use crate::error::GolemError;
use crate::metrics::wasm::record_host_function_call;
use crate::model::PersistenceLevel;
use crate::preview2::golem::api1_2_0;
use crate::preview2::golem::durability::durability;
use crate::services::oplog::{CommitLevel, OplogOps};
use crate::workerctx::WorkerCtx;
use async_trait::async_trait;
Expand Down Expand Up @@ -104,62 +104,62 @@ pub trait DurabilityHost {
) -> Result<PersistedDurableFunctionInvocation, GolemError>;
}

impl From<api1_2_0::durability::DurableFunctionType> for DurableFunctionType {
fn from(value: api1_2_0::durability::DurableFunctionType) -> Self {
impl From<durability::DurableFunctionType> for DurableFunctionType {
fn from(value: durability::DurableFunctionType) -> Self {
match value {
api1_2_0::durability::DurableFunctionType::WriteRemote => {
durability::DurableFunctionType::WriteRemote => {
DurableFunctionType::WriteRemote
}
api1_2_0::durability::DurableFunctionType::WriteLocal => {
durability::DurableFunctionType::WriteLocal => {
DurableFunctionType::WriteLocal
}
api1_2_0::durability::DurableFunctionType::WriteRemoteBatched(oplog_index) => {
durability::DurableFunctionType::WriteRemoteBatched(oplog_index) => {
DurableFunctionType::WriteRemoteBatched(oplog_index.map(OplogIndex::from_u64))
}
api1_2_0::durability::DurableFunctionType::ReadRemote => {
durability::DurableFunctionType::ReadRemote => {
DurableFunctionType::ReadRemote
}
api1_2_0::durability::DurableFunctionType::ReadLocal => DurableFunctionType::ReadLocal,
durability::DurableFunctionType::ReadLocal => DurableFunctionType::ReadLocal,
}
}
}

impl From<DurableFunctionType> for api1_2_0::durability::DurableFunctionType {
impl From<DurableFunctionType> for durability::DurableFunctionType {
fn from(value: DurableFunctionType) -> Self {
match value {
DurableFunctionType::WriteRemote => {
api1_2_0::durability::DurableFunctionType::WriteRemote
durability::DurableFunctionType::WriteRemote
}
DurableFunctionType::WriteLocal => {
api1_2_0::durability::DurableFunctionType::WriteLocal
durability::DurableFunctionType::WriteLocal
}
DurableFunctionType::WriteRemoteBatched(oplog_index) => {
api1_2_0::durability::DurableFunctionType::WriteRemoteBatched(
durability::DurableFunctionType::WriteRemoteBatched(
oplog_index.map(|idx| idx.into()),
)
}
DurableFunctionType::ReadRemote => {
api1_2_0::durability::DurableFunctionType::ReadRemote
durability::DurableFunctionType::ReadRemote
}
DurableFunctionType::ReadLocal => api1_2_0::durability::DurableFunctionType::ReadLocal,
DurableFunctionType::ReadLocal => durability::DurableFunctionType::ReadLocal,
}
}
}

impl From<OplogEntryVersion> for api1_2_0::durability::OplogEntryVersion {
impl From<OplogEntryVersion> for durability::OplogEntryVersion {
fn from(value: OplogEntryVersion) -> Self {
match value {
OplogEntryVersion::V1 => api1_2_0::durability::OplogEntryVersion::V1,
OplogEntryVersion::V2 => api1_2_0::durability::OplogEntryVersion::V2,
OplogEntryVersion::V1 => durability::OplogEntryVersion::V1,
OplogEntryVersion::V2 => durability::OplogEntryVersion::V2,
}
}
}

impl From<PersistedDurableFunctionInvocation>
for api1_2_0::durability::PersistedDurableFunctionInvocation
for durability::PersistedDurableFunctionInvocation
{
fn from(value: PersistedDurableFunctionInvocation) -> Self {
api1_2_0::durability::PersistedDurableFunctionInvocation {
durability::PersistedDurableFunctionInvocation {
timestamp: value.timestamp.into(),
function_name: value.function_name,
response: value.response,
Expand All @@ -170,7 +170,7 @@ impl From<PersistedDurableFunctionInvocation>
}

#[async_trait]
impl<Ctx: WorkerCtx> api1_2_0::durability::Host for DurableWorkerCtx<Ctx> {
impl<Ctx: WorkerCtx> durability::Host for DurableWorkerCtx<Ctx> {
async fn observe_function_call(
&mut self,
iface: String,
Expand All @@ -182,16 +182,16 @@ impl<Ctx: WorkerCtx> api1_2_0::durability::Host for DurableWorkerCtx<Ctx> {

async fn begin_durable_function(
&mut self,
function_type: api1_2_0::durability::DurableFunctionType,
) -> anyhow::Result<api1_2_0::durability::OplogIndex> {
function_type: durability::DurableFunctionType,
) -> anyhow::Result<durability::OplogIndex> {
let oplog_idx = DurabilityHost::begin_durable_function(self, &function_type.into()).await?;
Ok(oplog_idx.into())
}

async fn end_durable_function(
&mut self,
function_type: api1_2_0::durability::DurableFunctionType,
begin_index: api1_2_0::durability::OplogIndex,
function_type: durability::DurableFunctionType,
begin_index: durability::OplogIndex,
) -> anyhow::Result<()> {
DurabilityHost::end_durable_function(
self,
Expand All @@ -204,18 +204,18 @@ impl<Ctx: WorkerCtx> api1_2_0::durability::Host for DurableWorkerCtx<Ctx> {

async fn current_durable_execution_state(
&mut self,
) -> anyhow::Result<api1_2_0::durability::DurableExecutionState> {
) -> anyhow::Result<durability::DurableExecutionState> {
let state = DurabilityHost::durable_execution_state(self);
Ok(api1_2_0::durability::DurableExecutionState {
Ok(durability::DurableExecutionState {
is_live: state.is_live,
persistence_level: match state.persistence_level {
PersistenceLevel::PersistNothing => {
api1_2_0::durability::PersistenceLevel::PersistNothing
durability::PersistenceLevel::PersistNothing
}
PersistenceLevel::PersistRemoteSideEffects => {
api1_2_0::durability::PersistenceLevel::PersistRemoteSideEffects
durability::PersistenceLevel::PersistRemoteSideEffects
}
PersistenceLevel::Smart => api1_2_0::durability::PersistenceLevel::Smart,
PersistenceLevel::Smart => durability::PersistenceLevel::Smart,
},
})
}
Expand All @@ -225,7 +225,7 @@ impl<Ctx: WorkerCtx> api1_2_0::durability::Host for DurableWorkerCtx<Ctx> {
function_name: String,
request: Vec<u8>,
response: Vec<u8>,
function_type: api1_2_0::durability::DurableFunctionType,
function_type: durability::DurableFunctionType,
) -> anyhow::Result<()> {
DurabilityHost::persist_durable_function_invocation(
self,
Expand All @@ -241,19 +241,19 @@ impl<Ctx: WorkerCtx> api1_2_0::durability::Host for DurableWorkerCtx<Ctx> {
async fn persist_typed_durable_function_invocation(
&mut self,
function_name: String,
request: api1_2_0::durability::ValueAndType,
response: api1_2_0::durability::ValueAndType,
function_type: api1_2_0::durability::DurableFunctionType,
request: durability::ValueAndType,
response: durability::ValueAndType,
function_type: durability::DurableFunctionType,
) -> anyhow::Result<()> {
let request = unsafe {
transmute::<
api1_2_0::durability::ValueAndType,
durability::ValueAndType,
golem_wasm_rpc::golem::rpc0_1_1::types::ValueAndType,
>(request)
};
let response = unsafe {
transmute::<
api1_2_0::durability::ValueAndType,
durability::ValueAndType,
golem_wasm_rpc::golem::rpc0_1_1::types::ValueAndType,
>(response)
};
Expand All @@ -270,7 +270,7 @@ impl<Ctx: WorkerCtx> api1_2_0::durability::Host for DurableWorkerCtx<Ctx> {

async fn read_persisted_durable_function_invocation(
&mut self,
) -> anyhow::Result<api1_2_0::durability::PersistedDurableFunctionInvocation> {
) -> anyhow::Result<durability::PersistedDurableFunctionInvocation> {
let invocation = DurabilityHost::read_persisted_durable_function_invocation(self).await?;
Ok(invocation.into())
}
Expand Down
4 changes: 2 additions & 2 deletions golem-worker-executor-base/tests/common/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ use golem_test_framework::dsl::to_worker_metadata;
use golem_wasm_rpc::golem::rpc0_1_1::types::{FutureInvokeResult, WasmRpc};
use golem_wasm_rpc::golem::rpc0_1_1::types::{HostFutureInvokeResult, Pollable};
use golem_worker_executor_base::preview2::golem;
use golem_worker_executor_base::preview2::golem::{api1_1_0, api1_2_0};
use golem_worker_executor_base::preview2::golem::{api1_1_0, durability};
use golem_worker_executor_base::services::events::Events;
use golem_worker_executor_base::services::oplog::plugin::OplogProcessorPlugin;
use golem_worker_executor_base::services::plugins::{Plugins, PluginsObservations};
Expand Down Expand Up @@ -1014,7 +1014,7 @@ impl Bootstrap<TestWorkerCtx> for ServerBootstrap {
api0_2_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
api1_1_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
api1_1_0::oplog::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
api1_2_0::durability::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
durability::durability::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
golem_wasm_rpc::golem::rpc0_1_1::types::add_to_linker_get_host(
&mut linker,
get_durable_ctx,
Expand Down
4 changes: 2 additions & 2 deletions golem-worker-executor/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ use async_trait::async_trait;
use golem_common::model::component::ComponentOwner;
use golem_common::model::plugin::{DefaultPluginOwner, DefaultPluginScope};
use golem_worker_executor_base::durable_host::{DurableWorkerCtx, DurableWorkerCtxWasiView};
use golem_worker_executor_base::preview2::golem::{api0_2_0, api1_1_0, api1_2_0};
use golem_worker_executor_base::preview2::golem::{api0_2_0, api1_1_0, durability};
use golem_worker_executor_base::services::active_workers::ActiveWorkers;
use golem_worker_executor_base::services::blob_store::BlobStoreService;
use golem_worker_executor_base::services::component::ComponentService;
Expand Down Expand Up @@ -206,7 +206,7 @@ impl Bootstrap<Context> for ServerBootstrap {
api0_2_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
api1_1_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
api1_1_0::oplog::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
api1_2_0::durability::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
durability::durability::add_to_linker_get_host(&mut linker, get_durable_ctx)?;
golem_wasm_rpc::golem::rpc0_1_1::types::add_to_linker_get_host(
&mut linker,
get_durable_ctx,
Expand Down
2 changes: 1 addition & 1 deletion wit/host.wit
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ world golem {
import golem:api/host@0.2.0;
import golem:api/host@1.1.0;
import golem:api/oplog@1.1.0;
import golem:api/durability@1.2.0;
import golem:durability/durability@1.2.0;

import wasi:blobstore/blobstore;
import wasi:blobstore/container;
Expand Down

0 comments on commit bbea717

Please sign in to comment.