Linux ip-148-66-134-25.ip.secureserver.net 3.10.0-1160.119.1.el7.tuxcare.els10.x86_64 #1 SMP Fri Oct 11 21:40:41 UTC 2024 x86_64
Apache
: 148.66.134.25 | : 3.145.47.193
66 Domain
8.0.30
amvm
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
lib /
python2.7 /
site-packages /
cloudinit /
config /
[ HOME SHELL ]
Name
Size
Permission
Action
__init__.py
1.4
KB
-rw-r--r--
__init__.pyc
1.3
KB
-rw-r--r--
__init__.pyo
1.3
KB
-rw-r--r--
cc_apt_configure.py
32.06
KB
-rw-r--r--
cc_apt_configure.pyc
29.4
KB
-rw-r--r--
cc_apt_configure.pyo
29.4
KB
-rw-r--r--
cc_apt_pipelining.py
2.43
KB
-rw-r--r--
cc_apt_pipelining.pyc
2.49
KB
-rw-r--r--
cc_apt_pipelining.pyo
2.49
KB
-rw-r--r--
cc_bootcmd.py
2.04
KB
-rw-r--r--
cc_bootcmd.pyc
2.06
KB
-rw-r--r--
cc_bootcmd.pyo
2.06
KB
-rw-r--r--
cc_byobu.py
3.09
KB
-rw-r--r--
cc_byobu.pyc
3.08
KB
-rw-r--r--
cc_byobu.pyo
3.08
KB
-rw-r--r--
cc_ca_certs.py
4.09
KB
-rw-r--r--
cc_ca_certs.pyc
4.1
KB
-rw-r--r--
cc_ca_certs.pyo
4.1
KB
-rw-r--r--
cc_chef.py
12.51
KB
-rw-r--r--
cc_chef.pyc
9.98
KB
-rw-r--r--
cc_chef.pyo
9.98
KB
-rw-r--r--
cc_debug.py
3.05
KB
-rw-r--r--
cc_debug.pyc
3.31
KB
-rw-r--r--
cc_debug.pyo
3.31
KB
-rw-r--r--
cc_disable_ec2_metadata.py
1.17
KB
-rw-r--r--
cc_disable_ec2_metadata.pyc
1.28
KB
-rw-r--r--
cc_disable_ec2_metadata.pyo
1.28
KB
-rw-r--r--
cc_disk_setup.py
30.52
KB
-rw-r--r--
cc_disk_setup.pyc
28.24
KB
-rw-r--r--
cc_disk_setup.pyo
28.24
KB
-rw-r--r--
cc_emit_upstart.py
2
KB
-rw-r--r--
cc_emit_upstart.pyc
2.14
KB
-rw-r--r--
cc_emit_upstart.pyo
2.14
KB
-rw-r--r--
cc_fan.py
2.82
KB
-rw-r--r--
cc_fan.pyc
3.09
KB
-rw-r--r--
cc_fan.pyo
3.09
KB
-rw-r--r--
cc_final_message.py
2.35
KB
-rw-r--r--
cc_final_message.pyc
2.39
KB
-rw-r--r--
cc_final_message.pyo
2.39
KB
-rw-r--r--
cc_foo.py
2.07
KB
-rw-r--r--
cc_foo.pyc
702
B
-rw-r--r--
cc_foo.pyo
702
B
-rw-r--r--
cc_growpart.py
11
KB
-rw-r--r--
cc_growpart.pyc
10.83
KB
-rw-r--r--
cc_growpart.pyo
10.83
KB
-rw-r--r--
cc_grub_dpkg.py
2.87
KB
-rw-r--r--
cc_grub_dpkg.pyc
2.63
KB
-rw-r--r--
cc_grub_dpkg.pyo
2.63
KB
-rw-r--r--
cc_keys_to_console.py
2.39
KB
-rw-r--r--
cc_keys_to_console.pyc
2.42
KB
-rw-r--r--
cc_keys_to_console.pyo
2.42
KB
-rw-r--r--
cc_landscape.py
3.96
KB
-rw-r--r--
cc_landscape.pyc
3.98
KB
-rw-r--r--
cc_landscape.pyo
3.98
KB
-rw-r--r--
cc_locale.py
1.16
KB
-rw-r--r--
cc_locale.pyc
1.16
KB
-rw-r--r--
cc_locale.pyo
1.16
KB
-rw-r--r--
cc_lxd.py
8.47
KB
-rw-r--r--
cc_lxd.pyc
6.55
KB
-rw-r--r--
cc_lxd.pyo
6.55
KB
-rw-r--r--
cc_mcollective.py
5.08
KB
-rw-r--r--
cc_mcollective.pyc
3.8
KB
-rw-r--r--
cc_mcollective.pyo
3.8
KB
-rw-r--r--
cc_migrator.py
3.07
KB
-rw-r--r--
cc_migrator.pyc
3.18
KB
-rw-r--r--
cc_migrator.pyo
3.18
KB
-rw-r--r--
cc_mounts.py
15.43
KB
-rw-r--r--
cc_mounts.pyc
13.19
KB
-rw-r--r--
cc_mounts.pyo
13.19
KB
-rw-r--r--
cc_ntp.py
3.45
KB
-rw-r--r--
cc_ntp.pyc
3.94
KB
-rw-r--r--
cc_ntp.pyo
3.94
KB
-rw-r--r--
cc_package_update_upgrade_inst...
4.07
KB
-rw-r--r--
cc_package_update_upgrade_inst...
4.01
KB
-rw-r--r--
cc_package_update_upgrade_inst...
4.01
KB
-rw-r--r--
cc_phone_home.py
3.89
KB
-rw-r--r--
cc_phone_home.pyc
3.23
KB
-rw-r--r--
cc_phone_home.pyo
3.23
KB
-rw-r--r--
cc_power_state_change.py
7.66
KB
-rw-r--r--
cc_power_state_change.pyc
7.83
KB
-rw-r--r--
cc_power_state_change.pyo
7.83
KB
-rw-r--r--
cc_puppet.py
6.26
KB
-rw-r--r--
cc_puppet.pyc
4.7
KB
-rw-r--r--
cc_puppet.pyo
4.7
KB
-rw-r--r--
cc_resizefs.py
6.06
KB
-rw-r--r--
cc_resizefs.pyc
5.65
KB
-rw-r--r--
cc_resizefs.pyo
5.65
KB
-rw-r--r--
cc_resolv_conf.py
3.41
KB
-rw-r--r--
cc_resolv_conf.pyc
3.42
KB
-rw-r--r--
cc_resolv_conf.pyo
3.42
KB
-rw-r--r--
cc_rh_subscription.py
15.9
KB
-rw-r--r--
cc_rh_subscription.pyc
13.5
KB
-rw-r--r--
cc_rh_subscription.pyo
13.5
KB
-rw-r--r--
cc_rightscale_userdata.py
3.75
KB
-rw-r--r--
cc_rightscale_userdata.pyc
2.82
KB
-rw-r--r--
cc_rightscale_userdata.pyo
2.82
KB
-rw-r--r--
cc_rsyslog.py
14.06
KB
-rw-r--r--
cc_rsyslog.pyc
10.55
KB
-rw-r--r--
cc_rsyslog.pyo
10.55
KB
-rw-r--r--
cc_runcmd.py
1.64
KB
-rw-r--r--
cc_runcmd.pyc
1.69
KB
-rw-r--r--
cc_runcmd.pyo
1.69
KB
-rw-r--r--
cc_salt_minion.py
2.86
KB
-rw-r--r--
cc_salt_minion.pyc
2.39
KB
-rw-r--r--
cc_salt_minion.pyo
2.39
KB
-rw-r--r--
cc_scripts_per_boot.py
1.2
KB
-rw-r--r--
cc_scripts_per_boot.pyc
1.2
KB
-rw-r--r--
cc_scripts_per_boot.pyo
1.2
KB
-rw-r--r--
cc_scripts_per_instance.py
1.23
KB
-rw-r--r--
cc_scripts_per_instance.pyc
1.24
KB
-rw-r--r--
cc_scripts_per_instance.pyo
1.24
KB
-rw-r--r--
cc_scripts_per_once.py
1.17
KB
-rw-r--r--
cc_scripts_per_once.pyc
1.18
KB
-rw-r--r--
cc_scripts_per_once.pyo
1.18
KB
-rw-r--r--
cc_scripts_user.py
1.42
KB
-rw-r--r--
cc_scripts_user.pyc
1.38
KB
-rw-r--r--
cc_scripts_user.pyo
1.38
KB
-rw-r--r--
cc_scripts_vendor.py
1.38
KB
-rw-r--r--
cc_scripts_vendor.pyc
1.46
KB
-rw-r--r--
cc_scripts_vendor.pyo
1.46
KB
-rw-r--r--
cc_seed_random.py
4.36
KB
-rw-r--r--
cc_seed_random.pyc
4.5
KB
-rw-r--r--
cc_seed_random.pyo
4.5
KB
-rw-r--r--
cc_set_hostname.py
1.65
KB
-rw-r--r--
cc_set_hostname.pyc
1.67
KB
-rw-r--r--
cc_set_hostname.pyo
1.67
KB
-rw-r--r--
cc_set_passwords.py
6.7
KB
-rw-r--r--
cc_set_passwords.pyc
5.59
KB
-rw-r--r--
cc_set_passwords.pyo
5.59
KB
-rw-r--r--
cc_snap_config.py
5
KB
-rw-r--r--
cc_snap_config.pyc
4.75
KB
-rw-r--r--
cc_snap_config.pyo
4.75
KB
-rw-r--r--
cc_snappy.py
9.36
KB
-rw-r--r--
cc_snappy.pyc
9
KB
-rw-r--r--
cc_snappy.pyo
9
KB
-rw-r--r--
cc_spacewalk.py
2.89
KB
-rw-r--r--
cc_spacewalk.pyc
2.91
KB
-rw-r--r--
cc_spacewalk.pyo
2.91
KB
-rw-r--r--
cc_ssh.py
8.14
KB
-rw-r--r--
cc_ssh.pyc
7.35
KB
-rw-r--r--
cc_ssh.pyo
7.35
KB
-rw-r--r--
cc_ssh_authkey_fingerprints.py
3.46
KB
-rw-r--r--
cc_ssh_authkey_fingerprints.py...
3.98
KB
-rw-r--r--
cc_ssh_authkey_fingerprints.py...
3.98
KB
-rw-r--r--
cc_ssh_import_id.py
2.88
KB
-rw-r--r--
cc_ssh_import_id.pyc
2.72
KB
-rw-r--r--
cc_ssh_import_id.pyo
2.72
KB
-rw-r--r--
cc_timezone.py
1.15
KB
-rw-r--r--
cc_timezone.pyc
1.15
KB
-rw-r--r--
cc_timezone.pyo
1.15
KB
-rw-r--r--
cc_ubuntu_init_switch.py
4.53
KB
-rw-r--r--
cc_ubuntu_init_switch.pyc
4.72
KB
-rw-r--r--
cc_ubuntu_init_switch.pyo
4.72
KB
-rw-r--r--
cc_update_etc_hosts.py
3.28
KB
-rw-r--r--
cc_update_etc_hosts.pyc
2.95
KB
-rw-r--r--
cc_update_etc_hosts.pyo
2.95
KB
-rw-r--r--
cc_update_hostname.py
1.58
KB
-rw-r--r--
cc_update_hostname.pyc
1.66
KB
-rw-r--r--
cc_update_hostname.pyo
1.66
KB
-rw-r--r--
cc_users_groups.py
3.77
KB
-rw-r--r--
cc_users_groups.pyc
3.83
KB
-rw-r--r--
cc_users_groups.pyo
3.83
KB
-rw-r--r--
cc_write_files.py
4.28
KB
-rw-r--r--
cc_write_files.pyc
4.47
KB
-rw-r--r--
cc_write_files.pyo
4.47
KB
-rw-r--r--
cc_yum_add_repo.py
4.05
KB
-rw-r--r--
cc_yum_add_repo.pyc
3.68
KB
-rw-r--r--
cc_yum_add_repo.pyo
3.68
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : cc_power_state_change.py
# Copyright (C) 2011 Canonical Ltd. # # Author: Scott Moser <scott.moser@canonical.com> # # This file is part of cloud-init. See LICENSE file for license information. """ Power State Change ------------------ **Summary:** change power state This module handles shutdown/reboot after all config modules have been run. By default it will take no action, and the system will keep running unless a package installation/upgrade requires a system reboot (e.g. installing a new kernel) and ``package_reboot_if_required`` is true. The ``power_state`` config key accepts a dict of options. If ``mode`` is any value other than ``poweroff``, ``halt``, or ``reboot``, then no action will be taken. The system can be shutdown before cloud-init has finished using the ``timeout`` option. The ``delay`` key specifies a duration to be added onto any shutdown command used. Therefore, if a 5 minute delay and a 120 second shutdown are specified, the maximum amount of time between cloud-init starting and the system shutting down is 7 minutes, and the minimum amount of time is 5 minutes. The ``delay`` key must have an argument in a form that the ``shutdown`` utility recognizes. The most common format is the form ``+5`` for 5 minutes. See ``man shutdown`` for more options. Optionally, a command can be run to determine whether or not the system should shut down. The command to be run should be specified in the ``condition`` key. For command formatting, see the documentation for ``cc_runcmd``. The specified shutdown behavior will only take place if the ``condition`` key is omitted or the command specified by the ``condition`` key returns 0. **Internal name:** ``cc_power_state_change`` **Module frequency:** per instance **Supported distros:** all **Config keys**:: power_state: delay: <now/'+minutes'> mode: <poweroff/halt/reboot> message: <shutdown message> timeout: <seconds> condition: <true/false/command> """ from cloudinit.settings import PER_INSTANCE from cloudinit import util import errno import os import re import six import subprocess import time frequency = PER_INSTANCE EXIT_FAIL = 254 def givecmdline(pid): # Returns the cmdline for the given process id. In Linux we can use procfs # for this but on BSD there is /usr/bin/procstat. try: # Example output from procstat -c 1 # PID COMM ARGS # 1 init /bin/init -- if util.system_info()["platform"].startswith('FreeBSD'): (output, _err) = util.subp(['procstat', '-c', str(pid)]) line = output.splitlines()[1] m = re.search('\d+ (\w|\.|-)+\s+(/\w.+)', line) return m.group(2) else: return util.load_file("/proc/%s/cmdline" % pid) except IOError: return None def check_condition(cond, log=None): if isinstance(cond, bool): if log: log.debug("Static Condition: %s" % cond) return cond pre = "check_condition command (%s): " % cond try: proc = subprocess.Popen(cond, shell=not isinstance(cond, list)) proc.communicate() ret = proc.returncode if ret == 0: if log: log.debug(pre + "exited 0. condition met.") return True elif ret == 1: if log: log.debug(pre + "exited 1. condition not met.") return False else: if log: log.warn(pre + "unexpected exit %s. " % ret + "do not apply change.") return False except Exception as e: if log: log.warn(pre + "Unexpected error: %s" % e) return False def handle(_name, cfg, _cloud, log, _args): try: (args, timeout, condition) = load_power_state(cfg) if args is None: log.debug("no power_state provided. doing nothing") return except Exception as e: log.warn("%s Not performing power state change!" % str(e)) return if condition is False: log.debug("Condition was false. Will not perform state change.") return mypid = os.getpid() cmdline = givecmdline(mypid) if not cmdline: log.warn("power_state: failed to get cmdline of current process") return devnull_fp = open(os.devnull, "w") log.debug("After pid %s ends, will execute: %s" % (mypid, ' '.join(args))) util.fork_cb(run_after_pid_gone, mypid, cmdline, timeout, log, condition, execmd, [args, devnull_fp]) def load_power_state(cfg): # returns a tuple of shutdown_command, timeout # shutdown_command is None if no config found pstate = cfg.get('power_state') if pstate is None: return (None, None, None) if not isinstance(pstate, dict): raise TypeError("power_state is not a dict.") opt_map = {'halt': '-H', 'poweroff': '-P', 'reboot': '-r'} mode = pstate.get("mode") if mode not in opt_map: raise TypeError( "power_state[mode] required, must be one of: %s. found: '%s'." % (','.join(opt_map.keys()), mode)) delay = pstate.get("delay", "now") # convert integer 30 or string '30' to '+30' try: delay = "+%s" % int(delay) except ValueError: pass if delay != "now" and not re.match(r"\+[0-9]+", delay): raise TypeError( "power_state[delay] must be 'now' or '+m' (minutes)." " found '%s'." % delay) args = ["shutdown", opt_map[mode], delay] if pstate.get("message"): args.append(pstate.get("message")) try: timeout = float(pstate.get('timeout', 30.0)) except ValueError: raise ValueError("failed to convert timeout '%s' to float." % pstate['timeout']) condition = pstate.get("condition", True) if not isinstance(condition, six.string_types + (list, bool)): raise TypeError("condition type %s invalid. must be list, bool, str") return (args, timeout, condition) def doexit(sysexit): os._exit(sysexit) def execmd(exe_args, output=None, data_in=None): try: proc = subprocess.Popen(exe_args, stdin=subprocess.PIPE, stdout=output, stderr=subprocess.STDOUT) proc.communicate(data_in) ret = proc.returncode except Exception: doexit(EXIT_FAIL) doexit(ret) def run_after_pid_gone(pid, pidcmdline, timeout, log, condition, func, args): # wait until pid, with /proc/pid/cmdline contents of pidcmdline # is no longer alive. After it is gone, or timeout has passed # execute func(args) msg = None end_time = time.time() + timeout def fatal(msg): if log: log.warn(msg) doexit(EXIT_FAIL) known_errnos = (errno.ENOENT, errno.ESRCH) while True: if time.time() > end_time: msg = "timeout reached before %s ended" % pid break try: cmdline = givecmdline(pid) if cmdline != pidcmdline: msg = "cmdline changed for %s [now: %s]" % (pid, cmdline) break except IOError as ioerr: if ioerr.errno in known_errnos: msg = "pidfile gone [%d]" % ioerr.errno else: fatal("IOError during wait: %s" % ioerr) break except Exception as e: fatal("Unexpected Exception: %s" % e) time.sleep(.25) if not msg: fatal("Unexpected error in run_after_pid_gone") if log: log.debug(msg) try: if not check_condition(condition, log): return except Exception as e: fatal("Unexpected Exception when checking condition: %s" % e) func(*args) # vi: ts=4 expandtab
Close