osclib: Add an helpful error on failed attribute save

It's stil throwing the exception but with some luck the user sees the
error and acts.
This commit is contained in:
Stephan Kulow 2022-03-04 09:42:27 +01:00
parent 66b778144f
commit 5c377d64d3

View File

@ -1,9 +1,9 @@
from collections import namedtuple from collections import namedtuple
from datetime import datetime from datetime import datetime, timezone
from datetime import timezone
from dateutil.parser import parse as date_parse from dateutil.parser import parse as date_parse
import re import re
import socket import socket
import logging
from lxml import etree as ET from lxml import etree as ET
from urllib.error import HTTPError from urllib.error import HTTPError
@ -452,7 +452,12 @@ def attribute_value_save(apiurl, project, name, value, namespace='OSRT', package
# The OBS API of attributes is super strange, POST to update. # The OBS API of attributes is super strange, POST to update.
url = makeurl(apiurl, list(filter(None, ['source', project, package, '_attribute']))) url = makeurl(apiurl, list(filter(None, ['source', project, package, '_attribute'])))
http_POST(url, data=ET.tostring(root)) try:
http_POST(url, data=ET.tostring(root))
except HTTPError as e:
if e.code == 404:
logging.error(f"Saving attribute {namespace}:{name} to {project} failed. You may need to create the type on your instance.")
raise e
def attribute_value_delete(apiurl, project, name, namespace='OSRT', package=None): def attribute_value_delete(apiurl, project, name, namespace='OSRT', package=None):