_uvkMZmMsqhOwJeXOFxQCRA

_uvkMZmMsqhOwJeXOFxQCRA

#!/bin/sh
set -e
Docker CE for Linux installation script

See https://docs.docker.com/engine/install/ for the installation steps.

This script is meant for quick & easy install via:
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sh get-docker.sh

For test builds (ie. release candidates):
$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sh test-docker.sh

NOTE: Make sure to verify the contents of the script
you downloaded matches the contents of install.sh
located at https://github.com/docker/docker-install
before executing.

Git commit from https://github.com/docker/docker-install when
the script was uploaded (Should only be modified by upload job):
SCRIPT_COMMIT_SHA="93d2499759296ac1f9c510605fef85052a2c32be"
strip "v" prefix if present
VERSION="${VERSION#v}"
The channel to install from:
* nightly
* test
* stable
* edge (deprecated)
DEFAULT_CHANNEL_VALUE="stable"
if [ -z "$CHANNEL" ]; then
CHANNEL=$DEFAULT_CHANNEL_VALUE
fi
DEFAULT_DOWNLOAD_URL="https://download.docker.com"
if [ -z "$DOWNLOAD_URL" ]; then
DOWNLOAD_URL=$DEFAULT_DOWNLOAD_URL
fi
DEFAULT_REPO_FILE="docker-ce.repo"
if [ -z "$REPO_FILE" ]; then
REPO_FILE="$DEFAULT_REPO_FILE"
fi
mirror=''
DRY_RUN=${DRY_RUN:-}
while [ $# -gt 0 ]; do
case "$1" in
--mirror)
mirror="$2"
shift
;;
--dry-run)
DRY_RUN=1
;;
--*)
echo "Illegal option $1"
;;
esac
shift $(( $# > 0 ? 1 : 0 ))
done
case "$mirror" in
Aliyun)
DOWNLOAD_URL="https://mirrors.aliyun.com/docker-ce"
;;
AzureChinaCloud)
DOWNLOAD_URL="https://mirror.azure.cn/docker-ce"
;;
esac
command_exists() {
command -v "$@" > /dev/null 2>&1
}
version_gte checks if the version specified in $VERSION is at least
the given CalVer (YY.MM) version. returns 0 (success) if $VERSION is either
unset (=latest) or newer or equal than the specified version. Returns 1 (fail)
otherwise.

examples:

VERSION=20.10
version_gte 20.10 // 0 (success)
version_gte 19.03 // 0 (success)
version_gte 21.10 // 1 (fail)
version_gte() {
if [ -z "$VERSION" ]; then
return 0
fi
eval calver_compare "$VERSION" "$1"
}
calver_compare compares two CalVer (YY.MM) version strings. returns 0 (success)
if version A is newer or equal than version B, or 1 (fail) otherwise. Patch
releases and pre-release (-alpha/-beta) are not taken into account

examples:

calver_compare 20.10 19.03 // 0 (success)
calver_compare 20.10 20.10 // 0 (success)
calver_compare 19.03 20.10 // 1 (fail)
calver_compare() (
set +x
yy_a="$(echo "$1" | cut -d'.' -f1)"
yy_b="$(echo "$2" | cut -d'.' -f1)"
if [ "$yy_a" -lt "$yy_b" ]; then
	return 1
fi
if [ "$yy_a" -gt "$yy_b" ]; then
	return 0
fi
mm_a="$(echo "$1" | cut -d'.' -f2)"
mm_b="$(echo "$2" | cut -d'.' -f2)"
if [ "${mm_a#0}" -lt "${mm_b#0}" ]; then
	return 1
fi

return 0

)
is_dry_run() {
if [ -z "$DRY_RUN" ]; then
return 1
else
return 0
fi
}
is_wsl() {
case "$(uname -r)" in
microsoft ) true ;; # WSL 2
Microsoft ) true ;; # WSL 1
* ) false;;
esac
}
is_darwin() {
case "$(uname -s)" in
darwin ) true ;;
Darwin ) true ;;
* ) false;;
esac
}
deprecation_notice() {
distro=$1
distro_version=$2
echo
printf "\033[91;1mDEPRECATION WARNING\033[0m\n"
printf "    This Linux distribution (\033[1m%s %s\033[0m) reached end-of-life and is no longer supported by this script.\n" "$distro" "$distro_version"
echo   "    No updates or security fixes will be released for this distribution, and users are recommended"
echo   "    to upgrade to a currently maintained version of $distro."
echo
printf   "Press \033[1mCtrl+C\033[0m now to abort this script, or wait for the installation to continue."
echo
sleep 10
}
get_distribution() {
lsb_dist=""
# Every system that we officially support has /etc/os-release
if [ -r /etc/os-release ]; then
lsb_dist="$(. /etc/os-release && echo "$ID")"
fi
# Returning an empty string here should be alright since the
# case statements don't act unless you provide an actual value
echo "$lsb_dist"
}
echo_docker_as_nonroot() {
if is_dry_run; then
return
fi
if command_exists docker && [ -e /var/run/docker.sock ]; then
(
set -x
$sh_c 'docker version'
) || true
fi
# intentionally mixed spaces and tabs here -- tabs are stripped by "<<-EOF", spaces are kept in the output
echo
echo "================================================================================"
echo
if version_gte "20.10"; then
	echo "To run Docker as a non-privileged user, consider setting up the"
	echo "Docker daemon in rootless mode for your user:"
	echo
	echo "    dockerd-rootless-setuptool.sh install"
	echo
	echo "Visit https://docs.docker.com/go/rootless/ to learn about rootless mode."
	echo
fi
echo
echo "To run the Docker daemon as a fully privileged service, but granting non-root"
echo "users access, refer to https://docs.docker.com/go/daemon-access/"
echo
echo "WARNING: Access to the remote API on a privileged Docker daemon is equivalent"
echo "         to root access on the host. Refer to the 'Docker daemon attack surface'"
echo "         documentation for details: https://docs.docker.com/go/attack-surface/"
echo
echo "================================================================================"
echo

}
Check if this is a forked Linux distro
check_forked() {
# Check for lsb_release command existence, it usually exists in forked distros
if command_exists lsb_release; then
	# Check if the `-u` option is supported
	set +e
	lsb_release -a -u > /dev/null 2>&1
	lsb_release_exit_code=$?
	set -e

	# Check if the command has exited successfully, it means we're in a forked distro
	if [ "$lsb_release_exit_code" = "0" ]; then
		# Print info about current distro
		cat <<-EOF
		You're using '$lsb_dist' version '$dist_version'.
		EOF

		# Get the upstream release info
		lsb_dist=$(lsb_release -a -u 2>&1 | tr '[:upper:]' '[:lower:]' | grep -E 'id' | cut -d ':' -f 2 | tr -d '[:space:]')
		dist_version=$(lsb_release -a -u 2>&1 | tr '[:upper:]' '[:lower:]' | grep -E 'codename' | cut -d ':' -f 2 | tr -d '[:space:]')

		# Print info about upstream distro
		cat <<-EOF
		Upstream release is '$lsb_dist' version '$dist_version'.
		EOF
	else
		if [ -r /etc/debian_version ] && [ "$lsb_dist" != "ubuntu" ] && [ "$lsb_dist" != "raspbian" ]; then
			if [ "$lsb_dist" = "osmc" ]; then
				# OSMC runs Raspbian
				lsb_dist=raspbian
			else
				# We're Debian and don't even know it!
				lsb_dist=debian
			fi
			dist_version="$(sed 's/\/.*//' /etc/debian_version | sed 's/\..*//')"
			case "$dist_version" in
				11)
					dist_version="bullseye"
				;;
				10)
					dist_version="buster"
				;;
				9)
					dist_version="stretch"
				;;
				8)
					dist_version="jessie"
				;;
			esac
		fi
	fi
fi

}
do_install() {
echo "# Executing docker install script, commit: $SCRIPT_COMMIT_SHA"
if command_exists docker; then
	cat >&2 <<-'EOF'
		Warning: the "docker" command appears to already exist on this system.

		If you already have Docker installed, this script can cause trouble, which is
		why we're displaying this warning and provide the opportunity to cancel the
		installation.

		If you installed the current Docker package using this script and are using it
		again to update Docker, you can safely ignore this message.

		You may press Ctrl+C now to abort this script.
	EOF
	( set -x; sleep 20 )
fi

user="$(id -un 2>/dev/null || true)"

sh_c='sh -c'
if [ "$user" != 'root' ]; then
	if command_exists sudo; then
		sh_c='sudo -E sh -c'
	elif command_exists su; then
		sh_c='su -c'
	else
		cat >&2 <<-'EOF'
		Error: this installer needs the ability to run commands as root.
		We are unable to find either "sudo" or "su" available to make this happen.
		EOF
		exit 1
	fi
fi

if is_dry_run; then
	sh_c="echo"
fi

# perform some very rudimentary platform detection
lsb_dist=$( get_distribution )
lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')"

if is_wsl; then
	echo
	echo "WSL DETECTED: We recommend using Docker Desktop for Windows."
	echo "Please get Docker Desktop from https://www.docker.com/products/docker-desktop"
	echo
	cat >&2 <<-'EOF'

		You may press Ctrl+C now to abort this script.
	EOF
	( set -x; sleep 20 )
fi

case "$lsb_dist" in

	ubuntu)
		if command_exists lsb_release; then
			dist_version="$(lsb_release --codename | cut -f2)"
		fi
		if [ -z "$dist_version" ] && [ -r /etc/lsb-release ]; then
			dist_version="$(. /etc/lsb-release && echo "$DISTRIB_CODENAME")"
		fi
	;;

	debian|raspbian)
		dist_version="$(sed 's/\/.*//' /etc/debian_version | sed 's/\..*//')"
		case "$dist_version" in
			11)
				dist_version="bullseye"
			;;
			10)
				dist_version="buster"
			;;
			9)
				dist_version="stretch"
			;;
			8)
				dist_version="jessie"
			;;
		esac
	;;

	centos|rhel|sles)
		if [ -z "$dist_version" ] && [ -r /etc/os-release ]; then
			dist_version="$(. /etc/os-release && echo "$VERSION_ID")"
		fi
	;;

	*)
		if command_exists lsb_release; then
			dist_version="$(lsb_release --release | cut -f2)"
		fi
		if [ -z "$dist_version" ] && [ -r /etc/os-release ]; then
			dist_version="$(. /etc/os-release && echo "$VERSION_ID")"
		fi
	;;

esac

# Check if this is a forked Linux distro
check_forked

# Print deprecation warnings for distro versions that recently reached EOL,
# but may still be commonly used (especially LTS versions).
case "$lsb_dist.$dist_version" in
	debian.stretch|debian.jessie)
		deprecation_notice "$lsb_dist" "$dist_version"
		;;
	raspbian.stretch|raspbian.jessie)
		deprecation_notice "$lsb_dist" "$dist_version"
		;;
	ubuntu.xenial|ubuntu.trusty)
		deprecation_notice "$lsb_dist" "$dist_version"
		;;
	fedora.*)
		if [ "$dist_version" -lt 33 ]; then
			deprecation_notice "$lsb_dist" "$dist_version"
		fi
		;;
esac

