Example #1
0
    def getSQL(self, gid, sid, data, tid, rid):
        """
        This function will generate sql from model data
        """

        if rid is not None:
            SQL = render_template("/".join(
                [self.template_path, self._PROPERTIES_SQL]),
                                  rid=rid)
            status, res = self.conn.execute_dict(SQL)
            if not status:
                return internal_server_error(errormsg=res)
            if len(res['rows']) == 0:
                return gone(
                    gettext("""Could not find the rule in the table."""))
            res_data = parse_rule_definition(res)

            old_data = res_data
            SQL = render_template("/".join(
                [self.template_path, self._UPDATE_SQL]),
                                  data=data,
                                  o_data=old_data)
        else:
            SQL = render_template("/".join(
                [self.template_path, self._CREATE_SQL]),
                                  data=data)
        return SQL, data['name'] if 'name' in data else old_data['name']
Example #2
0
    def get_sql_from_diff(self,
                          gid,
                          sid,
                          did,
                          scid,
                          tid,
                          oid,
                          data=None,
                          source_schema=None,
                          diff_schema=None,
                          drop_sql=False):

        if drop_sql:
            SQL = self.delete(gid=gid,
                              sid=sid,
                              did=did,
                              scid=scid,
                              tid=tid,
                              rid=oid,
                              only_sql=True)
        else:
            SQL = render_template("/".join(
                [self.template_path, 'properties.sql']),
                                  rid=oid)
            status, res = self.conn.execute_dict(SQL)
            if not status:
                return internal_server_error(errormsg=res)
            if len(res['rows']) == 0:
                return gone(
                    gettext("""Could not find the rule in the table."""))
            res_data = parse_rule_definition(res)

            SQL = ''

            if data:
                if source_schema:
                    if 'statements' in data:
                        # Replace the source schema with the target schema
                        data['statements'] = data['statements'].replace(
                            source_schema, diff_schema)
                old_data = res_data
                SQL = render_template("/".join(
                    [self.template_path, 'update.sql']),
                                      data=data,
                                      o_data=old_data)
            else:
                if diff_schema:
                    if 'statements' in res_data:
                        # Replace the source schema with the target schema
                        res_data['statements'] = \
                            res_data['statements'].replace(
                                res_data['schema'], diff_schema)
                    res_data['schema'] = diff_schema

                SQL = render_template("/".join(
                    [self.template_path, 'create.sql']),
                                      data=res_data,
                                      display_comments=True)

        return SQL
Example #3
0
    def getSQL(self, gid, sid, data, tid, rid):
        """
        This function will generate sql from model data
        """

        if rid is not None:
            servertype = 'hawq' if 'HAWQ' in self.manager.ver else self.manager.server_type
            SQL = render_template("/".join(
                [self.template_path, 'properties.sql']),
                                  rid=rid,
                                  servertype=servertype)
            status, res = self.conn.execute_dict(SQL)
            if not status:
                return internal_server_error(errormsg=res)
            if len(res['rows']) == 0:
                return gone(
                    gettext("""Could not find the rule in the table."""))
            res_data = parse_rule_definition(res)

            old_data = res_data
            SQL = render_template("/".join([self.template_path, 'update.sql']),
                                  data=data,
                                  o_data=old_data)
        else:
            SQL = render_template("/".join([self.template_path, 'create.sql']),
                                  data=data)
        return SQL, data['name'] if 'name' in data else old_data['name']
Example #4
0
    def get_sql_from_diff(self, **kwargs):
        """
        This function is used to get the DDL/DML statements.
        :param kwargs
        :return:
        """
        gid = kwargs.get('gid')
        sid = kwargs.get('sid')
        did = kwargs.get('did')
        scid = kwargs.get('scid')
        tid = kwargs.get('oid')
        oid = kwargs.get('oid')
        data = kwargs.get('data', None)
        source_schema = kwargs.get('source_schema', None)
        diff_schema = kwargs.get('diff_schema', None)
        drop_sql = kwargs.get('drop_sql', False)

        if drop_sql:
            SQL = self.delete(gid=gid, sid=sid, did=did,
                              scid=scid, tid=tid,
                              rid=oid, only_sql=True)
        else:
            SQL = render_template("/".join(
                [self.template_path, 'properties.sql']), rid=oid)
            status, res = self.conn.execute_dict(SQL)
            if not status:
                return internal_server_error(errormsg=res)
            if len(res['rows']) == 0:
                return gone(
                    gettext("""Could not find the rule in the table.""")
                )
            res_data = parse_rule_definition(res)

            SQL = ''

            if data:
                if source_schema and 'statements' in data:
                    # Replace the source schema with the target schema
                    data['statements'] = data['statements'].replace(
                        source_schema, diff_schema)
                old_data = res_data
                SQL = render_template(
                    "/".join([self.template_path, 'update.sql']),
                    data=data, o_data=old_data
                )
            else:
                if diff_schema:
                    if 'statements' in res_data:
                        # Replace the source schema with the target schema
                        res_data['statements'] = \
                            res_data['statements'].replace(
                                res_data['schema'], diff_schema)
                    res_data['schema'] = diff_schema

                SQL = render_template("/".join(
                    [self.template_path, 'create.sql']),
                    data=res_data, display_comments=True)

        return SQL
