Ran this with more verbose output “-VV”, i am now able to isolate the problem to the specific cookbook: e.g. ceilometer
The problem is not with the format being invalid, but that the field is missing. I added it to all the RackSpace recipes and now it is able to upload.
Line like this (sorry Justin your email was the first one in the list):
maintainer_email "justin.shepherd@rackspace.com"
-Soheil
If you look at the log value below is set to NULL: maintainer_email":null
DEBUG: Initiating PUT to https://api.opscode.com/organizations/iatg/cookbooks/ceilometer/4.2.0
DEBUG: ---- HTTP Request Header Data: ----
DEBUG: Content-Type: application/json
DEBUG: Accept: application/json
DEBUG: Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
DEBUG: X-OPS-SIGN: algorithm=sha1;version=1.0;
DEBUG: X-OPS-USERID: seizadi
DEBUG: X-OPS-TIMESTAMP: 2015-01-14T20:24:56Z
DEBUG: HOST: api.opscode.com:443
DEBUG: X-REMOTE-REQUEST-ID: 0674947e-65a0-47db-a893-c821cbda49e6
DEBUG: Content-Length: 9288
DEBUG: ---- End HTTP Request Header Data ----
DEBUG: ---- HTTP Status and Header Data: ----
DEBUG: HTTP 1.1 400 Bad Request
DEBUG: server: ngx_openresty
DEBUG: date: Wed, 14 Jan 2015 20:24:54 GMT
DEBUG: content-length: 55
DEBUG: connection: close
DEBUG: x-ops-api-info: flavor=hec;version=12.0.0;oc_erchef=0.29.2
DEBUG: ---- End HTTP Status/Header Data ----
DEBUG: ---- HTTP Response Body ----
DEBUG: {“error”:[“Field ‘metadata.maintainer_email’ invalid”]}
DEBUG: ---- End HTTP Response Body -----
DEBUG: ---- HTTP Request Body ----
DEBUG: {“recipes”:[{“name”:“ceilometer-api-ssl.rb”,“path”:“recipes/ceilometer-api-ssl.rb”,“checksum”:“9fec248c21d7b143dc2f1c2e883b645f”,“specificity”:“default”},{“name”:“ceilometer-api.rb”,“path”:“recipes/ceilometer-api.rb”,“checksum”:“cc71e816296fc445c36cc19e9506d224”,“specificity”:“default”},{“name”:“ceilometer-central-agent.rb”,“path”:“recipes/ceilometer-central-agent.rb”,“checksum”:“59911d5cf9cbe26a1a615d745449f0ca”,“specificity”:“default”},{“name”:“ceilometer-collector.rb”,“path”:“recipes/ceilometer-collector.rb”,“checksum”:“567938e035245d8b7722734f3c34b91e”,“specificity”:“default”},{“name”:“ceilometer-common.rb”,“path”:“recipes/ceilometer-common.rb”,“checksum”:“89b6e11a218391ad4dde857e1373517b”,“specificity”:“default”},{“name”:“ceilometer-compute.rb”,“path”:“recipes/ceilometer-compute.rb”,“checksum”:“4ca5e453ad148d0961352a738915d2c9”,“specificity”:“default”},{“name”:“ceilometer-fix-sqlalchemy-compute.rb”,“path”:“recipes/ceilometer-fix-sqlalchemy-compute.rb”,“checksum”:“05d5bdcb7123bb981a00f19ae496db4d”,“specificity”:“default”},{“name”:“ceilometer-fix-sqlalchemy.rb”,“path”:“recipes/ceilometer-fix-sqlalchemy.rb”,“checksum”:“ab2226c104de320eb0a171ae598062f8”,“specificity”:“default”},{“name”:“ceilometer-setup.rb”,“path”:“recipes/ceilometer-setup.rb”,“checksum”:“0b3c50e70dbc4ee8619edbe4af3a6a3a”,“specificity”:“default”}],“definitions”:[],“libraries”:[],“attributes”:[{“name”:“default.rb”,“path”:“attributes/default.rb”,“checksum”:“b66330e20243354e257b7691209fae2d”,“specificity”:“default”}],“files”:[{“name”:“ceilometer-api-mod_wsgi.py”,“path”:“files/default/ceilometer-api-mod_wsgi.py”,“checksum”:“81b5d4d834ee79dc8ce4ea2fb7524412”,“specificity”:“default”},{“name”:“ceilometer-dist.conf”,“path”:“files/default/ceilometer-dist.conf”,“checksum”:“3c183b3e804cab2cadba6612078b5739”,“specificity”:“default”},{“name”:“ceilometer.key”,“path”:“files/default/ceilometer.key”,“checksum”:“d604ae726795f09e65f15b61af73d69b”,“specificity”:“default”},{“name”:“ceilometer.pem”,“path”:“files/default/ceilometer.pem”,“checksum”:“cf7002cb44d36e50cda5c5b9ca1b131e”,“specificity”:“default”}],“templates”:[{“name”:“ceilometer.conf.erb”,“path”:“templates/default/ceilometer.conf.erb”,“checksum”:“b0db77c78b2b7da951507ba7be494d2c”,“specificity”:“default”},{“name”:“modwsgi_vhost.erb”,“path”:“templates/default/modwsgi_vhost.erb”,“checksum”:“d747df377941624aac65ec9c861731c8”,“specificity”:“default”},{“name”:“020_add_metadata_tables.py.erb”,“path”:“templates/default/patches/020_add_metadata_tables.py.erb”,“checksum”:“0a3df1b31365990037013223276ba566”,“specificity”:“default”},{“name”:“impl_sqlalchemy.py.erb”,“path”:“templates/default/patches/impl_sqlalchemy.py.erb”,“checksum”:“c4ae2463816bf2ce3163f808b5dcb87b”,“specificity”:“default”},{“name”:“models.py.erb”,“path”:“templates/default/patches/models.py.erb”,“checksum”:“e78b4a9a9c186d0d97ebdfc0711cab27”,“specificity”:“default”},{“name”:“utils.py.erb”,“path”:“templates/default/patches/utils.py.erb”,“checksum”:“f7658c2da2863eeaf9e170de14e82ca9”,“specificity”:“default”},{“name”:“pipeline.yaml.erb”,“path”:“templates/default/pipeline.yaml.erb”,“checksum”:“dc9ca93cbc171b575190dd8f9dae03af”,“specificity”:“default”},{“name”:“policy.json.erb”,“path”:“templates/default/policy.json.erb”,“checksum”:“4bf23252d4b00a0bdd3efebb4a5d1af5”,“specificity”:“default”},{“name”:“sources.json.erb”,“path”:“templates/default/sources.json.erb”,“checksum”:“91544c62c4a110783c9ae1b826e7c3e0”,“specificity”:“default”}],“resources”:[],“providers”:[],“root_files”:[{“name”:".git",“path”:".git",“checksum”:“c5925839c78115fea2707fed5a9ad3d4”,“specificity”:“default”},{“name”:“CONTRIBUTING.md”,“path”:“CONTRIBUTING.md”,“checksum”:“1d66d7abc70e0ad505951e60f72e272f”,“specificity”:“default”},{“name”:“metadata.rb”,“path”:“metadata.rb”,“checksum”:“085a1b3c844499fc0a40b89d6e196762”,“specificity”:“default”},{“name”:“README.md”,“path”:“README.md”,“checksum”:“8fa1940b09ac5f8404506e92ef08648f”,“specificity”:“default”},{“name”:“VERSION”,“path”:“VERSION”,“checksum”:“28e407d0459c1da3c39f64e021e2d318”,“specificity”:“default”}],“cookbook_name”:“ceilometer”,“metadata”:{“name”:“ceilometer”,“description”:“Installs/Configures ceilometer”,“long_description”:“Support\n=======\n\nIssues have been disabled for this repository.\nAny issues with this cookbook should be raised here:\n\nhttps://github.com/rcbops/chef-cookbooks/issues\n\nPlease title the issue as follows:\n\n[ceilometer]: \<short description of problem\>\n\nIn the issue description, please include a longer description of the issue, alon\ng with any relevant log/command/error output.\nIf logfiles are extremely long, please place the relevant portion into the issue\ndescription, and link to a gist containing the entire logfile\n\nPlease see the contribution guidelines for more information about contributing to this cookbook.\n\nDescription\n===========\n\nInstalls the OpenStack Ceilometer service from packages\n\nRequirements\n============\n\nChef 11 or higher\n\nPlatform\n--------\n\n* CentOS >= 6.3\n* Ubuntu >= 12.04\n\nCookbooks\n---------\n\nThe following cookbooks are dependencies:\n\n* database\n* keystone\n* monitoring\n* mysql\n* openssl\n* osops-utils\n* keepalived\n\nResources/Providers\n===================\n\nNone\n\n\nRecipes\n=======\n\nceilometer-common\n-------\n- Installs common packages and sets up config file\n\nceilometer-setup\n-----\n- Sets up database, config files and keystone config\n- Handles keystone registration and glance database creation\n\nceilometer-api\n------\n- Installs the ceilometer-api server\n\nceilometer-compute\n--------\n- Installs the ceilometer-compute agent on a nova-compute node\n\nceilometer-central-agent\n--------------\n- installs the ceilometer central (polling) agent\n\nceilometer-collector\n----------\n- installs the collector services (consumes messages from the message bus)\n\n\nAttributes\n==========\n\n* ceilometer[\"db\"][\"name\"]
= “ceilometer”\n* ceilometer[\"db\"][\"username\"]
= “ceilometer”\n* ceilometer[\"service_tenant_name\"]
= “service”\n* ceilometer[\"service_user\"]
= “ceilometer”\n* ceilometer[\"service_role\"]
= “admin”\n* ceilometer[\"services\"][\"api\"][\"scheme\"]
= “http”\n* ceilometer[\"services\"][\"api\"][\"network\"]
= osops-network on which to run the api\n* ceilometer[\"services\"][\"api\"][\"port\"]
= 8777\n* ceilometer[\"services\"][\"api\"][\"path\"]
= “/”\n* ceilometer[\"syslog\"][\"use\"]
= true\n* ceilometer[\"syslog\"][\"facility\"]
= “LOG_LOCAL3”\n* ceilometer[\"logging\"][\"debug\"]
= “false”\n* ceilometer[\"logging\"][\"verbose\"]
= “false”\n\nTemplates\n=========\n\n* ceilometer.conf.erb
- rsyslog config file for glance\n\nLicense and Author\n==================\n\nAuthor:: Justin Shepherd (justin.shepherd@rackspace.com) \nAuthor:: Jason Cannavale (jason.cannavale@rackspace.com) \nAuthor:: Ron Pedde (ron.pedde@rackspace.com) \nAuthor:: Joseph Breu (joseph.breu@rackspace.com) \nAuthor:: William Kelly (william.kelly@rackspace.com) \nAuthor:: Darren Birkett (darren.birkett@rackspace.co.uk) \nAuthor:: Evan Callicoat (evan.callicoat@rackspace.com) \nAuthor:: Matt Thompson (matt.thompson@rackspace.co.uk) \nAuthor:: Andy McCrae (andrew.mccrae@rackspace.co.uk) \n\nCopyright 2012-2013, Rackspace US, Inc.\n\nLicensed under the Apache License, Version 2.0 (the “License”);\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an “AS IS” BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n”,“maintainer”:“Rackspace US, Inc.”,“maintainer_email”:null,“license”:“Apache 2.0”,“platforms”:{“ubuntu”:">= 0.0.0"},“dependencies”:{“keepalived”:">= 0.0.0",“apt”:">= 0.0.0",“database”:">= 0.0.0",“monitoring”:">= 0.0.0",“mysql”:">= 0.0.0",“osops-utils”:">= 0.0.0",“apache2”:">= 0.0.0",“keystone”:">= 1.0.20"},“recommendations”:{},“suggestions”:{},“conflicting”:{},“providing”:{“ceilometer::ceilometer-api-ssl”:">= 0.0.0",“ceilometer::ceilometer-api”:">= 0.0.0",“ceilometer::ceilometer-central-agent”:">= 0.0.0",“ceilometer::ceilometer-collector”:">= 0.0.0",“ceilometer::ceilometer-common”:">= 0.0.0",“ceilometer::ceilometer-compute”:">= 0.0.0",“ceilometer::ceilometer-fix-sqlalchemy-compute”:">= 0.0.0",“ceilometer::ceilometer-fix-sqlalchemy”:">= 0.0.0",“ceilometer::ceilometer-setup”:">= 0.0.0"},“replacing”:{},“attributes”:{},“groupings”:{},“recipes”:{“ceilometer::ceilometer-api-ssl”:"",“ceilometer::ceilometer-api”:"",“ceilometer::ceilometer-central-agent”:"",“ceilometer::ceilometer-collector”:"",“ceilometer::ceilometer-common”:"",“ceilometer::ceilometer-compute”:"",“ceilometer::ceilometer-fix-sqlalchemy-compute”:"",“ceilometer::ceilometer-fix-sqlalchemy”:"",“ceilometer::ceilometer-setup”:""},“version”:“4.2.0”,“source_url”:"",“issues_url”:""},“version”:“4.2.0”,“name”:“ceilometer-4.2.0”,“frozen?”:false,“chef_type”:“cookbook_version”,“json_class”:“Chef::CookbookVersion”}
DEBUG: ---- End HTTP Request Body ----
DEBUG: Chef::HTTP calling Chef::HTTP::ValidateContentLength#handle_response
DEBUG: Content-Length validated correctly.
DEBUG: Chef::HTTP calling Chef::HTTP::RemoteRequestID#handle_response
DEBUG: Chef::HTTP calling Chef::HTTP::Authenticator#handle_response
DEBUG: Chef::HTTP calling Chef::HTTP::Decompressor#handle_response
DEBUG: Chef::HTTP calling Chef::HTTP::CookieManager#handle_response
DEBUG: Chef::HTTP calling Chef::HTTP::JSONToModelOutput#handle_response
DEBUG: Expected JSON response, but got content-type ‘’
DEBUG: Chef::HTTP calling Chef::HTTP::JSONInput#handle_response
INFO: HTTP Request Returned 400 Bad Request: error
/opt/chef/embedded/lib/ruby/2.1.0/net/http/response.rb:119:in `error!’: 400 “Bad Request” (Net::HTTPServerException)
from /opt/chef/embedded/apps/chef/lib/chef/http.rb:145:in `request’
from /opt/chef/embedded/apps/chef/lib/chef/http.rb:118:in `put’
from /opt/chef/embedded/apps/chef/lib/chef/cookbook_uploader.rb:97:in `block in upload_cookbooks’
from /opt/chef/embedded/apps/chef/lib/chef/cookbook_uploader.rb:94:in `each’
from /opt/chef/embedded/apps/chef/lib/chef/cookbook_uploader.rb:94:in `upload_cookbooks’
from /opt/chef/embedded/apps/chef/lib/chef/knife/cookbook_upload.rb:243:in `upload’
from /opt/chef/embedded/apps/chef/lib/chef/knife/cookbook_upload.rb:114:in `run’
from /opt/chef/embedded/apps/chef/lib/chef/knife.rb:417:in `block in run_with_pretty_exceptions’
from /opt/chef/embedded/apps/chef/lib/chef/local_mode.rb:38:in `with_server_connectivity’
from /opt/chef/embedded/apps/chef/lib/chef/knife.rb:416:in `run_with_pretty_exceptions’
from /opt/chef/embedded/apps/chef/lib/chef/knife.rb:213:in `run’
from /opt/chef/embedded/apps/chef/lib/chef/application/knife.rb:139:in `run’
from /opt/chef/embedded/apps/chef/bin/knife:25:in `<top (required)>’
from /usr/bin/knife:40:in `load’
from /usr/bin/knife:40:in `’
Administrators-MacBook-Pro-88:chef-cookbooks seizadi$
From: Soheil Eizadi [seizadi@infoblox.com]
Sent: Wednesday, January 14, 2015 12:15 PM
To: chef@lists.opscode.com
Subject: [chef] Problem with Openstack cookbook upload
Hi,
I am trying to use the OpenStack Cookbooks on site:
When I run upload the cookbooks I get following error:
ERROR: The data in your request was invalid
Response: Field ‘metadata.maintainer_email’ invalid
I am using a Hosted Chef Server and trying to load the latest cookbooks. I searched for this and did not see it posted not sure if it is a new problem? (I am going to setup a local Chef-Server and see if what happens.)
-Soheil
Here is a complete/verbose log:
seizadi$ knife cookbook upload -o cookbooks --all -V
INFO: Using configuration from /Users/seizadi/chef/openstack/chef-cookbooks/.chef/knife.rb
Uploading apache2 [1.8.15]
Uploading apt [2.4.1]
Uploading aws [2.2.3]
Uploading build-essential [1.4.4]
Uploading ceilometer [4.2.0]
Uploading ceph [0.1.0]
Uploading chef-client [3.5.1]
Uploading cinder [4.2.0]
Uploading collectd [4.2.0]
Uploading collectd-graphite [4.2.0]
Uploading collectd-plugins [4.2.0]
Uploading cron [1.4.1]
Uploading database [1.6.1]
Uploading dsh [4.2.0]
Uploading erlang [1.3.7]
Uploading exerstack [4.2.0]
Uploading glance [4.2.0]
Uploading graphite [4.2.0]
Uploading haproxy [4.2.0]
Uploading hardware [4.2.0]
Uploading heat [4.2.0]
Uploading horizon [4.2.0]
Uploading iptables [0.13.3]
Uploading keepalived [4.2.0]
Uploading keystone [4.2.0]
Uploading kong [4.2.0]
Uploading logrotate [1.5.0]
Uploading memcached [1.6.7]
Uploading memcached-openstack [4.2.0]
Uploading monit [4.2.0]
Uploading monitoring [4.2.0]
Uploading mysql [4.0.20]
Uploading mysql-openstack [4.2.0]
Uploading nova [4.2.0]
Uploading nova-network [4.2.0]
Uploading ntp [1.6.3]
Uploading openssh [1.3.5]
Uploading openssl [1.1.1]
Uploading openstack-ceph [4.2.0]
Uploading openstack-ha [4.2.0]
Uploading openstack-logging [4.2.0]
Uploading openstack-monitoring [4.2.0]
Uploading osops-utils [4.2.0]
Uploading postgresql [3.4.0]
Uploading rabbitmq [2.2.0]
Uploading rabbitmq-openstack [4.2.0]
Uploading rsyslog [1.12.3]
Uploading runit [1.4.7]
Uploading selinux [0.8.1]
Uploading sosreport [4.2.0]
Uploading sysctl [4.2.0]
Uploading tempest [4.2.0]
Uploading xfs [1.1.0]
Uploading yum [2.4.5]
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Validating ruby files
INFO: Validating templates
INFO: Syntax OK
INFO: Saving apache2
INFO: Saving apt
INFO: Saving aws
INFO: Saving build-essential
INFO: Saving ceilometer
INFO: Saving ceph
INFO: Saving chef-client
INFO: Saving cinder
INFO: Saving collectd
INFO: Saving collectd-graphite
INFO: Saving collectd-plugins
INFO: Saving cron
INFO: Saving database
INFO: Saving dsh
INFO: Saving erlang
INFO: Saving exerstack
INFO: Saving glance
INFO: Saving graphite
INFO: Saving haproxy
INFO: Saving hardware
INFO: Saving heat
INFO: Saving horizon
INFO: Saving iptables
INFO: Saving keepalived
INFO: Saving keystone
INFO: Saving kong
INFO: Saving logrotate
INFO: Saving memcached
INFO: Saving memcached-openstack
INFO: Saving monit
INFO: Saving monitoring
INFO: Saving mysql
INFO: Saving mysql-openstack
INFO: Saving nova
INFO: Saving nova-network
INFO: Saving ntp
INFO: Saving openssh
INFO: Saving openssl
INFO: Saving openstack-ceph
INFO: Saving openstack-ha
INFO: Saving openstack-logging
INFO: Saving openstack-monitoring
INFO: Saving osops-utils
INFO: Saving postgresql
INFO: Saving rabbitmq
INFO: Saving rabbitmq-openstack
INFO: Saving rsyslog
INFO: Saving runit
INFO: Saving selinux
INFO: Saving sosreport
INFO: Saving sysctl
INFO: Saving tempest
INFO: Saving xfs
INFO: Saving yum
INFO: Uploading files
INFO: HTTP Request Returned 400 Bad Request: error
ERROR: The data in your request was invalid
Response: Field ‘metadata.maintainer_email’ invalid