diff --git a/scripts/openstack-server b/scripts/openstack-server index a4ee5af..bb249c9 100755 --- a/scripts/openstack-server +++ b/scripts/openstack-server @@ -94,6 +94,12 @@ def get_options() -> dict: help="Set volume size in GB for machine", default="100", ) + create_parser.add_argument( + "--user-data", + dest="user_data", + help="Supply user data to machine", + default="user_data_empty", + ) create_parser.add_argument( "-k", @@ -233,6 +239,7 @@ def get_options() -> dict: options["key"] = args.key options["network"] = args.network options["sgroup_policy"] = args.sgroup_policy + options["user_data"] = args.user_data if args.flavor.startswith("b"): options["volume_size"] = args.volume_size else: @@ -436,6 +443,7 @@ def create(options: dict) -> int: rc_file: str = options["rc_file"] sgroup: str = options["sgroup"] sgroup_policy: str = options["sgroup_policy"] + user_data: None | str = options["user_data"] volume_size: str = options["volume_size"] with_tsocks: bool = options["with_tsocks"] key_name: str = setup_key(key, rc_file, with_tsocks) @@ -505,6 +513,8 @@ def create(options: dict) -> int: volume_size, "--key-name", key_name, + "--user-data", + user_data, "--hint", f"group={sgroup_id}", fqdn, @@ -512,6 +522,9 @@ def create(options: dict) -> int: if volume_size == 'volume_empty': create_server_command.remove("--boot-from-volume") create_server_command.remove("volume_empty") + if user_data == 'user_data_empty': + create_server_command.remove("--user-data") + create_server_command.remove("user_data_empty") run_in_openstack(create_server_command, rc_file, with_tsocks) timeout = 360 succeed = wait_for_server(