@@ -149,7 +149,7 @@ fn respond_to_get_request_v1(mmds: &Mmds, request: Request) -> Response {
149149 }
150150 }
151151 None => {
152- // TODO: Increment a metric that will be added in an upcoming commit.
152+ METRICS . mmds . rx_no_token . inc ( ) ;
153153 }
154154 }
155155
@@ -162,6 +162,7 @@ fn respond_to_get_request_v2(mmds: &Mmds, request: Request) -> Response {
162162 let token = match x_metadata_token. 0 {
163163 Some ( token) => token,
164164 None => {
165+ METRICS . mmds . rx_no_token . inc ( ) ;
165166 let error_msg = VmmMmdsError :: NoTokenProvided . to_string ( ) ;
166167 return build_response (
167168 request. http_version ( ) ,
@@ -533,9 +534,11 @@ mod tests {
533534 MediaType :: ApplicationJson ,
534535 ) ;
535536 let prev_rx_invalid_token = METRICS . mmds . rx_invalid_token . count ( ) ;
537+ let prev_rx_no_token = METRICS . mmds . rx_no_token . count ( ) ;
536538 let actual_response = convert_to_response ( mmds. clone ( ) , request) ;
537539 assert_eq ! ( actual_response, expected_response) ;
538540 assert_eq ! ( prev_rx_invalid_token, METRICS . mmds. rx_invalid_token. count( ) ) ;
541+ assert_eq ! ( prev_rx_no_token + 1 , METRICS . mmds. rx_no_token. count( ) ) ;
539542
540543 // Test valid v2 request.
541544 let request = Request :: try_from (
@@ -560,9 +563,11 @@ mod tests {
560563 MediaType :: ApplicationJson ,
561564 ) ;
562565 let prev_rx_invalid_token = METRICS . mmds . rx_invalid_token . count ( ) ;
566+ let prev_rx_no_token = METRICS . mmds . rx_no_token . count ( ) ;
563567 let actual_response = convert_to_response ( mmds. clone ( ) , request) ;
564568 assert_eq ! ( actual_response, expected_response) ;
565569 assert_eq ! ( prev_rx_invalid_token, METRICS . mmds. rx_invalid_token. count( ) ) ;
570+ assert_eq ! ( prev_rx_no_token, METRICS . mmds. rx_no_token. count( ) ) ;
566571
567572 // Test GET request with invalid token is accepted when v1 is configured.
568573 let ( request, expected_response) = generate_request_and_expected_response (
@@ -572,12 +577,14 @@ mod tests {
572577 MediaType :: ApplicationJson ,
573578 ) ;
574579 let prev_rx_invalid_token = METRICS . mmds . rx_invalid_token . count ( ) ;
580+ let prev_rx_no_token = METRICS . mmds . rx_no_token . count ( ) ;
575581 let actual_response = convert_to_response ( mmds, request) ;
576582 assert_eq ! ( actual_response, expected_response) ;
577583 assert_eq ! (
578584 prev_rx_invalid_token + 1 ,
579585 METRICS . mmds. rx_invalid_token. count( )
580586 ) ;
587+ assert_eq ! ( prev_rx_no_token, METRICS . mmds. rx_no_token. count( ) ) ;
581588 }
582589
583590 #[ test]
@@ -713,9 +720,11 @@ mod tests {
713720 MediaType :: ApplicationJson ,
714721 ) ;
715722 let prev_rx_invalid_token = METRICS . mmds . rx_invalid_token . count ( ) ;
723+ let prev_rx_no_token = METRICS . mmds . rx_no_token . count ( ) ;
716724 let actual_response = convert_to_response ( mmds. clone ( ) , request) ;
717725 assert_eq ! ( actual_response, expected_response) ;
718726 assert_eq ! ( prev_rx_invalid_token, METRICS . mmds. rx_invalid_token. count( ) ) ;
727+ assert_eq ! ( prev_rx_no_token, METRICS . mmds. rx_no_token. count( ) ) ;
719728
720729 // Test invalid customer header value is ignored if not PUT request to /latest/api/token.
721730 #[ rustfmt:: skip]
@@ -775,8 +784,10 @@ mod tests {
775784 let mut expected_response = Response :: new ( Version :: Http10 , StatusCode :: Unauthorized ) ;
776785 expected_response. set_content_type ( MediaType :: PlainText ) ;
777786 expected_response. set_body ( Body :: new ( VmmMmdsError :: NoTokenProvided . to_string ( ) ) ) ;
787+ let prev_rx_no_token = METRICS . mmds . rx_no_token . count ( ) ;
778788 let actual_response = convert_to_response ( mmds. clone ( ) , request) ;
779789 assert_eq ! ( actual_response, expected_response) ;
790+ assert_eq ! ( prev_rx_no_token + 1 , METRICS . mmds. rx_no_token. count( ) ) ;
780791
781792 // Create a new MMDS token that expires in one second.
782793 let request = Request :: try_from (
@@ -809,12 +820,14 @@ mod tests {
809820 expected_response. set_content_type ( MediaType :: PlainText ) ;
810821 expected_response. set_body ( Body :: new ( VmmMmdsError :: InvalidToken . to_string ( ) ) ) ;
811822 let prev_rx_invalid_token = METRICS . mmds . rx_invalid_token . count ( ) ;
823+ let prev_rx_no_token = METRICS . mmds . rx_no_token . count ( ) ;
812824 let actual_response = convert_to_response ( mmds. clone ( ) , request) ;
813825 assert_eq ! ( actual_response, expected_response) ;
814826 assert_eq ! (
815827 prev_rx_invalid_token + 1 ,
816828 METRICS . mmds. rx_invalid_token. count( )
817829 ) ;
830+ assert_eq ! ( prev_rx_no_token, METRICS . mmds. rx_no_token. count( ) ) ;
818831
819832 // Wait for the second token to expire.
820833 std:: thread:: sleep ( Duration :: from_secs ( 1 ) ) ;
0 commit comments