docs: def update_launch_config(self, scaling_group, server_name=None, image=None,
              flavor=None, disk_config=None, metadata=None, personality=None,
              networks=None, load_balancers=None, key_name=None, config_drive=False,
              user_data=None):
          """
          Updates the server launch configuration for an existing scaling group.
          One or more of the available attributes can be specified.
  
          NOTE: if you specify metadata, it will *replace* any existing metadata.
          If you want to add to it, you either need to pass the complete dict of
          metadata, or call the update_launch_metadata() method.
          """
          if not isinstance(scaling_group, ScalingGroup):
              scaling_group = self.get(scaling_group)
          uri = "/%s/%s/launch" % (self.uri_base, scaling_group.id)
          largs = scaling_group.launchConfiguration.get("args", {})
          srv_args = largs.get("server", {})
          lb_args = largs.get("loadBalancers", {})
          flav = flavor or srv_args.get("flavorRef")
          dconf = disk_config or srv_args.get("OS-DCF:diskConfig", "AUTO")
          if personality is None:
              personality = srv_args.get("personality", [])
          cfg_drv = config_drive or srv_args.get("config_drive")
          if user_data:
              user_data = base64.b64encode(user_data)
          usr_data = user_data or srv_args.get("user_data")
          update_metadata = metadata or srv_args.get("metadata")
          body = {"type": "launch_server",
                  "args": {
                      "server": {
                          "name": server_name or srv_args.get("name"),
                          "imageRef": image or srv_args.get("imageRef"),
                          "flavorRef": flav,
                          "OS-DCF:diskConfig": dconf,
                          "networks": networks or srv_args.get("networks"),
                      },
                      "loadBalancers": load_balancers or lb_args,
                  },
              }
          bas = body["args"]["server"]
          if cfg_drv:
              bas["config_drive"] = cfg_drv
          if usr_data:
              bas["user_data"] = usr_data
          if personality:
              bas["personality"] = self._encode_personality(personality)
          if update_metadata:
              bas["metadata"] = update_metadata
          key_name = key_name or srv_args.get("key_name")
          if key_name:
              bas["key_name"] = key_name
          resp, resp_body = self.api.method_put(uri, body=body)
          return None