def delete_all_route_tables(self, vpc_id, include_main_route=False, logger=None): route_table_ids, assoc_ids = self.get_all_route_table_ids_and_assoc_ids( vpc_id, include_main_route=include_main_route) logger and logger.info( "......Disassociating Route Tables: {num}".format( num=len(assoc_ids))) for assoc_id in assoc_ids: resp = self.jclient.vpc.disassociate_route_table( association_id=assoc_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp) logger and logger.info("......Deleting Route Tables: {num}".format( num=len(route_table_ids))) for route_table_id in route_table_ids: resp = self.jclient.vpc.delete_route_table( route_table_id=route_table_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_all_addresses(self, logger=None): alloc_ids, assoc_ids = self.get_all_address_alloc_and_assoc_ids() logger and logger.info("......Cleaning Addresses: {num}".format(num=len(alloc_ids))) for assoc_id in assoc_ids: resp = self.jclient.vpc.disassociate_address(association_id=assoc_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp) for alloc_id in alloc_ids: resp = self.jclient.vpc.release_address(allocation_id=alloc_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def describe_route_tables(self, route_table_ids=None, logger=None): resp = self.jclient.vpc.describe_route_tables( route_table_ids=route_table_ids) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_route_table(self, route_table_id, logger=None): resp = self.jclient.vpc.delete_route_table( route_table_id=route_table_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def create_vpc(self, cidr_block, logger=None): resp = self.jclient.vpc.create_vpc(cidr_block=cidr_block) if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item(('CreateVpcResponse', 'vpc', 'vpcId'), resp) else: logger and logger.error(resp)
def associate_route_table(self, subnet_id, route_table_id, logger=None): resp = self.jclient.vpc.associate_route_table(route_table_id=route_table_id, subnet_id=subnet_id) if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item(('AssociateRouteTableResponse', 'associationId'), resp) else: logger and logger.error(resp)
def allocate_address(self, logger=None): resp = self.jclient.vpc.allocate_address(domain='vpc') if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item(('AllocateAddressResponse', 'allocationId'), resp) else: logger and logger.error(resp)
def create_subnet(self, vpc_id, cidr_block, logger=None): resp = self.jclient.vpc.create_subnet(vpc_id=vpc_id, cidr_block=cidr_block) if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item(('CreateSubnetResponse', 'subnet', 'subnetId'), resp) else: logger and logger.error(resp)
def associate_address(self, address_allocation_id, instance_id, logger=None): resp = self.jclient.vpc.associate_address(allocation_id=address_allocation_id, instance_id=instance_id) if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item(('AssociateAddressResponse', 'associationId'), resp) else: logger and logger.error(resp)
def delete_all_route_tables(self, vpc_id, include_main_route=False, logger=None): route_table_ids, assoc_ids = self.get_all_route_table_ids_and_assoc_ids(vpc_id, include_main_route=include_main_route) logger and logger.info("......Disassociating Route Tables: {num}".format(num=len(assoc_ids))) for assoc_id in assoc_ids: resp = self.jclient.vpc.disassociate_route_table(association_id=assoc_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp) logger and logger.info("......Deleting Route Tables: {num}".format(num=len(route_table_ids))) for route_table_id in route_table_ids: resp = self.jclient.vpc.delete_route_table(route_table_id=route_table_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def create_security_group(self, vpc_id, name, description, logger=None): resp = self.jclient.vpc.create_security_group(vpc_id=vpc_id, group_name=name, group_description=description) if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item(('CreateSecurityGroupResponse', 'groupId'), resp) else: logger and logger.error(resp)
def create_route_table(self, vpc_id, logger=None): resp = self.jclient.vpc.create_route_table(vpc_id=vpc_id) if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item(('CreateRouteTableResponse', 'routeTable', 'routeTableId'), resp) else: logger and logger.error(resp)
def create_ingress_rule(self, security_group_id, ip_permissions=None, logger=None): if not ip_permissions: ip_permissions = '[{"IpProtocol": "icmp", "FromPort": 80, "ToPort": 81, "IpRanges":[{"CidrIp": "0.0.0.0/0"}]}]' resp = self.jclient.vpc.authorize_security_group_ingress(group_id=security_group_id, ip_permissions=ip_permissions) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_all_instances(self, vpc_id, logger=None): instance_ids = self.get_all_instance_ids(vpc_id) logger and logger.info("......Cleaning Instances: {num}".format(num=len(instance_ids))) for instance_id in instance_ids: resp = self.jclient.compute.terminate_instances(instance_ids=instance_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_all_security_groups(self, vpc_id, include_default_group=False, logger=None): ids = self.get_all_security_group_ids(vpc_id, include_default_group=include_default_group) logger and logger.info("......Cleaning Security Groups: {num}".format(num=len(ids))) for secgrp_id in ids: resp = self.jclient.vpc.delete_security_group(group_id=secgrp_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def create_subnet(self, vpc_id, cidr_block, logger=None): resp = self.jclient.vpc.create_subnet(vpc_id=vpc_id, cidr_block=cidr_block) if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item( ('CreateSubnetResponse', 'subnet', 'subnetId'), resp) else: logger and logger.error(resp)
def create_route_table(self, vpc_id, logger=None): resp = self.jclient.vpc.create_route_table(vpc_id=vpc_id) if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item( ('CreateRouteTableResponse', 'routeTable', 'routeTableId'), resp) else: logger and logger.error(resp)
def associate_route_table(self, subnet_id, route_table_id, logger=None): resp = self.jclient.vpc.associate_route_table( route_table_id=route_table_id, subnet_id=subnet_id) if utils.get_status_code(resp): logger and logger.info(resp) return utils.get_item( ('AssociateRouteTableResponse', 'associationId'), resp) else: logger and logger.error(resp)
def delete_all_subnets(self, vpc_id, logger=None): subnet_ids = self.get_all_subnet_ids(vpc_id) logger and logger.info("......Cleaning Subnets: {num}".format(num=len(subnet_ids))) for subnet_id in subnet_ids: resp = self.jclient.vpc.delete_subnet(subnet_id=subnet_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_vpc(self, vpc_id, force=False, logger=None): self.instance_manager.delete_all_instances(vpc_id, logger=logger) self.security_group_manager.delete_all_security_groups(vpc_id, include_default_group=False, logger=logger) self.route_table_manager.delete_all_route_tables(vpc_id, include_main_route=False, logger=logger) self.subnet_manager.delete_all_subnets(vpc_id, logger=logger) resp = self.jclient.vpc.delete_vpc(vpc_id=vpc_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_all_subnets(self, vpc_id, logger=None): subnet_ids = self.get_all_subnet_ids(vpc_id) logger and logger.info( "......Cleaning Subnets: {num}".format(num=len(subnet_ids))) for subnet_id in subnet_ids: resp = self.jclient.vpc.delete_subnet(subnet_id=subnet_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_all_instances(self, vpc_id, logger=None): instance_ids = self.get_all_instance_ids(vpc_id) logger and logger.info( "......Cleaning Instances: {num}".format(num=len(instance_ids))) for instance_id in instance_ids: resp = self.jclient.compute.terminate_instances( instance_ids=instance_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def create_ingress_rule(self, security_group_id, ip_permissions=None, logger=None): if not ip_permissions: ip_permissions = '[{"IpProtocol": "icmp", "FromPort": 80, "ToPort": 81, "IpRanges":[{"CidrIp": "0.0.0.0/0"}]}]' resp = self.jclient.vpc.authorize_security_group_ingress( group_id=security_group_id, ip_permissions=ip_permissions) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def add_route(selfi, instance_id, route_table_id, destination_cidr_block, logger=None): resp = self.jclient.vpc.create_route( instance_id=instance_id, route_table_id=route_table_id, destination_cidr_block=destination_cidr_block) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_all_vpcs(self, force=False, logger=None): vpc_ids = self.get_all_vpc_ids(logger=logger) logger and logger.info("......Cleaning VPCs: {num}".format(num=len(vpc_ids))) for vpc_id in vpc_ids: if force: gm = generic_manager.GenericManager(self.jclient) gm.delete_vpc(vpc_id, logger=logger) else: resp = self.jclient.vpc.delete_vpc(vpc_id=vpc_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def stop(product_name): exit_code = 0 log.debug('Let\'s going stop [' + product_name + ']') global download_store_path # # ----- pentaho-server-ce ----- # if product_name in 'pentaho-server-ce': product_start_script_win = 'stop-pentaho.bat' product_start_script_lix = 'stop-pentaho.sh' product_dir = os.path.join(download_store_path, product_name) if not os.path.exists(product_dir): log.warning('The folder [' + product_dir + '] does not exist!') sys.exit(exit_code) if platform.system() is 'Windows': product_start_script = os.path.join(product_dir, 'pentaho-server', product_start_script_win) else: product_start_script = os.path.join(product_dir, 'pentaho-server', product_start_script_lix) # Let's invoke the start log.debug('Start script: [' + product_start_script + ']') return_code = subprocess.call(product_start_script, shell=True) log.debug('Script executed. Return code [' + str(return_code) + '].') url = 'http://localhost:8080/pentaho' # 120 => 2 minutes t = 0 while True: http_code = ut.get_status_code(url) log.debug('Pentaho server status: [' + str(http_code) + ']') if http_code == 404: log.debug('Pentaho server is STOPPED.') break elif t == 120: log.debug( 'We reach the amount of tentatives to stop Pentaho Server, but seems RUNNING!!' ) exit_code = 1 break else: log.debug('Pentaho server is NOT stopped. Let\'s wait!!') t += 1 time.sleep(1) exit(exit_code) else: log.debug('NOT SUPPORTED!')
def is_chuncked(self): if self._is_chuncked is not None: return self._is_chuncked if self.content_length is not None: chunked = False elif self.req.version() <= (1, 0): chunked = False elif utils.get_status_code(self.headers.status) in (204, 304): chunked = False else: chunked = True self.headers.append(('Transfer-Encoding', 'chunked')) self._is_chuncked = chunked return chunked
def describe_subnets(self, subnet_ids=None, logger=None): resp = self.jclient.vpc.describe_subnets(subnet_ids=subnet_ids) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def _get_status_code(self): return utils.get_status_code(self.url)
def start_pentaho_server_ce(download_store_path): log.info('Starting Pentaho Server CE.') product_start_script_win = 'start-pentaho.bat' product_start_script_lix = 'start-pentaho.sh' product_dir = os.path.join(download_store_path, 'pentaho-server-ce') pentaho_server_dir = os.path.normpath(product_dir + '\pentaho-server') if not os.path.exists(product_dir): log.debug('The folder [' + product_dir + '] does not exist!') sys.exit(2) if platform.system() is 'Windows': # Copy start-pentaho.bat to pentaho-server product_start_script = os.path.join(product_dir, 'pentaho-server', product_start_script_win) log.debug('Delete file [' + product_start_script + '].') if os.path.isfile(product_start_script): os.remove(product_start_script) local_resource = os.path.normpath('.\\resource\\' + product_start_script_win) log.debug('Copy files.') log.debug('Copy files. File1: [' + local_resource + ']') log.debug('Copy files. File2: [' + pentaho_server_dir + ']') shutil.copy2(local_resource, pentaho_server_dir) else: # Copy start-pentaho.bat to pentaho-server product_start_script = os.path.join(product_dir, 'pentaho-server', product_start_script_lix) log.debug('Delete file [' + product_start_script + '].') if os.path.isfile(product_start_script): os.remove(product_start_script) local_resource = os.path.normpath('.\\resource\\' + product_start_script_lix) log.debug('Copy files.') log.debug('Copy files. File1: [' + local_resource + ']') log.debug('Copy files. File2: [' + pentaho_server_dir + ']') shutil.copy2(local_resource, pentaho_server_dir) # copy cgg-sample-data to 'pentaho server\pentaho solutions\system\default content' local_resource_cgg_file = os.path.normpath('.\\resource\\' + 'cgg-sample-data.zip') default_content_path = os.path.join( pentaho_server_dir, 'pentaho-solutions\system\default-content') log.debug('Location of cgg [' + local_resource_cgg_file + '].') log.debug('Location of default-content [' + default_content_path + '].') shutil.copy2(local_resource_cgg_file, default_content_path) # Let's invoke the start log.debug('Start script: [' + product_start_script + ']') return_code = subprocess.Popen(product_start_script, shell=True).wait() log.debug('Script executed. Return code [' + str(return_code) + '].') if return_code != 0: log.debug('Something when wrong.') exit(return_code) log.debug('Waiting some timing for server start-up!') time.sleep(120) log.debug('Stop waiting, lets check the server') url = 'http://localhost:8080/pentaho' # 360 => 6 minutes t = 0 exit_code = 0 while True: http_code = utils.get_status_code(url) log.debug('Pentaho server status: [' + str(http_code) + ']') if http_code == 200: log.debug('Pentaho server is READY.') time.sleep(120) # Wait some time for the Pentaho Server stabilize. break elif t == 360: log.debug( 'We reach the amount of tentatives to connect to Pentaho Server, but seems SHUTDOWN!!' ) exit_code = 1 break else: log.debug('Pentaho server is NOT ready. Let\'s wait!!') t += 1 time.sleep(2) log.debug('Trying again!! Check server started.') exit(exit_code)
def delete_vpc(self, vpc_id, logger=None): resp = self.jclient.vpc.delete_vpc(vpc_id=vpc_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def describe_vpcs(self, vpc_ids=None, logger=None): resp = self.jclient.vpc.describe_vpcs(vpc_ids=vpc_ids) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def describe_security_groups(self, group_ids=None, logger=None): resp = self.jclient.vpc.describe_security_groups(group_ids=group_ids) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def release_address(self, address_allocation_id, logger=None): resp = self.jclient.vpc.release_address(allocation_id=address_allocation_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def add_route(selfi, instance_id, route_table_id, destination_cidr_block, logger=None): resp = self.jclient.vpc.create_route(instance_id=instance_id, route_table_id=route_table_id, destination_cidr_block=destination_cidr_block) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def describe_route_tables(self, route_table_ids=None, logger=None): resp = self.jclient.vpc.describe_route_tables(route_table_ids=route_table_ids) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_subnet(self, subnet_id, logger=None): resp = self.jclient.vpc.delete_subnet(subnet_id=subnet_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_route_table(self, route_table_id, logger=None): resp = self.jclient.vpc.delete_route_table(route_table_id=route_table_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def describe_addresses(self, address_allocation_ids, logger=None): resp = self.jclient.vpc.describe_addresses(allocation_ids=address_allocation_ids) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def disassociate_address(self, address_association_id, logger=None): resp = self.jclient.vpc.disassociate_address(association_id=address_association_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)
def delete_security_group(self, group_id, logger=None): resp = self.jclient.vpc.delete_security_group(group_id=group_id) if utils.get_status_code(resp): logger and logger.info(resp) else: logger and logger.error(resp)