| 
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 | # File 'manifests/server.pp', line 13
class hyperglass::server (
  Boolean $manage_depended_services = true,
  Boolean $manage_python            = true,
  Boolean $manage_gcc               = true,
  Hash $data                        = {},
  Hash $commands                    = {},
  Hash $devices                     = {
    'routers' => [
      {
        'name' => 'atl_router01',
        'address' => '10.0.0.2',
        'network' => {
          'name' => 'secondary',
          'display_name' => 'That Other Network',
        },
        'credential' => {
          'username' => 'user2',
          'password' => ' secret2',
        },
        'display_name' => 'Atlanta, GA',
        'port' => 22,
        'nos' => 'juniper',
        'vrfs' => [
          {
            'name' => 'default',
            'display_name' => 'Global',
            'ipv4' => {
              'source_address' => '192.0.2.2',
            },
          },
        ],
      },
    ],
  },
) {
  unless $facts['os']['name'] in ['CentOS', 'RedHat', 'VirtuozzoLinux'] {
    fail('the hyperglass::server class currently only works on CentOS/RedHat')
  }
  if $manage_depended_services {
    require hyperglass::server::dependencies
  }
  require hyperglass::hyperglassdir
  contain hyperglass::server::install
  contain hyperglass::server::config
  contain hyperglass::server::service
  Class['hyperglass::server::install']
  -> Class['hyperglass::server::config']
  ~> Class['hyperglass::server::service']
} |