/* * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ * Copyright © 2017-2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= */ import React from 'react'; import moment from "moment"; import Col from 'react-bootstrap/lib/Col'; import Panel from 'react-bootstrap/lib/Panel'; const topologyDiffCard = (props) => { let showNoNodesMessage = true; if(props && props.node){ const properties = Object.entries(props.node).map((prop, idx) => { if (prop){ showNoNodesMessage = false; let showNoRelationshipsMessage = true; let showNoAttributesMessage = true; let propWorkaround = prop; if(prop.data){ propWorkaround = prop.data; } let tempProp = propWorkaround[1]; let attributeProperties = ''; let relationships = ''; if(tempProp.properties){ attributeProperties = Object.entries(tempProp.properties).map((property, idx) => { let attrProp = property[1]; if(attrProp && attrProp.value && attrProp.value.type !== 'unchanged'){ showNoAttributesMessage = false; return (

Attribute: {attrProp.key.data} ({attrProp.value.type})

); }else if (attrProp && attrProp.type){ showNoAttributesMessage = false; return (

Attribute: {attrProp.data.key} ({attrProp.type})

); } }); } if(tempProp['related-to'] || tempProp.data['related-to']){ let rel = null; let topLevelType = null; if(tempProp['related-to']){ rel = tempProp['related-to']; }else if (tempProp.data['related-to']) { rel = tempProp.data['related-to']; topLevelType = tempProp.type; } relationships = Object.entries(rel).map((property, idx) => { let relationProp = property[1]; if(relationProp && relationProp.type && relationProp.type.type && relationProp.type.type !== "unchanged"){ return (''); }else if(relationProp && relationProp.type && !relationProp.type.type && relationProp.url && relationProp.url.data){ showNoRelationshipsMessage = false; return (

Relationship: {relationProp['relationship-label'].data} {relationProp['node-type'].data} {relationProp.url.data} ({relationProp.type})

); }else if (relationProp && relationProp.type && relationProp.data){ showNoRelationshipsMessage = false; return (

Relationship: {relationProp.data['relationship-label']} {relationProp.data['node-type']} {relationProp.data.url} ({relationProp.type})

); }else if (topLevelType){ showNoRelationshipsMessage = false; return (

Relationship: {relationProp['relationship-label']} {relationProp['node-type']} {relationProp.url} ({topLevelType})

); } }); } return ( Node: {prop[0]}

({tempProp.type})

{attributeProperties}

No Attribute differences, current.

{relationships}

No Relationship differences, current.

); }else{

Node changes in the topology states

} }); return (

Changes from Historic to Current State

{properties}
); }else{ return(

Unable to pull diff

Diff unable to be calculated currently, choose a different timeframe.
); } }; export default topologyDiffCard;