Exemplo n.º 1
0
 public function actionSaveGraphPositions()
 {
     Yii::trace($_POST);
     if ($_POST['nodes']) {
         switch ($_POST['mode']) {
             case 'dom':
                 foreach ($_POST['nodes'] as $node) {
                     $dom = Domain::findOne(str_replace("dom", "", $node['id']));
                     $dom->graph_x = $node['x'];
                     $dom->graph_y = $node['y'];
                     $dom->save();
                 }
                 break;
             case 'dev':
                 foreach ($_POST['nodes'] as $node) {
                     $dev = Device::findOne(str_replace("dev", "", $node['id']));
                     $dev->graph_x = $node['x'];
                     $dev->graph_y = $node['y'];
                     $dev->save();
                 }
                 break;
             case 'net':
                 break;
             default:
                 break;
         }
     }
     return "";
 }
Exemplo n.º 2
0
 public function actionDelete()
 {
     if (isset($_POST['delete'])) {
         foreach ($_POST['delete'] as $id) {
             $device = Device::findOne($id);
             if (self::can('domainTopology/delete', $device->getDomain()->one()->name)) {
                 if ($device->delete()) {
                     Yii::$app->getSession()->addFlash('success', Yii::t('topology', 'Device {name} deleted', ['name' => $device->name]));
                 } else {
                     Yii::$app->getSession()->setFlash('error', Yii::t('topology', 'Error deleting device {name}', ['name' => $device->name]));
                 }
             } else {
                 Yii::$app->getSession()->addFlash('warning', Yii::t('topology', 'Device {device} not deleted. You are not allowed to delete on domain {domain}', ['device' => $device->name, 'domain' => $device->getDomain()->one()->name]));
             }
         }
     }
     return $this->redirect(array('index'));
 }
