Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

# Copyright (c) 2017 Ansible Project 

# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 

from __future__ import (absolute_import, division, print_function) 

__metaclass__ = type 

 

import os 

 

from ansible.module_utils.facts.collector import BaseFactCollector 

 

 

def is_chroot(): 

 

is_chroot = None 

 

if os.environ.get('debian_chroot', False): 

is_chroot = True 

else: 

my_root = os.stat('/') 

try: 

# check if my file system is the root one 

proc_root = os.stat('/proc/1/root/.') 

is_chroot = my_root.st_ino != proc_root.st_ino or my_root.st_dev != proc_root.st_dev 

except: 

# I'm not root or no proc, fallback to checking it is inode #2 

is_chroot = (my_root.st_ino != 2) 

 

return is_chroot 

 

 

class ChrootFactCollector(BaseFactCollector): 

name = 'chroot' 

_fact_ids = set(['is_chroot']) 

 

def collect(self, module=None, collected_facts=None): 

return {'is_chroot': is_chroot()}