Пример #1
0
 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();
     }
 }
Пример #2
0
 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());
         }
     }
 }