project-lakitu: Delete compute-image-packages code
compute-image-packages has now been superceded by the go based
google-guest-agent, so we can now delete the code here.
BUG=b/153704310
TEST=presubmit
RELEASE_NOTE=None
Change-Id: I2f2e321d42592c97c62e0e9e0da6109507b1be51
Reviewed-on: https://cos-review.googlesource.com/c/cos/overlays/board-overlays/+/11230
Reviewed-by: Robert Kolchmeyer <rkolchmeyer@google.com>
Tested-by: Cusky Presubmit Bot <presubmit@cos-infra-prod.iam.gserviceaccount.com>
diff --git a/project-lakitu/app-admin/compute-image-packages/Manifest b/project-lakitu/app-admin/compute-image-packages/Manifest
deleted file mode 100644
index 7a3226d..0000000
--- a/project-lakitu/app-admin/compute-image-packages/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST compute-image-packages-20191210.tar.gz 104822 BLAKE2B 201cf4c00f6e29042e90ed698d41fecf608cff27ddbb6119171d79d961aee1b33856971ecf96d49ac8ba62c7fc573533c4516898ef0d078452850653754939d7 SHA512 107f4076cecf1d6501dd37d752fdae5836f8b843351ffdf1832e445f9b35a1cc653fceffcb21fb33788629a3c53ae280939dbc559bbee0d5987270ee19ac5fd4
diff --git a/project-lakitu/app-admin/compute-image-packages/compute-image-packages-20191210-r1.ebuild b/project-lakitu/app-admin/compute-image-packages/compute-image-packages-20191210-r1.ebuild
deleted file mode 120000
index 7417c73..0000000
--- a/project-lakitu/app-admin/compute-image-packages/compute-image-packages-20191210-r1.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-compute-image-packages-20191210.ebuild
\ No newline at end of file
diff --git a/project-lakitu/app-admin/compute-image-packages/compute-image-packages-20191210.ebuild b/project-lakitu/app-admin/compute-image-packages/compute-image-packages-20191210.ebuild
deleted file mode 100644
index bd02679..0000000
--- a/project-lakitu/app-admin/compute-image-packages/compute-image-packages-20191210.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 2016 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-
-inherit distutils-r1 eutils systemd
-
-SRC_URI="https://github.com/GoogleCloudPlatform/compute-image-packages/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-S="${WORKDIR}/${P}/packages/python-google-compute-engine"
-
-DESCRIPTION="Linux Guest Environment for Google Compute Engine"
-HOMEPAGE="https://github.com/GoogleCloudPlatform/compute-image-packages"
-LICENSE="Apache-2.0"
-
-KEYWORDS="*"
-
-SLOT="0"
-IUSE=""
-
-DEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
-"
-RDEPEND="
- sys-apps/iproute2
- !app-admin/google-daemon
- !app-admin/google-startup-scripts
- app-admin/oslogin
-"
-
-python_prepare_all() {
- # ${S} is set to '${WORKDIR}/${P}/packages/python-google-compute-engine'
- # i.e where setup.py is located as distutils-r1 expect setup.py to be
- # at ${S}. As we have patches which are outside
- # packages/python-google-compute-engine, we cd two level up.
- pushd "${S}"/../../
- epatch "${FILESDIR}/20190304-homedir-uid-fix.patch"
- epatch "${FILESDIR}/20190801-no-boto.patch"
- epatch "${FILESDIR}/20191210-fix-systemd-units-dependencies.patch"
- epatch "${FILESDIR}/20190801-publish-hostkeys-from-stateful-partition.patch"
- popd || die
- distutils-r1_python_prepare_all
-}
-
-python_install() {
- distutils-r1_python_install \
- --install-scripts=/usr/bin \
- --install-data=/usr/share/doc/google-compute-engine
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- local init_path="${S}/../google-compute-engine/src/lib/systemd/system"
- local service
- for service in "${init_path}"/*.service; do
- systemd_dounit "${service}"
- systemd_enable_service multi-user.target "${service##*/}"
- done
-
- # Backports the get-metadata-value script from older version of this
- # package (1.3.3).
- exeinto /usr/share/google/
- newexe ${FILESDIR}/1.3.3-get_metadata_value get_metadata_value
-
- # Install distro specific default configuration.
- insinto /etc/default/
- newins "${FILESDIR}/20190304-instance_configs.cfg.distro" instance_configs.cfg.distro
-}
diff --git a/project-lakitu/app-admin/compute-image-packages/files/1.3.3-get_metadata_value b/project-lakitu/app-admin/compute-image-packages/files/1.3.3-get_metadata_value
deleted file mode 100644
index c4e0eb6..0000000
--- a/project-lakitu/app-admin/compute-image-packages/files/1.3.3-get_metadata_value
+++ /dev/null
@@ -1,73 +0,0 @@
-#! /bin/bash
-# Copyright 2013 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Get a metadata value from the metadata server.
-declare -r VARNAME=$1
-declare -r MDS_PREFIX=http://metadata.google.internal/computeMetadata/v1
-declare -r MDS_TRIES=${MDS_TRIES:-100}
-
-function print_metadata_value() {
- local readonly tmpfile=$(mktemp)
- http_code=$(curl -f "${1}" -H "Metadata-Flavor: Google" -w "%{http_code}" \
- -s -o ${tmpfile} 2>/dev/null)
- local readonly return_code=$?
- # If the command completed successfully, print the metadata value to stdout.
- if [[ ${return_code} == 0 && ${http_code} == 200 ]]; then
- cat ${tmpfile}
- fi
- rm -f ${tmpfile}
- return ${return_code}
-}
-
-function print_metadata_value_if_exists() {
- local return_code=1
- local readonly url=$1
- print_metadata_value ${url}
- return_code=$?
- return ${return_code}
-}
-
-function get_metadata_value() {
- local readonly varname=$1
- # Print the instance metadata value.
- print_metadata_value_if_exists ${MDS_PREFIX}/instance/${varname}
- return_code=$?
- # If the instance doesn't have the value, try the project.
- if [[ ${return_code} != 0 ]]; then
- print_metadata_value_if_exists ${MDS_PREFIX}/project/${varname}
- return_code=$?
- fi
- return ${return_code}
-}
-
-function get_metadata_value_with_retries() {
- local return_code=1 # General error code.
- for ((count=0; count <= ${MDS_TRIES}; count++)); do
- get_metadata_value $VARNAME
- return_code=$?
- case $return_code in
- # No error. We're done.
- 0) exit ${return_code};;
- # Failed to resolve host or connect to host. Retry.
- 6|7) sleep 0.3; continue;;
- # A genuine error. Exit.
- *) exit ${return_code};
- esac
- done
- # Exit with the last return code we got.
- exit ${return_code}
-}
-
-get_metadata_value_with_retries
diff --git a/project-lakitu/app-admin/compute-image-packages/files/20190304-homedir-uid-fix.patch b/project-lakitu/app-admin/compute-image-packages/files/20190304-homedir-uid-fix.patch
deleted file mode 100644
index b047f2a..0000000
--- a/project-lakitu/app-admin/compute-image-packages/files/20190304-homedir-uid-fix.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From 00243896aa249f8db2a965f61b66d452effcaab5 Mon Sep 17 00:00:00 2001
-From: vaibhavrustagi <vaibhavrustagi@google.com>
-Date: Thu, 20 Jun 2019 12:26:56 -0800
-Subject: [PATCH] When creating users try to derive the UID/GID from the
- homedir
-
-It's possible that when a new user is being created that the home
-directory for that user already exists. When this happens account
-manager will now try to find the UID and GID of the user from that
-directory and reuse it.
-
-This fixes potential problems if for some reason the new accounts that
-were previously added into passwd/group were not preserved after reboot,
-but the correspondinghome directory was.
----
- .../accounts/accounts_utils.py | 70 +++++++++++++++++--
- 1 file changed, 65 insertions(+), 5 deletions(-)
-
-diff --git a/packages/python-google-compute-engine/google_compute_engine/accounts/accounts_utils.py b/packages/python-google-compute-engine/google_compute_engine/accounts/accounts_utils.py
-index 56732c5..60ad005 100644
---- a/packages/python-google-compute-engine/google_compute_engine/accounts/accounts_utils.py
-+++ b/packages/python-google-compute-engine/google_compute_engine/accounts/accounts_utils.py
-@@ -30,7 +30,8 @@ USER_REGEX = re.compile(r'\A[A-Za-z0-9._][A-Za-z0-9._-]{0,31}\Z')
- DEFAULT_GPASSWD_ADD_CMD = 'gpasswd -a {user} {group}'
- DEFAULT_GPASSWD_REMOVE_CMD = 'gpasswd -d {user} {group}'
- DEFAULT_GROUPADD_CMD = 'groupadd {group}'
--DEFAULT_USERADD_CMD = 'useradd -m -s /bin/bash -p * {user}'
-+DEFAULT_GROUPADD_WITH_GID_CMD = 'groupadd -g {gid} {group}'
-+DEFAULT_USERADD_CMD = 'useradd -s /bin/bash -p * {user}'
- DEFAULT_USERDEL_CMD = 'userdel -r {user}'
- DEFAULT_USERMOD_CMD = 'usermod -G {groups} {user}'
-
-@@ -60,6 +61,7 @@ class AccountsUtils(object):
- self.gpasswd_add_cmd = gpasswd_add_cmd or DEFAULT_GPASSWD_ADD_CMD
- self.gpasswd_remove_cmd = gpasswd_remove_cmd or DEFAULT_GPASSWD_REMOVE_CMD
- self.groupadd_cmd = groupadd_cmd or DEFAULT_GROUPADD_CMD
-+ self.groupadd_with_gid_cmd = DEFAULT_GROUPADD_WITH_GID_CMD
- self.useradd_cmd = useradd_cmd or DEFAULT_USERADD_CMD
- self.userdel_cmd = userdel_cmd or DEFAULT_USERDEL_CMD
- self.usermod_cmd = usermod_cmd or DEFAULT_USERMOD_CMD
-@@ -113,6 +115,29 @@ class AccountsUtils(object):
- file_utils.SetPermissions(
- self.google_sudoers_file, mode=0o440, uid=0, gid=0)
-
-+ def _CreateGroupWithGID(self, group, gid):
-+ """Create a Linux group with specific gid.
-+
-+ Args:
-+ group: string, the name of the Linux group to create.
-+ gid: string, derived from user's home directory.
-+
-+ Returns:
-+ bool, True if group created with gid succeeded.
-+ """
-+ self.logger.info('Creating a group for %s with gid %s.', group, gid)
-+
-+ command = self.groupadd_with_gid_cmd.format(gid=gid, group=group)
-+ try:
-+ subprocess.check_call(command.split(' '))
-+ except subprocess.CalledProcessError as e:
-+ self.logger.warning('Could not create group %s with gid %s . %s.',
-+ group, gid, str(e))
-+ return False
-+ else:
-+ self.logger.info('Created group %s with gid %s.', group, gid)
-+ return True
-+
- def _GetUser(self, user):
- """Retrieve a Linux user account.
-
-@@ -127,18 +152,31 @@ class AccountsUtils(object):
- except KeyError:
- return None
-
-- def _AddUser(self, user):
-+ def _AddUser(self, user, uid=None, gid=None, homedir=None):
- """Configure a Linux user account.
-
- Args:
- user: string, the name of the Linux user account to create.
-+ uid: string, derived from 'new' user's home directory.
-+ gid: string, derived from 'new' user's home directory.
-+ homedir: string, home directory for 'new' user.
-
- Returns:
- bool, True if user creation succeeded.
- """
- self.logger.info('Creating a new user account for %s.', user)
-
-- command = self.useradd_cmd.format(user=user)
-+ extra_flags = ''
-+ if homedir:
-+ extra_flags += ' -d %s' % homedir
-+ else:
-+ extra_flags += ' -m'
-+ if uid:
-+ extra_flags += ' -u %s' % str(uid)
-+ if gid:
-+ extra_flags += ' -g %s' % str(gid)
-+
-+ command = self.useradd_cmd.format(user=user) + extra_flags
- try:
- subprocess.check_call(command.split(' '))
- except subprocess.CalledProcessError as e:
-@@ -342,9 +380,31 @@ class AccountsUtils(object):
- if not self._GetUser(user):
- # User does not exist. Attempt to create the user and add them to the
- # appropriate user groups.
-- if not (self._AddUser(user)
-- and self._UpdateUserGroups(user, self.groups)):
-+ user_created = False
-+
-+ # Check if the homedir already exists and if yes try to derive UID
-+ # and GID from that directory.
-+ homedir = '/home/%s' % user
-+ if os.path.isdir(homedir):
-+ stats = os.stat(homedir)
-+ if stats.st_uid > 1000:
-+ self.logger.info('Using UID %d, GID %d and homedir %s for account %s',
-+ stats.st_uid, stats.st_gid, homedir, user)
-+
-+ if not self._CreateGroupWithGID(user, stats.st_gid):
-+ return False
-+
-+ if not self._AddUser(user, uid=stats.st_uid,
-+ gid=stats.st_gid, homedir=homedir):
-+ return False
-+ user_created = True
-+
-+ if not user_created and not self._AddUser(user):
-+ return False
-+
-+ if not self._UpdateUserGroups(user, self.groups):
- return False
-+
- # Add the user to the google sudoers group.
- if not self._UpdateSudoer(user, sudoer=True):
- return False
---
-2.22.0.410.gd8fdbe21b5-goog
-
diff --git a/project-lakitu/app-admin/compute-image-packages/files/20190304-instance_configs.cfg.distro b/project-lakitu/app-admin/compute-image-packages/files/20190304-instance_configs.cfg.distro
deleted file mode 100644
index 6c030cb..0000000
--- a/project-lakitu/app-admin/compute-image-packages/files/20190304-instance_configs.cfg.distro
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2017 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# Distro specific settings for Linux Guest Environment for
-# Google Compute Engine.
-
-[InstanceSetup]
-set_boto_config = false
-
-[MetadataScripts]
-run_dir = /var/lib/google/
-
-[NetworkInterfaces]
-setup = false
-
-[IpForwarding]
-ip_aliases = false
diff --git a/project-lakitu/app-admin/compute-image-packages/files/20190801-no-boto.patch b/project-lakitu/app-admin/compute-image-packages/files/20190801-no-boto.patch
deleted file mode 100644
index 6faaa60..0000000
--- a/project-lakitu/app-admin/compute-image-packages/files/20190801-no-boto.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From fa6634afb5b3c9ec045b0043d03a9fe41094e76e Mon Sep 17 00:00:00 2001
-From: Daniel Wang <wonderfly@google.com>
-Date: Wed, 28 Aug 2019 10:50:48 -0700
-Subject: [PATCH] setup.py: remove boto dependency
-
----
- packages/python-google-compute-engine/setup.py | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/packages/python-google-compute-engine/setup.py b/packages/python-google-compute-engine/setup.py
-index c51b5ff..538fbcd 100755
---- a/packages/python-google-compute-engine/setup.py
-+++ b/packages/python-google-compute-engine/setup.py
-@@ -21,8 +21,6 @@ import sys
- import setuptools
-
- install_requires = ['setuptools']
--if sys.version_info < (3, 0):
-- install_requires += ['boto']
- if sys.version_info >= (3, 7):
- install_requires += ['distro']
-
---
-2.23.0.187.g17f5b7556c-goog
-
diff --git a/project-lakitu/app-admin/compute-image-packages/files/20190801-publish-hostkeys-from-stateful-partition.patch b/project-lakitu/app-admin/compute-image-packages/files/20190801-publish-hostkeys-from-stateful-partition.patch
deleted file mode 100644
index 07dd5a1..0000000
--- a/project-lakitu/app-admin/compute-image-packages/files/20190801-publish-hostkeys-from-stateful-partition.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 54248185371a5017913e15451858959a78c9621d Mon Sep 17 00:00:00 2001
-From: Dexter Rivera <riverade@google.com>
-Date: Wed, 4 Mar 2020 16:00:12 -0800
-Subject: [PATCH] publish hostkeys from stateful partition
-
----
- .../instance_setup/instance_setup.py | 38 ++++++++++++++-----
- 1 file changed, 28 insertions(+), 10 deletions(-)
-
-diff --git a/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_setup.py b/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_setup.py
-index cb1a2a6..531b7d4 100755
---- a/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_setup.py
-+++ b/packages/python-google-compute-engine/google_compute_engine/instance_setup/instance_setup.py
-@@ -207,23 +207,41 @@ class InstanceSetup(object):
- """
- section = 'Instance'
- instance_id = self._GetInstanceId()
-- if instance_id != self.instance_config.GetOptionString(
-- section, 'instance_id'):
-+ prev_instance_id = None
-+
-+ instance_id_file = '/mnt/stateful_partition/.instance_id'
-+ if os.path.isfile(instance_id_file):
-+ with open(instance_id_file, 'rb') as f:
-+ prev_instance_id = f.read().strip()
-+
-+ if not prev_instance_id or prev_instance_id != instance_id:
- self.logger.info('Generating SSH host keys for instance %s.', instance_id)
- file_regex = re.compile(r'ssh_host_(?P<type>[a-z0-9]*)_key\Z')
-- key_dir = '/etc/ssh'
-+ key_dir = '/mnt/stateful_partition/etc/ssh'
- key_files = [f for f in os.listdir(key_dir) if file_regex.match(f)]
-- key_types = host_key_types.split(',') if host_key_types else []
-- key_types_files = ['ssh_host_%s_key' % key_type for key_type in key_types]
-- for key_file in set(key_files) | set(key_types_files):
-+ for key_file in set(key_files):
- key_type = file_regex.match(key_file).group('type')
- key_dest = os.path.join(key_dir, key_file)
-- key_data = self._GenerateSshKey(key_type, key_dest)
-- if key_data:
-- self._WriteHostKeyToGuestAttributes(key_data[0], key_data[1])
-- self._StartSshd()
-+ if not prev_instance_id:
-+ # On first boot, the hostkeys will be generated by a script
-+ # that runs before sshd is started, so publish those keys
-+ with open('%s.pub' % key_dest, 'rb') as pk:
-+ key_data = pk.read().split()
-+ if len(key_data) < 2:
-+ self.logger.warning(
-+ 'Could not read host key from %s.pub. Unable to publish '
-+ '%s key to instance guest attributes', key_dest, key_type)
-+ continue
-+ else:
-+ # If the instance id changes, need to regenerate the hostkeys
-+ key_data = self._GenerateSshKey(key_type, key_dest)
-+ self._WriteHostKeyToGuestAttributes(key_data[0], key_data[1])
- self.instance_config.SetOption(section, 'instance_id', str(instance_id))
-
-+ # Write the instance_id to the stateful partition
-+ with open(instance_id_file, 'wb') as f:
-+ f.write(instance_id)
-+
- def _GetNumericProjectId(self):
- """Get the numeric project ID.
-
---
-2.25.0.265.gbab2e86ba0-goog
-
diff --git a/project-lakitu/app-admin/compute-image-packages/files/20191210-fix-systemd-units-dependencies.patch b/project-lakitu/app-admin/compute-image-packages/files/20191210-fix-systemd-units-dependencies.patch
deleted file mode 100644
index 26ffb10..0000000
--- a/project-lakitu/app-admin/compute-image-packages/files/20191210-fix-systemd-units-dependencies.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 526c8e39062b7f4ecd1949efa29663b2fddb36c8 Mon Sep 17 00:00:00 2001
-From: Dexter Rivera <dexter_180@live.com>
-Date: Tue, 23 Jun 2020 08:42:42 -0700
-Subject: [PATCH 1/1] patch
-
----
- .../src/lib/systemd/system/google-instance-setup.service | 4 ++--
- .../src/lib/systemd/system/google-network-daemon.service | 3 ++-
- .../src/lib/systemd/system/google-shutdown-scripts.service | 3 ++-
- .../src/lib/systemd/system/google-startup-scripts.service | 3 ++-
- 4 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-instance-setup.service b/packages/google-compute-engine/src/lib/systemd/system/google-instance-setup.service
-index ee987b2..488701b 100644
---- a/packages/google-compute-engine/src/lib/systemd/system/google-instance-setup.service
-+++ b/packages/google-compute-engine/src/lib/systemd/system/google-instance-setup.service
-@@ -1,7 +1,7 @@
- [Unit]
- Description=Google Compute Engine Instance Setup
--After=network-online.target network.target rsyslog.service
--Before=sshd.service
-+After=network-online.target sshd.service
-+Wants=network-online.target sshd.service
-
- [Service]
- Type=oneshot
-diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-network-daemon.service b/packages/google-compute-engine/src/lib/systemd/system/google-network-daemon.service
-index 71745d4..b4dd4bc 100644
---- a/packages/google-compute-engine/src/lib/systemd/system/google-network-daemon.service
-+++ b/packages/google-compute-engine/src/lib/systemd/system/google-network-daemon.service
-@@ -1,7 +1,8 @@
- [Unit]
- Description=Google Compute Engine Network Daemon
--After=network-online.target network.target
-+After=network-online.target
- After=google-instance-setup.service
-+Wants=network-online.target
- PartOf=network.service
-
- [Service]
-diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-shutdown-scripts.service b/packages/google-compute-engine/src/lib/systemd/system/google-shutdown-scripts.service
-index ae23d76..c498de3 100644
---- a/packages/google-compute-engine/src/lib/systemd/system/google-shutdown-scripts.service
-+++ b/packages/google-compute-engine/src/lib/systemd/system/google-shutdown-scripts.service
-@@ -1,7 +1,8 @@
- [Unit]
- Description=Google Compute Engine Shutdown Scripts
--After=network-online.target network.target rsyslog.service
-+After=network-online.target systemd-resolved.service
- After=google-instance-setup.service google-network-daemon.service
-+Wants=network-online.target
-
- [Service]
- ExecStart=/bin/true
-diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service b/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service
-index c150693..23c8aee 100644
---- a/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service
-+++ b/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service
-@@ -1,7 +1,8 @@
- [Unit]
- Description=Google Compute Engine Startup Scripts
--After=network-online.target network.target rsyslog.service
-+After=network-online.target
- After=google-instance-setup.service google-network-daemon.service
-+Wants=network-online.target
- Before=apt-daily.service
-
- [Service]
---
-2.27.0.111.gc72c7da667-goog
-