wiki:Internal/Infrastructure/OMF/GridServices/CMC

CMC APIs, Access Control Policy

This is the only service using the old API (i.e. gridservices running on port 5012 as opposed to 5022).

Initial CMC Config File

The cmc config file is /etc/gridservices/cmc.yaml. The Orbit administrator creates this file. Once created, only the 'node_alias' and the 'inactive_list' fields are dynamically updated by the CMC. At creation, the administrator can set a list of nodes to INACTIVE by specifying the node coordinates in the 'inactive_list' of the testbed.

communicators:
  default:
    port: 9030
    ip: 10.1.200.1
primaryIF: "10.0"
testbeds:
  sb1:
    baseIP: 10.1.101.
    ip_block: lambda {|x,y| "10.1.101.#{x * 16 + y}"}
    x_max: 1
    y_max: 2
    node_alias: []
    inactive_list: "[[1,1], [1,3]]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016
  sb2:
    baseIP: 10.1.102.
    ip_block: lambda {|x,y| "10.1.102.#{x * 16 + y}"}
    x_max: 1
    y_max: 2
    node_alias: []
    inactive_list: "[]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016
  sb3:
    baseIP: 10.1.103.
    ip_block: lambda {|x,y| "10.1.103.#{x * 16 + y}"}
    x_max: 1
    y_max: 2
    node_alias: []
    inactive_list: "[]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016
  sb4:
    baseIP: 10.1.104.
    ip_block: lambda {|x,y| "10.1.104.#{x * 16 + y}"}
    x_max: 1
    y_max: 2
    node_alias: []
    inactive_list: "[]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016
  sb5:
    baseIP: 10.1.105.
    ip_block: lambda {|x,y| "10.1.105.#{x * 16 + y}"}
    x_max: 1
    y_max: 2
    node_alias: []
    inactive_list: "[]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016
  sb6:
    baseIP: 10.1.106.
    ip_block: lambda {|x,y| "10.1.106.#{x * 16 + y}"}
    x_max: 1
    y_max: 2
    node_alias: []
    inactive_list: "[]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016
  sb7:
    baseIP: 10.1.107.
    ip_block: lambda {|x,y| "10.1.107.#{x * 16 + y}"}
    x_max: 1
    y_max: 2
    node_alias: []
    inactive_list: "[]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016
  sb8:
    baseIP: 10.1.108.
    ip_block: lambda {|x,y| "10.1.108.#{x * 16 + y}"}
    x_max: 1
    y_max: 2
    node_alias: []
    inactive_list: "[]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016
  grid:
    baseIP: 10.1.
    ip_block: lambda {|x,y| "10.1.#{x}.#{y}"}
    x_max: 20
    y_max: 20
    node_alias: []
    inactive_list: "[]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016
  sb9:
    baseIP: 10.1.109.
    ip_block: lambda {|x,y| "10.1.109.#{x * 16 + y}"}
    x_max: 8
    y_max: 8
    node_alias: []
    inactive_list: "[]"
    12vStatus: 0.064
    5vStatus: 0.032
    3vStatus: 0.016

Config File Updates

On startup, CMC will dynamically update the 'node_alias' field of this config file based on the existing interfaces specified in the inventory database. If there are no nodes for an interface, then "NONE" is specified for that interface.

node_alias:
    - "Atheros 802.11a/b/g:  [[13,14], [20,20], [1,17], [17,11], [11,6]]"
    - "Intel 802.11a/b/g: NONE"
    - "Belkin Bluetooth USB: NONE"
    - "Crossbow Telos Rev.B MOTE: NONE"
    - "GNURadio USRP: NONE"
    - "Marvell 88E8001 Gigabit Ethernet Controller: NONE"
    - "Intel Corporation 82540EM Gigabit Ethernet Controller: NONE"
    - "Intel 802.11a/b/g:  [[11,1], [20,4], [15,15], [20,18], [20,8]]"

The 'inactive_list' field will be dynamically updated for whenever the user sets a node to ACTIVE/INACTIVE. When a node (that is currently ACTIVE) is set to INACTIVE, the node coordinates are added to this field. Again when a node that is currently INACTIVE is set to ACTIVE, the coordinates for that node are removed from the 'inactive_list'.

Example

A) inactive_list: "[]"

B) wget -O - "http://cmc:5012/cmc/nodeSetNodeInactive?domain=grid.orbit-lab.org&nodes=[1,1..2]"
   inactive_list: "[[1,1], [1,2]]"

C) wget -O - "http://cmc:5012/cmc/nodeSetNodeActive?domain=grid.orbit-lab.org&nodes=[1,1..2]"
   inactive_list: "[]"
Last modified 16 years ago Last modified on Mar 9, 2009, 2:48:24 PM
Note: See TracWiki for help on using the wiki.