From 7e0330115fac9e6edbd8ebc6e3bd4b344e6aba3b Mon Sep 17 00:00:00 2001 From: Stephane Bourque Date: Wed, 16 Dec 2020 16:11:39 -0800 Subject: [PATCH] Fixing API --- src/manager_api_rest_handler.erl | 14 +++++------ src/simengine.erl | 13 +++++------ src/user_default.erl | 40 ++++++++++++-------------------- 3 files changed, 28 insertions(+), 39 deletions(-) diff --git a/src/manager_api_rest_handler.erl b/src/manager_api_rest_handler.erl index 17a9b56..9d2dbbb 100644 --- a/src/manager_api_rest_handler.erl +++ b/src/manager_api_rest_handler.erl @@ -210,12 +210,10 @@ do( ?HTTP_GET ,Req,#request_state{resource = <<"simulations">>,id=nothing}=State do( ?HTTP_GET , Req , #request_state{ resource = <<"simulations">> } = State ) -> S = State#request_state.looked_up, - {ServerName,Port} = case S#simulation.servers of - undefined -> {<<"unknown">>,0}; - Server -> {Server#sim_entry.opensync_server_name, Server#sim_entry.opensync_server_port} - end, Sim = #{ name => S#simulation.name, caname => S#simulation.ca, num_devices => S#simulation.num_devices, nodes => S#simulation.nodes, - server => ServerName, port=> Port , assets_created => S#simulation.assets_created }, + server => S#simulation.opensync_server_name, + port=> S#simulation.opensync_server_port , + assets_created => S#simulation.assets_created }, {jiffy:encode(Sim),restutils:add_CORS(Req),State}; do( ?HTTP_POST , Req , #request_state{ resource = <<"simulations">> } = State ) -> @@ -230,7 +228,8 @@ do( ?HTTP_POST , Req , #request_state{ resource = <<"simulations">> } = State ) ca = CAName, name = State#request_state.id, num_devices = NumDevices, - servers = #sim_entry{ opensync_server_port = Port, opensync_server_name = Server }, + opensync_server_port = Port, + opensync_server_name = Server, nodes = utils:to_atom_list(Nodes) }, simengine:update(NewSim), URI = << <<"/api/v1/simulations/">>/binary, (State#request_state.id)/binary >>, @@ -242,7 +241,8 @@ do( ?HTTP_POST , Req , #request_state{ resource = <<"simulations">> } = State ) ca = CAName, name = State#request_state.id, num_devices = NumDevices, - servers = #sim_entry{ opensync_server_port = Port, opensync_server_name = Server }, + opensync_server_port = Port, + opensync_server_name = Server , nodes = utils:to_atom_list(Nodes), assets_created = false }, simengine:create(NewSim), diff --git a/src/simengine.erl b/src/simengine.erl index 4ade494..b192c19 100644 --- a/src/simengine.erl +++ b/src/simengine.erl @@ -698,8 +698,8 @@ push_assets(SimInfo,_Attributes,SimEnginePid,{M,F,A}=_Notification,JobId)-> Config = #{ sim_name => SimInfo#simulation.name, sim_ca => SimInfo#simulation.ca, clients => C, - ovsdb_server_name => SimInfo#simulation.servers#sim_entry.opensync_server_name, - ovsdb_server_port => SimInfo#simulation.servers#sim_entry.opensync_server_port, + ovsdb_server_name => SimInfo#simulation.opensync_server_name, + ovsdb_server_port => SimInfo#simulation.opensync_server_port, callback => { SimEnginePid, {SimInfo#simulation.name, N,push_done,erlang:timestamp(),JobId} }}, io:format("SIMENGINE: Pushing ~p entries to ~p.~n",[length(C),N]), R = rpc:call(N,simnode,set_configuration,[Config]), @@ -774,15 +774,14 @@ run_batch(Ids,SimInfo,CAInfo,Total,Notification)-> %% Create the servers - only if they are pon automatic mode split_build_servers(SimInfo,_Notification)-> - _ = generate_server(SimInfo,mqtt_server,SimInfo#simulation.servers), - _ = generate_server(SimInfo,ovsdb_server,SimInfo#simulation.servers), + _ = generate_server(SimInfo,ovsdb_server), ok. -generate_server(SimInfo,mqtt_server,auto)-> +generate_server(#simulation{ internal = true } = SimInfo,mqtt_server)-> inventory:make_server(SimInfo#simulation.ca,"mqtt-1",mqtt_server); -generate_server(SimInfo,ovsdb_server,auto)-> +generate_server(#simulation{ internal = true } = SimInfo,ovsdb_server )-> inventory:make_server(SimInfo#simulation.ca,"ovsdb-1",ovsdb_server); -generate_server(_,_,_)-> +generate_server(_,_)-> ok. sim_action_to_json(SimAction)-> diff --git a/src/user_default.erl b/src/user_default.erl index 2fde2ab..0ba9ce1 100644 --- a/src/user_default.erl +++ b/src/user_default.erl @@ -98,16 +98,21 @@ create_simulation(SimName,CAName) when is_list(SimName),is_list(CAName) -> MaxDevices = length(GoodNodes) * 10000, NumberOfDevices = input("Number of devices (max:" ++ integer_to_list(MaxDevices) ++ ") ", integer_to_list(MaxDevices div 2)), RealNumberOfDevices = utils:select( length(Nodes)==0 , list_to_integer(NumberOfDevices) , utils:adjust(list_to_integer(NumberOfDevices),length(GoodNodes))), - OVSDBServers = select_servers(), + { ServerName, ServerPort } = select_servers(), Simulation = #simulation{ name = list_to_binary(SimName), ca = list_to_binary(CAName), num_devices = RealNumberOfDevices, creation_date = calendar:local_time(), - servers = OVSDBServers, + opensync_server_port = ServerPort, + opensync_server_name = ServerName, start_date = undefined, end_date = undefined, nodes = GoodNodes }, - simengine:create(Simulation). + Yes = input("Confirm: [Y]n","Y"), + case Yes == "Y" of + true -> simengine:create(Simulation); + false -> io:format("Creation aborted.~n") + end. -spec show_simulation(SimName::string())-> {ok,Attributes::attribute_list()} | generic_error(). show_simulation(SimName) when is_list(SimName) -> @@ -303,31 +308,16 @@ input(Prompt,Default)-> false -> InputData end. --spec select_servers() -> Server:: auto | #sim_entry{}. +-spec select_servers() -> { binary(), integer()}. select_servers() -> - case input("Do you want to the built-in servers? (yes/no)", "yes") of - "yes" -> - auto ; - _ -> - get_server(ovsdb_server) - end. + get_server(ovsdb_server). --spec get_server( ovsdb_server )-> auto | #sim_entry{}. +-spec get_server( ovsdb_server )-> { binary(), integer()}. get_server(ovsdb_server)-> - try - io:format("Please enter the OpenSync Server configuration:~n"), - Name = input(" Name (for reference only): ",""), - ServerName = input(" IP Address or hostname: ",""), - Port = input(" Port:","6643"), - #sim_entry{ name = list_to_binary(Name), - opensync_server_name = list_to_binary(ServerName), - opensync_server_port = list_to_integer(Port) - } - catch - _:_ -> - io:format("Invalid information entered. Please try again.~n"), - auto - end. + io:format("Please enter the OpenSync Server configuration:~n"), + ServerName = input(" IP Address or hostname: ",""), + Port = input(" Port:","6643"), + { list_to_binary(ServerName),list_to_integer(Port)}. t1_key()-> import_ca("sim1","mypassword","tip2-cakey.pem","tip2-cacert.pem").