Exemplo n.º 3
0
 public function getDetails()
 {
     $data = json_decode($this->data);
     switch ($this->type) {
         case self::TYPE_DELETE:
             switch ($this->item_type) {
                 case self::ITEM_TYPE_DOMAIN:
                     return Yii::t('topology', 'Domain');
                 case self::ITEM_TYPE_PROVIDER:
                     return Yii::t('topology', '<b>Provider</b>: {name}, <b>Type</b>: {type}', ['name' => $data->name, 'type' => $data->type]);
                 case self::ITEM_TYPE_PEERING:
                     return "";
                 case self::ITEM_TYPE_SERVICE:
                     return Yii::t('topology', 'Domain');
                 case self::ITEM_TYPE_NETWORK:
                     return Yii::t('topology', 'Network');
                 case self::ITEM_TYPE_DEVICE:
                     return $data->node;
                 case self::ITEM_TYPE_BIPORT:
                     $port = Port::findOne($this->item_id);
                     return $port ? $port->name : '';
                 case self::ITEM_TYPE_UNIPORT:
                     return Yii::t('topology', 'Port');
                 case self::ITEM_TYPE_LINK:
                     return '';
                 default:
                     return Yii::t('topology', 'Error');
             }
         case self::TYPE_UPDATE:
             switch ($this->item_type) {
                 case self::ITEM_TYPE_DOMAIN:
                     return Yii::t('topology', 'Domain');
                 case self::ITEM_TYPE_PROVIDER:
                     $prov = Provider::findOne($this->item_id);
                     return Yii::t('topology', 'To: <b>Provider</b>: {name}, <b>Type</b>: {type}, <b>Latitude</b>: {lat}' . ', <b>Longitude</b>: {lng}', ['name' => $data->name, 'type' => $data->type, 'lat' => $data->lat, 'lng' => $data->lng]);
                 case self::ITEM_TYPE_PEERING:
                     return "";
                 case self::ITEM_TYPE_SERVICE:
                     return Yii::t('topology', 'Domain');
                 case self::ITEM_TYPE_NETWORK:
                     return Yii::t('topology', 'Network');
                 case self::ITEM_TYPE_DEVICE:
                     $dev = Device::findOne($this->item_id);
                     return Yii::t('topology', '<b>Device</b>: {node}<br><b>Latitude</b>: {lat}, <b>Longitude</b>: {lng}', ['node' => $data->node, 'lat' => $data->lat, 'lng' => $data->lng]);
                 case self::ITEM_TYPE_BIPORT:
                     return Yii::t('topology', 'Port');
                 case self::ITEM_TYPE_UNIPORT:
                     $port = Port::findOneArraySelect($this->item_id, ['urn']);
                     $vlan = $data->vlan ? Yii::t('topology', ' - <b>VLAN Range</b>: {vlan}', ['vlan' => $data->vlan]) : "";
                     return Yii::t('topology', '<b>Unidirectional Port</b>: {urn}', ['urn' => $port['urn']]) . $vlan;
                 case self::ITEM_TYPE_LINK:
                     return Yii::t('topology', '<b>Link to Port</b>: {dst_urn}', ['dst_urn' => $data->dst_urn]);
                 default:
                     return Yii::t('topology', 'Error');
             }
         case self::TYPE_CREATE:
             switch ($this->item_type) {
                 case self::ITEM_TYPE_DOMAIN:
                     return "";
                 case self::ITEM_TYPE_PROVIDER:
                     return Yii::t('topology', '<b>Provider</b>: {name}<br><b>Type</b>: {type}<br><b>Latitude</b>: {lat}' . ', <b>Longitude</b>: {lng}', ['name' => $data->name, 'type' => Provider::getTypeLabels()[$data->type], 'lat' => $data->lat, 'lng' => $data->lng]);
                 case self::ITEM_TYPE_PEERING:
                     return Yii::t('topology', '<b>Provider</b>: {nsa}<br><b>Peering with</b>: {dstNsaId}', ['nsa' => $data->srcNsaId, 'dstNsaId' => $data->dstNsaId]);
                 case self::ITEM_TYPE_SERVICE:
                     return Yii::t('topology', '<b>Provider</b>: {nsa}<br><b>Service</b>: {type}<br><b>URL</b>: {url}', ['nsa' => $data->provNsa, 'url' => $data->url, 'type' => Service::getTypeLabels()[$data->type]]);
                 case self::ITEM_TYPE_NETWORK:
                     $location = $data->lat ? Yii::t('topology', '<br><b>Latitude</b>: {lat}, <b>Longitude</b>: {lng}', ['lat' => $data->lat, 'lng' => $data->lng]) : "";
                     return Yii::t('topology', '<b>Network</b>: {urn}', ['urn' => $data->urn]) . $location;
                 case self::ITEM_TYPE_DEVICE:
                     $location = $data->lat ? Yii::t('topology', '<br><b>Latitude</b>: {lat}, <b>Longitude</b>: {lng}', ['lat' => $data->lat, 'lng' => $data->lng]) : "";
                     return Yii::t('topology', '<b>Device</b>: {node}', ['node' => $data->node]) . $location;
                 case self::ITEM_TYPE_BIPORT:
                     $vlan = $data->vlan ? Yii::t('topology', '<br><b>VLAN Range</b>: {vlan}', ['vlan' => $data->vlan]) : "";
                     return Yii::t('topology', '<b>Device</b>: {node}<br><b>Port</b>: {urn}', ['urn' => $data->urn, 'node' => $data->node]) . $vlan;
                 case self::ITEM_TYPE_UNIPORT:
                     $vlan = $data->vlan ? Yii::t('topology', '<br><b>VLAN Range</b>: {vlan}', ['vlan' => $data->vlan]) : "";
                     return Yii::t('topology', '<b>Bidirectional Port</b>: {biPortUrn}<br><b>Port</b>: {urn}', ['urn' => $data->urn, 'biPortUrn' => $data->biPortUrn]) . $vlan;
                 case self::ITEM_TYPE_LINK:
                     return Yii::t('topology', '<b>From</b>: {src}<br><b>To</b>: {dst}', ['dst' => $data->dst_urn, 'src' => $data->urn]);
                 default:
                     return Yii::t('topology', 'Error');
             }
     }
 }