From 6ffa601488df79b07d19650050260bc3d97a5df2 Mon Sep 17 00:00:00 2001 From: Olivier Sallou Date: Thu, 1 Aug 2013 08:20:32 +0200 Subject: [PATCH] change provider to raw, set opennebula as plugin --- ...-virtio.manifest.json => raw-ide.manifest} | 0 plugins/opennebula/__init__.py | 5 +++ .../opennebula}/assets/one-context_3.8.1.deb | Bin .../opennebula}/assets/one-ec2.sh | 0 .../opennebula}/assets/one-pubkey.sh | 0 plugins/opennebula/opennebula.py | 42 ++++++++++++++++++ providers/{one => raw}/__init__.py | 0 .../{one => raw}/assets/grub.d/40_custom | 0 .../{one => raw}/assets/grub.d/40_custom.orig | 0 .../assets/init.d/ec2-get-credentials | 0 .../assets/init.d/ec2-run-user-data | 0 .../{one => raw}/assets/init.d/expand-volume | 0 .../assets/init.d/generate-ssh-hostkeys | 0 .../init.d/squeeze/generate-ssh-hostkeys | 0 providers/raw/assets/one-context_3.8.1.deb | Bin 0 -> 3790 bytes providers/raw/assets/one-ec2.sh | 14 ++++++ providers/raw/assets/one-pubkey.sh | 17 +++++++ providers/{one => raw}/manifest-schema.json | 0 providers/{one => raw}/manifest.py | 0 providers/{one => raw}/tasks/__init__.py | 0 providers/{one => raw}/tasks/ami.py | 0 providers/{one => raw}/tasks/apt.py | 0 providers/{one => raw}/tasks/boot.py | 0 providers/{one => raw}/tasks/bootstrap.py | 0 providers/{one => raw}/tasks/cleanup.py | 0 providers/{one => raw}/tasks/connection.py | 0 providers/{one => raw}/tasks/ebs.py | 0 providers/{one => raw}/tasks/fake.py | 0 providers/{one => raw}/tasks/filesystem.py | 0 providers/{one => raw}/tasks/host.py | 0 providers/{one => raw}/tasks/initd.py | 0 providers/{one => raw}/tasks/locale.py | 0 providers/{one => raw}/tasks/network.py | 0 providers/{one => raw}/tasks/one.py | 0 providers/{one => raw}/tasks/packages.py | 0 providers/{one => raw}/tasks/security.py | 0 36 files changed, 78 insertions(+) rename manifests/{one-raw-virtio.manifest.json => raw-ide.manifest} (100%) create mode 100644 plugins/opennebula/__init__.py rename {providers/one => plugins/opennebula}/assets/one-context_3.8.1.deb (100%) rename {providers/one => plugins/opennebula}/assets/one-ec2.sh (100%) rename {providers/one => plugins/opennebula}/assets/one-pubkey.sh (100%) create mode 100644 plugins/opennebula/opennebula.py rename providers/{one => raw}/__init__.py (100%) rename providers/{one => raw}/assets/grub.d/40_custom (100%) rename providers/{one => raw}/assets/grub.d/40_custom.orig (100%) rename providers/{one => raw}/assets/init.d/ec2-get-credentials (100%) rename providers/{one => raw}/assets/init.d/ec2-run-user-data (100%) rename providers/{one => raw}/assets/init.d/expand-volume (100%) rename providers/{one => raw}/assets/init.d/generate-ssh-hostkeys (100%) rename providers/{one => raw}/assets/init.d/squeeze/generate-ssh-hostkeys (100%) create mode 100644 providers/raw/assets/one-context_3.8.1.deb create mode 100755 providers/raw/assets/one-ec2.sh create mode 100755 providers/raw/assets/one-pubkey.sh rename providers/{one => raw}/manifest-schema.json (100%) rename providers/{one => raw}/manifest.py (100%) rename providers/{one => raw}/tasks/__init__.py (100%) rename providers/{one => raw}/tasks/ami.py (100%) rename providers/{one => raw}/tasks/apt.py (100%) rename providers/{one => raw}/tasks/boot.py (100%) rename providers/{one => raw}/tasks/bootstrap.py (100%) rename providers/{one => raw}/tasks/cleanup.py (100%) rename providers/{one => raw}/tasks/connection.py (100%) rename providers/{one => raw}/tasks/ebs.py (100%) rename providers/{one => raw}/tasks/fake.py (100%) rename providers/{one => raw}/tasks/filesystem.py (100%) rename providers/{one => raw}/tasks/host.py (100%) rename providers/{one => raw}/tasks/initd.py (100%) rename providers/{one => raw}/tasks/locale.py (100%) rename providers/{one => raw}/tasks/network.py (100%) rename providers/{one => raw}/tasks/one.py (100%) rename providers/{one => raw}/tasks/packages.py (100%) rename providers/{one => raw}/tasks/security.py (100%) diff --git a/manifests/one-raw-virtio.manifest.json b/manifests/raw-ide.manifest similarity index 100% rename from manifests/one-raw-virtio.manifest.json rename to manifests/raw-ide.manifest diff --git a/plugins/opennebula/__init__.py b/plugins/opennebula/__init__.py new file mode 100644 index 0000000..cf8567c --- /dev/null +++ b/plugins/opennebula/__init__.py @@ -0,0 +1,5 @@ + + +def tasks(tasklist, manifest): + from opennebula import OpenNebulaContext + tasklist.add(OpenNebulaContext()) diff --git a/providers/one/assets/one-context_3.8.1.deb b/plugins/opennebula/assets/one-context_3.8.1.deb similarity index 100% rename from providers/one/assets/one-context_3.8.1.deb rename to plugins/opennebula/assets/one-context_3.8.1.deb diff --git a/providers/one/assets/one-ec2.sh b/plugins/opennebula/assets/one-ec2.sh similarity index 100% rename from providers/one/assets/one-ec2.sh rename to plugins/opennebula/assets/one-ec2.sh diff --git a/providers/one/assets/one-pubkey.sh b/plugins/opennebula/assets/one-pubkey.sh similarity index 100% rename from providers/one/assets/one-pubkey.sh rename to plugins/opennebula/assets/one-pubkey.sh diff --git a/plugins/opennebula/opennebula.py b/plugins/opennebula/opennebula.py new file mode 100644 index 0000000..1899127 --- /dev/null +++ b/plugins/opennebula/opennebula.py @@ -0,0 +1,42 @@ +from base import Task +from common import phases +import os +from providers.one.tasks.locale import GenerateLocale + + +class OpenNebulaContext(Task): + description = 'Setup OpenNebula init context' + phase = phases.system_modification + after = [GenerateLocale] + + def run(self, info): + import stat + rwxr_xr_x = (stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | + stat.S_IRGRP | stat.S_IXGRP | + stat.S_IROTH | stat.S_IXOTH) + + from shutil import copy + script_src = os.path.normpath(os.path.join(os.path.dirname(__file__), 'assets/one-context_3.8.1.deb')) + script_dst = os.path.join(info.root, 'tmp/one-context_3.8.1.deb') + copy(script_src, script_dst) + os.chmod(script_dst, rwxr_xr_x) + + from common.tools import log_check_call + log_check_call(['/usr/sbin/chroot', info.root, 'dpkg', '-i', '/tmp/one-context_3.8.1.deb']) + # Fix start + from common.tools import sed_i + vmcontext_def = os.path.join(info.root, 'etc/init.d/vmcontext') + sed_i(vmcontext_def, '# Default-Start:', '# Default-Start: 2 3 4 5') + os.chmod(vmcontext_def, rwxr_xr_x) + log_check_call(['/usr/sbin/chroot', info.root, 'update-rc.d', 'vmcontext', 'start', '90', '2', '3', '4', '5', 'stop', '90', '0', '6']) + + # Load all pubkeys in root authorized_keys + script_src = os.path.normpath(os.path.join(os.path.dirname(__file__), 'assets/one-pubkey.sh')) + script_dst = os.path.join(info.root, 'etc/one-context.d/one-pubkey.sh') + copy(script_src, script_dst) + + # If USER_EC2_DATA is a script, execute it + script_src = os.path.normpath(os.path.join(os.path.dirname(__file__), 'assets/one-ec2.sh')) + script_dst = os.path.join(info.root, 'etc/one-context.d/one-ec2.sh') + copy(script_src, script_dst) + diff --git a/providers/one/__init__.py b/providers/raw/__init__.py similarity index 100% rename from providers/one/__init__.py rename to providers/raw/__init__.py diff --git a/providers/one/assets/grub.d/40_custom b/providers/raw/assets/grub.d/40_custom similarity index 100% rename from providers/one/assets/grub.d/40_custom rename to providers/raw/assets/grub.d/40_custom diff --git a/providers/one/assets/grub.d/40_custom.orig b/providers/raw/assets/grub.d/40_custom.orig similarity index 100% rename from providers/one/assets/grub.d/40_custom.orig rename to providers/raw/assets/grub.d/40_custom.orig diff --git a/providers/one/assets/init.d/ec2-get-credentials b/providers/raw/assets/init.d/ec2-get-credentials similarity index 100% rename from providers/one/assets/init.d/ec2-get-credentials rename to providers/raw/assets/init.d/ec2-get-credentials diff --git a/providers/one/assets/init.d/ec2-run-user-data b/providers/raw/assets/init.d/ec2-run-user-data similarity index 100% rename from providers/one/assets/init.d/ec2-run-user-data rename to providers/raw/assets/init.d/ec2-run-user-data diff --git a/providers/one/assets/init.d/expand-volume b/providers/raw/assets/init.d/expand-volume similarity index 100% rename from providers/one/assets/init.d/expand-volume rename to providers/raw/assets/init.d/expand-volume diff --git a/providers/one/assets/init.d/generate-ssh-hostkeys b/providers/raw/assets/init.d/generate-ssh-hostkeys similarity index 100% rename from providers/one/assets/init.d/generate-ssh-hostkeys rename to providers/raw/assets/init.d/generate-ssh-hostkeys diff --git a/providers/one/assets/init.d/squeeze/generate-ssh-hostkeys b/providers/raw/assets/init.d/squeeze/generate-ssh-hostkeys similarity index 100% rename from providers/one/assets/init.d/squeeze/generate-ssh-hostkeys rename to providers/raw/assets/init.d/squeeze/generate-ssh-hostkeys diff --git a/providers/raw/assets/one-context_3.8.1.deb b/providers/raw/assets/one-context_3.8.1.deb new file mode 100644 index 0000000000000000000000000000000000000000..2e811888cea425ba65bfc79e38aaad169ce23bdb GIT binary patch literal 3790 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 /root/.ssh/authorized_keys + +done diff --git a/providers/one/manifest-schema.json b/providers/raw/manifest-schema.json similarity index 100% rename from providers/one/manifest-schema.json rename to providers/raw/manifest-schema.json diff --git a/providers/one/manifest.py b/providers/raw/manifest.py similarity index 100% rename from providers/one/manifest.py rename to providers/raw/manifest.py diff --git a/providers/one/tasks/__init__.py b/providers/raw/tasks/__init__.py similarity index 100% rename from providers/one/tasks/__init__.py rename to providers/raw/tasks/__init__.py diff --git a/providers/one/tasks/ami.py b/providers/raw/tasks/ami.py similarity index 100% rename from providers/one/tasks/ami.py rename to providers/raw/tasks/ami.py diff --git a/providers/one/tasks/apt.py b/providers/raw/tasks/apt.py similarity index 100% rename from providers/one/tasks/apt.py rename to providers/raw/tasks/apt.py diff --git a/providers/one/tasks/boot.py b/providers/raw/tasks/boot.py similarity index 100% rename from providers/one/tasks/boot.py rename to providers/raw/tasks/boot.py diff --git a/providers/one/tasks/bootstrap.py b/providers/raw/tasks/bootstrap.py similarity index 100% rename from providers/one/tasks/bootstrap.py rename to providers/raw/tasks/bootstrap.py diff --git a/providers/one/tasks/cleanup.py b/providers/raw/tasks/cleanup.py similarity index 100% rename from providers/one/tasks/cleanup.py rename to providers/raw/tasks/cleanup.py diff --git a/providers/one/tasks/connection.py b/providers/raw/tasks/connection.py similarity index 100% rename from providers/one/tasks/connection.py rename to providers/raw/tasks/connection.py diff --git a/providers/one/tasks/ebs.py b/providers/raw/tasks/ebs.py similarity index 100% rename from providers/one/tasks/ebs.py rename to providers/raw/tasks/ebs.py diff --git a/providers/one/tasks/fake.py b/providers/raw/tasks/fake.py similarity index 100% rename from providers/one/tasks/fake.py rename to providers/raw/tasks/fake.py diff --git a/providers/one/tasks/filesystem.py b/providers/raw/tasks/filesystem.py similarity index 100% rename from providers/one/tasks/filesystem.py rename to providers/raw/tasks/filesystem.py diff --git a/providers/one/tasks/host.py b/providers/raw/tasks/host.py similarity index 100% rename from providers/one/tasks/host.py rename to providers/raw/tasks/host.py diff --git a/providers/one/tasks/initd.py b/providers/raw/tasks/initd.py similarity index 100% rename from providers/one/tasks/initd.py rename to providers/raw/tasks/initd.py diff --git a/providers/one/tasks/locale.py b/providers/raw/tasks/locale.py similarity index 100% rename from providers/one/tasks/locale.py rename to providers/raw/tasks/locale.py diff --git a/providers/one/tasks/network.py b/providers/raw/tasks/network.py similarity index 100% rename from providers/one/tasks/network.py rename to providers/raw/tasks/network.py diff --git a/providers/one/tasks/one.py b/providers/raw/tasks/one.py similarity index 100% rename from providers/one/tasks/one.py rename to providers/raw/tasks/one.py diff --git a/providers/one/tasks/packages.py b/providers/raw/tasks/packages.py similarity index 100% rename from providers/one/tasks/packages.py rename to providers/raw/tasks/packages.py diff --git a/providers/one/tasks/security.py b/providers/raw/tasks/security.py similarity index 100% rename from providers/one/tasks/security.py rename to providers/raw/tasks/security.py