# Run setup for each distro accordingly
case "$lsb_dist" in
	ubuntu|debian|raspbian)
		pre_reqs="apt-transport-https ca-certificates curl"
		if ! command -v gpg > /dev/null; then
			pre_reqs="$pre_reqs gnupg"
		fi
		apt_repo="deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $DOWNLOAD_URL/linux/$lsb_dist $dist_version $CHANNEL"
		(
			if ! is_dry_run; then
				set -x
			fi
			$sh_c 'apt-get update -qq >/dev/null'
			$sh_c "DEBIAN_FRONTEND=noninteractive apt-get install -y -qq $pre_reqs >/dev/null"
			$sh_c "curl -fsSL \"$DOWNLOAD_URL/linux/$lsb_dist/gpg\" | gpg --dearmor --yes -o /usr/share/keyrings/docker-archive-keyring.gpg"
			$sh_c "echo \"$apt_repo\" > /etc/apt/sources.list.d/docker.list"
			$sh_c 'apt-get update -qq >/dev/null'
		)
		pkg_version=""
		if [ -n "$VERSION" ]; then
			if is_dry_run; then
				echo "# WARNING: VERSION pinning is not supported in DRY_RUN"
			else
				# Will work for incomplete versions IE (17.12), but may not actually grab the "latest" if in the test channel
				pkg_pattern="$(echo "$VERSION" | sed "s/-ce-/~ce~.*/g" | sed "s/-/.*/g").*-0~$lsb_dist"
				search_command="apt-cache madison 'docker-ce' | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3"
				pkg_version="$($sh_c "$search_command")"
				echo "INFO: Searching repository for VERSION '$VERSION'"
				echo "INFO: $search_command"
				if [ -z "$pkg_version" ]; then
					echo
					echo "ERROR: '$VERSION' not found amongst apt-cache madison results"
					echo
					exit 1
				fi
				if version_gte "18.09"; then
						search_command="apt-cache madison 'docker-ce-cli' | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3"
						echo "INFO: $search_command"
						cli_pkg_version="=$($sh_c "$search_command")"
				fi
				pkg_version="=$pkg_version"
			fi
		fi
		(
			pkgs=""
			if version_gte "18.09"; then
					# older versions don't support a cli package
					pkgs="$pkgs docker-ce-cli${cli_pkg_version%=}"
			fi
			if version_gte "20.10" && [ "$(uname -m)" = "x86_64" ]; then
					# also install the latest version of the "docker scan" cli-plugin (only supported on x86 currently)
					pkgs="$pkgs docker-scan-plugin"
			fi
			pkgs="$pkgs docker-ce${pkg_version%=}"
			if ! is_dry_run; then
				set -x
			fi
			$sh_c "DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends $pkgs >/dev/null"
			if version_gte "20.10"; then
				# Install docker-ce-rootless-extras without "--no-install-recommends", so as to install slirp4netns when available
				$sh_c "DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce-rootless-extras${pkg_version%=} >/dev/null"
			fi
		)
		echo_docker_as_nonroot
		exit 0
		;;
	centos|fedora|rhel)
		if [ "$(uname -m)" != "s390x" ] && [ "$lsb_dist" = "rhel" ]; then
			echo "Packages for RHEL are currently only available for s390x."
			exit 1
		fi
		yum_repo="$DOWNLOAD_URL/linux/$lsb_dist/$REPO_FILE"
		if ! curl -Ifs "$yum_repo" > /dev/null; then
			echo "Error: Unable to curl repository file $yum_repo, is it valid?"
			exit 1
		fi
		if [ "$lsb_dist" = "fedora" ]; then
			pkg_manager="dnf"
			config_manager="dnf config-manager"
			enable_channel_flag="--set-enabled"
			disable_channel_flag="--set-disabled"
			pre_reqs="dnf-plugins-core"
			pkg_suffix="fc$dist_version"
		else
			pkg_manager="yum"
			config_manager="yum-config-manager"
			enable_channel_flag="--enable"
			disable_channel_flag="--disable"
			pre_reqs="yum-utils"
			pkg_suffix="el"
		fi
		(
			if ! is_dry_run; then
				set -x
			fi
			$sh_c "$pkg_manager install -y -q $pre_reqs"
			$sh_c "$config_manager --add-repo $yum_repo"

			if [ "$CHANNEL" != "stable" ]; then
				$sh_c "$config_manager $disable_channel_flag docker-ce-*"
				$sh_c "$config_manager $enable_channel_flag docker-ce-$CHANNEL"
			fi
			$sh_c "$pkg_manager makecache"
		)
		pkg_version=""
		if [ -n "$VERSION" ]; then
			if is_dry_run; then
				echo "# WARNING: VERSION pinning is not supported in DRY_RUN"
			else
				pkg_pattern="$(echo "$VERSION" | sed "s/-ce-/\\\\.ce.*/g" | sed "s/-/.*/g").*$pkg_suffix"
				search_command="$pkg_manager list --showduplicates 'docker-ce' | grep '$pkg_pattern' | tail -1 | awk '{print \$2}'"
				pkg_version="$($sh_c "$search_command")"
				echo "INFO: Searching repository for VERSION '$VERSION'"
				echo "INFO: $search_command"
				if [ -z "$pkg_version" ]; then
					echo
					echo "ERROR: '$VERSION' not found amongst $pkg_manager list results"
					echo
					exit 1
				fi
				if version_gte "18.09"; then
					# older versions don't support a cli package
					search_command="$pkg_manager list --showduplicates 'docker-ce-cli' | grep '$pkg_pattern' | tail -1 | awk '{print \$2}'"
					cli_pkg_version="$($sh_c "$search_command" | cut -d':' -f 2)"
				fi
				# Cut out the epoch and prefix with a '-'
				pkg_version="-$(echo "$pkg_version" | cut -d':' -f 2)"
			fi
		fi
		(
			if ! is_dry_run; then
				set -x
			fi
			# install the correct cli version first
			if [ -n "$cli_pkg_version" ]; then
				$sh_c "$pkg_manager install -y -q docker-ce-cli-$cli_pkg_version"
			fi
			$sh_c "$pkg_manager install -y -q docker-ce$pkg_version"
			if version_gte "20.10"; then
				$sh_c "$pkg_manager install -y -q docker-ce-rootless-extras$pkg_version"
			fi
		)
		echo_docker_as_nonroot
		exit 0
		;;
	sles)
		if [ "$(uname -m)" != "s390x" ]; then
			echo "Packages for SLES are currently only available for s390x"
			exit 1
		fi

		sles_version="${dist_version##*.}"
		sles_repo="$DOWNLOAD_URL/linux/$lsb_dist/$REPO_FILE"
		opensuse_repo="https://download.opensuse.org/repositories/security:SELinux/SLE_15_SP$sles_version/security:SELinux.repo"
		if ! curl -Ifs "$sles_repo" > /dev/null; then
			echo "Error: Unable to curl repository file $sles_repo, is it valid?"
			exit 1
		fi
		pre_reqs="ca-certificates curl libseccomp2 awk"
		(
			if ! is_dry_run; then
				set -x
			fi
			$sh_c "zypper install -y $pre_reqs"
			$sh_c "zypper addrepo $sles_repo"
			if ! is_dry_run; then
					cat >&2 <<-'EOF'
					WARNING!!
					openSUSE repository (https://download.opensuse.org/repositories/security:SELinux) will be enabled now.
					Do you wish to continue?
					You may press Ctrl+C now to abort this script.
					EOF
					( set -x; sleep 30 )
			fi
			$sh_c "zypper addrepo $opensuse_repo"
			$sh_c "zypper --gpg-auto-import-keys refresh"
			$sh_c "zypper lr -d"
		)
		pkg_version=""
		if [ -n "$VERSION" ]; then
			if is_dry_run; then
				echo "# WARNING: VERSION pinning is not supported in DRY_RUN"
			else
				pkg_pattern="$(echo "$VERSION" | sed "s/-ce-/\\\\.ce.*/g" | sed "s/-/.*/g")"
				search_command="zypper search -s --match-exact 'docker-ce' | grep '$pkg_pattern' | tail -1 | awk '{print \$6}'"
				pkg_version="$($sh_c "$search_command")"
				echo "INFO: Searching repository for VERSION '$VERSION'"
				echo "INFO: $search_command"
				if [ -z "$pkg_version" ]; then
					echo
					echo "ERROR: '$VERSION' not found amongst zypper list results"
					echo
					exit 1
				fi
				search_command="zypper search -s --match-exact 'docker-ce-cli' | grep '$pkg_pattern' | tail -1 | awk '{print \$6}'"
				# It's okay for cli_pkg_version to be blank, since older versions don't support a cli package
				cli_pkg_version="$($sh_c "$search_command")"
				pkg_version="-$pkg_version"

				search_command="zypper search -s --match-exact 'docker-ce-rootless-extras' | grep '$pkg_pattern' | tail -1 | awk '{print \$6}'"
				rootless_pkg_version="$($sh_c "$search_command")"
				rootless_pkg_version="-$rootless_pkg_version"
			fi
		fi
		(
			if ! is_dry_run; then
				set -x
			fi
			# install the correct cli version first
			if [ -n "$cli_pkg_version" ]; then
				$sh_c "zypper install -y  docker-ce-cli-$cli_pkg_version"
			fi
			$sh_c "zypper install -y docker-ce$pkg_version"
			if version_gte "20.10"; then
				$sh_c "zypper install -y docker-ce-rootless-extras$rootless_pkg_version"
			fi
		)
		echo_docker_as_nonroot
		exit 0
		;;
	*)
		if [ -z "$lsb_dist" ]; then
			if is_darwin; then
				echo
				echo "ERROR: Unsupported operating system 'macOS'"
				echo "Please get Docker Desktop from https://www.docker.com/products/docker-desktop"
				echo
				exit 1
			fi
		fi
		echo
		echo "ERROR: Unsupported distribution '$lsb_dist'"
		echo
		exit 1
		;;
esac
exit 1

}
wrapped up in a function so that we have some protection against only getting
half the file during "curl | sh"
do_install


Akamai-ULS Stops Sending Messages to Splunk Due to HTTP Aggregation Queue Being Full

Description:
I am encountering an issue with the Akamai-ULS app, where, in some cases, it stops sending eaa access log messages to Splunk because it gets stuck for an unknown reason. This issue seems to be related to the HTTP Aggregation queue getting full and not clearing up. As a result, no messages are being sent to Splunk for extended periods.
Observed Behavior:

The following messages appear repeatedly in the logs for various eaa access log messages:UlsOutput Trying to send data via HTTP
UlsOutput HTTP Aggregation queue is already full - not adding any more entries. Size: (1/1)
MSG[29349] Delivery (output) attempt 1 of 10
ULS was not able to deliver the log message after 10 attempts - (continuing anyway as my config says)

This pattern is repeated for many access log messages over several hours, during which none of the messages are being sent to Splunk.
The issue only appears after the pod has been running for a few days without any problems. After an undefined period, the above messages begin to appear, and messages stop being delivered.

Configuration:
Below is the relevant configuration:
akamai_uls:
  eaa_access:
    environment:
      ULS_LOGLEVEL: "DEBUG"
      ULS_INPUT: "EAA"
      ULS_FEED: "ACCESS"
      ULS_OUTPUT: "HTTP"
      ULS_HTTP_AGGREGATE: 1
      ULS_EDGERC: /opt/akamai-uls/.edgerc
      ULS_DEBUGLOGLINES: "True"
      ULS_AUTORESUME: "True"
      ULS_NOCALLHOME: "True"
      ULS_HTTP_INSECURE: "True"
      NO_PROXY: "localhost,<IP_ADDRESS>,::1"
      REQUESTS_CA_BUNDLE: /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt

Expected Behavior:

The HTTP Aggregation queue should not get stuck. EAA access log messages should be consistently delivered to Splunk without repeated failures.
If there is a failure in delivering eaa access log messages, the error message should provide a reason for the failure, so it's easier to troubleshoot.

Request for Assistance:

Has anyone else observed this issue?
Is there a known solution or workaround?
Can you suggest a way to get more detailed error messages in the logs, so it’s clear why HTTP sends are failing?

