Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def show_connection():
"""Show which Service Fabric cluster this sfctl instance is connected to."""
endpoint = client_endpoint()
if not endpoint:
return None
return endpoint
def upload(path, imagestore_string='fabric:ImageStore', show_progress=False, timeout=300, # pylint: disable=too-many-locals,missing-docstring,too-many-arguments,too-many-branches,too-many-statements
compress=False, keep_compressed=False, compressed_location=None):
from sfctl.config import (client_endpoint, no_verify_setting, ca_cert_info,
cert_info)
import requests
path = _normalize_path(path)
if compressed_location is not None:
compressed_location = _normalize_path(compressed_location)
abspath = validate_app_path(path)
basename = os.path.basename(abspath)
endpoint = client_endpoint()
cert = cert_info()
ca_cert = True
if no_verify_setting():
ca_cert = False
elif ca_cert_info():
ca_cert = ca_cert_info()
if all([no_verify_setting(), ca_cert_info()]):
raise CLIError('Cannot specify both CA cert info and no verify')
if not compress and (keep_compressed or compressed_location is not None):
raise CLIError('--keep-compressed and --compressed-location options are only applicable '
'if the --compress option is set')
compressed_pkg_location = None
created_dir_path = None
def create(_):
"""Create a client for Service Fabric APIs."""
endpoint = client_endpoint()
if not endpoint:
raise CLIError('Connection endpoint not found. '
'Before running sfctl commands, connect to a cluster using '
'the "sfctl cluster select" command. '
'If you are seeing this message on Linux after already selecting a cluster, '
'you may need to run the command with sudo.')
no_verify = no_verify_setting()
if security_type() == 'aad':
auth = AdalAuthentication(no_verify)
else:
cert = cert_info()
ca_cert = ca_cert_info()
auth = ClientCertAuthentication(cert, ca_cert, no_verify)
time_since_last_check = datetime.utcnow() - last_check_time
allowable_time = timedelta(hours=SF_CLI_VERSION_CHECK_INTERVAL)
if allowable_time > time_since_last_check:
# Don't perform any checks
return True
else:
# If last_check_time is None, this means that we've not yet set a time, so it's never
# been checked. Set the initial value.
set_cluster_version_check_time()
cluster_auth = get_cluster_auth()
auth = _get_client_cert_auth(cluster_auth['pem'], cluster_auth['cert'], cluster_auth['key'],
cluster_auth['ca'], cluster_auth['no_verify'])
client = ServiceFabricClientAPIs(auth, base_url=client_endpoint())
sfctl_version = get_sfctl_version()
# Update the timestamp of the last cluster version check
set_cluster_version_check_time()
if dummy_cluster_version is None:
# This command may fail for various reasons. Most common reason as of writing this comment
# is that the corresponding get_cluster_version API on the cluster doesn't exist.
try:
logger.info('Performing cluster version check')
cluster_version = client.get_cluster_version().version
except: # pylint: disable=bare-except
ex = exc_info()[0]
logger.info('Check cluster version failed due to error: %s', str(ex))