def deploy_sync_copy_script_to_multiple_equipments(request): """ Deploy configuration on equipment(s) Default source: TFTP SERVER Default destination: apply config (running-config) Default protocol: tftp Receives script """ try: script = request.DATA["script_data"] id_equips = request.DATA["id_equips"] #Check equipment permissions for id_equip in id_equips: #TODO pass output_data = dict() script_file = facade.create_file_from_script(script, USER_SCRIPTS_REL_PATH) for id_equip in id_equips: equipment_id = int(id_equip) lockvar = LOCK_EQUIPMENT_DEPLOY_CONFIG_USERSCRIPT % (equipment_id) output_data[equipment_id] = dict() try: output_data[equipment_id]["output"] = facade.deploy_config_in_equipment_synchronous(script_file, equipment_id, lockvar) output_data[equipment_id]["status"] = "OK" except Exception, e: log.error("Error applying script file to equipment_id %s: %s" %(equipment_id, e)) output_data[equipment_id]["output"] = str(e) output_data[equipment_id]["status"] = "ERROR" return Response(output_data)
def deploy_sync_copy_script_to_equipment(request, equipment_id): """ Deploy configuration on equipment(s) Default source: TFTP SERVER Default destination: apply config (running-config) Default protocol: tftp Receives script """ try: script = request.DATA['script_data'] request_identifier = request.DATA['identifier'] script_file = facade.create_file_from_script( script, USER_SCRIPTS_REL_PATH) equipment_id = int(equipment_id) lockvar = LOCK_EQUIPMENT_DEPLOY_CONFIG_USERSCRIPT % (equipment_id) data = dict() if request_identifier is not None: queue_manager = QueueManager(broker_vhost='tasks', queue_name='tasks.aclapi', exchange_name='tasks.aclapi', routing_key='tasks.aclapi') data = {'timestamp': int(time.time())} queue_manager.append({ 'action': queue_keys.BEGIN_DEPLOY_SYNC_SCRIPT, 'identifier': request_identifier, 'data': data}) queue_manager.send() data['output'] = facade.deploy_config_in_equipment_synchronous( script_file, equipment_id, lockvar) data['status'] = 'OK' if request_identifier is not None: queue_manager = QueueManager(broker_vhost='tasks', queue_name='tasks.aclapi', exchange_name='tasks.aclapi', routing_key='tasks.aclapi') data = {'timestamp': int(time.time()), 'status': 'OK'} queue_manager.append({'action': queue_keys.END_DEPLOY_SYNC_SCRIPT, 'identifier': request_identifier, 'data': data}) queue_manager.send() return Response(data) except KeyError, key: log.error(key) raise exceptions.InvalidKeyException(key)
def deploy_sync_copy_script_to_equipment(request, equipment_id): """ Deploy configuration on equipment(s) Default source: TFTP SERVER Default destination: apply config (running-config) Default protocol: tftp Receives script """ try: script = request.DATA["script_data"] script_file = facade.create_file_from_script(script, USER_SCRIPTS_REL_PATH) equipment_id = int(equipment_id) lockvar = LOCK_EQUIPMENT_DEPLOY_CONFIG_USERSCRIPT % (equipment_id) data = dict() data["output"] = facade.deploy_config_in_equipment_synchronous(script_file, equipment_id, lockvar) data["status"] = "OK" return Response(data) except KeyError, key: log.error(key) raise exceptions.InvalidKeyException(key)
def deploy_sync_copy_script_to_multiple_equipments(request): """ Deploy configuration on equipment(s) Default source: TFTP SERVER Default destination: apply config (running-config) Default protocol: tftp Receives script """ try: script = request.DATA["script_data"] id_equips = request.DATA["id_equips"] #Check equipment permissions for id_equip in id_equips: #TODO pass output_data = dict() script_file = facade.create_file_from_script(script, USER_SCRIPTS_REL_PATH) for id_equip in id_equips: equipment_id = int(id_equip) lockvar = LOCK_EQUIPMENT_DEPLOY_CONFIG_USERSCRIPT % (equipment_id) output_data[equipment_id] = dict() try: output_data[equipment_id][ "output"] = facade.deploy_config_in_equipment_synchronous( script_file, equipment_id, lockvar) output_data[equipment_id]["status"] = "OK" except Exception, e: log.error("Error applying script file to equipment_id %s: %s" % (equipment_id, e)) output_data[equipment_id]["output"] = str(e) output_data[equipment_id]["status"] = "ERROR" return Response(output_data)