/
usr
/
lib
/
python2.6
/
site-packages
/
cloudinit
/
/usr/lib/python2.6/site-packages/cloudinit
mkdir
upload
Name
Size
Mode
Actions
config/
-
0755
rm
distros/
-
0755
rm
filters/
-
0755
rm
handlers/
-
0755
rm
mergers/
-
0755
rm
sources/
-
0755
rm
cloud.py
3497
0644
edit
dl
rm
cloud.pyc
3723
0644
edit
dl
rm
cloud.pyo
3723
0644
edit
dl
rm
cs_utils.py
3321
0644
edit
dl
rm
cs_utils.pyc
4266
0644
edit
dl
rm
cs_utils.pyo
4266
0644
edit
dl
rm
ec2_utils.py
6577
0644
edit
dl
rm
ec2_utils.pyc
5755
0644
edit
dl
rm
ec2_utils.pyo
5755
0644
edit
dl
rm
helpers.py
15045
0644
edit
dl
rm
helpers.pyc
16600
0644
edit
dl
rm
helpers.pyo
16600
0644
edit
dl
rm
importer.py
2317
0644
edit
dl
rm
importer.pyc
1502
0644
edit
dl
rm
importer.pyo
1502
0644
edit
dl
rm
log.py
4620
0644
edit
dl
rm
log.pyc
3700
0644
edit
dl
rm
log.pyo
3700
0644
edit
dl
rm
netinfo.py
6854
0644
edit
dl
rm
netinfo.pyc
5347
0644
edit
dl
rm
netinfo.pyo
5347
0644
edit
dl
rm
patcher.py
1820
0644
edit
dl
rm
patcher.pyc
1531
0644
edit
dl
rm
patcher.pyo
1531
0644
edit
dl
rm
safeyaml.py
1060
0644
edit
dl
rm
safeyaml.pyc
891
0644
edit
dl
rm
safeyaml.pyo
891
0644
edit
dl
rm
settings.py
2111
0644
edit
dl
rm
settings.pyc
1035
0644
edit
dl
rm
settings.pyo
1035
0644
edit
dl
rm
signal_handler.py
2378
0644
edit
dl
rm
signal_handler.pyc
2326
0644
edit
dl
rm
signal_handler.pyo
2326
0644
edit
dl
rm
ssh_util.py
10636
0644
edit
dl
rm
ssh_util.pyc
10072
0644
edit
dl
rm
ssh_util.pyo
10072
0644
edit
dl
rm
stages.py
27944
0644
edit
dl
rm
stages.pyc
21399
0644
edit
dl
rm
stages.pyo
21399
0644
edit
dl
rm
templater.py
1362
0644
edit
dl
rm
templater.pyc
1003
0644
edit
dl
rm
templater.pyo
1003
0644
edit
dl
rm
type_utils.py
1224
0644
edit
dl
rm
type_utils.pyc
524
0644
edit
dl
rm
type_utils.pyo
524
0644
edit
dl
rm
url_helper.py
12852
0644
edit
dl
rm
url_helper.pyc
11295
0644
edit
dl
rm
url_helper.pyo
11295
0644
edit
dl
rm
user_data.py
13143
0644
edit
dl
rm
user_data.pyc
9569
0644
edit
dl
rm
user_data.pyo
9569
0644
edit
dl
rm
util.py
62259
0644
edit
dl
rm
util.pyc
57445
0644
edit
dl
rm
util.pyo
57445
0644
edit
dl
rm
version.py
854
0644
edit
dl
rm
version.pyc
561
0644
edit
dl
rm
version.pyo
561
0644
edit
dl
rm
__init__.py
925
0644
edit
dl
rm
__init__.pyc
141
0644
edit
dl
rm
__init__.pyo
141
0644
edit
dl
rm
Edit:
/usr/lib/python2.6/site-packages/cloudinit/cs_utils.py
(3321B)
# vi: ts=4 expandtab # # Copyright (C) 2014 CloudSigma # # Author: Kiril Vladimiroff <kiril.vladimiroff@cloudsigma.com> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. """ cepko implements easy-to-use communication with CloudSigma's VMs through a virtual serial port without bothering with formatting the messages properly nor parsing the output with the specific and sometimes confusing shell tools for that purpose. Having the server definition accessible by the VM can ve useful in various ways. For example it is possible to easily determine from within the VM, which network interfaces are connected to public and which to private network. Another use is to pass some data to initial VM setup scripts, like setting the hostname to the VM name or passing ssh public keys through server meta. For more information take a look at the Server Context section of CloudSigma API Docs: http://cloudsigma-docs.readthedocs.org/en/latest/server_context.html """ import json import platform import serial SERIAL_PORT = '/dev/ttyS1' if platform.system() == 'Windows': SERIAL_PORT = 'COM2' class Cepko(object): """ One instance of that object could be use for one or more queries to the serial port. """ request_pattern = "<\n{}\n>" def get(self, key="", request_pattern=None): if request_pattern is None: request_pattern = self.request_pattern return CepkoResult(request_pattern.format(key)) def all(self): return self.get() def meta(self, key=""): request_pattern = self.request_pattern.format("/meta/{}") return self.get(key, request_pattern) def global_context(self, key=""): request_pattern = self.request_pattern.format("/global_context/{}") return self.get(key, request_pattern) class CepkoResult(object): """ CepkoResult executes the request to the virtual serial port as soon as the instance is initialized and stores the result in both raw and marshalled format. """ def __init__(self, request): self.request = request self.raw_result = self._execute() self.result = self._marshal(self.raw_result) def _execute(self): connection = serial.Serial(SERIAL_PORT) connection.write(self.request) return connection.readline().strip('\x04\n') def _marshal(self, raw_result): try: return json.loads(raw_result) except ValueError: return raw_result def __len__(self): return self.result.__len__() def __getitem__(self, key): return self.result.__getitem__(key) def __contains__(self, item): return self.result.__contains__(item) def __iter__(self): return self.result.__iter__()
Save
cmd:
run