Mailinglist Archive: yast-devel (246 mails)

< Previous Next >
[yast-devel] WebYaST: Network REST Model v1
  • From: Martin Vidner <mvidner@xxxxxxx>
  • Date: Wed, 12 Aug 2009 15:53:35 +0200
  • Message-id: <20090812135335.GC5835@xxxxxxxxxxxxxxxx>
If you wonder why another model for the same, I have started this
in parallel to Miso looking at CIM, and intentionally it does not
include any CIM yet.

Next we will look how it can be made more CIM-like and whether the
anticipated resulting complication is too much :)

* /network

http://mschmidkunz.110mb.com/network.html
Everything goes under /network
But the network services, including a DHCP *server*, will be outside

Basic Config
------------

* /network/devices/ (RO)

Devices and interfaces are the same for now.
Devices are read only (for physial devices, but see below for virtual).
The read-write part are the configs.

* /network/devices/1 (RO)
interface=eth0
product=MSI 1341

* /network/configs/ (RO)

Configs are separated from devices

like ifcfg-*
(shown here like key-value pairs but xml in fact)

* /network/configs/1 (RW)
startmode=dhcp4
* /network/configs/2
bootproto=static
ipaddr=1.2.3.4/24
* /network/configs/3
startmode=dhcp4
wireless_essid=HomeWiFi
wireless_key=HomeSweetHome
* /network/configs/4
startmode=dhcp4
wireless_essid=WorkWiFi
wireless_wpa_psk=HomeSweetHome

In the above form, configs are not associated with devices
and it works like in NetworkManager, a call like
/network/devices/1/configure?config=/network/configs/42
is needed.
But a config can get another attribute, "device" that makes it the
default config for a device, and it works like our ifcfg (where
"device" is in the filename)

For simplicity, the UI can hide the device-config separation and
always edit the single config for a device.

* /network/devices/1/current-config (RO) (current_config? TODO style)
ipaddr=1.2.3.4/24

This distinguishes the config, which can specify the IP or say DHCP
from the current-config, which always specifies the IP (or does not exist).
Think /etc versus "ip" output.

* /network/routes/
* /network/routes/default (RW)
<route>
<via>1.2.3.4</> ("ip r" keyword)
<route>

* /network/resolver (RW)
<nameservers>
<nameserver>1.2.3.4</>
<nameserver>1.2.3.42</>
</>
<searches>
<search>example.com</>
<search>example.net</>
</>
(use-dhcp ?)

* /network/resolver/current-config (RO)
Like with the devices, this shows the config even if /network/resolver
says DHCP

* /network/hostname (RW)
hostname=trikolka
domain=suse.cz
fqdn=trikolka.suse.cz
(dhcp??)


Virtual Devices
---------------

(This is for the future, included here just to show that the API
accomodates them)

For virtual devices (special interfaces not based on hardware devices
- bridge, bonding, vlan) is sysconfig configuration splitted into
device and configuration parts. /network/configs stays the same and
/network/devices becomes writable (details to be worked out but the
REST paths are unchanged from the basic config)

bridge
------
ifcfg-br0
STARTMODE='auto'
BOOTPROTO='dhcp'
BRIDGE='yes'
BRIDGE_PORTS='eth0 eth1'
BRIDGE_PORTPRIORITIES='50 20'

* /network/devices/1
interface=br0
bridge='yes'
bridge_ports='eth0 eth1'
bridge_portpriorities='50 20'

* /network/configs/1
bootproto='dhcp'

VLAN
----
ifcfg-vlan3
STARTMODE=onboot
ETHERDEVICE=eth0
IPADDR=192.168.3.27/24

* /network/devices/1
interface=vlan3
etherdevice=eth0 # /network/devices/10
* /network/configs/1
ipaddr=192.168.3.27/24

bonding
-------
ifcfg-bond0
STARTMODE='onboot'
BOOTPROTO='static'
IPADDR='192.168.0.1/24'

BONDING_MASTER='yes'
BONDING_SLAVE_0='eth0'
BONDING_SLAVE_1='eth1'
BONDING_MODULE_OPTS='mode=1' # backup mode

* /network/devices/1
interface=bond0
bonding_master='yes'
bonding_slave_0='eth0' # /network/devices/10
bonding_slave_1='eth1' # /network/devices/11
bonding_module_opts='mode=1' # backup mode
* /network/configs/1
ipaddr='192.168.0.1/24'

--
Martin Vidner, YaST developer
http://en.opensuse.org/User:Mvidner

Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu
--
To unsubscribe, e-mail: yast-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: yast-devel+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups