begin adding port support, catch OSError from Flask
This commit is contained in:
parent
29dfacfadb
commit
71c3f9d978
2 changed files with 36 additions and 21 deletions
|
@ -34,6 +34,8 @@ if __name__ == '__main__':
|
||||||
subparsers = arg_parser.add_subparsers(dest="command")
|
subparsers = arg_parser.add_subparsers(dest="command")
|
||||||
|
|
||||||
api_parser = subparsers.add_parser("api", parents=[parent_parser])
|
api_parser = subparsers.add_parser("api", parents=[parent_parser])
|
||||||
|
api_parser.add_argument("--port", "-p")
|
||||||
|
|
||||||
host_parser = subparsers.add_parser("host")
|
host_parser = subparsers.add_parser("host")
|
||||||
host_parser.add_argument("--hostname", required=True)
|
host_parser.add_argument("--hostname", required=True)
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ from uncloud.shared import shared
|
||||||
|
|
||||||
from . import schemas
|
from . import schemas
|
||||||
from .helper import generate_mac, mac2ipv6
|
from .helper import generate_mac, mac2ipv6
|
||||||
|
from uncloud import UncloudException
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -561,29 +561,42 @@ api.add_resource(ListHost, "/host/list")
|
||||||
api.add_resource(CreateNetwork, "/network/create")
|
api.add_resource(CreateNetwork, "/network/create")
|
||||||
|
|
||||||
|
|
||||||
def main(debug=False):
|
def main(debug=False, port=None):
|
||||||
|
try:
|
||||||
image_stores = list(
|
image_stores = list(
|
||||||
shared.etcd_client.get_prefix(
|
shared.etcd_client.get_prefix(
|
||||||
settings["etcd"]["image_store_prefix"], value_in_json=True
|
settings["etcd"]["image_store_prefix"], value_in_json=True
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if not image_stores:
|
except KeyError:
|
||||||
data = {
|
image_stores = False
|
||||||
"is_public": True,
|
|
||||||
"type": "ceph",
|
|
||||||
"name": "images",
|
|
||||||
"description": "first ever public image-store",
|
|
||||||
"attributes": {"list": [], "key": [], "pool": "images"},
|
|
||||||
}
|
|
||||||
|
|
||||||
shared.etcd_client.put(
|
# Do not inject default values that might be very wrong
|
||||||
join_path(
|
# fail when required, not before
|
||||||
settings["etcd"]["image_store_prefix"], uuid4().hex
|
#
|
||||||
),
|
# if not image_stores:
|
||||||
json.dumps(data),
|
# data = {
|
||||||
)
|
# "is_public": True,
|
||||||
|
# "type": "ceph",
|
||||||
|
# "name": "images",
|
||||||
|
# "description": "first ever public image-store",
|
||||||
|
# "attributes": {"list": [], "key": [], "pool": "images"},
|
||||||
|
# }
|
||||||
|
|
||||||
|
# shared.etcd_client.put(
|
||||||
|
# join_path(
|
||||||
|
# settings["etcd"]["image_store_prefix"], uuid4().hex
|
||||||
|
# ),
|
||||||
|
# json.dumps(data),
|
||||||
|
# )
|
||||||
|
|
||||||
|
if port:
|
||||||
|
app_port = port
|
||||||
|
|
||||||
|
try:
|
||||||
app.run(host="::", debug=False)
|
app.run(host="::", debug=False)
|
||||||
|
except OSError as e:
|
||||||
|
raise UncloudException("Failed to start Flask: {}".format(e))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Reference in a new issue