Example #5
0
    def get_sql_from_diff(self, **kwargs):
        """
        This function is used to get the DDL/DML statements.
        :param kwargs
        :return:
        """
        gid = kwargs.get('gid')
        sid = kwargs.get('sid')
        did = kwargs.get('did')
        scid = kwargs.get('scid')
        tid = kwargs.get('oid')
        oid = kwargs.get('oid')
        data = kwargs.get('data', None)
        source_schema = kwargs.get('source_schema', None)
        diff_schema = kwargs.get('diff_schema', None)
        drop_sql = kwargs.get('drop_sql', False)

        if drop_sql:
            sql = self.delete(gid=gid,
                              sid=sid,
                              did=did,
                              scid=scid,
                              tid=tid,
                              rid=oid,
                              only_sql=True)
        else:
            sql = render_template("/".join(
                [self.template_path, self._PROPERTIES_SQL]),
                                  rid=oid)
            status, res = self.conn.execute_dict(sql)
            if not status:
                return internal_server_error(errormsg=res)
            if len(res['rows']) == 0:
                return gone(
                    gettext("""Could not find the rule in the table."""))
            res_data = parse_rule_definition(res)

            sql = ''

            if data:
                if source_schema and 'statements' in data:
                    # Replace the source schema with the target schema
                    data['statements'] = data['statements'].replace(
                        source_schema, diff_schema)
                old_data = res_data
                sql = render_template("/".join(
                    [self.template_path, self._UPDATE_SQL]),
                                      data=data,
                                      o_data=old_data)
            else:
                RuleView._check_schema_diff(diff_schema, res_data)

                sql = render_template("/".join(
                    [self.template_path, self._CREATE_SQL]),
                                      data=res_data,
                                      display_comments=True)

        return sql
Example #6
0
    def get_sql_from_diff(self, **kwargs):
        """
        This function is used to get the DDL/DML statements.
        :param kwargs
        :return:
        """
        gid = kwargs.get('gid')
        sid = kwargs.get('sid')
        did = kwargs.get('did')
        scid = kwargs.get('scid')
        tid = kwargs.get('tid')
        oid = kwargs.get('oid')
        data = kwargs.get('data', None)
        drop_sql = kwargs.get('drop_sql', False)
        target_schema = kwargs.get('target_schema', None)

        if drop_sql:
            sql = self.delete(gid=gid,
                              sid=sid,
                              did=did,
                              scid=scid,
                              tid=tid,
                              rid=oid,
                              only_sql=True)
        else:
            sql = render_template("/".join(
                [self.template_path, self._PROPERTIES_SQL]),
                                  rid=oid)
            status, res = self.conn.execute_dict(sql)
            if not status:
                return internal_server_error(errormsg=res)
            if len(res['rows']) == 0:
                return gone(self.not_found_error_msg())
            res_data = parse_rule_definition(res)

            if data:
                old_data = res_data
                sql = render_template("/".join(
                    [self.template_path, self._UPDATE_SQL]),
                                      data=data,
                                      o_data=old_data)
            else:
                RuleView._check_schema_diff(target_schema, res_data)
                sql = render_template("/".join(
                    [self.template_path, self._CREATE_SQL]),
                                      data=res_data,
                                      display_comments=True)

        return sql
Example #7
0
    def sql(self, gid, sid, did, scid, tid, rid):
        """
        This function will generate sql to render into the sql panel
        """
        SQL = render_template("/".join(
            [self.template_path, 'properties.sql']), rid=rid)
        status, res = self.conn.execute_dict(SQL)
        if not status:
            return internal_server_error(errormsg=res)
        res_data = parse_rule_definition(res)
        SQL = render_template("/".join(
            [self.template_path, 'create.sql']),
            data=res_data, display_comments=True)

        return ajax_response(response=SQL)
Example #8
0
    def properties(self, gid, sid, did, scid, tid, rid):
        """
        Fetch the properties of an individual rule and render in properties tab

        """
        SQL = render_template("/".join([self.template_path, 'properties.sql']),
                              rid=rid,
                              datlastsysoid=self.datlastsysoid)
        status, res = self.conn.execute_dict(SQL)

        if not status:
            return internal_server_error(errormsg=res)

        if len(res['rows']) == 0:
            return gone(gettext("""Could not find the rule in the table."""))

        return ajax_response(response=parse_rule_definition(res), status=200)
