private static function saveCircuit($gri, $desc, $status, $start, $end, $bandwidth, $path) { $conn = Connection::findOne(['external_id' => $gri]); if ($conn == null) { $conn = new Connection(); $conn->external_id = $gri; $conn->name = $desc; $conn->type = 'OSCARS'; $conn->status = 'PROVISIONED'; $conn->version = 1; $conn->dataplane_status = $status == 'ACTIVE' ? 'ACTIVE' : 'INACTIVE'; $conn->auth_status = 'UNEXECUTED'; $conn->resources_status = 'PROVISIONED'; $conn->start = DateUtils::timestampToDB($start); $conn->finish = DateUtils::timestampToDB($end); $conn->bandwidth = $bandwidth; if ($conn->save()) { Yii::trace($path); for ($i = 0; $i < count($path); $i++) { $point = new ConnectionPath(); $point->conn_id = $conn->id; $point->path_order = $i; $urnArray = explode(":", $path[$i]); Yii::trace($urnArray); $point->vlan = explode('=', $urnArray[7])[1]; Yii::trace($point->vlan); $point->domain = explode('=', $urnArray[3])[1]; Yii::trace($point->domain); $urnArray[7] = ''; $urnArray[6] = ''; $point->port_urn = substr(implode(':', $urnArray), 0, -2); Yii::trace($point->port_urn); $point->save(); } OscarsService::associateNSICircuits($conn); } else { Yii::trace($conn->getErrors()); } } else { $conn->dataplane_status = $status == 'ACTIVE' ? 'ACTIVE' : 'INACTIVE'; $conn->save(); } }
public function createConnections($events) { $paths = $this->getPaths()->all(); Yii::trace($events); for ($i = 0; $i < count($events['start']); $i++) { $conn = new Connection(); $date = new \DateTime($events['start'][$i]); $conn->start = $date->format('Y-m-d H:i'); $date = new \DateTime($events['finish'][$i]); $conn->finish = $date->format('Y-m-d H:i'); $conn->reservation_id = $this->id; $conn->status = Connection::STATUS_PENDING; $conn->dataplane_status = Connection::DATA_STATUS_INACTIVE; $conn->auth_status = Connection::AUTH_STATUS_UNEXECUTED; $conn->resources_status = Connection::RES_STATUS_RELEASED; $conn->version = 0; $conn->bandwidth = $this->bandwidth; $conn->type = Connection::TYPE_NSI; if ($conn->save()) { $k = 0; foreach ($paths as $resPath) { $connPath = new ConnectionPath(); $connPath->path_order = $k; $connPath->conn_id = $conn->id; $connPath->domain = explode(":", $resPath->port_urn)[0]; $k++; $connPath->port_urn = $resPath->port_urn; $connPath->vlan = $resPath->vlan; $connPath->save(); } } else { Yii::trace($conn->getErrors()); } } }