Fixing API

This commit is contained in:
Stephane Bourque
2020-12-16 16:11:39 -08:00
parent ccbe9227da
commit 7e0330115f
3 changed files with 28 additions and 39 deletions

View File

@@ -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),

View File

@@ -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)->

View File

@@ -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").