Ejemplo n.º 1
0
    def __init__(self,
                 arg_sd=None,
                 arg_ed=None,
                 arg_to=None,
                 pivoted='pivoted'):
        self.log_prefix = BUCKET_FOLDER + '_' + PROJECT
        Log.init(self.log_prefix)
        Log.info(self.log_prefix + ' Opening SQL connector')
        self.project_name = PROJECT
        self.rds_conn = ProjectConnector(self.project_name,
                                         DbUsers.CalculationEng)

        self.pivoted = True if pivoted == 'pivoted' else False

        self.current_date = datetime.datetime.utcnow().date()

        self.start_date = self.current_date - datetime.timedelta(1)
        self.end_date = self.current_date - datetime.timedelta(1)

        self.start_date = arg_sd if arg_sd else self.start_date.strftime(
            '%Y-%m-%d')
        self.end_date = arg_ed if arg_ed else self.end_date.strftime(
            '%Y-%m-%d')

        self.report_name = FILE_NAME + '_' + str(self.start_date) + '_' + str(self.end_date) \
                           + ('_pivoted' if self.pivoted else '') \
                           + '_' + str(int(time.mktime(datetime.datetime.now().timetuple()))) \
                           + '.xlsx'

        self.receivers = arg_to.split(',') if arg_to else None
 def __init__(self, host, user_name, password, port=22):
     cnopts = pysftp.CnOpts()
     cnopts.hostkeys = None
     self.sftp = pysftp.Connection(host,
                                   username=user_name,
                                   password=None,
                                   cnopts=cnopts,
                                   port=port,
                                   private_key=os.path.join(
                                       os.path.dirname(
                                           os.path.realpath(__file__)),
                                       'carrefourar.pem'))
     Log.init('connected to SFTP')
Ejemplo n.º 3
0
                          ('300013',  'SANOFI_SECONDARY_MINIMUM_FACINGS', 'Product Minimum Facings Secondary', '1.0.0', '999', '999', '1990-01-01', '2150-10-15', 'PS Customer Specific', '3') ,
                          ('300014',  'SANOFI_SECONDARY_MINIMUM_FACINGS_BY_SKU', 'Product Minimum Facings Secondary By SKU', '1.0.0', '1', '999', '1990-01-01', '2150-10-15', 'PS Customer Specific', '3') ,
                          ('300015',  'SANOFI_MSL_COMPLIANCE', 'MSL Compliance', '1.0.0', '999', '999', '1990-01-01', '2150-10-15', 'PS Customer Specific', '3') ,
                          ('300016',  'SANOFI_MSL_COMPLIANCE_BY_SKU', 'MSL Compliance By SKU', '1.0.0', '1', '999', '1990-01-01', '2150-10-15', 'PS Customer Specific', '3')"""

        cur = self.aws_conn.db.cursor()
        try:
            cur.execute(kpi_calculation_stage_query)
            self.aws_conn.db.commit()
        except:
            pass
        try:
            cur.execute(kpi_entity_type_query)
            self.aws_conn.db.commit()
        except:
            pass
        # try:
        #     cur.execute(level2_query)
        #     self.aws_conn.db.commit()
        # except:
        #     pass


if __name__ == '__main__':
    Log.init('test')
    Config.init()
    for project in ['diageogh']:
        print 'start project: ' + str(project)
        kpi = AddKPIs(project)
        kpi.add_kpi_level_2()
Ejemplo n.º 4
0
        # """
        # DELETE FROM `pservice`.`kpi_targets`;
        # INSERT INTO `static`.`kpi_calculation_stage` (`pk`, `name`) VALUES ('3', 'PS Customer Specific');
        # INSERT INTO `static`.`kpi_family` (`pk`, `name`, `kpi_calculation_stage_fk`) VALUES ('21', 'assortment', '3');
        # INSERT INTO `static`.`kpi_family` (`pk`, `name`, `kpi_calculation_stage_fk`) VALUES ('22', 'sos', '3');
        # INSERT INTO `static`.`kpi_level_2` (`pk`, `type`, `client_name`, `kpi_family_fk`, `version`, `numerator_type_fk`, `denominator_type_fk`, `kpi_calculation_stage_fk`, `session_relevance`, `scene_relevance`, `planogram_relevance`, `live_session_relevance`, `live_scene_relevance`, `is_percent`) VALUES ('1', 'SOS_manufacturer_category_cooler', 'SOS Cooler', '22', '1', '3', '4', '3', '1', '0', '0', '0', '0', '0');
        # INSERT INTO `static`.`kpi_level_2` (`pk`, `type`, `client_name`, `kpi_family_fk`, `version`, `numerator_type_fk`, `denominator_type_fk`, `kpi_calculation_stage_fk`, `session_relevance`, `scene_relevance`, `planogram_relevance`, `live_session_relevance`, `live_scene_relevance`, `is_percent`) VALUES ('2', 'SOS_manufacturer_category_ambient', 'SOS Ambient', '22', '1', '3', '4', '3', '1', '0', '0', '0', '0', '0');

        # INSERT INTO `static`.`kpi_entity_type` (`pk`, `name`, `table_name`) VALUES ('1010', 'assortment', 'pservice.assortment');

        # """

        for statement in statements.split('\n'):
            if len(statement):
                cur = self.aws_conn.db.cursor()
                print statement
                cur.execute(statement)
                self.aws_conn.db.commit()


if __name__ == '__main__':
    Log.init('Run SQL')
    Config.init()
    for project in ['molsoncoorshr-sand']:
        print 'Start Project: ' + str(project)
        sql_to_run = MOLSONCOORSHRRunSql(project)
        sql_to_run.run_it()



Ejemplo n.º 5
0
        Log.info("Execution targets are uploaded successfully. " +
                 ("Incorrect template data were ignored (see above)"
                  if self.invalid_stores or self.stores_with_invalid_dates
                  or self.stores_with_invalid_targets else ""))

    @staticmethod
    def parse_arguments():
        """
        This function gets the arguments from the command line / configuration in case of a local run and manages them.
        To run it locally just copy: -e prod --file **your file path** to the configuration parameters
        :return:
        """
        parser = argparse.ArgumentParser(description='Execution Contract')
        parser.add_argument('--env',
                            '-e',
                            type=str,
                            help='The environment - dev/int/prod')
        parser.add_argument('--file',
                            type=str,
                            required=True,
                            help='The targets template')
        return parser.parse_args()


if __name__ == '__main__':
    # LoggerInitializer.init(PROJECT)
    Log.init(PROJECT, 'CCRU Contract Execution targets upload')
    Config.init()
    CCRU_SANDContract().parse_and_upload_file()
 def save_file(self, file_path, file_to_zip):
     with self.sftp.cd(file_path):
         self.sftp.put(file_to_zip)
         Log.init('upload file success')