Example #9
0
    def properties(self, gid, sid, did, scid, tid, rid):
        """
        Fetch the properties of an individual rule and render in properties tab

        """
        SQL = render_template("/".join(
            [self.template_path, 'properties.sql']
        ), rid=rid, datlastsysoid=self.datlastsysoid)
        status, res = self.conn.execute_dict(SQL)

        if not status:
            return internal_server_error(errormsg=res)

        return ajax_response(
            response=parse_rule_definition(res),
            status=200
        )
Example #10
0
    def sql(self, gid, sid, did, scid, tid, rid):
        """
        This function will generate sql to render into the sql panel
        """
        SQL = render_template("/".join(
            [self.template_path, self._PROPERTIES_SQL]),
                              rid=rid)
        status, res = self.conn.execute_dict(SQL)
        if not status:
            return internal_server_error(errormsg=res)
        if len(res['rows']) == 0:
            return gone(gettext("""Could not find the rule in the table."""))

        res_data = parse_rule_definition(res)
        SQL = render_template("/".join([self.template_path, self._CREATE_SQL]),
                              data=res_data,
                              display_comments=True)

        return ajax_response(response=SQL)
Example #11
0
    def _fetch_properties(self, rid):
        """
        This function is used to fetch the properties of the specified object
        :param rid:
        :return:
        """
        SQL = render_template("/".join(
            [self.template_path, self._PROPERTIES_SQL]),
                              rid=rid,
                              datlastsysoid=self.datlastsysoid)
        status, res = self.conn.execute_dict(SQL)

        if not status:
            return False, internal_server_error(errormsg=res)

        if len(res['rows']) == 0:
            return False, gone(self.not_found_error_msg())

        return True, parse_rule_definition(res)
Example #12
0
    def _fetch_properties(self, rid):
        """
        This function is used to fetch the properties of the specified object
        :param rid:
        :return:
        """
        SQL = render_template("/".join([self.template_path, 'properties.sql']),
                              rid=rid,
                              datlastsysoid=self.datlastsysoid)
        status, res = self.conn.execute_dict(SQL)

        if not status:
            return False, internal_server_error(errormsg=res)

        if len(res['rows']) == 0:
            return False, gone(
                gettext("""Could not find the rule in the table."""))

        return True, parse_rule_definition(res)
Example #13
0
    def sql(self, gid, sid, did, scid, tid, rid):
        """
        This function will generate sql to render into the sql panel
        """
        servertype = 'hawq' if 'HAWQ' in self.manager.ver else self.manager.server_type
        SQL = render_template("/".join([self.template_path, 'properties.sql']),
                              rid=rid,
                              servertype=servertype)
        status, res = self.conn.execute_dict(SQL)
        if not status:
            return internal_server_error(errormsg=res)
        if len(res['rows']) == 0:
            return gone(gettext("""Could not find the rule in the table."""))

        res_data = parse_rule_definition(res)
        SQL = render_template("/".join([self.template_path, 'create.sql']),
                              data=res_data,
                              display_comments=True)

        return ajax_response(response=SQL)
Example #14
0
    def getSQL(self, gid, sid, data, tid, rid):
        """
        This function will generate sql from model data
        """

        if rid is not None:
            SQL = render_template("/".join(
                [self.template_path, 'properties.sql']),
                                  rid=rid)
            status, res = self.conn.execute_dict(SQL)
            res_data = parse_rule_definition(res)
            if not status:
                return internal_server_error(errormsg=res)
            old_data = res_data
            SQL = render_template("/".join([self.template_path, 'update.sql']),
                                  data=data,
                                  o_data=old_data)
        else:
            SQL = render_template("/".join([self.template_path, 'create.sql']),
                                  data=data)
        return SQL, data['name'] if 'name' in data else old_data['name']
Example #15
0
 def getSQL(self, gid, sid, data, tid, rid):
     """
     This function will generate sql from model data
     """
     try:
         if rid is not None:
             SQL = render_template("/".join(
                 [self.template_path, 'properties.sql']), rid=rid)
             status, res = self.conn.execute_dict(SQL)
             res_data = []
             res_data = parse_rule_definition(res)
             if not status:
                 return internal_server_error(errormsg=res)
             old_data = res_data
             SQL = render_template(
                 "/".join([self.template_path, 'update.sql']),
                 data=data, o_data=old_data
             )
         else:
             SQL = render_template("/".join(
                 [self.template_path, 'create.sql']), data=data)
         return SQL
     except Exception as e:
         return internal_server_error(errormsg=str(e))