@@ -318,7 +318,6 @@ impl ModelWatcher {
318318 namespace = endpoint_id. namespace,
319319 "New endpoint for existing model"
320320 ) ;
321- //self.notify_on_model.notify_waiters();
322321 return Ok ( ( ) ) ;
323322 }
324323
@@ -413,7 +412,7 @@ impl ModelWatcher {
413412 . await ?;
414413 let engine = Arc :: new ( push_router) ;
415414 self . manager
416- . add_embeddings_model ( & model_entry . name , engine) ?;
415+ . add_embeddings_model ( card . name ( ) , checksum , engine) ?;
417416 } else if card. model_input == ModelInput :: Text && card. model_type . supports_chat ( ) {
418417 // Case 3: Text + Chat
419418 let push_router = PushRouter :: <
@@ -560,26 +559,20 @@ impl ModelWatcher {
560559/// The ModelDeploymentCard is published in etcd with a key like "v1/mdc/dynamo/backend/generate/694d9981145a61ad".
561560/// Extract the EndpointId and instance_id from that.
562561fn etcd_key_extract ( s : & str ) -> anyhow:: Result < ( EndpointId , String ) > {
562+ if !s. starts_with ( model_card:: ROOT_PATH ) {
563+ anyhow:: bail!( "Invalid format: expected model card ROOT_PATH segment in {s}" ) ;
564+ }
563565 let parts: Vec < & str > = s. split ( '/' ) . collect ( ) ;
564- let start_idx = if !parts. is_empty ( ) && parts[ 0 ] == "v1" {
565- 1
566- } else {
567- 0
568- } ;
569566
570- // Need at least prefix model_card::ROOT_PATH + 3 parts: namespace, component, name
571- if parts. len ( ) <= start_idx + 3 {
567+ // Need at least prefix model_card::ROOT_PATH (2 parts) + namespace, component, name (3 parts)
568+ if parts. len ( ) <= 5 {
572569 anyhow:: bail!( "Invalid format: not enough path segments in {s}" ) ;
573570 }
574571
575- if parts. get ( start_idx) != Some ( & model_card:: ROOT_PATH ) {
576- anyhow:: bail!( "Invalid format: expected model card ROOT_PATH segment in {s}" ) ;
577- }
578-
579572 let endpoint_id = EndpointId {
580- namespace : parts[ start_idx + 1 ] . to_string ( ) ,
581- component : parts[ start_idx + 2 ] . to_string ( ) ,
582- name : parts[ start_idx + 3 ] . to_string ( ) ,
573+ namespace : parts[ 2 ] . to_string ( ) ,
574+ component : parts[ 3 ] . to_string ( ) ,
575+ name : parts[ 4 ] . to_string ( ) ,
583576 } ;
584577 Ok ( ( endpoint_id, parts[ parts. len ( ) - 1 ] . to_string ( ) ) )
585578}
@@ -590,16 +583,6 @@ mod tests {
590583
591584 #[ test]
592585 fn test_etcd_key_extract ( ) {
593- let input = format ! (
594- "v1/{}/dynamo/backend/generate/694d9981145a61ad" ,
595- model_card:: ROOT_PATH
596- ) ;
597- let ( endpoint_id, instance_id) = etcd_key_extract ( & input) . unwrap ( ) ;
598- assert_eq ! ( endpoint_id. namespace, "dynamo" ) ;
599- assert_eq ! ( endpoint_id. component, "backend" ) ;
600- assert_eq ! ( endpoint_id. name, "generate" ) ;
601- assert_eq ! ( instance_id, "694d9981145a61ad" ) ;
602-
603586 let input = format ! (
604587 "{}/dynamo/backend/generate/694d9981145a61ad" ,
605588 model_card:: ROOT_PATH
0 commit comments