class ResourceGetProductionServers(AxolResource): """docstring for ResourceGetProductionServers Must implement: _show_help self.methods = {<method_type>: function} self.source = {keyword} request_{keyword}_api calculate_new_fields """ required_post = {'network': (True, u's'), 'profile': (False, u's')} def __init__(self): super(ResourceGetProductionServers, self).__init__() self.source = 'get_production_servers' self.local = True def _show_help(self): return { 'Help': { 'api': '/api/get_production_servers', 'method': 'POST', 'required data': { 'network': '<internal, external>' }, 'version': api } } @staticmethod @app.route('/api/get_production_servers', methods=['POST', 'GET']) def api_get_production_servers(): if request.method == 'GET': return jsonify(ResourceGetProductionServers()._show_help()) try: data = CommonResource.handle_request( request, ResourceGetProductionServers.required_post) except Exception, e: CommonLogger.log(e, 'get_production_servers', 'api_get_production_servers') return jsonify({'response': {'error': str(e)}}) try: roledefs = generate_base_roles(data.network) server_dict = ResourceGetProductionServers.create_server_list( roledefs, 'production_servers') except Exception, e: CommonLogger.log(e, 'get_production_servers', 'api_get_production_servers') return jsonify({'response': {'error': str(e)}})
#! /usr/bin/env python #-----------------------------------------# # Written by Kelcey Damage, 2013 #+ import os, subprocess from paramiko import SSHClient, AutoAddPolicy import time import sys sys.path.append("/Volumes/git/axol") from axol_common.distributed import axol_roledefs #folder_to_be_archived = '/home/mysql_backup_v2.py' roledefs = axol_roledefs.generate_base_roles('external') class DeployTool(object): """docstring for ClassName""" def __init__(self, remote_user, remote_password, remote_server): self.remote_user = remote_user self.remote_password = remote_password self.remote_server = remote_server self.client = SSHClient() self.client.set_missing_host_key_policy(AutoAddPolicy()) self.client.load_system_host_keys() self.client.connect( hostname=self.remote_server, username=self.remote_user, password=self.remote_password )
or not 'network' in request.json: return jsonify({'error': 'missing required data'}) response_object = GenericDataObject(request.json) roledefs = literal_eval(DW.cache_key_get('roledefs')) if response_object.action == 'remove': changed_roles = {} try: for name in roledefs: if response_object.server_name in name: host = roledefs[name][response_object.network] for name in roledefs: if host in roledefs[name]: roledefs[name].remove(host) changed_roles[name] = roledefs[name] DW.cache_key_set('roledefs', roledefs) except Exception, e: return jsonify({'error':e}) return jsonify({ 'host':host, 'changed_roles': changed_roles }) elif response_object.action == 'list': return jsonify(roledefs) elif response_object.action == 'restore': roledefs = generate_base_roles() DW.cache_key_set('roledefs', roledefs) return jsonify(roledefs) elif response_object.action == 'list_ec2': roledefs = generate_base_roles() return jsonify(roledefs)
class ResourceAdmin(AxolResource): """docstring for ResourceProcessor Must implement: _show_help self.source = {keyword} request_{keyword}_api calculate_new_fields """ def __init__(self): super(ResourceAdmin, self).__init__() self.source = 'version' self.local = True def _show_help(self): return { 'Help': { 'roles administration': { 'api': '/api/system/admin/roles', 'available_methods': { 'POST': { 'required data': [ 'network=<internal, external>', 'action=<remove, list, list_ec2, restore>', 'server_name=<name of server>' ] } } } } } @staticmethod @app.route('/api/manage_alerts', methods=['POST', 'GET']) def request_admin_api(): print request.method if request.method == 'GET': return jsonify(ResourceAdmin()._show_help()) else: print request.json if not 'server_name' in request.json \ or not 'action' in request.json \ or not 'network' in request.json: return jsonify({'error': 'missing required data'}) response_object = GenericDataObject(request.json) roledefs = literal_eval(DW.cache_key_get('roledefs')) if response_object.action == 'remove': changed_roles = {} try: for name in roledefs: if response_object.server_name in name: host = roledefs[name][response_object.network] for name in roledefs: if host in roledefs[name]: roledefs[name].remove(host) changed_roles[name] = roledefs[name] DW.cache_key_set('roledefs', roledefs) except Exception, e: return jsonify({'error': e}) return jsonify({'host': host, 'changed_roles': changed_roles}) elif response_object.action == 'list': return jsonify(roledefs) elif response_object.action == 'restore': roledefs = generate_base_roles() DW.cache_key_set('roledefs', roledefs) return jsonify(roledefs)
print request.json if not 'server_name' in request.json \ or not 'action' in request.json \ or not 'network' in request.json: return jsonify({'error': 'missing required data'}) response_object = GenericDataObject(request.json) roledefs = literal_eval(DW.cache_key_get('roledefs')) if response_object.action == 'remove': changed_roles = {} try: for name in roledefs: if response_object.server_name in name: host = roledefs[name][response_object.network] for name in roledefs: if host in roledefs[name]: roledefs[name].remove(host) changed_roles[name] = roledefs[name] DW.cache_key_set('roledefs', roledefs) except Exception, e: return jsonify({'error': e}) return jsonify({'host': host, 'changed_roles': changed_roles}) elif response_object.action == 'list': return jsonify(roledefs) elif response_object.action == 'restore': roledefs = generate_base_roles() DW.cache_key_set('roledefs', roledefs) return jsonify(roledefs) elif response_object.action == 'list_ec2': roledefs = generate_base_roles() return jsonify(roledefs)
#! /usr/bin/env python #-----------------------------------------# # Written by Kelcey Damage, 2013 #+ import os, subprocess from paramiko import SSHClient, AutoAddPolicy import time import sys sys.path.append("/Volumes/git/axol") from axol_common.distributed import axol_roledefs #folder_to_be_archived = '/home/mysql_backup_v2.py' roledefs = axol_roledefs.generate_base_roles('external') class DeployTool(object): """docstring for ClassName""" def __init__(self, remote_user, remote_password, remote_server): self.remote_user = remote_user self.remote_password = remote_password self.remote_server = remote_server self.client = SSHClient() self.client.set_missing_host_key_policy(AutoAddPolicy()) self.client.load_system_host_keys() self.client.connect(hostname=self.remote_server, username=self.remote_user, password=self.remote_password) def restart_node(self):