summaryrefslogtreecommitdiff
path: root/src/vyconf_pbt.ml
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2025-04-15 15:12:02 +0100
committerGitHub <noreply@github.com>2025-04-15 15:12:02 +0100
commit4f8cd87849ae16f5efb127b63767176a243bcd8d (patch)
tree29f42006c605a639ec0a1bcc467225ec880c7e5f /src/vyconf_pbt.ml
parent61566db58d2b5f8eacbd1564ba1ae0690ac4b1f6 (diff)
parentf6653abbc5d4a5229fafa49d49bf517f6baada33 (diff)
downloadvyconf-current.tar.gz
vyconf-current.zip
Merge pull request #20 from jestabro/vyconf-configsessionHEADmastercurrent
T7321: Replace legacy operations in configsession.py with vyconf client operations
Diffstat (limited to 'src/vyconf_pbt.ml')
-rw-r--r--src/vyconf_pbt.ml186
1 files changed, 153 insertions, 33 deletions
diff --git a/src/vyconf_pbt.ml b/src/vyconf_pbt.ml
index 48a8e87..5518e27 100644
--- a/src/vyconf_pbt.ml
+++ b/src/vyconf_pbt.ml
@@ -8,7 +8,7 @@ type request_output_format =
| Out_plain
| Out_json
-type request_status = unit
+type request_prompt = unit
type request_setup_session = {
client_application : string option;
@@ -32,6 +32,14 @@ type request_delete = {
path : string list;
}
+type request_discard = {
+ dummy : int32 option;
+}
+
+type request_session_changed = {
+ dummy : int32 option;
+}
+
type request_rename = {
edit_level : string list;
from : string;
@@ -118,7 +126,7 @@ type request_reload_reftree = {
}
type request =
- | Status
+ | Prompt
| Setup_session of request_setup_session
| Set of request_set
| Delete of request_delete
@@ -141,13 +149,16 @@ type request =
| Validate of request_validate
| Teardown of request_teardown
| Reload_reftree of request_reload_reftree
+ | Load of request_load
+ | Discard of request_discard
+ | Session_changed of request_session_changed
type request_envelope = {
token : string option;
request : request;
}
-type status =
+type errnum =
| Success
| Fail
| Invalid_path
@@ -159,7 +170,7 @@ type status =
| Path_already_exists
type response = {
- status : status;
+ status : errnum;
output : string option;
error : string option;
warning : string option;
@@ -169,7 +180,7 @@ let rec default_request_config_format () = (Curly:request_config_format)
let rec default_request_output_format () = (Out_plain:request_output_format)
-let rec default_request_status = ()
+let rec default_request_prompt = ()
let rec default_request_setup_session
?client_application:((client_application:string option) = None)
@@ -205,6 +216,18 @@ let rec default_request_delete
path;
}
+let rec default_request_discard
+ ?dummy:((dummy:int32 option) = None)
+ () : request_discard = {
+ dummy;
+}
+
+let rec default_request_session_changed
+ ?dummy:((dummy:int32 option) = None)
+ () : request_session_changed = {
+ dummy;
+}
+
let rec default_request_rename
?edit_level:((edit_level:string list) = [])
?from:((from:string) = "")
@@ -339,7 +362,7 @@ let rec default_request_reload_reftree
on_behalf_of;
}
-let rec default_request (): request = Status
+let rec default_request (): request = Prompt
let rec default_request_envelope
?token:((token:string option) = None)
@@ -349,10 +372,10 @@ let rec default_request_envelope
request;
}
-let rec default_status () = (Success:status)
+let rec default_errnum () = (Success:errnum)
let rec default_response
- ?status:((status:status) = default_status ())
+ ?status:((status:errnum) = default_errnum ())
?output:((output:string option) = None)
?error:((error:string option) = None)
?warning:((warning:string option) = None)
@@ -407,6 +430,22 @@ let default_request_delete_mutable () : request_delete_mutable = {
path = [];
}
+type request_discard_mutable = {
+ mutable dummy : int32 option;
+}
+
+let default_request_discard_mutable () : request_discard_mutable = {
+ dummy = None;
+}
+
+type request_session_changed_mutable = {
+ mutable dummy : int32 option;
+}
+
+let default_request_session_changed_mutable () : request_session_changed_mutable = {
+ dummy = None;
+}
+
type request_rename_mutable = {
mutable edit_level : string list;
mutable from : string;
@@ -580,14 +619,14 @@ let default_request_envelope_mutable () : request_envelope_mutable = {
}
type response_mutable = {
- mutable status : status;
+ mutable status : errnum;
mutable output : string option;
mutable error : string option;
mutable warning : string option;
}
let default_response_mutable () : response_mutable = {
- status = default_status ();
+ status = default_errnum ();
output = None;
error = None;
warning = None;
@@ -607,7 +646,7 @@ let rec pp_request_output_format fmt (v:request_output_format) =
| Out_plain -> Format.fprintf fmt "Out_plain"
| Out_json -> Format.fprintf fmt "Out_json"
-let rec pp_request_status fmt (v:request_status) =
+let rec pp_request_prompt fmt (v:request_prompt) =
let pp_i fmt () =
Pbrt.Pp.pp_unit fmt ()
in
@@ -645,6 +684,18 @@ let rec pp_request_delete fmt (v:request_delete) =
in
Pbrt.Pp.pp_brk pp_i fmt ()
+let rec pp_request_discard fmt (v:request_discard) =
+ let pp_i fmt () =
+ Pbrt.Pp.pp_record_field ~first:true "dummy" (Pbrt.Pp.pp_option Pbrt.Pp.pp_int32) fmt v.dummy;
+ in
+ Pbrt.Pp.pp_brk pp_i fmt ()
+
+let rec pp_request_session_changed fmt (v:request_session_changed) =
+ let pp_i fmt () =
+ Pbrt.Pp.pp_record_field ~first:true "dummy" (Pbrt.Pp.pp_option Pbrt.Pp.pp_int32) fmt v.dummy;
+ in
+ Pbrt.Pp.pp_brk pp_i fmt ()
+
let rec pp_request_rename fmt (v:request_rename) =
let pp_i fmt () =
Pbrt.Pp.pp_record_field ~first:true "edit_level" (Pbrt.Pp.pp_list Pbrt.Pp.pp_string) fmt v.edit_level;
@@ -772,7 +823,7 @@ let rec pp_request_reload_reftree fmt (v:request_reload_reftree) =
let rec pp_request fmt (v:request) =
match v with
- | Status -> Format.fprintf fmt "Status"
+ | Prompt -> Format.fprintf fmt "Prompt"
| Setup_session x -> Format.fprintf fmt "@[<hv2>Setup_session(@,%a)@]" pp_request_setup_session x
| Set x -> Format.fprintf fmt "@[<hv2>Set(@,%a)@]" pp_request_set x
| Delete x -> Format.fprintf fmt "@[<hv2>Delete(@,%a)@]" pp_request_delete x
@@ -795,6 +846,9 @@ let rec pp_request fmt (v:request) =
| Validate x -> Format.fprintf fmt "@[<hv2>Validate(@,%a)@]" pp_request_validate x
| Teardown x -> Format.fprintf fmt "@[<hv2>Teardown(@,%a)@]" pp_request_teardown x
| Reload_reftree x -> Format.fprintf fmt "@[<hv2>Reload_reftree(@,%a)@]" pp_request_reload_reftree x
+ | Load x -> Format.fprintf fmt "@[<hv2>Load(@,%a)@]" pp_request_load x
+ | Discard x -> Format.fprintf fmt "@[<hv2>Discard(@,%a)@]" pp_request_discard x
+ | Session_changed x -> Format.fprintf fmt "@[<hv2>Session_changed(@,%a)@]" pp_request_session_changed x
let rec pp_request_envelope fmt (v:request_envelope) =
let pp_i fmt () =
@@ -803,7 +857,7 @@ let rec pp_request_envelope fmt (v:request_envelope) =
in
Pbrt.Pp.pp_brk pp_i fmt ()
-let rec pp_status fmt (v:status) =
+let rec pp_errnum fmt (v:errnum) =
match v with
| Success -> Format.fprintf fmt "Success"
| Fail -> Format.fprintf fmt "Fail"
@@ -817,7 +871,7 @@ let rec pp_status fmt (v:status) =
let rec pp_response fmt (v:response) =
let pp_i fmt () =
- Pbrt.Pp.pp_record_field ~first:true "status" pp_status fmt v.status;
+ Pbrt.Pp.pp_record_field ~first:true "status" pp_errnum fmt v.status;
Pbrt.Pp.pp_record_field ~first:false "output" (Pbrt.Pp.pp_option Pbrt.Pp.pp_string) fmt v.output;
Pbrt.Pp.pp_record_field ~first:false "error" (Pbrt.Pp.pp_option Pbrt.Pp.pp_string) fmt v.error;
Pbrt.Pp.pp_record_field ~first:false "warning" (Pbrt.Pp.pp_option Pbrt.Pp.pp_string) fmt v.warning;
@@ -838,7 +892,7 @@ let rec encode_pb_request_output_format (v:request_output_format) encoder =
| Out_plain -> Pbrt.Encoder.int_as_varint (0) encoder
| Out_json -> Pbrt.Encoder.int_as_varint 1 encoder
-let rec encode_pb_request_status (v:request_status) encoder =
+let rec encode_pb_request_prompt (v:request_prompt) encoder =
()
let rec encode_pb_request_setup_session (v:request_setup_session) encoder =
@@ -892,6 +946,24 @@ let rec encode_pb_request_delete (v:request_delete) encoder =
) v.path encoder;
()
+let rec encode_pb_request_discard (v:request_discard) encoder =
+ begin match v.dummy with
+ | Some x ->
+ Pbrt.Encoder.int32_as_varint x encoder;
+ Pbrt.Encoder.key 1 Pbrt.Varint encoder;
+ | None -> ();
+ end;
+ ()
+
+let rec encode_pb_request_session_changed (v:request_session_changed) encoder =
+ begin match v.dummy with
+ | Some x ->
+ Pbrt.Encoder.int32_as_varint x encoder;
+ Pbrt.Encoder.key 1 Pbrt.Varint encoder;
+ | None -> ();
+ end;
+ ()
+
let rec encode_pb_request_rename (v:request_rename) encoder =
Pbrt.List_util.rev_iter_with (fun x encoder ->
Pbrt.Encoder.string x encoder;
@@ -1084,7 +1156,7 @@ let rec encode_pb_request_reload_reftree (v:request_reload_reftree) encoder =
let rec encode_pb_request (v:request) encoder =
begin match v with
- | Status ->
+ | Prompt ->
Pbrt.Encoder.key 1 Pbrt.Bytes encoder;
Pbrt.Encoder.empty_nested encoder
| Setup_session x ->
@@ -1153,6 +1225,15 @@ let rec encode_pb_request (v:request) encoder =
| Reload_reftree x ->
Pbrt.Encoder.nested encode_pb_request_reload_reftree x encoder;
Pbrt.Encoder.key 23 Pbrt.Bytes encoder;
+ | Load x ->
+ Pbrt.Encoder.nested encode_pb_request_load x encoder;
+ Pbrt.Encoder.key 24 Pbrt.Bytes encoder;
+ | Discard x ->
+ Pbrt.Encoder.nested encode_pb_request_discard x encoder;
+ Pbrt.Encoder.key 25 Pbrt.Bytes encoder;
+ | Session_changed x ->
+ Pbrt.Encoder.nested encode_pb_request_session_changed x encoder;
+ Pbrt.Encoder.key 26 Pbrt.Bytes encoder;
end
let rec encode_pb_request_envelope (v:request_envelope) encoder =
@@ -1166,7 +1247,7 @@ let rec encode_pb_request_envelope (v:request_envelope) encoder =
Pbrt.Encoder.key 2 Pbrt.Bytes encoder;
()
-let rec encode_pb_status (v:status) encoder =
+let rec encode_pb_errnum (v:errnum) encoder =
match v with
| Success -> Pbrt.Encoder.int_as_varint (0) encoder
| Fail -> Pbrt.Encoder.int_as_varint 1 encoder
@@ -1179,7 +1260,7 @@ let rec encode_pb_status (v:status) encoder =
| Path_already_exists -> Pbrt.Encoder.int_as_varint 8 encoder
let rec encode_pb_response (v:response) encoder =
- encode_pb_status v.status encoder;
+ encode_pb_errnum v.status encoder;
Pbrt.Encoder.key 1 Pbrt.Varint encoder;
begin match v.output with
| Some x ->
@@ -1217,11 +1298,11 @@ let rec decode_pb_request_output_format d =
| 1 -> (Out_json:request_output_format)
| _ -> Pbrt.Decoder.malformed_variant "request_output_format"
-let rec decode_pb_request_status d =
+let rec decode_pb_request_prompt d =
match Pbrt.Decoder.key d with
| None -> ();
| Some (_, pk) ->
- Pbrt.Decoder.unexpected_payload "Unexpected fields in empty message(request_status)" pk
+ Pbrt.Decoder.unexpected_payload "Unexpected fields in empty message(request_prompt)" pk
let rec decode_pb_request_setup_session d =
let v = default_request_setup_session_mutable () in
@@ -1328,6 +1409,42 @@ let rec decode_pb_request_delete d =
path = v.path;
} : request_delete)
+let rec decode_pb_request_discard d =
+ let v = default_request_discard_mutable () in
+ let continue__= ref true in
+ while !continue__ do
+ match Pbrt.Decoder.key d with
+ | None -> (
+ ); continue__ := false
+ | Some (1, Pbrt.Varint) -> begin
+ v.dummy <- Some (Pbrt.Decoder.int32_as_varint d);
+ end
+ | Some (1, pk) ->
+ Pbrt.Decoder.unexpected_payload "Message(request_discard), field(1)" pk
+ | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
+ done;
+ ({
+ dummy = v.dummy;
+ } : request_discard)
+
+let rec decode_pb_request_session_changed d =
+ let v = default_request_session_changed_mutable () in
+ let continue__= ref true in
+ while !continue__ do
+ match Pbrt.Decoder.key d with
+ | None -> (
+ ); continue__ := false
+ | Some (1, Pbrt.Varint) -> begin
+ v.dummy <- Some (Pbrt.Decoder.int32_as_varint d);
+ end
+ | Some (1, pk) ->
+ Pbrt.Decoder.unexpected_payload "Message(request_session_changed), field(1)" pk
+ | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
+ done;
+ ({
+ dummy = v.dummy;
+ } : request_session_changed)
+
let rec decode_pb_request_rename d =
let v = default_request_rename_mutable () in
let continue__= ref true in
@@ -1767,7 +1884,7 @@ let rec decode_pb_request d =
| None -> Pbrt.Decoder.malformed_variant "request"
| Some (1, _) -> begin
Pbrt.Decoder.empty_nested d ;
- (Status : request)
+ (Prompt : request)
end
| Some (2, _) -> (Setup_session (decode_pb_request_setup_session (Pbrt.Decoder.nested d)) : request)
| Some (3, _) -> (Set (decode_pb_request_set (Pbrt.Decoder.nested d)) : request)
@@ -1797,6 +1914,9 @@ let rec decode_pb_request d =
| Some (21, _) -> (Validate (decode_pb_request_validate (Pbrt.Decoder.nested d)) : request)
| Some (22, _) -> (Teardown (decode_pb_request_teardown (Pbrt.Decoder.nested d)) : request)
| Some (23, _) -> (Reload_reftree (decode_pb_request_reload_reftree (Pbrt.Decoder.nested d)) : request)
+ | Some (24, _) -> (Load (decode_pb_request_load (Pbrt.Decoder.nested d)) : request)
+ | Some (25, _) -> (Discard (decode_pb_request_discard (Pbrt.Decoder.nested d)) : request)
+ | Some (26, _) -> (Session_changed (decode_pb_request_session_changed (Pbrt.Decoder.nested d)) : request)
| Some (n, payload_kind) -> (
Pbrt.Decoder.skip d payload_kind;
loop ()
@@ -1832,18 +1952,18 @@ let rec decode_pb_request_envelope d =
request = v.request;
} : request_envelope)
-let rec decode_pb_status d =
+let rec decode_pb_errnum d =
match Pbrt.Decoder.int_as_varint d with
- | 0 -> (Success:status)
- | 1 -> (Fail:status)
- | 2 -> (Invalid_path:status)
- | 3 -> (Invalid_value:status)
- | 4 -> (Commit_in_progress:status)
- | 5 -> (Configuration_locked:status)
- | 6 -> (Internal_error:status)
- | 7 -> (Permission_denied:status)
- | 8 -> (Path_already_exists:status)
- | _ -> Pbrt.Decoder.malformed_variant "status"
+ | 0 -> (Success:errnum)
+ | 1 -> (Fail:errnum)
+ | 2 -> (Invalid_path:errnum)
+ | 3 -> (Invalid_value:errnum)
+ | 4 -> (Commit_in_progress:errnum)
+ | 5 -> (Configuration_locked:errnum)
+ | 6 -> (Internal_error:errnum)
+ | 7 -> (Permission_denied:errnum)
+ | 8 -> (Path_already_exists:errnum)
+ | _ -> Pbrt.Decoder.malformed_variant "errnum"
let rec decode_pb_response d =
let v = default_response_mutable () in
@@ -1854,7 +1974,7 @@ let rec decode_pb_response d =
| None -> (
); continue__ := false
| Some (1, Pbrt.Varint) -> begin
- v.status <- decode_pb_status d; status_is_set := true;
+ v.status <- decode_pb_errnum d; status_is_set := true;
end
| Some (1, pk) ->
Pbrt.Decoder.unexpected_payload "Message(response), field(1)" pk