cc1  v2.1
CC1 source code docs
 All Classes Namespaces Files Functions Variables Pages
s801_check_public_ip.py
Go to the documentation of this file.
1 # -*- coding: utf-8 -*-
2 # @COPYRIGHT_begin
3 #
4 # Copyright [2010-2014] Institute of Nuclear Physics PAN, Krakow, Poland
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # @COPYRIGHT_end
19 
20 ##
21 #
22 # Compare brigde list on each node with vms in database
23 #
24 #
25 # Jesli musisz to czytac i zmienic to Ci wspolczuje...
26 #
27 from predefined.actions import *
28 from predefined.users import *
29 from predefined.macros import *
30 import settings
31 
32 actions = []
33 actions.append(list_clusters)
34 
35 actions.append(list_admin_vms)
36 actions.append(list_nodes)
37 
38 # Compare number of dnsmasq processes with virtual machines on node
39 actions.append({'type': 'pyscript',
40  'description': 'Compare number of dnsmasq processes with virtual machines on node',
41  'script': '''
42 import subprocess
43 
44 for node in stored_results['nodes']:
45  if node['state'] == 1:
46  p = subprocess.Popen('ssh cc1@%s "python /opt/cc1/conf/elasticip.py list_redirections"' % node['address'], shell=True, stdout=subprocess.PIPE)
47  node_info = int(p.stdout.readlines())
48 
49  for vm in stored_results['admin_vms']:
50  if vm['node'] == node['address']:
51  vms_on_node.append(vm)
52 
53  if len(vms_on_node) != dnsmasq:
54  r = 'error'
55  log = log + "Node %s has inconsistent networking\\n" % node["address"]
56 '''})
57 
58