// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT-0 import React, {FunctionComponent, useEffect, useState} from 'react'; import {Container, Button} from "aws-northstar"; import Stack from "aws-northstar/layouts/Stack"; import '../home/styles.css'; import Grid from "aws-northstar/esm/layouts/Grid"; import { getAppReconStep } from "../../data"; import Flashbar, {FlashbarMessage} from "aws-northstar/components/Flashbar"; import Alert from "aws-northstar/components/Alert"; import dns_on from "./dns_on.png"; import dns_off from "./dns_off.png"; import queue_on from "./queue_on.png"; import queue_off from "./queue_off.png"; import app_on from "./app_on.png"; import app_off from "./app_off.png"; const ApplicationRecon: FunctionComponent = () => { const [tmInboundIngressTrade, setTmInboundIngressTrade] = useState(""); const [tmInboundIngressSettlement, setTmInboundIngressSettlement] = useState(""); const [tmIngressCoreTrade, setTmIngressCoreTrade] = useState(""); const [tmIngressCoreSettlement, setTmIngressCoreSettlement] = useState(""); const [tmCoreEgressTrade, setTmCoreEgressTrade] = useState(""); const [tmCoreEgressSettlement, setTmCoreEgressSettlement] = useState(""); const [tmEgressOutboundTrade, setTmEgressOutboundTrade] = useState(""); const [tmEgressOutboundSettlement, setTmEgressOutboundSettlement] = useState(""); const [tmOutboundSmInboundSettlement, setTmOutboundSmInboundSettlement] = useState(""); const [smInboundIngressSettlement, setSmInboundIngressSettlement] = useState(""); const [smIngressCoreSettlement, setSmIngressCoreSettlement] = useState(""); const [smCoreEgressSettlement, setSmCoreEgressSettlement] = useState(""); const [smEgressOutboundSettlement, setSmEgressOutboundSettlement] = useState(""); const [smOutboundTmInboundSettlement, setSmOutboundTmInboundSettlement] = useState(""); // const [tradeMatchingPrimaryRecon, setTradeMatchingPrimaryRecon] = useState({}); // const [tradeMatchingSecondaryRecon, setTradeMatchingSecondaryRecon] = useState({}); // const [settlementPrimaryRecon, setSettlementPrimaryRecon] = useState({}); // const [settlementSecondaryRecon, setSettlementSecondaryRecon] = useState({}); const [errors, setErrors] = React.useState([]); const [message, setMessage] = React.useState(""); const renderMessage = () => { return (message == ""?
: setMessage("")} > {message} ); } const getAllRequests = async () => { try { try { getAppReconStep("TM-INBOUND-INGRESS-T").then( (result: string) => { setTmInboundIngressTrade(result) }); } catch (err) {} try { getAppReconStep("TM-INBOUND-INGRESS-S").then( (result: string) => { setTmInboundIngressSettlement(result) }); } catch (err) {} try { getAppReconStep("TM-INGRESS-CORE-T").then( (result: string) => { setTmIngressCoreTrade(result) }); } catch (err) {} try { getAppReconStep("TM-INGRESS-CORE-S").then( (result: string) => { setTmIngressCoreSettlement(result) }); } catch (err) {} try { getAppReconStep("TM-CORE-EGRESS-T").then( (result: string) => { setTmCoreEgressTrade(result) }); } catch (err) {} try { getAppReconStep("TM-CORE-EGRESS-S").then( (result: string) => { setTmCoreEgressSettlement(result) }); } catch (err) {} try { getAppReconStep("TM-EGRESS-OUTBOUND-T").then( (result: string) => { setTmEgressOutboundTrade(result) }); } catch (err) {} try { getAppReconStep("TM-EGRESS-OUTBOUND-S").then( (result: string) => { setTmEgressOutboundSettlement(result) }); } catch (err) {} try { getAppReconStep("TM-OUTBOUND-SM-INBOUND-S").then( (result: string) => { setTmOutboundSmInboundSettlement(result) }); } catch (err) {} try { getAppReconStep("SM-INBOUND-INGRESS-S").then( (result: string) => { setSmInboundIngressSettlement(result) }); } catch (err) {} try { getAppReconStep("SM-INGRESS-CORE-S").then( (result: string) => { setSmIngressCoreSettlement(result) }); } catch (err) {} try { getAppReconStep("SM-CORE-EGRESS-S").then( (result: string) => { setSmCoreEgressSettlement(result) }); } catch (err) {} try { getAppReconStep("SM-EGRESS-OUTBOUND-S").then( (result: string) => { setSmEgressOutboundSettlement(result) }); } catch (err) {} try { getAppReconStep("SM-OUTBOUND-TM-INBOUND-S").then( (result: string) => { setSmOutboundTmInboundSettlement(result) }); } catch (err) {} // let request1 = await getAppRecons("trade-matching").then( // (result: IAppRecon[]) => { // console.log("Received Result for getAppRecon for Trade Matching:" + JSON.stringify(result)) // setTradeMatchingPrimaryRecon(get_app_recon(result, "trade-matching", "us-east-1")); // setTradeMatchingSecondaryRecon(get_app_recon(result, "trade-matching", "us-west-2")); // setMessage("Received Reconciliation Result for Trade Matching") // }); // // let request2 = await getAppRecons("settlement").then( // (result: IAppRecon[]) => { // console.log("Received Result for getAppRecon for Settlement" + JSON.stringify(result)) // setSettlementPrimaryRecon(get_app_recon(result, "settlement", "us-east-1")); // setSettlementSecondaryRecon(get_app_recon(result, "settlement", "us-west-2")); // setMessage("Received Reconciliation Result for Settlement") // }); await Promise.resolve(); } catch (err) { const items:FlashbarMessage[] = [ { header: 'Could not get the app state: ' + err.toString(), type: 'error', dismissible: true, } ]; setErrors(items); } } useEffect( () => { console.log("useEffect Called") //getAllRequests().then(() => console.log("getAppRecon() completed.")); }, []); return (
Reconciliation         
Primary (US East 1)
Trade Matching
Inbound Gateway
Trades: {tmInboundIngressTrade}
Settlements: {tmInboundIngressSettlement}
Ingestion
Trades: {tmIngressCoreTrade}
Settlements: {tmIngressCoreSettlement}
Matching
Trades: {tmCoreEgressTrade}
Settlements: {tmCoreEgressSettlement}
Egress
Trades: {tmEgressOutboundTrade}
Settlements: {tmEgressOutboundSettlement}
Outbound Gateway
Trades: 0
Settlements: {tmOutboundSmInboundSettlement}
Settlement
Inbound Gateway
Settlements: {smInboundIngressSettlement}
Ingestion
Settlements: {smIngressCoreSettlement}
Matching
Settlements: {smCoreEgressSettlement}
Egress
Settlements: {smEgressOutboundSettlement}
Outbound Gateway
Settlements: {smOutboundTmInboundSettlement}
Secondary (US West 2)
Trade Matching
Inbound Gateway
Trades: {tmInboundIngressTrade}
Settlements: {tmInboundIngressSettlement}
Ingestion
Trades: {tmIngressCoreTrade}
Settlements: {tmIngressCoreSettlement}
Matching
Trades: {tmCoreEgressTrade}
Settlements: {tmCoreEgressSettlement}
Egress
Trades: {tmEgressOutboundTrade}
Settlements: {tmEgressOutboundSettlement}
Outbound Gateway
Trades: 0
Settlements: {tmOutboundSmInboundSettlement}
Settlement
Inbound Gateway
Settlements: {smInboundIngressSettlement}
Ingestion
Settlements: {smIngressCoreSettlement}
Matching
Settlements: {smCoreEgressSettlement}
Egress
Settlements: {smEgressOutboundSettlement}
Outbound Gateway
Settlements: {smOutboundTmInboundSettlement}
{renderMessage()}
); } function get_app_recon(recons: any, app_name: any, app_region: any) { for (var recon of recons) { if ((recon.app_name == app_name) && (recon.app_region == app_region)) { // var app_state:IAppRecon = { // app_name = app.app_name, // app_region = app.app_region, // inbound_gateway_trade_store_count = app.inbound_gateway_trade_store_count, // inbound_gateway_settlement_store_count = app.inbound_gateway_settlement_store_count, // ingestion_trade_store_count = app.ingestion_trade_store_count, // ingestion_settlement_store_count = app.ingestion_settlement_store_count, // matching_store_count = app.matching_store_count, // matching_unmatched_store_count = app.matching_unmatched_store_count, // matching_matched_store_count = app.matching_matched_store_count, // matching_mismatched_store_count = app.matching_mismatched_store_count, // egress_trade_store_count = app.egress_trade_store_count, // egress_settlement_store_count = app.egress_settlement_store_count, // outbound_gateway_trade_store_count = app.outbound_gateway_trade_store_count, // outbound_gateway_settlement_store_count = app.outbound_gateway_settlement_store_count // }; return recon } } return {}; } export default ApplicationRecon;