public function save() { $this->reservation = new Reservation(); $this->reservation->type = Reservation::TYPE_NORMAL; $this->reservation->name = $this->name; $this->reservation->date = DateUtils::now(); $this->reservation->bandwidth = $this->bandwidth; $this->reservation->requester_nsa = CircuitsPreference::findOneValue(CircuitsPreference::MEICAN_NSA); $this->reservation->provider_nsa = CircuitsPreference::findOneValue(CircuitsPreference::CIRCUITS_DEFAULT_PROVIDER_NSA); $this->reservation->request_user_id = Yii::$app->user->getId(); if ($this->reservation->save()) { for ($i = 0; $i < count($this->path['port']); $i++) { $path = new ReservationPath(); $path->reservation_id = $this->reservation->id; if ($this->path['mode'][$i] == 'normal') { $path->port_urn = Port::find()->where(['id' => $this->path['port'][$i]])->one()->urn; } else { $path->port_urn = str_replace('urn:ogf:network:', '', $this->path['urn'][$i]); } $path->path_order = $i; $path->vlan = $this->path['vlan'][$i]; if (!$path->save()) { Yii::trace($path->getErrors()); } } $this->reservation->createConnections($this->events); } Yii::trace($this->reservation->getErrors()); return true; }
public function save() { $pref = CircuitsPreference::findOne(CircuitsPreference::MEICAN_NSA); $pref->value = $this->meicanNsa; if (!$pref->save()) { return false; } $pref = CircuitsPreference::findOne(CircuitsPreference::CIRCUITS_DEFAULT_PROVIDER_NSA); $pref->value = $this->defaultProviderNsa; if (!$pref->save()) { return false; } $pref = CircuitsPreference::findOne(CircuitsPreference::CIRCUITS_DEFAULT_CS_URL); $pref->value = $this->defaultCSUrl; if (!$pref->save()) { return false; } $pref = CircuitsPreference::findOne(CircuitsPreference::CIRCUITS_UNIPORT_ENABLED); $pref->value = $this->uniportsEnabled; if (!$pref->save()) { return false; } $pref = CircuitsPreference::findOne(CircuitsPreference::CIRCUITS_PROTOCOL); $pref->value = $this->protocol; if (!$pref->save()) { return false; } return true; }
private function checkRequesterUrl() { $pref = CircuitsPreference::findOne(CircuitsPreference::CIRCUITS_MEICAN_REQUESTER_URL); if ($pref) { $url = Url::toRoute("/circuits/requester", "http"); if ($pref->value != $url) { $pref->value = $url; $pref->save(); } } }
function __construct($conn) { $this->conn = $conn; //if ($conn) $this->res = $conn->getReservation()->one(); /*$defaultNsa = CircuitsPreference::findOne(CircuitsPreference::CIRCUITS_DEFAULT_PROVIDER_NSA)->value; if ($this->res && ($this->res->provider_nsa != $defaultNsa)) { return new \Exception("Provider enabled is not equal the reservation provider."); }*/ if (Yii::$app->id == "meican-console") { $meicanRequesterUrl = CircuitsPreference::findOneValue(CircuitsPreference::CIRCUITS_MEICAN_REQUESTER_URL); } else { $meicanRequesterUrl = Url::toRoute("/circuits/nsi/requester", "http"); } $this->soapClient = new ConnectionRequesterClient("urn:ogf:network:" . CircuitsPreference::findOneValue(CircuitsPreference::MEICAN_NSA), $meicanRequesterUrl, "urn:ogf:network:" . CircuitsPreference::findOneValue(CircuitsPreference::CIRCUITS_DEFAULT_PROVIDER_NSA), CircuitsPreference::findOneValue(CircuitsPreference::CIRCUITS_DEFAULT_CS_URL), realpath(__DIR__ . "/../../../../certificates/" . \Yii::$app->params['certificate.filename']), Yii::$app->params['certificate.pass']); }
public function actionIndex() { if (!self::can('configuration/read')) { return $this->goHome(); } $config = new ConfigurationForm(); $config->setPreferences(CircuitsPreference::findAll()); if ($config->load($_POST)) { if (!self::can('configuration/update')) { Yii::$app->getSession()->addFlash("warning", Yii::t("circuits", "You are not allowed to update the configurations")); return $this->render('config', array('model' => $config)); } if ($config->validate() && $config->save()) { Yii::$app->getSession()->addFlash("success", Yii::t("circuits", "Configurations saved successfully")); } else { foreach ($config->getErrors() as $attribute => $error) { Yii::$app->getSession()->addFlash("error", $error[0]); } $config->clearErrors(); } } return $this->render('index', array('model' => $config)); }
public function save() { $this->reservation = new Reservation(); $this->reservation->type = Reservation::TYPE_TEST; $this->reservation->name = Test::AT_PREFIX; $this->reservation->date = DateUtils::now(); $this->reservation->start = DateUtils::now(); $this->reservation->finish = DateUtils::now(); $this->reservation->bandwidth = 10; $this->reservation->requester_nsa = CircuitsPreference::findOneValue(CircuitsPreference::MEICAN_NSA); $this->reservation->provider_nsa = CircuitsPreference::findOneValue(CircuitsPreference::CIRCUITS_DEFAULT_PROVIDER_NSA); $this->reservation->request_user_id = Yii::$app->user->getId(); //Confere se usuário tem permissão para testar na origem OU no destino $source = Port::findOne(['id' => $this->src_port]); $destination = Port::findOne(['id' => $this->dst_port]); $permission = false; if ($source) { $source = $source->getDevice()->one(); if ($source) { $domain = $source->getDomain()->one(); if ($domain && RbacController::can('test/create', $domain->name)) { $permission = true; } } } if ($destination) { $destination = $destination->getDevice()->one(); if ($destination) { $domain = $destination->getDomain()->one(); if ($domain && RbacController::can('test/create', $domain->name)) { $permission = true; } } } if (!$permission) { Yii::$app->getSession()->addFlash("warning", Yii::t("circuits", "You are not allowed to create a automated test involving these selected domains")); return false; } if ($this->reservation->save()) { $this->reservation->name .= $this->reservation->id; $this->reservation->save(); $path = new ReservationPath(); $path->reservation_id = $this->reservation->id; $path->port_urn = Port::findOne($this->src_port)->urn; $path->path_order = 0; $path->vlan = $this->src_vlan; if (!$path->save()) { Yii::trace($path->getErrors()); return false; } $path = new ReservationPath(); $path->reservation_id = $this->reservation->id; $path->port_urn = Port::findOne($this->dst_port)->urn; $path->path_order = 1; $path->vlan = $this->dst_vlan; if (!$path->save()) { Yii::trace($path->getErrors()); return false; } $task = new ScheduledTask(); $task->freq = $this->cron_value; $task->obj_class = 'meican\\tester\\models\\Test'; $task->obj_data = $this->reservation->id; if (!$task->save()) { Yii::trace($task->getErrors()); return false; } } else { Yii::trace($this->reservation->getErrors()); return false; } return true; }
public function actionGetPortByDevice($id, $cols = null) { $query = Port::find()->where(['device_id' => $id])->orderBy(['name' => 'SORT ASC'])->asArray(); if (!CircuitsPreference::findOne(CircuitsPreference::CIRCUITS_UNIPORT_ENABLED)->getBoolean()) { $query->andWhere(['directionality' => Port::DIR_BI]); } if (CircuitsPreference::findOne(CircuitsPreference::CIRCUITS_PROTOCOL)->value == Service::TYPE_NSI_CSP_2_0) { $query->andWhere(['type' => Port::TYPE_NSI]); } $cols ? $data = $query->select(json_decode($cols))->all() : ($data = $query->all()); $temp = Json::encode($data); Yii::trace($temp); return $temp; }