Additional Information:
It’s unclear why the HTTP sends fail, as the error message does not indicate the specific reason. It would be beneficial if a more detailed error message could be logged, providing insights into the failure reason.

ULS Version
1.8.3

Hi @sethumadhav07 ,
i have not seen this behavior, yet.
Do you have any insight (maybe on the SPLUNK end) why the data could not be delivered? Any Error number or anything you could point us to?
I am seeing your point that ULS should be a little be more verbose about whats going on on the HTTP level - I will try to get a grip on the sending function and force it to spit out more logging details

I have added a more verbose output for HTTP transmission into the "development" branch - the version tag there should be 1.8.4-alpha
Feel free to plunge that version into your setup and see if you're able to catch the reason why the transmission fails
best
Mike

Thanks Mike. I will incorporate the changes into mine and see. It happens only after a certain period; it can't be easily reproduced.

I am closing this issue for now. Will reopen it if I determine that the issue on your side.

logs.csv
I am attaching the logs. You can see that, it gets stuck without any error .
All you can see is this pattern:
UlsOutput Trying to send data via HTTP
UlsOutput HTTP Aggregation queue is already full - not adding any more entries. Size: (1/1)
MSG[29349] Delivery (output) attempt 1 of 10
ULS was not able to deliver the log message after 10 attempts - (continuing anyway as my config says)
Please let me know if you need anything else from me.

Hi @sethumadhav07 , I'll gonna have a look at this !
Too weird - really - i would have expected some output on the HTTP side of the house ... I'll gonna review the code and maybe need to add a couple more debug points to it

Hi @sethumadhav07 ,
sorry for being a little silent the last couple of days - lots of stuff going on ;)
So I did now 2 things:
a) optimized the code a little in the HTTP stack (I am still unaware of what is happening in your case )
b) copied and modified a Python test web server which you can use to fire data against (and see the result) - it is in test/opt/webserver.py
please give the latest development version a run and report back to me.
Bizarre thing! Even with the test webserver I can produce specific errors and get proper output ... so I am more than keen to understand what is going on here ;)
best
Mike

Sure i will try out and let you know. Its hard to reproduce until it is left for some days running.

Hi @sethumadhav07 , quick ping if you have spotted the behavior again, i am planning to release the "new" version within the next couple of $days/$weeks

hi mike,
This issue is still happening. I have given this less importance because it is not happening in production and only happens in our testing environment. whenever i get time, i will try to investigate further. if you can put your changes in a seperate branch and share here, that is good. if not, i can always look into history.
please go ahead and release the new version.
Regards,
Sethu


Package request: portproton

Project description

Project designed to make it easy and convenient to run Windows games on Linux for both beginners and advanced users.
Metadata

homepage URL: https://linux-gaming.ru
source URL: https://github.com/Castro-Fidel/PortWINE
license: mit
platforms: linux

Add a :+1: reaction to issues you find important.

we have:
Heroic
Lutris
Bottles
and steam-run for this. i think this is plenty.


feat: allow defining startupProbe

What does this PR do?

Allows users to set a startupProbe. By not defining subkeys, we can allow users to use any type of check mechanism that suits their requirement.
Motivation

Fixes https://github.com/traefik/traefik-helm-chart/issues/951
More

[x] Yes, I updated the tests accordingly
[x] Yes, I ran make test and all the tests passed

Thanks for the corrections @mloiseleur, these have been applied and re-tested


Is this still an active project?

I am interested in what you are doing however I am wondering if this is still an active project before I commit to using it.

I do plan to come back to this project, but I started it out of necessity for another project of mine. That other project is a major focus in my life. Also that other project is not open source. But due to changes in scope and plans, I'm not working on this as heavily at the moment. I'm hoping to get back to it in a few months, but I don't want to promise anything to be honest.


Disabling security when using basic_auth in nginx

When using this image behind a basic auth in nginx, how can I disable security in jenkins?
From what I've found I should set useSecurity to false in config.xml, but it's being overwritten on jenkins start.

you go to the UI and disable security or create your own docker image with a config.xml in /usr/share/jenkins/ref as described in https://github.com/jenkinsci/docker#installing-more-tools

Thank you!


Deprecate taxonomyTree and addTaxonomyTree

Replace taxonomyTree with getHierarchyTree and addTaxonomyTree with addTree.
Create new deprecate R script and manual page.
Create new get-values manual page.

Some final things, sorry...
Is there a risk that addTree() gets mixed with other types of trees? Should it be addHierarchyTree(), or is it more generic so that you can use addTree for different things?
It is essential to update the OMA as well, or at least have a clear scheduled plan how that is done.

Actually it is now addHiearchyTree. It is just for adding calculated tree (not generic function for adding any kind of trees)
Updating OMA and other packages is taken into account. We have planned with @thpralas that names are changed everywhere immediately when PR in mia is merged

Ah great!


Report and shrink package size

report size/cost of library
also do something to make it smaller (ex. removing a dependency or two)

Turns out measuring package size is complicated! https://www.npmjs.com/package/cost-of-modules appears to be an interesting module to use as a methodology


[MINOR] improvement(all): Create a server-common module and move web related dependencies into it to avoid client-side dependencies

…

What changes were proposed in this pull request?
(Please outline the changes and how this PR fixes the issue.)
Why are the changes needed?
(Please clarify why the changes are needed. For instance,

If you propose a new API, clarify the use case for a new API.
If you fix a bug, describe the bug.)

Fix: # (issue)
Does this PR introduce any user-facing change?
(Please list the user-facing changes introduced by your change, including

Change in user-facing APIs.
Addition or removal of property keys.)

No.
How was this patch tested?
(Please test your changes, and provide instructions on how to test it:

If you add a feature or fix a bug, add a test to cover your changes.
If you fix a flaky test, repeat it for many times to prove it works.)

@xianjingfeng Thanks for the review, addressed your comments, PTAL.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 52.51%. Comparing base (5ddcc28) to head (954f6e0).
Report is 35 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #1884      +/-   ##
============================================
- Coverage     52.77%   52.51%   -0.26%
- Complexity     2498     2535      +37
============================================
  Files           398      403       +5
  Lines         18135    18466     +331
  Branches       1660     1674      +14
============================================
+ Hits           9570     9698     +128
- Misses         7981     8179     +198
- Partials        584      589       +5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

@advancedxy Yes, I try to move web related code and dependencies into server-common, but I found that the client side start a ShuffleManagerGrpcService which dependent of web related third-party dependencies.
So, I just start a first step, create a server-common module, then both I and @xianjingfeng can do some refactor base on this.

@advancedxy Done.

Please change the description of this PR. The description will be treated as the git commit message.

@rickyma Thanks for your remind, updated the title and description. PTAL

@rickyma Thanks for your review!


Add scratchpad to README

Hi, you forgot to include scratchpad (which was in the video)~

Thanks!


couple of small changes - CI-9087 & slack discussion

CI-9087
AWS VM build infra

Describe cloud init script. What does the runner do
Firewall/anti-malware (esp in internal/custom AMIs) can prevent the script from downloading necessary dependencies. Using internal or custom AMIs

Slack
Upload to S3 - AWS Connector
Build and Push to ECR - AWS Connector

Update use cases for PLUGIN_USER_ROLE_ARN.
Add some wording about supported authentication methods.
Relevant thread for context

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


Add an overload of Image::ReadPPM method

Make it able to load image data from a stream (string stream or other custom stream).

I'm curious what your use case for streams is?

For example, receive image data from the network and cache it in RAM, then load and parse it from RAM directly. :)

Got it, thanks. I'm not very familiar with network stacks, but haven't heard of std::istream being used in that context. Should we maybe move towards an in-memory interface where we pass in a hwy::Span<uint8_t> for the image bytes?

I added a new overload to make it able to load image bytes from ahwy::Span. This is achieved with a custom stream class.

Thanks for adding the Span overload. Wow, I haven't seen a custom stream buffer class before.
It seems like a fair amount of complexity. Wouldn't it be easier if the Span function was the main implementation, which reads uint8_t directly from the span, and if other callers have an istream of some kind, we can read bytes from stream into a vector and then pass that to the Span overload?
For our use case, this would also include reading from file. Note that io.h has a ReadFileToString helper function we could also use for that.

The first solution I considered was the one you mentioned. However, P6 format files consist of a text header and binary data. If the Span overload was the main implementation, we must implement the text parser ourselves to parse the string and integers in the text header. It seems more complex than reusing std::istream in the standard library.

Ah, I understand. One alternative we could consider is reusing some of the existing code from JPEG XL, in particular SkipWhitespace and ParseUnsigned. What do you think?

Yeah, if we want to support more image formats in the future, using a parsing library like this is a better choice.

I removed the std::istream overload and refactored the span version. Now, it directly parses the PPM format on the span.

Sorry, I'm unfamiliar with Bazel, and it has been fixed. :)


Create LICENSE

I propose a MIT license for the code in /example. The question could be if that is also an applicable/reasonable choice for the remaining contents, mainly text/website.
https://softwareengineering.stackexchange.com/questions/304874/declaring-multiple-licences-in-a-github-project gives recommendations on using multiple licenses in one project.
Any ideas?

From my point of view, this isa reasonable license, and I would put all under the same.


fix makefile, accidently skips unit tests

Current coverage is 93.16% (diff: 100%)

No coverage report found for master at 1bdf97c.

Powered by Codecov. Last update 1bdf97c...f359278


[Bug] [api] problem with Transactional

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened

Should methods starting with batch be atomic?
if should be atomic, If the @Transactional annotation is not added to the controller, it may result in partial success and partial failure

What you expected to happen
add annotation  of Transactional
How to reproduce
ATT
Anything else
No response
Version
dev
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

this issue had been fixed


Add requirements, fix tests

add dependencies to requirements.txt
use the requirements file when running tests on Travis
fixes #122 ("could not convert string to float" error, related to scikit-learn version)

lgtm, thanks!


Clicking First results in error and when focus is on input

Issue

When focus is on the form, and you click on copy, an error results. Clicking the second time removes the error.

Sample Code:
export default class {
constructor(el){
$(config).attr('tabindex', '-1');
this.myclipboard = new ClipboardJS(config, {
text: function(trigger) {
let my-target = $(trigger).data('my-clipboard-target');
console.log ('my target is' + target);
return $(my-target).val();
}
});
this.myclipboard.on('success', function(e) {
  console.info('Action:', e.action);
});

this.clipboard.on('error', function(e) {
  console.log (e);
});

}
}

Closing since it didn't follow the recommendations on the issue template. We need an example running on JSFiddle in order to debug the problem.


Rethink display of achievements

On the school homepage we're currently listing all achievements in the left hand nav bar.
I suggest that we keep only the most recently awarded achievement in the nav bar and then link through to the rest.
We might also want to update the "activities" cards at the top of the page to combine scoring and achievements. Perhaps the left card can be a summary of score and number of achievements.

badges_by_date(date: nil) has an optional limit argument.
We currently show the 6 most recent badges: @badges = @school.badges_by_date(limit: 6)


Easier to get started with Kraken trading

I committed these changes to a fork after I got zenbot to work on Kraken by generalizing code I found in discussions at https://github.com/carlos8f/zenbot/issues/9

The code for the balance is suboptimal, the ROI will be wrong if the kraken balance comes after the REAL TRADING code is triggered for the first time. I have quite a lot of code to read.. some pointers would be very helpful to I can help fix it.


chore(runtime-core): remove console.log

Sorry, didn't see this and I already removed it in 59e58cd4


Does my coding partner follow JS best practices?

Requirements:

Once you get a pull request link from your partner, go ahead and review it:

Reminder: How to give a code review.

