本文整理汇总了Python中appengine_helper.AppEngineHelper.get_app_id_from_app_config方法的典型用法代码示例。如果您正苦于以下问题:Python AppEngineHelper.get_app_id_from_app_config方法的具体用法?Python AppEngineHelper.get_app_id_from_app_config怎么用?Python AppEngineHelper.get_app_id_from_app_config使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类appengine_helper.AppEngineHelper
的用法示例。
在下文中一共展示了AppEngineHelper.get_app_id_from_app_config方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_application_info
# 需要导入模块: from appengine_helper import AppEngineHelper [as 别名]
# 或者: from appengine_helper.AppEngineHelper import get_app_id_from_app_config [as 别名]
def get_application_info(cls, owner, app_language, app_dir):
name = AppEngineHelper.get_app_id_from_app_config(app_dir)
version = AppEngineHelper.get_app_version_from_app_config(app_dir)
app = Application(name, version, owner)
dependencies_path = app_dir + os.sep + 'dependencies.yaml'
if app_language == 'java':
dependencies_path = app_dir + os.sep + 'war' + os.sep + 'WEB-INF' + os.sep + 'dependencies.yaml'
api_specs_dir = app_dir + os.sep + 'war' + os.sep + 'WEB-INF' + os.sep + 'specs'
if os.path.exists(api_specs_dir):
for f in os.listdir(api_specs_dir):
if f.endswith('.json'):
api = API(api_specs_dir + os.sep + f)
AppScaleLogger.log('Detected API: {0}-v{1}'.format(api.name, api.version))
app.api_list.append(api)
if os.path.exists(dependencies_path):
dependencies_file = open(dependencies_path, 'r')
dependencies = yaml.load(dependencies_file)
dependencies_file.close()
if dependencies:
EagerHelper.validate_dependencies(dependencies)
app.dependencies = dependencies['dependencies']
return app
示例2: copy_app_to_host
# 需要导入模块: from appengine_helper import AppEngineHelper [as 别名]
# 或者: from appengine_helper.AppEngineHelper import get_app_id_from_app_config [as 别名]
def copy_app_to_host(cls, app_location, keyname, is_verbose):
"""Copies the given application to a machine running the Login service within
an AppScale deployment.
Args:
app_location: The location on the local filesystem where the application
can be found.
keyname: The name of the SSH keypair that uniquely identifies this
AppScale deployment.
is_verbose: A bool that indicates if we should print the commands we exec
to copy the app to the remote host to stdout.
Returns:
A str corresponding to the location on the remote filesystem where the
application was copied to.
"""
AppScaleLogger.log("Creating remote directory to copy app into")
app_id = AppEngineHelper.get_app_id_from_app_config(app_location)
remote_app_dir = "/var/apps/{0}/app".format(app_id)
cls.ssh(LocalState.get_login_host(keyname), keyname,
'mkdir -p {0}'.format(remote_app_dir), is_verbose)
AppScaleLogger.log("Tarring application")
rand = str(uuid.uuid4()).replace('-', '')[:8]
local_tarred_app = "/tmp/appscale-app-{0}-{1}.tar.gz".format(app_id, rand)
LocalState.shell("cd {0} && tar -czf {1} *".format(app_location,
local_tarred_app), is_verbose)
AppScaleLogger.log("Copying over application")
remote_app_tar = "{0}/{1}.tar.gz".format(remote_app_dir, app_id)
cls.scp(LocalState.get_login_host(keyname), keyname, local_tarred_app,
remote_app_tar, is_verbose)
os.remove(local_tarred_app)
return remote_app_tar
示例3: copy_app_to_host
# 需要导入模块: from appengine_helper import AppEngineHelper [as 别名]
# 或者: from appengine_helper.AppEngineHelper import get_app_id_from_app_config [as 别名]
def copy_app_to_host(cls, app_location, keyname, is_verbose):
"""Copies the given application to a machine running the Login service
within an AppScale deployment.
Args:
app_location: The location on the local filesystem where the application
can be found.
keyname: The name of the SSH keypair that uniquely identifies this
AppScale deployment.
is_verbose: A bool that indicates if we should print the commands we exec
to copy the app to the remote host to stdout.
Returns:
A str corresponding to the location on the remote filesystem where the
application was copied to.
"""
app_id = AppEngineHelper.get_app_id_from_app_config(app_location)
AppScaleLogger.log("Tarring application")
rand = str(uuid.uuid4()).replace('-', '')[:8]
local_tarred_app = "{0}/appscale-app-{1}-{2}.tar.gz".format(tempfile.gettempdir(),
app_id, rand)
LocalState.shell("cd '{0}' && COPYFILE_DISABLE=1 tar -czhf {1} --exclude='*.pyc' *".format(
app_location, local_tarred_app), is_verbose)
AppScaleLogger.log("Copying over application")
remote_app_tar = "{0}/{1}.tar.gz".format(cls.REMOTE_APP_DIR, app_id)
cls.scp(LocalState.get_login_host(keyname), keyname, local_tarred_app,
remote_app_tar, is_verbose)
os.remove(local_tarred_app)
return remote_app_tar
示例4: upload_app
# 需要导入模块: from appengine_helper import AppEngineHelper [as 别名]
# 或者: from appengine_helper.AppEngineHelper import get_app_id_from_app_config [as 别名]
def upload_app(cls, options):
"""Uploads the given App Engine application into AppScale.
Args:
options: A Namespace that has fields for each parameter that can be
passed in via the command-line interface.
"""
if cls.TAR_GZ_REGEX.search(options.file):
file_location = LocalState.extract_app_to_dir(options.file,
options.verbose)
created_dir = True
else:
file_location = options.file
created_dir = False
app_id = AppEngineHelper.get_app_id_from_app_config(file_location)
app_language = AppEngineHelper.get_app_runtime_from_app_config(
file_location)
AppEngineHelper.validate_app_id(app_id)
acc = AppControllerClient(LocalState.get_login_host(options.keyname),
LocalState.get_secret_key(options.keyname))
userappserver_host = acc.get_uaserver_host(options.verbose)
userappclient = UserAppClient(userappserver_host, LocalState.get_secret_key(
options.keyname))
if options.test:
username = LocalState.DEFAULT_USER
elif options.email:
username = options.email
else:
username = LocalState.get_username_from_stdin(is_admin=False)
if not userappclient.does_user_exist(username):
password = LocalState.get_password_from_stdin()
RemoteHelper.create_user_accounts(username, password, userappserver_host,
options.keyname)
if userappclient.does_app_exist(app_id):
raise AppScaleException("The given application is already running in " + \
"AppScale. Please choose a different application ID or use " + \
"appscale-remove-app to take down the existing application.")
app_admin = userappclient.get_app_admin(app_id)
if app_admin is not None and username != app_admin:
raise AppScaleException("The given user doesn't own this application" + \
", so they can't upload an app with that application ID. Please " + \
"change the application ID and try again.")
AppScaleLogger.log("Uploading {0}".format(app_id))
userappclient.reserve_app_id(username, app_id, app_language)
remote_file_path = RemoteHelper.copy_app_to_host(file_location,
options.keyname, options.verbose)
acc.done_uploading(app_id, remote_file_path)
acc.update([app_id])
# now that we've told the AppController to start our app, find out what port
# the app is running on and wait for it to start serving
AppScaleLogger.log("Please wait for your app to start serving.")
serving_host, serving_port = userappclient.get_serving_info(app_id,
options.keyname)
RemoteHelper.sleep_until_port_is_open(serving_host, serving_port,
options.verbose)
AppScaleLogger.success("Your app can be reached at the following URL: " +
"http://{0}:{1}".format(serving_host, serving_port))
if created_dir:
shutil.rmtree(file_location)
示例5: upload_app
# 需要导入模块: from appengine_helper import AppEngineHelper [as 别名]
# 或者: from appengine_helper.AppEngineHelper import get_app_id_from_app_config [as 别名]
def upload_app(cls, options):
"""Uploads the given App Engine application into AppScale.
Args:
options: A Namespace that has fields for each parameter that can be
passed in via the command-line interface.
Returns:
A tuple containing the host and port where the application is serving
traffic from.
"""
if cls.TAR_GZ_REGEX.search(options.file):
file_location = LocalState.extract_tgz_app_to_dir(options.file, options.verbose)
created_dir = True
elif cls.ZIP_REGEX.search(options.file):
file_location = LocalState.extract_zip_app_to_dir(options.file, options.verbose)
created_dir = True
elif os.path.isdir(options.file):
file_location = options.file
created_dir = False
else:
raise AppEngineConfigException(
"{0} is not a tar.gz file, a zip file, "
"or a directory. Please try uploading either a tar.gz file, a zip "
"file, or a directory.".format(options.file)
)
try:
app_id = AppEngineHelper.get_app_id_from_app_config(file_location)
except AppEngineConfigException:
# Java App Engine users may have specified their war directory. In that
# case, just move up one level, back to the app's directory.
file_location = file_location + os.sep + ".."
app_id = AppEngineHelper.get_app_id_from_app_config(file_location)
app_language = AppEngineHelper.get_app_runtime_from_app_config(file_location)
AppEngineHelper.validate_app_id(app_id)
if app_language == "java":
if AppEngineHelper.is_sdk_mismatch(file_location):
AppScaleLogger.warn(
"AppScale did not find the correct SDK jar "
+ "versions in your app. The current supported "
+ "SDK version is "
+ AppEngineHelper.SUPPORTED_SDK_VERSION
+ "."
)
acc = AppControllerClient(
LocalState.get_login_host(options.keyname), LocalState.get_secret_key(options.keyname)
)
userappclient = UserAppClient(
LocalState.get_login_host(options.keyname), LocalState.get_secret_key(options.keyname)
)
if options.test:
username = LocalState.DEFAULT_USER
elif options.email:
username = options.email
else:
username = LocalState.get_username_from_stdin(is_admin=False)
if not userappclient.does_user_exist(username):
password = LocalState.get_password_from_stdin()
RemoteHelper.create_user_accounts(
username, password, LocalState.get_login_host(options.keyname), options.keyname, clear_datastore=False
)
app_exists = userappclient.does_app_exist(app_id)
app_admin = userappclient.get_app_admin(app_id)
if app_admin is not None and username != app_admin:
raise AppScaleException(
"The given user doesn't own this application"
+ ", so they can't upload an app with that application ID. Please "
+ "change the application ID and try again."
)
if app_exists:
AppScaleLogger.log("Uploading new version of app {0}".format(app_id))
else:
AppScaleLogger.log("Uploading initial version of app {0}".format(app_id))
userappclient.reserve_app_id(username, app_id, app_language)
# Ignore all .pyc files while tarring.
if app_language == "python27":
AppScaleLogger.log("Ignoring .pyc files")
remote_file_path = RemoteHelper.copy_app_to_host(file_location, options.keyname, options.verbose)
acc.done_uploading(app_id, remote_file_path)
acc.update([app_id])
# now that we've told the AppController to start our app, find out what port
# the app is running on and wait for it to start serving
AppScaleLogger.log("Please wait for your app to start serving.")
if app_exists:
time.sleep(20) # give the AppController time to restart the app
serving_host, serving_port = userappclient.get_serving_info(app_id, options.keyname)
RemoteHelper.sleep_until_port_is_open(serving_host, serving_port, options.verbose)
#.........这里部分代码省略.........
示例6: upload_app
# 需要导入模块: from appengine_helper import AppEngineHelper [as 别名]
# 或者: from appengine_helper.AppEngineHelper import get_app_id_from_app_config [as 别名]
def upload_app(cls, options):
"""Uploads the given App Engine application into AppScale.
Args:
options: A Namespace that has fields for each parameter that can be
passed in via the command-line interface.
Returns:
A tuple containing the host and port where the application is serving
traffic from.
"""
if cls.TAR_GZ_REGEX.search(options.file):
file_location = LocalState.extract_tgz_app_to_dir(options.file,
options.verbose)
created_dir = True
elif cls.ZIP_REGEX.search(options.file):
file_location = LocalState.extract_zip_app_to_dir(options.file,
options.verbose)
created_dir = True
elif os.path.isdir(options.file):
file_location = options.file
created_dir = False
else:
raise AppEngineConfigException('{0} is not a tar.gz file, a zip file, ' \
'or a directory. Please try uploading either a tar.gz file, a zip ' \
'file, or a directory.'.format(options.file))
try:
app_id = AppEngineHelper.get_app_id_from_app_config(file_location)
except AppEngineConfigException as config_error:
AppScaleLogger.log(config_error)
if 'yaml' in str(config_error):
raise config_error
# Java App Engine users may have specified their war directory. In that
# case, just move up one level, back to the app's directory.
file_location = file_location + os.sep + ".."
app_id = AppEngineHelper.get_app_id_from_app_config(file_location)
app_language = AppEngineHelper.get_app_runtime_from_app_config(
file_location)
AppEngineHelper.validate_app_id(app_id)
if app_language == 'java':
if AppEngineHelper.is_sdk_mismatch(file_location):
AppScaleLogger.warn('AppScale did not find the correct SDK jar ' +
'versions in your app. The current supported ' +
'SDK version is ' + AppEngineHelper.SUPPORTED_SDK_VERSION + '.')
login_host = LocalState.get_login_host(options.keyname)
secret_key = LocalState.get_secret_key(options.keyname)
acc = AppControllerClient(login_host, secret_key)
if options.test:
username = LocalState.DEFAULT_USER
elif options.email:
username = options.email
else:
username = LocalState.get_username_from_stdin(is_admin=False)
if not acc.does_user_exist(username):
password = LocalState.get_password_from_stdin()
RemoteHelper.create_user_accounts(username, password,
login_host, options.keyname, clear_datastore=False)
app_exists = acc.does_app_exist(app_id)
app_admin = acc.get_app_admin(app_id)
if app_admin is not None and username != app_admin:
raise AppScaleException("The given user doesn't own this application" + \
", so they can't upload an app with that application ID. Please " + \
"change the application ID and try again.")
if app_exists:
AppScaleLogger.log("Uploading new version of app {0}".format(app_id))
else:
AppScaleLogger.log("Uploading initial version of app {0}".format(app_id))
acc.reserve_app_id(username, app_id, app_language)
# Ignore all .pyc files while tarring.
if app_language == 'python27':
AppScaleLogger.log("Ignoring .pyc files")
remote_file_path = RemoteHelper.copy_app_to_host(file_location,
options.keyname, options.verbose)
acc.done_uploading(app_id, remote_file_path)
acc.update([app_id])
# now that we've told the AppController to start our app, find out what port
# the app is running on and wait for it to start serving
AppScaleLogger.log("Please wait for your app to start serving.")
if app_exists:
time.sleep(20) # give the AppController time to restart the app
# Makes a call to the AppController to get all the stats and looks
# through them for the http port the app can be reached on.
sleep_time = 2 * cls.SLEEP_TIME
current_app = None
for i in range(cls.MAX_RETRIES):
try:
#.........这里部分代码省略.........
示例7: upload_app
# 需要导入模块: from appengine_helper import AppEngineHelper [as 别名]
# 或者: from appengine_helper.AppEngineHelper import get_app_id_from_app_config [as 别名]
def upload_app(cls, options):
"""Uploads the given App Engine application into AppScale.
Args:
options: A Namespace that has fields for each parameter that can be
passed in via the command-line interface.
Returns:
A tuple containing the host and port where the application is serving
traffic from.
"""
start_time = time.time()
if cls.TAR_GZ_REGEX.search(options.file):
file_location = LocalState.extract_tgz_app_to_dir(options.file,
options.verbose)
created_dir = True
elif cls.ZIP_REGEX.search(options.file):
file_location = LocalState.extract_zip_app_to_dir(options.file,
options.verbose)
created_dir = True
elif os.path.isdir(options.file):
file_location = options.file
created_dir = False
else:
raise AppEngineConfigException('{0} is not a tar.gz file, a zip file, ' \
'or a directory. Please try uploading either a tar.gz file, a zip ' \
'file, or a directory.'.format(options.file))
try:
app_id = AppEngineHelper.get_app_id_from_app_config(file_location)
except AppEngineConfigException:
# Java App Engine users may have specified their war directory. In that
# case, just move up one level, back to the app's directory.
file_location = file_location + os.sep + ".."
app_id = AppEngineHelper.get_app_id_from_app_config(file_location)
app_language = AppEngineHelper.get_app_runtime_from_app_config(
file_location)
AppEngineHelper.validate_app_id(app_id)
if app_language == 'java':
if AppEngineHelper.is_sdk_mismatch(file_location):
AppScaleLogger.warn('AppScale did not find the correct SDK jar ' +
'versions in your app. The current supported ' +
'SDK version is ' + AppEngineHelper.SUPPORTED_SDK_VERSION + '.')
acc = AppControllerClient(LocalState.get_login_host(options.keyname),
LocalState.get_secret_key(options.keyname))
userappserver_host = acc.get_uaserver_host(options.verbose)
userappclient = UserAppClient(userappserver_host, LocalState.get_secret_key(
options.keyname))
if options.test:
username = LocalState.DEFAULT_USER
elif options.email:
username = options.email
else:
username = LocalState.get_username_from_stdin(is_admin=False)
if not userappclient.does_user_exist(username):
password = LocalState.get_password_from_stdin()
RemoteHelper.create_user_accounts(username, password, userappserver_host,
options.keyname, clear_datastore=False)
app_exists = userappclient.does_app_exist(app_id)
app_admin = userappclient.get_app_admin(app_id)
if app_admin is not None and username != app_admin:
raise AppScaleException("The given user doesn't own this application" + \
", so they can't upload an app with that application ID. Please " + \
"change the application ID and try again.")
eager_app = None
eager_enabled = not options.disable_eager
t1 = t2 = t3 = t4 = 0
if eager_enabled:
t1 = time.time()
eager_app = EagerHelper.get_application_info(username, app_language, file_location)
valid = EagerHelper.perform_eager_validation(eager_app, options.keyname)
if valid:
AppScaleLogger.success('EAGER validation was successful. Continuing with the deployment.')
else:
AppScaleLogger.warn('EAGER validation failed. Aborting app deployment!')
end_time = time.time()
AppScaleLogger.log("Time elapsed: {0} ms".format((end_time - start_time) * 1000))
AppScaleLogger.log("Time spent on EAGER: {0} ms".format((end_time - t1) * 1000))
return
t2 = time.time()
if app_exists:
AppScaleLogger.log("Uploading new version of app {0}".format(app_id))
else:
AppScaleLogger.log("Uploading initial version of app {0}".format(app_id))
userappclient.reserve_app_id(username, app_id, app_language)
remote_file_path = RemoteHelper.copy_app_to_host(file_location,
options.keyname, options.verbose)
acc.done_uploading(app_id, remote_file_path)
acc.update([app_id])
# now that we've told the AppController to start our app, find out what port
#.........这里部分代码省略.........