public function actionGetAll($status, $type)
 {
     self::beginAsyncAction();
     $data = Yii::$app->cache->get('circuits.oscars.all');
     if ($data === false) {
         OscarsService::loadCircuits(Yii::$app->params['oscars.bridge.provider.url']);
         // store $data in cache so that it can be retrieved next time
         Yii::$app->cache->set('circuits.oscars.all', 'true', 120000);
     }
     $conns = Connection::find()->where(['dataplane_status' => $status, 'type' => $type])->with('fullPath')->asArray()->all();
     return json_encode($conns);
 }
Example #2
0
 /**
  * Contact configured OSCARS instance, get (active and scheduled) circuits
  * and save in MEICAN database.
  */
 public function actionLoadCircuits()
 {
     return OscarsService::loadCircuits(Yii::$app->params['oscars.bridge.provider.url']);
 }
Example #3
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();
     }
 }