Check the quality of the code (you can use previous lessons as a guide). Remember to check for the following:

JavaScript best practices.
DRY, KISS, and YAGNI rules.
HTML & CSS best practices.

Finish your review with a nice summary.
Compare your review with the issue created by the project's author in the Do I follow JavaScript best practices? exercise.

There is no need to add anything to your review at this point. It is just to check if you both noticed the same issues.

Check the review you received from your partner! You will make improvements to your code based on your partner's review in the next exercise.

You have done a good job by following the rule:
JavaScript best practices
DRY, KISS, and YAGNI rules.
HTML & CSS best practices
Remove the empty js file in the module since is not doing anything there.

The empty js file is gone now.


Checking that all invalid example files fail ONLY for the specified reason

I'm using linkml-validate to check each invalid example file and make sure that it fails for only one reason, and that reason is the one described in the file name/comments.
Common fixes made to remove extraneous errors -

Updated ID formats
added type, since it is now required in more places
changed xxxx_set to workflow_execution_set where needed, since some set names no longer exist

Some files were deleted where the class/slot they are testing no longer exist (e.g. Solution, OmicsProcessing)
Files I can't figure out how to fix are in problem/invalid

This is great!
As far as I am concerned, we can delete src/data/problem/valid/*iosample-exhasutive*.yaml

I would like to keep src/data/problem/invalid/Database-polymorphic-invalid-type.yaml and move it into into src/data/invalid/ after I make a few tweaks
linkml-validate  \
    --schema nmdc_schema/nmdc_materialized_patterns.yaml \
    --target-class Database src/data/problem/invalid/Database-polymorphic-invalid-type.yaml

[ERROR] [src/data/problem/invalid/Database-polymorphic-invalid-type.yaml/0] ['nmdc:procsm-00-0938548'] is too short in /material_processing_set/2/has_input

Change nmdc:libprp-00-999999's type to nmdc:LibraryPreparation and revalidate:

No issues found

So maybe we should change the filename to src/data/problem/invalid/Database-polymorphic-invalid-typed-LibraryPreparation.yaml
I found this to be a fun one for experimentation with because you can different make different edits and get different error messages. Most of them aren't super helpful though!

@aclum @bmeluch did you say that the other src/data/problem/invalid/Database*.yaml files are all now represented with a non-databased instance in src/data/valid/ ? Is there a record of the file correspondences?
If so, then I vote for deleting the src/data/problem/invalid/Database*.yaml besides src/data/problem/invalid/Database-polymorphic-invalid-type.yaml
I will make the other changes and then we can ask for merge permission!

We should delete and src/data/problem/invalid/PlaceholderClass-1.yaml
Do I need to say any more?!

I did two as an example and asked Bea to do the rest in a similar fashion but  not sure if they've all been fixed yet or not.

I did two as an example and asked Bea to do the rest in a similar fashion but not sure if they've all been fixed yet or not.

back at it! I followed Alicia's explanation of her commit above and was able to de-problem the problem/invalid/Database-* files.

Slack message for the record
i just pushed [a commit](https://github.com/microbiomedata/berkeley-schema-fy24/pull/220/commits/bf75ae10fc60931eec7e35e6a0e5ee357c19bf5b) that 'fixed' two of the problem cases. The example files are correct but when the class is Database is its harder for linkml to tell what the problem is so you get what linkml thinks is the most sensible error message. Patrick and I have had some discussions about how to improve this but that hasn't been implemented in linkml yet. I converted two Database examples to being a direct example of class Extraction and then you get an error on the expected slot. Please follow that process for the other files in the problem dir and let me know if there are any remaining issues.

So maybe we should change the filename to src/data/problem/invalid/Database-polymorphic-invalid-typed-LibraryPreparation.yaml

Done, and tried to clarify what's going on with the error in the comments - confirmed it is a single error due to type (which is what we want) even if the error message is confusing

src/data/problem/invalid/Study-valueswith-generators.yaml has two patterns of errors

@turbomam which error do we want this file to be calling out? illegal slot or missing type?

@aclum @bmeluch did you say that the other src/data/problem/invalid/Database*.yaml files are all now represented with a non-databased instance in src/data/valid/ ? Is there a record of the file correspondences?
If so, then I vote for deleting the src/data/problem/invalid/Database*.yaml besides src/data/problem/invalid/Database-polymorphic-invalid-type.yaml
I will make the other changes and then we can ask for merge permission!

@turbomam I'm not sure what this means, have the changes Alicia and I made addressed this question?

@bmeluch can you add a specific reviewer to this issue so it can get reviewed please?

src/data/problem/invalid/Study-valueswith-generators.yaml has two patterns of errors

@turbomam which error do we want this file to be calling out? illegal slot or missing type?

I'll break it out into two files with one violation each

@aclum @bmeluch did you say that the other src/data/problem/invalid/Database*.yaml files are all now represented with a non-databased instance in src/data/valid/ ? Is there a record of the file correspondences?
...

@turbomam I'm not sure what this means, have the changes Alicia and I made addressed this question?

if you have de-problem-ed the problem/invalid/Database-* files, then your can ignore that comment of mine

I wrote a Makefile target to check that there is one and exactly one error per invalid data file
check-invalids-for-single-failure:
	for file in src/data/invalid/*.yaml; do \
		echo "$$file:"; \
		target_class=$$(basename $$file | cut -d'-' -f1); \
		cmd="poetry run linkml-validate --schema nmdc_schema/nmdc_materialized_patterns.yaml --target-class $$target_class $$file"; \
		output=$$($$cmd 2>&1 || true); \
		echo "$$output" | sort | uniq; \
	done

Here's the output. I would say that whenever there are two or more error lines, or a stack-trace, we haven't met our goal of exactly one invalid feature. I will look though this a little more and make some suggestions.

Click to expand
src/data/invalid/Biosample-incomplete_napa_id.yaml:
[ERROR] [src/data/invalid/Biosample-incomplete_napa_id.yaml/0] 'nmdc:bsm-' does not match '^(nmdc):bsm-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /id
src/data/invalid/Biosample-invalid_fire.yaml:
[ERROR] [src/data/invalid/Biosample-invalid_fire.yaml/0] 'like a volcano' does not match '^[12]\d{3}(?:(?:-(?:0[1-9]|1[0-2]))(?:-(?:0[1-9]|[12]\d|3[01]))?)?(\s+to\s+[12]\d{3}(?:(?:-(?:0[1-9]|1[0-2]))(?:-(?:0[1-9]|[12]\d|3[01]))?)?)?$' in /fire
src/data/invalid/Biosample-invalid_id-1.yaml:
[ERROR] [src/data/invalid/Biosample-invalid_id-1.yaml/0] 'nmdc:bsm-99-dtTMNb.1' does not match '^(nmdc):bsm-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /id
src/data/invalid/Biosample-invalid_id-2.yaml:
[ERROR] [src/data/invalid/Biosample-invalid_id-2.yaml/0] 'nmdc:bsm-99-dtTMNb_scf_1000_c1_466_1380' does not match '^(nmdc):bsm-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /id
src/data/invalid/Biosample-invalid-infiltrations.yaml:
[ERROR] [src/data/invalid/Biosample-invalid-infiltrations.yaml/0] '2 minutes' does not match '^(?:[0-9]|[1-9][0-9]|9[0-9]|0[0-9]|0[0-5][0-9]):[0-5][0-9]:[0-5][0-9]$' in /infiltrations/0
src/data/invalid/Biosample-minimal-invalid-type.yaml:
[ERROR] [src/data/invalid/Biosample-minimal-invalid-type.yaml/0] 'nmdc:UndefinedClass' is not one of ['nmdc:Biosample'] in /type
src/data/invalid/Biosample-minimal-no-id-but-with-type.yaml:
[ERROR] [src/data/invalid/Biosample-minimal-no-id-but-with-type.yaml/0] 'id' is a required property in /
src/data/invalid/Biosample-minimal-no-type.yaml:
[ERROR] [src/data/invalid/Biosample-minimal-no-type.yaml/0] 'type' is a required property in /
src/data/invalid/Biosample-non_boolean_embargo.yaml:
[ERROR] [src/data/invalid/Biosample-non_boolean_embargo.yaml/0] 999 is not of type 'boolean' in /embargoed
src/data/invalid/CalibrationInformation-GC-invalid.yaml:
[ERROR] [src/data/invalid/CalibrationInformation-GC-invalid.yaml/0] 'calibration_object' is a required property in /
[ERROR] [src/data/invalid/CalibrationInformation-GC-invalid.yaml/0] 'calibration_standard' is a required property in /
src/data/invalid/Database-biosample_gold_id_list_as_primary_key.yaml:
[ERROR] [src/data/invalid/Database-biosample_gold_id_list_as_primary_key.yaml/0] ['gold:Gb0101224', 'gold:Gb0101225'] is not of type 'string' in /biosample_set/0/id
src/data/invalid/Database-Biosample-invalid_id.yaml:
[ERROR] [src/data/invalid/Database-Biosample-invalid_id.yaml/0] 'nmdc:local' does not match '^(nmdc):bsm-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /biosample_set/0/id
src/data/invalid/Database-Biosample-invalid_lat_lon_ranges.yaml:
[ERROR] [src/data/invalid/Database-Biosample-invalid_lat_lon_ranges.yaml/0] 100 is not of type 'string' in /biosample_set/0/lat_lon/has_raw_value
[ERROR] [src/data/invalid/Database-Biosample-invalid_lat_lon_ranges.yaml/0] '150.168149' is not of type 'number' in /biosample_set/0/lat_lon/longitude
[ERROR] [src/data/invalid/Database-Biosample-invalid_lat_lon_ranges.yaml/0] '-33.460524' is not of type 'number' in /biosample_set/0/lat_lon/latitude
src/data/invalid/Database-biosamples-dna-in-bucket.yaml:
[ERROR] [src/data/invalid/Database-biosamples-dna-in-bucket.yaml/0] 'bucket' is not one of ['plate', 'tube'] in /biosample_set/0/dna_cont_type
src/data/invalid/Database-biosamples-dna-in-plate-invalid-well-val.yaml:
[ERROR] [src/data/invalid/Database-biosamples-dna-in-plate-invalid-well-val.yaml/0] 'A1' does not match '^(?!A1$|A12$|H1$|H12$)(([A-H][1-9])|([A-H]1[0-2]))$' in /biosample_set/0/dna_cont_well
src/data/invalid/Database-biosamples-dna-in-plate-no-well-val.yaml:
[ERROR] [src/data/invalid/Database-biosamples-dna-in-plate-no-well-val.yaml/0] 'dna_cont_well' is a required property in /biosample_set/0
src/data/invalid/Database-biosamples-dna-in-tube-with-well-value.yaml:
[ERROR] [src/data/invalid/Database-biosamples-dna-in-tube-with-well-value.yaml/0] 'plate' was expected in /biosample_set/0/dna_cont_type
src/data/invalid/Database-biosamples-high-rna_volume.yaml:
[ERROR] [src/data/invalid/Database-biosamples-high-rna_volume.yaml/0] 1200 is greater than the maximum of 1000 in /biosample_set/0/rna_volume
src/data/invalid/Database-biosamples-lat_lon-with-GLV-missing-latitude.yaml:
[ERROR] [src/data/invalid/Database-biosamples-lat_lon-with-GLV-missing-latitude.yaml/0] 'latitude' is a required property in /biosample_set/0/lat_lon
src/data/invalid/Database-biosamples-lat_lon-with-GLV-missing-longitude.yaml:
[ERROR] [src/data/invalid/Database-biosamples-lat_lon-with-GLV-missing-longitude.yaml/0] 'longitude' is a required property in /biosample_set/0/lat_lon
src/data/invalid/Database-biosamples-rna-in-bucket.yaml:
[ERROR] [src/data/invalid/Database-biosamples-rna-in-bucket.yaml/0] 'bucket' is not one of ['plate', 'tube'] in /biosample_set/0/rna_cont_type
src/data/invalid/Database-biosamples-rna-in-plate-invalid-well-val.yaml:
[ERROR] [src/data/invalid/Database-biosamples-rna-in-plate-invalid-well-val.yaml/0] 'A1' does not match '^(?!A1$|A12$|H1$|H12$)(([A-H][1-9])|([A-H]1[0-2]))$' in /biosample_set/0/rna_cont_well
src/data/invalid/Database-biosamples-rna-in-plate-no-well-val.yaml:
[ERROR] [src/data/invalid/Database-biosamples-rna-in-plate-no-well-val.yaml/0] 'rna_cont_well' is a required property in /biosample_set/0
src/data/invalid/Database-biosamples-rna-in-tube-with-well-value.yaml:
[ERROR] [src/data/invalid/Database-biosamples-rna-in-tube-with-well-value.yaml/0] 'plate' was expected in /biosample_set/0/rna_cont_type
src/data/invalid/Database-biosample_undeclared_slot.yaml:
[ERROR] [src/data/invalid/Database-biosample_undeclared_slot.yaml/0] Additional properties are not allowed ('foo' was unexpected) in /biosample_set/0
src/data/invalid/Database-functional_annotation_agg.yaml:
[ERROR] [src/data/invalid/Database-functional_annotation_agg.yaml/0] 'gene_function_id' is a required property in /functional_annotation_agg/0
src/data/invalid/Database-invalid-functional-annotations.yaml:
[ERROR] [src/data/invalid/Database-invalid-functional-annotations.yaml/0] 'KEGG_PATHWAY:iIiIiIiI' does not match '^(KEGG_PATHWAY:\w{2,4}\d{5}|KEGG.REACTION:R\d+|RHEA:\d{5}|MetaCyc:[A-Za-z0-9+.%-:]+|EC:\d{1,2}(\.\d{0,3}){0,3}|GO:\d{7}|MetaNetX:(MNXR\d+|EMPTY)|SEED:\w+|KEGG\.ORTHOLOGY:K\d+|EGGNOG:\w+|PFAM:PF\d{5}|TIGRFAM:TIGR\d+|SUPFAM:\w+|CATH:[1-6]\.[0-9]+\.[0-9]+\.[0-9]+|PANTHER.FAMILY:PTHR\d{5}(\:SF\d{1,3})?)$' in /functional_annotation_set/1/has_function
[ERROR] [src/data/invalid/Database-invalid-functional-annotations.yaml/0] 'KEGG_PATHWAY:XOXOXOXO' does not match '^(KEGG_PATHWAY:\w{2,4}\d{5}|KEGG.REACTION:R\d+|RHEA:\d{5}|MetaCyc:[A-Za-z0-9+.%-:]+|EC:\d{1,2}(\.\d{0,3}){0,3}|GO:\d{7}|MetaNetX:(MNXR\d+|EMPTY)|SEED:\w+|KEGG\.ORTHOLOGY:K\d+|EGGNOG:\w+|PFAM:PF\d{5}|TIGRFAM:TIGR\d+|SUPFAM:\w+|CATH:[1-6]\.[0-9]+\.[0-9]+\.[0-9]+|PANTHER.FAMILY:PTHR\d{5}(\:SF\d{1,3})?)$' in /functional_annotation_set/0/has_function
src/data/invalid/Database-mags-img_identifiers-exceeds-cardinality.yaml:
[ERROR] [src/data/invalid/Database-mags-img_identifiers-exceeds-cardinality.yaml/0] 'nmdc:dobj-11-34csgb' does not match '^(nmdc):(bsm|procsm)-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /workflow_execution_set/0/has_input/0
src/data/invalid/Database-plannedprocess-non-string-end_datet.yaml:
[ERROR] [src/data/invalid/Database-plannedprocess-non-string-end_datet.yaml/0] {'id': 'nmdc:extrp-99-abcdefg', 'type': 'nmdc:Extraction', 'name': 'first dna extraction set', 'has_input': ['nmdc:bsm-11-123v'], 'has_output': ['nmdc:procsm-11-123d'], 'extraction_targets': ['DNA'], 'end_date': datetime.date(2021, 1, 15)} is not valid under any of the given schemas in /material_processing_set/0
src/data/invalid/Database-polymorphic-invalid-typed-LibraryPreparation.yaml:
[ERROR] [src/data/invalid/Database-polymorphic-invalid-typed-LibraryPreparation.yaml/0] ['nmdc:procsm-00-0938548'] is too short in /material_processing_set/2/has_input
src/data/invalid/Database-ReadQcAnalysisActivity-invalid.yaml:
[ERROR] [src/data/invalid/Database-ReadQcAnalysisActivity-invalid.yaml/0] 'nmdc:dobj-11-1k62bt83' does not match '^(nmdc):(bsm|procsm)-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /workflow_execution_set/0/has_input/0
src/data/invalid/Database-studies-legacy-gold-study-id.yaml:
[ERROR] [src/data/invalid/Database-studies-legacy-gold-study-id.yaml/0] 'gold:Gs0110132' does not match '^(nmdc):sty-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /study_set/0/id
src/data/invalid/Database-studies-missing-study_category.yaml:
[ERROR] [src/data/invalid/Database-studies-missing-study_category.yaml/0] 'study_category' is a required property in /study_set/0
src/data/invalid/Database-studies-undefined-doi-slot.yaml:
[ERROR] [src/data/invalid/Database-studies-undefined-doi-slot.yaml/0] Additional properties are not allowed ('doi' was unexpected) in /study_set/0
src/data/invalid/Database-studies-undefined-foo-slot.yaml:
[ERROR] [src/data/invalid/Database-studies-undefined-foo-slot.yaml/0] Additional properties are not allowed ('foo' was unexpected) in /study_set/0
src/data/invalid/Database-studies-undefined-principal_investigator_name-slot.yaml:
[ERROR] [src/data/invalid/Database-studies-undefined-principal_investigator_name-slot.yaml/0] Additional properties are not allowed ('principal_investigator_name' was unexpected) in /study_set/0
src/data/invalid/Database-study-include-abstract.yaml:
[ERROR] [src/data/invalid/Database-study-include-abstract.yaml/0] Additional properties are not allowed ('abstract' was unexpected) in /study_set/0
src/data/invalid/Database-study_set-bad-emsl-doi-slot-name.yaml:
[ERROR] [src/data/invalid/Database-study_set-bad-emsl-doi-slot-name.yaml/0] Additional properties are not allowed ('emsl_proposal_dois' was unexpected) in /study_set/0
src/data/invalid/Database-using-undefined-analytical_sample_set-slot.yaml:
[ERROR] [src/data/invalid/Database-using-undefined-analytical_sample_set-slot.yaml/0] Additional properties are not allowed ('analytical_sample_set' was unexpected) in /
src/data/invalid/DataGeneration-invalid-class_is_abstract.yaml:
[ERROR] [src/data/invalid/DataGeneration-invalid-class_is_abstract.yaml/0] Additional properties are not allowed ('add_date', 'alternative_identifiers', 'analyte_category', 'associated_studies', 'has_input', 'has_output', 'id', 'mod_date', 'name', 'ncbi_project_name', 'omics_type', 'part_of', 'processing_institution', 'type' were unexpected) in /
src/data/invalid/DataObject-invalid-data_object_type.yaml:
[ERROR] [src/data/invalid/DataObject-invalid-data_object_type.yaml/0] 'undefined permissible value for file type enum' is not one of ['Metagenome Raw Reads', 'Metagenome Raw Read 1', 'Metagenome Raw Read 2', 'FT ICR-MS Analysis Results', 'GC-MS Metabolomics Results', 'Metaproteomics Workflow Statistics', 'Protein Report', 'Peptide Report', 'Unfiltered Metaproteomics Results', 'Read Count and RPKM', 'QC non-rRNA R2', 'QC non-rRNA R1', 'Metagenome Bins', 'Metagenome HQMQ Bins Compression File', 'Metagenome LQ Bins Compression File', 'Metagenome Bins Info File', 'CheckM Statistics', 'Metagenome Bins Heatmap', 'Metagenome Bins Barplot', 'Metagenome Bins Krona Plot', 'Read Based Analysis Info File', 'GTDBTK Bacterial Summary', 'GTDBTK Archaeal Summary', 'GOTTCHA2 Krona Plot', 'GOTTCHA2 Classification Report', 'GOTTCHA2 Report Full', 'Kraken2 Krona Plot', 'Centrifuge Krona Plot', 'Centrifuge output report file', 'Kraken2 Classification Report', 'Kraken2 Taxonomic Classification', 'Centrifuge Classification Report', 'Centrifuge Taxonomic Classification', 'Structural Annotation GFF', 'Structural Annotation Stats Json', 'Functional Annotation GFF', 'Annotation Info File', 'Annotation Amino Acid FASTA', 'Annotation Enzyme Commission', 'Annotation KEGG Orthology', 'Assembly Info File', 'Assembly Coverage BAM', 'Assembly AGP', 'Assembly Scaffolds', 'Assembly Contigs', 'Assembly Coverage Stats', 'Contig Mapping File', 'Error Corrected Reads', 'Filtered Sequencing Reads', 'Read Filtering Info File', 'QC Statistics Extended', 'QC Statistics', 'TIGRFam Annotation GFF', 'CRT Annotation GFF', 'Genemark Annotation GFF', 'Prodigal Annotation GFF', 'TRNA Annotation GFF', 'Misc Annotation GFF', 'RFAM Annotation GFF', 'TMRNA Annotation GFF', 'Crispr Terms', 'Product Names', 'Gene Phylogeny tsv', 'Scaffold Lineage tsv', 'Clusters of Orthologous Groups (COG) Annotation GFF', 'KO_EC Annotation GFF', 'CATH FunFams (Functional Families) Annotation GFF', 'SUPERFam Annotation GFF', 'SMART Annotation GFF', 'Pfam Annotation GFF', 'Annotation Statistics', 'Direct Infusion FT ICR-MS Raw Data', 'LC-DDA-MS/MS Raw Data', 'Configuration toml', 'LC-MS Lipidomics Results', 'Contaminants Amino Acid FASTA', 'Analysis Tool Parameter File', 'Workflow Operation Summary'] in /data_object_type
src/data/invalid/DataObject-invalid_id-1.yaml:
[ERROR] [src/data/invalid/DataObject-invalid_id-1.yaml/0] 'nmdc:dobj-99-izwYW6.1' does not match '^(nmdc):dobj-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /id
src/data/invalid/DataObject-invalid_id-2.yaml:
[ERROR] [src/data/invalid/DataObject-invalid_id-2.yaml/0] 'nmdc:dobj-99-izwYW6_scf_1000_c1_466_1380' does not match '^(nmdc):dobj-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /id
src/data/invalid/DataObject-no-id.yaml:
[ERROR] [src/data/invalid/DataObject-no-id.yaml/0] 'id' is a required property in /
src/data/invalid/DataObject-no-name.yaml:
[ERROR] [src/data/invalid/DataObject-no-name.yaml/0] 'name' is a required property in /
src/data/invalid/DataObject-no-type.yaml:
[ERROR] [src/data/invalid/DataObject-no-type.yaml/0] 'type' is a required property in /
src/data/invalid/DissolvingProcess-minimal-no-solvent.yaml:
[ERROR] [src/data/invalid/DissolvingProcess-minimal-no-solvent.yaml/0] None is not of type 'array' in /substances_used
src/data/invalid/Extraction-extraction_method-slot-retired.yaml:
[ERROR] [src/data/invalid/Extraction-extraction_method-slot-retired.yaml/0] Additional properties are not allowed ('extraction_method' was unexpected) in /
src/data/invalid/Extraction-invalid_enum.yaml:
[ERROR] [src/data/invalid/Extraction-invalid_enum.yaml/0] 'phenol/chloroform extraction' is not one of ['DNA', 'RNA', 'metabolite', 'protein', 'lipid'] in /extraction_targets/0
src/data/invalid/Extraction-metabolomics-concentration-without-compound.yaml:
[ERROR] [src/data/invalid/Extraction-metabolomics-concentration-without-compound.yaml/0] 'type' is a required property in /substances_used/0
src/data/invalid/Extraction-metabolomics-string-extractant.yaml:
[ERROR] [src/data/invalid/Extraction-metabolomics-string-extractant.yaml/0] '10 methanol in deionized water' is not of type 'array' in /substances_used
src/data/invalid/Extraction-sample_mass-now_input_mass.yaml:
[ERROR] [src/data/invalid/Extraction-sample_mass-now_input_mass.yaml/0] Additional properties are not allowed ('sample_mass' was unexpected) in /
src/data/invalid/Filtration-invalid_non-numeric-pore-size-num-val.yaml:
class_def = self._schema_view.get_class(target_class, strict=True)
context = self._context(target_class)
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/bin/linkml-validate", line 8, in
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1078, in main
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1157, in call
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 783, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml_runtime/utils/schemaview.py", line 592, in get_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/cli.py", line 191, in cli
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 23, in init
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 74, in _get_target_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 124, in _context
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 99, in iter_results_from_source
for result in validator.iter_results_from_source(loader, config.target_class):
raise ValueError(f'No such class as "{class_name}"')
return __callback(*args, **kwargs)
return ctx.invoke(self.callback, **ctx.params)
return f(get_current_context(), *args, **kwargs)
return self.main(*args, **kwargs)
return ValidationContext(self._schema, target_class)
rv = self.invoke(ctx)
self._target_class = self._get_target_class(target_class)
sys.exit(cli())
Traceback (most recent call last):
ValueError: No such class as "Filtration"
src/data/invalid/Filtration-invalid_non-string-conditioning.yaml:
class_def = self._schema_view.get_class(target_class, strict=True)
context = self._context(target_class)
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/bin/linkml-validate", line 8, in
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1078, in main
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1157, in call
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 783, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml_runtime/utils/schemaview.py", line 592, in get_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/cli.py", line 191, in cli
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 23, in init
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 74, in _get_target_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 124, in _context
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 99, in iter_results_from_source
for result in validator.iter_results_from_source(loader, config.target_class):
raise ValueError(f'No such class as "{class_name}"')
return __callback(*args, **kwargs)
return ctx.invoke(self.callback, **ctx.params)
return f(get_current_context(), *args, **kwargs)
return self.main(*args, **kwargs)
return ValidationContext(self._schema, target_class)
rv = self.invoke(ctx)
self._target_class = self.get_target_class(target_class)
sys.exit(cli())
Traceback (most recent call last):
ValueError: No such class as "Filtration"
src/data/invalid/FunctionalAnnotation-invalid-function.yaml:
[ERROR] [src/data/invalid/FunctionalAnnotation-invalid-function.yaml/0] 'KEGG_PATHWAY:XOXOXOXO' does not match '^(KEGG_PATHWAY:\w{2,4}\d{5}|KEGG.REACTION:R\d+|RHEA:\d{5}|MetaCyc:[A-Za-z0-9+.%-:]+|EC:\d{1,2}(\.\d{0,3}){0,3}|GO:\d{7}|MetaNetX:(MNXR\d+|EMPTY)|SEED:\w+|KEGG\.ORTHOLOGY:K\d+|EGGNOG:\w+|PFAM:PF\d{5}|TIGRFAM:TIGR\d+|SUPFAM:\w+|CATH:[1-6]\.[0-9]+\.[0-9]+\.[0-9]+|PANTHER.FAMILY:PTHR\d{5}(\:SF\d{1,3})?)$' in /has_function
src/data/invalid/Instrument-invalid_model.yaml:
[ERROR] [src/data/invalid/Instrument-invalid_model.yaml/0] 'anytimeseq' is not one of ['exploris_21T', 'exploris_240', 'exploris_480', 'ltq_orbitrap_velos', 'orbitrap_fusion_lumos', 'orbitrap_eclipse_tribid', 'orbitrap_q_exactive', 'solarix_7T', 'solarix_12T', 'solarix_15T', 'agilent_8890A', 'agilent_7980A', 'vortex_genie_2', 'novaseq', 'novaseq_6000', 'hiseq', 'hiseq_1000', 'hiseq_1500', 'hiseq_2000', 'hiseq_2500', 'hiseq_3000', 'hiseq_4000', 'hiseq_x_ten', 'miniseq', 'nextseq_1000', 'miseq', 'nextseq_500', 'nextseq_550', 'gridion', 'minion', 'promethion', 'rs_II', 'sequel', 'sequel_II', 'revio'] in /model
src/data/invalid/MassSpectrometry-incl-nucleotideseq-slots.yaml:
[ERROR] [src/data/invalid/MassSpectrometry-incl-nucleotideseq-slots.yaml/0] Additional properties are not allowed ('target_gene' was unexpected) in /
src/data/invalid/MassSpectrometry-no-analyte_category.yaml:
[ERROR] [src/data/invalid/MassSpectrometry-no-analyte_category.yaml/0] 'analyte_category' is a required property in /
src/data/invalid/MetabolomicsAnalysisActivity-invalid_id-1.yaml:
class_def = self._schema_view.get_class(target_class, strict=True)
context = self._context(target_class)
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/bin/linkml-validate", line 8, in
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1078, in main
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1157, in call
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 783, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml_runtime/utils/schemaview.py", line 592, in get_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/cli.py", line 191, in cli
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 23, in init
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 74, in _get_target_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 124, in _context
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 99, in iter_results_from_source
for result in validator.iter_results_from_source(loader, config.target_class):
raise ValueError(f'No such class as "{class_name}"')
return __callback(*args, **kwargs)
return ctx.invoke(self.callback, **ctx.params)
return f(get_current_context(), *args, **kwargs)
return self.main(*args, **kwargs)
return ValidationContext(self._schema, target_class)
rv = self.invoke(ctx)
self._target_class = self._get_target_class(target_class)
sys.exit(cli())
Traceback (most recent call last):
ValueError: No such class as "MetabolomicsAnalysisActivity"
src/data/invalid/MetabolomicsAnalysisActivity-invalid_id-2.yaml:
class_def = self._schema_view.get_class(target_class, strict=True)
context = self._context(target_class)
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/bin/linkml-validate", line 8, in
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1078, in main
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1157, in call
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 783, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml_runtime/utils/schemaview.py", line 592, in get_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/cli.py", line 191, in cli
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 23, in init
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 74, in _get_target_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 124, in _context
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 99, in iter_results_from_source
for result in validator.iter_results_from_source(loader, config.target_class):
raise ValueError(f'No such class as "{class_name}"')
return __callback(*args, **kwargs)
return ctx.invoke(self.callback, **ctx.params)
return f(get_current_context(), *args, **kwargs)
return self.main(*args, **kwargs)
return ValidationContext(self._schema, target_class)
rv = self.invoke(ctx)
self._target_class = self._get_target_class(target_class)
sys.exit(cli())
Traceback (most recent call last):
ValueError: No such class as "MetabolomicsAnalysisActivity"
src/data/invalid/MetabolomicsAnalysisActivity-invalid_id-3.yaml:
class_def = self._schema_view.get_class(target_class, strict=True)
context = self._context(target_class)
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/bin/linkml-validate", line 8, in
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1078, in main
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1157, in call
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 783, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml_runtime/utils/schemaview.py", line 592, in get_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/cli.py", line 191, in cli
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 23, in init
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 74, in _get_target_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 124, in _context
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 99, in iter_results_from_source
for result in validator.iter_results_from_source(loader, config.target_class):
raise ValueError(f'No such class as "{class_name}"')
return __callback(*args, **kwargs)
return ctx.invoke(self.callback, **ctx.params)
return f(get_current_context(), *args, **kwargs)
return self.main(*args, **kwargs)
return ValidationContext(self._schema, target_class)
rv = self.invoke(ctx)
self._target_class = self._get_target_class(target_class)
sys.exit(cli())
Traceback (most recent call last):
ValueError: No such class as "MetabolomicsAnalysisActivity"
src/data/invalid/MetabolomicsAnalysisActivity-invalid_id-4.yaml:
class_def = self._schema_view.get_class(target_class, strict=True)
context = self._context(target_class)
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/bin/linkml-validate", line 8, in
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1078, in main
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1157, in call
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 783, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml_runtime/utils/schemaview.py", line 592, in get_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/cli.py", line 191, in cli
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 23, in init
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 74, in _get_target_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 124, in _context
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 99, in iter_results_from_source
for result in validator.iter_results_from_source(loader, config.target_class):
raise ValueError(f'No such class as "{class_name}"')
return __callback(*args, **kwargs)
return ctx.invoke(self.callback, **ctx.params)
return f(get_current_context(), *args, **kwargs)
return self.main(*args, **kwargs)
return ValidationContext(self._schema, target_class)
rv = self.invoke(ctx)
self._target_class = self._get_target_class(target_class)
sys.exit(cli())
Traceback (most recent call last):
ValueError: No such class as "MetabolomicsAnalysisActivity"
src/data/invalid/MetabolomicsAnalysisActivity-invalid_no_informed_by.yaml:
class_def = self._schema_view.get_class(target_class, strict=True)
context = self._context(target_class)
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/bin/linkml-validate", line 8, in
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1078, in main
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1157, in call
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 783, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml_runtime/utils/schemaview.py", line 592, in get_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/cli.py", line 191, in cli
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 23, in init
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 74, in _get_target_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 124, in _context
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 99, in iter_results_from_source
for result in validator.iter_results_from_source(loader, config.target_class):
raise ValueError(f'No such class as "{class_name}"')
return __callback(*args, **kwargs)
return ctx.invoke(self.callback, **ctx.params)
return f(get_current_context(), *args, **kwargs)
return self.main(*args, **kwargs)
return ValidationContext(self._schema, target_class)
rv = self.invoke(ctx)
self._target_class = self._get_target_class(target_class)
sys.exit(cli())
Traceback (most recent call last):
ValueError: No such class as "MetabolomicsAnalysisActivity"
src/data/invalid/MetabolomicsAnalysis-invalid_execution_resource_not_in_enum.yaml:
[ERROR] [src/data/invalid/MetabolomicsAnalysis-invalid_execution_resource_not_in_enum.yaml/0] 'NERSC - Cori' is not one of ['NERSC-Cori', 'NERSC-Perlmutter', 'EMSL', 'EMSL-RZR', 'JGI', 'LANL-B-div'] in /execution_resource
src/data/invalid/MetabolomicsAnalysis-invalid-has-slot-used.yaml:
[ERROR] [src/data/invalid/MetabolomicsAnalysis-invalid-has-slot-used.yaml/0] Additional properties are not allowed ('used' was unexpected) in /
src/data/invalid/MetabolomicsAnalysis-invalid-missing_execution_resource.yaml:
[ERROR] [src/data/invalid/MetabolomicsAnalysis-invalid-missing_execution_resource.yaml/0] 'execution_resource' is a required property in /
src/data/invalid/MetabolomicsAnalysis-metab_quantified.yaml:
[ERROR] [src/data/invalid/MetabolomicsAnalysis-metab_quantified.yaml/0] Additional properties are not allowed ('has_metabolite_quantifications' was unexpected) in /
src/data/invalid/MetagenomeAssembly_invalid_qc_status_rules.yaml:
class_def = self._schema_view.get_class(target_class, strict=True)
context = self._context(target_class)
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/bin/linkml-validate", line 8, in
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1078, in main
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1157, in call
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/core.py", line 783, in invoke
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/click/decorators.py", line 33, in new_func
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml_runtime/utils/schemaview.py", line 592, in get_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/cli.py", line 191, in cli
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 23, in init
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validation_context.py", line 74, in _get_target_class
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 124, in _context
File "/home/mark/.cache/pypoetry/virtualenvs/nmdc-schema-gXr5ogK9-py3.10/lib/python3.10/site-packages/linkml/validator/validator.py", line 99, in iter_results_from_source
for result in validator.iter_results_from_source(loader, config.target_class):
raise ValueError(f'No such class as "{class_name}"')
return __callback(*args, **kwargs)
return ctx.invoke(self.callback, **ctx.params)
return f(get_current_context(), *args, **kwargs)
return self.main(args, **kwargs)
return ValidationContext(self.schema, target_class)
rv = self.invoke(ctx)
self.target_class = self.get_target_class(target_class)
sys.exit(cli())
Traceback (most recent call last):
ValueError: No such class as "MetagenomeAssembly_invalid_qc_status_rules.yaml"
src/data/invalid/MetagenomeSequencing-bad_id_mention.yaml:
[ERROR] [src/data/invalid/MetagenomeSequencing-bad_id_mention.yaml/0] 'nmdc:22afa3d49b73eaec2e9787a6b88fbdc3' does not match '^(nmdc):(dobj)-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /has_output/0
src/data/invalid/MetagenomeSequencing-bad_id.yaml:
[ERROR] [src/data/invalid/MetagenomeSequencing-bad_id.yaml/0] 'nmdc:bad_id' does not match '^(nmdc):wfmsa-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})(\.[0-9]{1,})$' in /id
src/data/invalid/MetagenomeSequencing-no_parthood.yaml:
[ERROR] [src/data/invalid/MetagenomeSequencing-no_parthood.yaml/0] 'was_informed_by' is a required property in /
src/data/invalid/NomAnalysis-incomplete-string-ended_at_time.yaml:
[ERROR] [src/data/invalid/NomAnalysis-incomplete-string-ended_at_time.yaml/0] '2018-11-111' does not match '^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))(T\s?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$' in /ended_at_time
src/data/invalid/NomAnalysis-non-string-ended_at_time.yaml:
[ERROR] [src/data/invalid/NomAnalysis-non-string-ended_at_time.yaml/0] datetime.datetime(2018, 11, 13, 20, 20, 39, tzinfo=datetime.timezone.utc) is not of type 'string' in /ended_at_time
src/data/invalid/NomAnalysis-remove_used.yaml:
[ERROR] [src/data/invalid/NomAnalysis-remove_used.yaml/0] Additional properties are not allowed ('used' was unexpected) in /
src/data/invalid/NucleotideSequencing-instrument_name-retired.yaml:
[ERROR] [src/data/invalid/NucleotideSequencing-instrument_name-retired.yaml/0] Additional properties are not allowed ('instrument_name' was unexpected) in /
src/data/invalid/NucleotideSequencing-invalid-prefix.yaml:
[ERROR] [src/data/invalid/NucleotideSequencing-invalid-prefix.yaml/0] 'nmdc:omicsprc-99-zUCd5N' does not match '^(nmdc):(dgns|omprc)-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /id
src/data/invalid/NucleotideSequencing-no-id.yaml:
[ERROR] [src/data/invalid/NucleotideSequencing-no-id.yaml/0] 'id' is a required property in /
src/data/invalid/NucleotideSequencing-omics-type-slot-retired.yaml:
[ERROR] [src/data/invalid/NucleotideSequencing-omics-type-slot-retired.yaml/0] Additional properties are not allowed ('omics_type' was unexpected) in /
src/data/invalid/NucleotideSequencing-undefined-omics-processing.yaml:
[ERROR] [src/data/invalid/NucleotideSequencing-undefined-omics-processing.yaml/0] Additional properties are not allowed ('omics_type' was unexpected) in /
src/data/invalid/Pooling-invalid_id-1.yaml:
[ERROR] [src/data/invalid/Pooling-invalid_id-1.yaml/0] 'nmdc:poolp-11-547rwq94_scf_1000_c1_466_1380' does not match '^(nmdc):poolp-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /id
src/data/invalid/ProtocolExecution-inlined_not_valid.yaml:
[ERROR] [src/data/invalid/ProtocolExecution-inlined_not_valid.yaml/0] {'id': 'nmdc:extrp-71-r2pk', 'has_input': ['nmdc:ome-6'], 'has_output': ['nmdc:ome-8'], 'extractant': {'has_solution_components': [{'compound': 'deionized_water'}, {'compound': 'methanol', 'concentration': {'has_numeric_value': 5, 'has_unit': '%'}}]}} is not of type 'string' in /has_process_parts/0
src/data/invalid/ReadQcAnalysis-invalid-has-part_of.yaml:
[ERROR] [src/data/invalid/ReadQcAnalysis-invalid-has-part_of.yaml/0] Additional properties are not allowed ('part_of' was unexpected) in /
src/data/invalid/Study-emsl-bad-local.yaml:
[ERROR] [src/data/invalid/Study-emsl-bad-local.yaml/0] 'emsl.project:abc' does not match '^emsl\.project:[0-9]{5}$' in /emsl_project_identifiers/0
src/data/invalid/Study-has-abstract.yaml:
[ERROR] [src/data/invalid/Study-has-abstract.yaml/0] Additional properties are not allowed ('abstract' was unexpected) in /
src/data/invalid/Study-has-missing_doi_provider.yaml:
[ERROR] [src/data/invalid/Study-has-missing_doi_provider.yaml/0] 'doi_provider' is a required property in /associated_dois/0
src/data/invalid/Study-has-publications.yaml:
[ERROR] [src/data/invalid/Study-has-publications.yaml/0] Additional properties are not allowed ('publications' was unexpected) in /
src/data/invalid/Study-include-emsl_project_dois.yaml:
[ERROR] [src/data/invalid/Study-include-emsl_project_dois.yaml/0] Additional properties are not allowed ('emsl_project_dois' was unexpected) in /
src/data/invalid/Study-invalid-homepage-website.yaml:
[ERROR] [src/data/invalid/Study-invalid-homepage-website.yaml/0] ['https://www.neonscience.org/', 'https://consortium.org/'] is too long in /homepage_website
src/data/invalid/Study-invalid_id-1.yaml:
[ERROR] [src/data/invalid/Study-invalid_id-1.yaml/0] 'nmdc:sty-11-547rwq94.1' does not match '^(nmdc):sty-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /id
src/data/invalid/Study-invalid_id-2.yaml:
[ERROR] [src/data/invalid/Study-invalid_id-2.yaml/0] 'nmdc:sty-11-547rwq94_scf_1000_c1_466_1380' does not match '^(nmdc):sty-([0-9][a-z]{0,6}[0-9])-([A-Za-z0-9]{1,})$' in /id
src/data/invalid/Study-invalid-neon-identifier.yaml:
[ERROR] [src/data/invalid/Study-invalid-neon-identifier.yaml/0] "party like it's 1999" does not match '^[a-zA-Z0-9][a-zA-Z0-9\.]+:[a-zA-Z0-9][a-zA-Z0-9\-\/\.,]$' in /neon_study_identifiers/0
src/data/invalid/Study-using-undefined-genome_portal_identifiers-slot.yaml:
[ERROR] [src/data/invalid/Study-using-undefined-genome_portal_identifiers-slot.yaml/0] Additional properties are not allowed ('jgi_genome_portal_identifiers' was unexpected) in /
src/data/invalid/TextValue-forbidden-processed-value.yaml:
[ERROR] [src/data/invalid/TextValue-forbidden-processed-value.yaml/0] Additional properties are not allowed ('has_processed_value' was unexpected) in /
src/data/invalid/TextValue-was_generated_by.yaml:
[ERROR] [src/data/invalid/TextValue-was_generated_by.yaml/0] Additional properties are not allowed ('was_generated_by' was unexpected) in /
make: Leaving directory '/home/mark/gitrepos/berkeley-schema-fy24'

src/data/invalid/CalibrationInformation-GC-invalid.yaml:
[ERROR] [src/data/invalid/CalibrationInformation-GC-invalid.yaml/0] 'calibration_object' is a required property in /
[ERROR] [src/data/invalid/CalibrationInformation-GC-invalid.yaml/0] 'calibration_standard' is a required property in /

src/data/invalid/Database-Biosample-invalid_lat_lon_ranges.yaml:
[ERROR] [src/data/invalid/Database-Biosample-invalid_lat_lon_ranges.yaml/0] 100 is not of type 'string' in /biosample_set/0/lat_lon/has_raw_value
[ERROR] [src/data/invalid/Database-Biosample-invalid_lat_lon_ranges.yaml/0] '150.168149' is not of type 'number' in /biosample_set/0/lat_lon/longitude
[ERROR] [src/data/invalid/Database-Biosample-invalid_lat_lon_ranges.yaml/0] '-33.460524' is not of type 'number' in /biosample_set/0/lat_lon/latitude

src/data/invalid/Database-invalid-functional-annotations.yaml:
[ERROR] [src/data/invalid/Database-invalid-functional-annotations.yaml/0] 'KEGG_PATHWAY:iIiIiIiI' does not match '^(KEGG_PATHWAY:\w{2,4}\d{5}|KEGG.REACTION:R\d+|RHEA:\d{5}|MetaCyc:[A-Za-z0-9+.%-:]+|EC:\d{1,2}(\.\d{0,3}){0,3}|GO:\d{7}|MetaNetX:(MNXR\d+|EMPTY)|SEED:\w+|KEGG\.ORTHOLOGY:K\d+|EGGNOG:\w+|PFAM:PF\d{5}|TIGRFAM:TIGR\d+|SUPFAM:\w+|CATH:[1-6]\.[0-9]+\.[0-9]+\.[0-9]+|PANTHER.FAMILY:PTHR\d{5}(\:SF\d{1,3})?)$' in /functional_annotation_set/1/has_function
[ERROR] [src/data/invalid/Database-invalid-functional-annotations.yaml/0] 'KEGG_PATHWAY:XOXOXOXO' does not match '^(KEGG_PATHWAY:\w{2,4}\d{5}|KEGG.REACTION:R\d+|RHEA:\d{5}|MetaCyc:[A-Za-z0-9+.%-:]+|EC:\d{1,2}(\.\d{0,3}){0,3}|GO:\d{7}|MetaNetX:(MNXR\d+|EMPTY)|SEED:\w+|KEGG\.ORTHOLOGY:K\d+|EGGNOG:\w+|PFAM:PF\d{5}|TIGRFAM:TIGR\d+|SUPFAM:\w+|CATH:[1-6]\.[0-9]+\.[0-9]+\.[0-9]+|PANTHER.FAMILY:PTHR\d{5}(\:SF\d{1,3})?)$' in /functional_annotation_set/0/has_function

src/data/invalid/Filtration-invalid_non-numeric-pore-size-num-val.yaml:

ValueError: No such class as "Filtration"

src/data/invalid/Filtration-invalid_non-string-conditioning.yaml:

ValueError: No such class as "Filtration"

use FiltrationProcess

src/data/invalid/MetabolomicsAnalysisActivity-invalid_id-1.yaml:

ValueError: No such class as "MetabolomicsAnalysisActivity"

src/data/invalid/MetabolomicsAnalysisActivity-invalid_id-2.yaml:

ValueError: No such class as "MetabolomicsAnalysisActivity"

src/data/invalid/MetabolomicsAnalysisActivity-invalid_id-3.yaml:

ValueError: No such class as "MetabolomicsAnalysisActivity"

src/data/invalid/MetabolomicsAnalysisActivity-invalid_id-4.yaml:

ValueError: No such class as "MetabolomicsAnalysisActivity"

src/data/invalid/MetabolomicsAnalysisActivity-invalid_no_informed_by.yaml:

ValueError: No such class as "MetabolomicsAnalysisActivity"

use MetabolomicsAnalysis

src/data/invalid/MetagenomeAssembly_invalid_qc_status_rules.yaml:

ValueError: No such class as "MetagenomeAssembly_invalid_qc_status_rules.yaml"

In that last case, the problem is that the class name (MetagenomeAssembly) is separated from the rest of the filename with an underscore, not a hyphen
I can fix all of these now

I think I have solved src/data/invalid/CalibrationInformation-GC-invalid.yaml too

@bmeluch do you mind if I push commits into your branch here?

thank you @turbomam! go for it!

The other thing to search for in the output of the Makefile target is No issues found
A good example of this is setting the longitude in src/data/invalid/Database-Biosample-invalid_lat_lon_ranges.yaml to 999.9. That's an undefined longitude on a sphere, but we don't have any limits on values, just a requirement that the value is a floating point number.

Ideally we include the reason why a file in invalid in their names. Instead of saying ".*invalid.enum.", we should say which slot has an invalid value

I don't see any unknown PV in src/data/valid/DataObject-MB-unknown-enum-pv.yaml so I'm going to change it's name to DataObject-Crisper-Terms-data_object_type.yaml

I made my commit and push.
I don't want to slow this down any more, but I noticed that there are a lot of deleted invalid files (red boxes with minus symbols in the files changed view). @bmeluch can you give a very brief summary of that?
Since I just made a big commit, I might not be the best person to review this.
But you did a really good job with this, @bmeluch. Thant's my review.

Thank you so much @turbomam! I'm going to deal with merge conflicts since I've left it sitting open so long, and take it out of draft and have Alicia or Montana review.
The deleted files were either deleted because they tested classes that don't exist anymore,  or they were actually just renamed, usually because I was pulling out the contents of a "Database" file to test the class directly.
eg. "src/data/invalid/Database-nom_analysis_set-incomplete-string-ended_at_time.yaml" became "src/data/invalid/NomAnalysis-incomplete-string-ended_at_time.yaml"


tokenBalancesOwned isn't updated

Describe the bug
tokenBalancesOwned isn't updated anywhere.
Can also verify this with the following query:
{
  users(first: 1000){
    tokenBalancesOwned {
      id
      token {
        id
      }
      value
    }
  }
}

The response is the following:
{
  "data": {
    "users": [
      {
        "tokenBalancesOwned": []
      },
      {
        "tokenBalancesOwned": []
      },
      {
        "tokenBalancesOwned": []
      },
      {
        "tokenBalancesOwned": []
      },
      {
        "tokenBalancesOwned": []
      },
      {
        "tokenBalancesOwned": []
      },
      {
        "tokenBalancesOwned": []
      },
      {
        "tokenBalancesOwned": []
      },

      ...

     {
        "tokenBalancesOwned": []
      }
    ]
  }
}

Because it was never implemented. It was added as an idea and i forgot to add TODO to it 😁

no plans on doing this in the foreseeable future. Will reopen if needed


Metron 122

During the creation of the blogs detailing how to add parsers, several issues surfaced.  This pull request fixes those issues.  Includes:

a couple new parsers (bluecoat and squid) along with unit and integration tests
change to the grokparsertest to make it reusable for other grok based parsers
changes to the metron-parser jar to include site files and hadoop dependency
additional ansible scripts to rerun the metron-streaming role for the purpose of pushing out parser changes
fix to the enrichment topology to pass along data to elasticsearch when no enrichments have been configured

tl;dr I'm -1 on a small piece of this changeset, see below for why.
Looking over this PR, it seems to be an aggregation of 4 JIRAs, METRON-122, METRON-91 (expose tags) and 2 new JIRAs, one for Bluecoat and 1 to fix the enrichment topology.
It's a bummer because I'm +1 on everything but how exposing tags/skip_tags was handled. So although everything else looks great, I have to be -1 on the whole changeset.
I'm -1 on that because it operates outside of the Vagrant paradigm and requires the user to enter the Vagrant password. Here's a more vagrantish solution:
Add:
require 'getoptlong'

opts = GetoptLong.new(
  [ '--ansible-tags', GetoptLong::OPTIONAL_ARGUMENT ],
  [ '--ansible-skip-tags', GetoptLong::OPTIONAL_ARGUMENT ]
)

ansibleTags=''
ansibleSkipTags=''

opts.each do |opt, arg|
  case opt
    when '--ansible-tags'
      ansibleTags=arg
    when '--ansible-skip-tags'
      ansibleSkipTags=arg
  end
end

puts " Running with ansible-tags: " + ansibleTags.split(",").to_s if ansibleTags != ''
puts " Running with ansible-skip-tags: " + ansibleSkipTags.split(",").to_s if ansibleSkipTags != ''

To the top of the Vagrantfile (under the license).
Then make the config loop look like this:
  # provisioning
  config.vm.provision :ansible do |ansible|
    ansible.playbook = "../../playbooks/metron_full_install.yml"
    ansible.sudo = true
    ansible.tags = ansibleTags.split(",") if ansibleTags != ''
    ansible.skip_tags = ansibleSkipTags.split(",") if ansibleSkipTags != ''
    ansible.inventory_path = "../../inventory/singlenode-vagrant"
  end

That should (we'd have to test it) allow us to remove the new ansible.cfg unless you wanted to keep the custom control_path. You could also get rid of run_ansible_role.sh and run_enrichment_role.sh (it would be vagrant --ansible-tags=enrichment provsion )

@dlyle65535 thanks for the suggestions, they make sense and I will add them in.
However, I think we should keep the scripts and change them to call the vagrant command.  The idea is for someone to be able to rerun a role without having to remember or look up the vagrant syntax.  From my perspective running "run_enrichment_role.sh" is much more intuitive than running "vagrant --ansible-tags=enrichment provision".  The whole purpose of adding these scripts is to make it easy for a developer to test and deploy changes without needing detailed knowledge of how metron-deployment works.

@dlyle65535 I added the proposed changes and it almost works.  Running an individual role worked as expected but when I run "vagrant destroy -f" I get:
Message: GetoptLong::InvalidOption: invalid option -- f.
We probably want to still allow other vagrant options to be passed in.  Any ideas?

I just thought of another potential issue with this approach.  If we decide to publish a pre-built image of the single node vagrant machine, running this script won't work if the private key file generated by vagrant up is missing.

@merrimanr Hmm, I liked that feature (being able to run individual roles against either a vagrant image or a prebuilt image).  That will be useful, I think for letting people get metron and try stuff out on it.

No specific ideas on the -f issue. I can work on it a bit Sunday or Monday. Of course, everything should work when it's over including a pre-built snapshot. I'd just prefer we use the existing Vagrant capability for VM Provider -> Provisioner handoff.
@cestella - I think we're good on a generic solution, just use the regular ansible-playbook command with --tags and/or --skip-tags. I don't really see any reason to abstract that. Not abstracting it has a lot of advantages: it's well documented by Ansible, anyone with a background in Ansible already knows about it, we don't have to maintain it- stuff like that. In my opinion, our Vagrant provisioning is the oddball here as we currently have to modify the Vagrantfile to leverage tags. That's why I'm recommending that we do something specific in the Vagrantfile to expose those arguments.
All that said, I'm happy to include the script as well. Though I don't agree that run_enrichment_role.sh is more intuitive than doing it using Vagrant and/or ansible-playbook. Mostly for the reasons stated above.  Though, I probably should have suggested the arguments for Vagrant be --tags and --skip-tags to make it consistent.

I'm not sure that ansible-playbook -i metron-deployment/inventory/singlenode-vagrant/hosts metron-deployment/playbooks/metron_install.yml --tags enrichment -u vagrant -k is more intuitive than run_enrichment.sh for the relatively common task of redeploying.
There is enough differing opinion here, though, that I think perhaps the prudent thing to do is punt any vagrant changes to another PR.  Can we just keep the `run_enrichment.sh

Heh, yeah, we're in full agreement there. That command looks horrible. Glad I didn't suggest it.
I did suggest vagrant --tags=enrichment provision which, I think, is at least as intuitive as run_enrichment.sh and perhaps more so if one has a background in Vagrant and/or Ansible.
I also think that ansible-playbook -i ec2.py playbook.yml --tags=enrichment is at least as intuitive and perhaps more so if one has a background in Ansible. It's an up arrow-ctrl-e-few keystrokes away. :)
Both of those have the added advantages of supporting other tags as well and in the case of ansible-playbook are fully documented already.
That said- I'm still not against the script, I just don't see it as a viable replacement for exposing tags and skip-tags.

Upon further review- I think I have something working that doesn't need the extra '--'.
What would you guys think of the following?

Remove the singlenode-vagrant stuff from this PR
I'll push what I've been able to work up for that under METRON-91 (unless @merrimanr has sorted it, then he can)
For @merrimanr 's concern about pre-built dev images, let's see what it would take to make something like that vagrant upable (I think it's just adding a push provider to the Vagrantfile and setting up an Atlas account) so whatever we do will work with all singlenode dev-type images

@dlyle65535, I think that's a good plan but I agree with @cestella that we should punt it to a separate Jira.  Sounds like there are some unknowns and things we need to work out to arrive at a solution everyone is comfortable with.  The script included in this pull request works fine and is valuable for testing new parsers in the single node VM.  Any harm in leaving it in until we come up with something better?

With @merrimanr 's latest commit, we can consider the METRON-91 stuff separately, so I'm removing my -1 vote. Thanks!

+1


feat(typography): adding Typography Component & Storybook

Adding in the Typography component, allowing front end contributors to use various Header tags (or default p tag) while providing the option to style them as another tag (i.e. an h1 tag styled as an h3).
Fixes #47
Changes proposed in this pull request:

Typography component (typography.tsx)
Typography Storybook entry (typography.story.tsx)

Closing PR to write test file. Will open new PR when testing is written!


operator: ignore Unmanaged state in control plane operators

Reasoning:
Making a core or control plane operator "Unmanaged" will likely lead to a bricked cluster (in case of cert rotation, the cluster will self-destruct in 5 days today). The "Unmanaged" should only be used for development or debugging and it makes sense on higher level operators, where the damage it can do can be recovered by reverting the management state to managed. For debugging core/control plane operators, people can use CVO overrides and deleting the operator deployment (not sure what debugging that can be).
Because the "unmanaged" is giving admins a supported way to brick the clusters, we should not support it.
/cc @bparees
/cc @ravisantoshgudimetla
/cc @adambkaplan
/cc @ericavonb
CC'ing the folks that will be affected by this change.

@deads2k with this in place, I wonder if we can just remove management state from the API (before we ship with it and never be able to take it back).

@mfojtik @deads2k wrote library-go as a framework for all operators, not just control plane operators, and there are several non-control plane operators using it, so I don't think these changes are safe.

@bparees i can make some flag that will allow to opt-out from supporting unmanaged (so control plane will use it).

remove the cruft and lgtm
/approve

/lgtm