Commit graph

208 commits

Author SHA1 Message Date
Nico Schottelius
6d75016139 make type emulator load again
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-26 11:18:36 +02:00
Nico Schottelius
4eec4d9627 only setup library path in main, not emulator
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-26 11:09:58 +02:00
Nico Schottelius
3f6c479d72 move TYPE_PREFIX back into main, as it's only needed there and should work without module
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-26 11:07:45 +02:00
Nico Schottelius
16d58dcac7 move out banner, fail at emulator
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-26 11:05:18 +02:00
Nico Schottelius
e6a903fd96 cleanup logger stuff, remove more path stuff from cdist bin
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-26 10:28:57 +02:00
Nico Schottelius
8f2e5bb8c8 cleanup and move error class to init
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-26 10:25:51 +02:00
Nico Schottelius
8af45f83b2 rearange remote_user
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 20:53:09 +02:00
Nico Schottelius
e14848ec1f remove run* from cdist and put it into lib/exec
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 20:21:10 +02:00
Nico Schottelius
d4406cece3 begin to replace first function with path module
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 20:17:17 +02:00
Nico Schottelius
79173488ff cdist runs with path module loaded (unusued though)
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 20:08:55 +02:00
Nico Schottelius
6139fab354 import cdist.path works
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 19:10:07 +02:00
Nico Schottelius
8e59f97800 begin to used cdist.path
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 18:55:23 +02:00
Steven Armstrong
91022c3f7e handle ioerror if script does not exist
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2011-09-23 17:19:45 +02:00
Steven Armstrong
a2f3246758 fix typo /nun_or_fail/run_or_fail/
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2011-09-23 17:03:00 +02:00
Steven Armstrong
2720a36e98 merge indentation change
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2011-09-23 16:50:51 +02:00
Steven Armstrong
ea9dc8d60c handle errors with exceptions instead of function
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2011-09-23 16:43:25 +02:00
Nico Schottelius
f4da3b96d8 fix indentions
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 16:41:55 +02:00
Nico Schottelius
ad5c33b746 %s/\( \)/\1 /g + fix logo
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 16:38:47 +02:00
Nico Schottelius
b8ff4c9609 begin split into smaller files
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 14:55:00 +02:00
Nico Schottelius
412778206c and increment version
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 14:21:33 +02:00
Nico Schottelius
7a09266abf allow users to check whether an object changed
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-23 13:49:02 +02:00
Nico Schottelius
462ed49a74 BUGFIX: TypeError: Can't convert 'list' object to str implicitly (in emulator)
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-22 18:43:36 +02:00
Nico Schottelius
20bb4d044b --typo: .realines( vs. readlines(
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-20 13:29:08 +02:00
Nico Schottelius
de7123df79 always catch KeyboardInterrupt
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-19 14:38:52 +02:00
Steven Armstrong
1c1ebac90c dont break if sys.argv[0] is a relative path
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2011-09-19 14:09:01 +02:00
Steven Armstrong
2a5ee06b0e no need to redefine again and again inside loop
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2011-09-19 14:08:30 +02:00
Nico Schottelius
9e99d420b6 in theory implement double definition strategy in new type emulator
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-19 00:52:09 +02:00
Nico Schottelius
4e8f99b01d almost completly implemented type emulator in python
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-19 00:36:35 +02:00
Nico Schottelius
b7b48414e1 use subdirectory, record source
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-19 00:32:33 +02:00
Nico Schottelius
9de1d9ce20 write parameters to object
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-19 00:24:17 +02:00
Nico Schottelius
3faf56cb04 Merge branch 'master' into type-emulator 2011-09-18 23:52:43 +02:00
Nico Schottelius
a9bcec7fbe also catch OSError from subprocess
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-18 20:50:07 +02:00
Nico Schottelius
8838d5df11 begin writing params
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 19:06:43 +02:00
Nico Schottelius
5cefeb25fc +/- todo, improve argument handling
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 18:26:18 +02:00
Nico Schottelius
6485299a7c prepare source records, cleanup
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 17:08:59 +02:00
Nico Schottelius
75510d88c9 first new type emulator parameter support in cdist
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 16:08:25 +02:00
Nico Schottelius
f720ce9243 ++todo
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 15:46:02 +02:00
Nico Schottelius
1b0d85dcbe link type emulator to ourself
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 15:29:56 +02:00
Nico Schottelius
40d494ace2 and now replace the new cool function type_attribute_path() with easy type_dir
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 15:20:59 +02:00
Nico Schottelius
d979bdc514 also replace self.type_explorer_dir
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 15:12:12 +02:00
Nico Schottelius
eb3982b059 introduce more generic type_attribute_path() and replace type_manifest_path()
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 15:10:24 +02:00
Nico Schottelius
dadc3ffe94 self....
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 15:01:33 +02:00
Nico Schottelius
4956c015c1 make __type available for type gencode
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 14:50:43 +02:00
Nico Schottelius
76f3792885 prepare argv[0] parsing for emulator use
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 14:47:50 +02:00
Nico Schottelius
b2546fb236 split deploy to into two stages
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 13:24:40 +02:00
Nico Schottelius
7c56630924 prepare installation routine
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-16 13:13:56 +02:00
Nico Schottelius
b76c4a5105 make shell exec error and normal error look the same for easier grepping in logfiles
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-14 08:45:55 +02:00
Nico Schottelius
03e312dcb7 use shutil.move() instead of os.rename() to avoid OSError: [Errno 18] Invalid cross-device link
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-14 01:50:18 +02:00
Nico Schottelius
9b18b3d79e update manpage and support commands title
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 21:35:57 +02:00
Nico Schottelius
90bdf04336 add epilog to parsers, make it look beautiful
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 21:30:17 +02:00
Nico Schottelius
e1421280d4 remove debug
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 18:18:56 +02:00
Nico Schottelius
7e9d234219 remove obsolete length check
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 18:18:12 +02:00
Nico Schottelius
780fd5625e re-implement correct caching
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 18:15:04 +02:00
Nico Schottelius
581562aae9 cleanups
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 18:05:15 +02:00
Nico Schottelius
4d065443da remove alias deploy for config, does not make things better
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 18:00:41 +02:00
Nico Schottelius
8d1b4236d4 fixup most arguments for config
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 17:59:11 +02:00
Nico Schottelius
df7f27f94b catch keyboard interrupt for all subcommands
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 17:42:43 +02:00
Nico Schottelius
5cbe34ee33 begin to implement subcommand handling
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 17:40:28 +02:00
Nico Schottelius
59afce35b5 do not do more checks on the manifest, current ones are good
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 16:25:39 +02:00
Nico Schottelius
a5b56f0c41 remove useless function
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 16:19:43 +02:00
Nico Schottelius
4e3fec1e9e add hint to pythons octal mode
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 16:10:03 +02:00
Nico Schottelius
99b3b0789b remove tmpdir, keep it only if debug is enabled
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-13 00:02:04 +02:00
Nico Schottelius
a09a618c78 prepare cdist-type-emulator transformation
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 11:37:20 +02:00
Nico Schottelius
4e95535b7c definitely cleanup remote directory first, so we see more bugs :-)
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 11:27:20 +02:00
Nico Schottelius
b470a47b15 add working cdist manpage
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 11:18:18 +02:00
Nico Schottelius
7de51e8d45 print help in case no hosts are given
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 10:52:04 +02:00
Nico Schottelius
5ba6e0bb14 more hints on parallel running
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 01:38:51 +02:00
Nico Schottelius
e07328f569 initial support for parallel running
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 01:14:35 +02:00
Nico Schottelius
4aff176106 flush and also append \n to header
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 00:30:45 +02:00
Nico Schottelius
1a790edbf6 remove context class until we need it
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 00:20:06 +02:00
Nico Schottelius
c5355ca104 fixup -c option
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 00:16:18 +02:00
Nico Schottelius
8f34f8659b support -V, --version
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 00:08:30 +02:00
Nico Schottelius
5260f230e5 support -V, --version
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-12 00:06:59 +02:00
Nico Schottelius
1cc7600c9c begin to make home configurable
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 23:54:34 +02:00
Nico Schottelius
2490b983ba ++todo
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 23:42:53 +02:00
Nico Schottelius
db658328d2 add sh -e header to code to avoid OSError: [Errno 8] Exec format error
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 23:11:27 +02:00
Nico Schottelius
0d1f121e21 do not fail without objects
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 22:21:46 +02:00
Nico Schottelius
326f2644c7 introduce type_dir() and use it :-)
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 21:41:56 +02:00
Nico Schottelius
47c5ebcf3f remove parallel and sequential args, until they are working
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 21:37:40 +02:00
Nico Schottelius
be2efbbb0d give me a big F
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 21:16:42 +02:00
Nico Schottelius
eb2512d4a2 add timing information and setup remote = false by default
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 21:15:58 +02:00
Nico Schottelius
e56bbfea9a less verbose output in default case
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 20:45:54 +02:00
Nico Schottelius
34ae8c2926 make code execution happen in the end
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 20:41:39 +02:00
Nico Schottelius
4e4d648593 fchmod() does not work on object returned by open(), so use chmod
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 20:18:30 +02:00
Nico Schottelius
30a52cab0f begin to save code and make it executable
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 20:17:20 +02:00
Nico Schottelius
c78ce344e7 remove debug by default, switch to infolevel and verify -d works
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 14:30:05 +02:00
Nico Schottelius
5702706adf fix not so obvious tuple/str error (trailing comma from c&p)
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 14:11:54 +02:00
Nico Schottelius
c9c808a732 cleanp
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 13:55:40 +02:00
Nico Schottelius
c147c74e1e begin to redo object_run()
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-11 13:11:45 +02:00
Nico Schottelius
151022ffd1 support file transfer and begin support for non root logins
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 23:46:17 +02:00
Nico Schottelius
ca58841696 Broken code - it's too hot
DEBUG: Shell exec: /bin/sh -e /home/users/nico/p/cdist/conf/type/__directory/gencode-remote
Traceback (most recent call last):
  File "/home/users/nico/p/cdist/bin/cdist", line 557, in <module>
    c.deploy_to()
  File "/home/users/nico/p/cdist/bin/cdist", line 523, in deploy_to
    self.object_run(cdist_object, mode="gencode")
  File "/home/users/nico/p/cdist/bin/cdist", line 491, in object_run
    self.shell_run_or_debug_fail(bin, [bin], env=env)
  File "/home/users/nico/p/cdist/bin/cdist", line 164, in shell_run_or_debug_fail
    subprocess.check_call(*args, **kargs)
  File "/usr/lib/python3.2/subprocess.py", line 480, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/usr/lib/python3.2/subprocess.py", line 467, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python3.2/subprocess.py", line 741, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.2/subprocess.py", line 1174, in _execute_child
    for k, v in env.items()]
  File "/usr/lib/python3.2/subprocess.py", line 1174, in <listcomp>
    for k, v in env.items()]
  File "/usr/lib/python3.2/os.py", line 581, in fsencode
    raise TypeError("expect bytes or str, not %s" % type(filename).__name__)
TypeError: expect bytes or str, not tuple

Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 15:36:21 +02:00
Nico Schottelius
636995f44e add some meat to object_run()
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 14:45:59 +02:00
Nico Schottelius
c516d8359e support __object_* in run_type_explorer()
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 13:19:32 +02:00
Nico Schottelius
4a5100692a add helper methods to get paths from code/gencode
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 10:12:01 +02:00
Nico Schottelius
74c280911b begin run_object_gencode() and import missing FIXME bits deploy_to()
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 00:53:10 +02:00
Nico Schottelius
4e2e731374 execute the correct manifest for objects
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 00:43:28 +02:00
Nico Schottelius
7eb418c3ab correct env for the various stages
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 00:40:45 +02:00
Nico Schottelius
8dff399c96 reloop until no new objects are created anyomer
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 00:09:57 +02:00
Nico Schottelius
232618a675 make manifest run more generic
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-10 00:01:16 +02:00
Nico Schottelius
99268591c2 make more use of run_or_fail
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
2011-09-09 20:54:17 +02:00