57 lines
2 KiB
Text
57 lines
2 KiB
Text
|
#!/usr/bin/python
|
||
|
|
||
|
import sys
|
||
|
import os
|
||
|
import argparse
|
||
|
from eos_downloader.cvp import CvFeatureManager, CvpAuthenticationItem
|
||
|
from loguru import logger
|
||
|
|
||
|
ARISTA_AVD_CV_TOKEN = os.getenv('ARISTA_AVD_CV_TOKEN', '')
|
||
|
|
||
|
|
||
|
def read_cli():
|
||
|
parser = argparse.ArgumentParser(description='Cloudvision Image uploader script.')
|
||
|
parser.add_argument('--token', required=False,
|
||
|
default=ARISTA_AVD_CV_TOKEN,
|
||
|
help='CVP Authentication token - can use ENV:ARISTA_AVD_CV_TOKEN')
|
||
|
parser.add_argument('--image', required=False,
|
||
|
default='EOS', help='Type of EOS image required')
|
||
|
parser.add_argument('--cloudvision', required=True,
|
||
|
help='Cloudvision instance where to upload image')
|
||
|
parser.add_argument('--create_bundle', required=False, action='store_true',
|
||
|
help="Option to create image bundle with new uploaded image")
|
||
|
parser.add_argument('--timeout', required=False,
|
||
|
default=1200,
|
||
|
help='Timeout connection. Default is set to 1200sec')
|
||
|
parser.add_argument('--verbose', required=False,
|
||
|
default='info', help='Script verbosity')
|
||
|
return parser.parse_args()
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
|
||
|
cli_options = read_cli()
|
||
|
|
||
|
logger.remove()
|
||
|
logger.add(sys.stderr, level=str(cli_options.verbose).upper())
|
||
|
|
||
|
cv_authentication = CvpAuthenticationItem(
|
||
|
server=cli_options.cloudvision,
|
||
|
token=cli_options.token,
|
||
|
port=443,
|
||
|
timeout=cli_options.timeout,
|
||
|
validate_cert=False
|
||
|
)
|
||
|
|
||
|
my_cvp_uploader = CvFeatureManager(authentication=cv_authentication)
|
||
|
result_upload = my_cvp_uploader.upload_image(cli_options.image)
|
||
|
if result_upload and cli_options.create_bundle:
|
||
|
bundle_name = os.path.basename(cli_options.image)
|
||
|
logger.info('Creating image bundle {}'.format(bundle_name))
|
||
|
my_cvp_uploader.create_bundle(
|
||
|
name=bundle_name,
|
||
|
images_name=[bundle_name]
|
||
|
)
|
||
|
|
||
|
sys.exit(0)
|