This commit is contained in:
Garrett K 2021-03-17 00:22:59 +00:00
parent aad2c4da9a
commit 6b5f8c8927

View File

@ -87,78 +87,73 @@ if($_SERVER['REQUEST_METHOD'] == 'POST'){
$peerPort = $cable['remote_object_port']; $peerPort = $cable['remote_object_port'];
$localAttrPrefix = $cable['localAttrPrefix']; $localAttrPrefix = $cable['localAttrPrefix'];
if($qls->App->loopDetected2($peerID, $peerFace, $peerDepth, $peerPort, $elementID, $elementFace, $elementDepth, $elementPort)) { // Remove any populated port entries that may exist
$errMsg = 'Loop detected.'; $qls->SQL->delete(
array_push($validate->returnData['error'], $errMsg); 'app_populated_port',
} else { array(
'object_id' => array('=', $elementID),
'AND',
'object_face' => array('=', $elementFace),
'AND',
'object_depth' => array('=', $elementDepth),
'AND',
'port_id' => array('=', $elementPort)
)
);
// Remove any populated port entries that may exist // Clear any inventory entries
$qls->SQL->delete( if (isset($qls->App->inventoryArray[$elementID][$elementFace][$elementDepth][$elementPort])) {
'app_populated_port', foreach($qls->App->inventoryArray[$elementID][$elementFace][$elementDepth][$elementPort] as $inventoryEntry) {
array( $rowID = $inventoryEntry['rowID'];
'object_id' => array('=', $elementID), $localAttrPrefix = $inventoryEntry['localAttrPrefix'];
'AND',
'object_face' => array('=', $elementFace),
'AND',
'object_depth' => array('=', $elementDepth),
'AND',
'port_id' => array('=', $elementPort)
)
);
// Clear any inventory entries if ($inventoryEntry['localEndID'] == 0) {
if (isset($qls->App->inventoryArray[$elementID][$elementFace][$elementDepth][$elementPort])) {
foreach($qls->App->inventoryArray[$elementID][$elementFace][$elementDepth][$elementPort] as $inventoryEntry) {
$rowID = $inventoryEntry['rowID'];
$localAttrPrefix = $inventoryEntry['localAttrPrefix'];
if ($inventoryEntry['localEndID'] == 0) { // Found entry is not a managed cable... delete
$qls->SQL->delete('app_inventory', array('id' => array('=', $rowID)));
} else {
// Found entry is not a managed cable... delete // Found entry is a managed cable... zeroize
$qls->SQL->delete('app_inventory', array('id' => array('=', $rowID))); $qls->SQL->update(
} else { 'app_inventory',
array(
// Found entry is a managed cable... zeroize $localAttrPrefix.'_object_id' => 0,
$qls->SQL->update( $localAttrPrefix.'_port_id' => 0,
'app_inventory', $localAttrPrefix.'_object_face' => 0,
array( $localAttrPrefix.'_object_depth' => 0
$localAttrPrefix.'_object_id' => 0, ),
$localAttrPrefix.'_port_id' => 0, array(
$localAttrPrefix.'_object_face' => 0, 'id' => array('=', $rowID)
$localAttrPrefix.'_object_depth' => 0 )
), );
array(
'id' => array('=', $rowID)
)
);
}
} }
} }
// Update connection in database
$qls->SQL->update(
'app_inventory',
array(
$localAttrPrefix.'_object_id' => $elementID,
$localAttrPrefix.'_port_id' => $elementPort,
$localAttrPrefix.'_object_face' => $elementFace,
$localAttrPrefix.'_object_depth' => $elementDepth
),
array(
'id' => array('=', $cable['rowID'])
)
);
$qls->App->inventoryByIDArray[$connectorID]['local_object_id'] = $elementID;
$qls->App->inventoryByIDArray[$connectorID]['local_object_face'] = $elementFace;
$qls->App->inventoryByIDArray[$connectorID]['local_object_depth'] = $elementDepth;
$qls->App->inventoryByIDArray[$connectorID]['local_object_port'] = $elementPort;
$cable = $qls->App->inventoryByIDArray[$connectorID];
// Retrieve connector path
$connectorFlatPath = $qls->App->buildConnectorFlatPath($cable, 'local');
$validate->returnData['success']['connectorFlatPath'] = $connectorFlatPath;
} }
// Update connection in database
$qls->SQL->update(
'app_inventory',
array(
$localAttrPrefix.'_object_id' => $elementID,
$localAttrPrefix.'_port_id' => $elementPort,
$localAttrPrefix.'_object_face' => $elementFace,
$localAttrPrefix.'_object_depth' => $elementDepth
),
array(
'id' => array('=', $cable['rowID'])
)
);
$qls->App->inventoryByIDArray[$connectorID]['local_object_id'] = $elementID;
$qls->App->inventoryByIDArray[$connectorID]['local_object_face'] = $elementFace;
$qls->App->inventoryByIDArray[$connectorID]['local_object_depth'] = $elementDepth;
$qls->App->inventoryByIDArray[$connectorID]['local_object_port'] = $elementPort;
$cable = $qls->App->inventoryByIDArray[$connectorID];
// Retrieve connector path
$connectorFlatPath = $qls->App->buildConnectorFlatPath($cable, 'local');
$validate->returnData['success']['connectorFlatPath'] = $connectorFlatPath;
break; break;
case 'connectionExploreClear': case 'connectionExploreClear':
@ -436,12 +431,6 @@ function validate($data, &$validate, &$qls){
); );
$validate->validateTrunkedEndpoint($connectionPeerArray); $validate->validateTrunkedEndpoint($connectionPeerArray);
// Validate no loops will result
if($qls->App->loopDetected2($localID, $localFace, $localDepth, $localPort, $remoteID, $remoteFace, $remoteDepth, $remotePort)) {
$errMsg = 'Loop detected.';
array_push($validate->returnData['error'], $errMsg);
}
// Does this action need to be confirmed? // Does this action need to be confirmed?
if(!isset($data['confirmed'])) { if(!isset($data['confirmed'])) {
if (isset($qls->App->inventoryArray[$remoteID][$remoteFace][$remoteDepth][$remotePort])) { if (isset($qls->App->inventoryArray[$remoteID][$remoteFace][$remoteDepth][$remotePort])) {