Beispiel #1
0
    def run(self, timestamp, time_step):
        """Simulates riders entering through the turnstile."""
        num_entries = self.turnstile_hardware.get_entries(timestamp, time_step)
        logger.debug("turnstile kafka integration")

        for i in range(num_entries):
            Producer.produce(
                self,
                topic=self.topic_name,
                key={"timestamp": self.time_millis()},
                value={
                    "station_id": self.station.station_id,
                    "station_name": self.station.name,
                    "line": self.station.color,
                },
            )
 def _init_producer_singleton(cls):
     if cls._producer is None:
         key_schema = avro.load(f"{Path(__file__).parents[0]}/schemas/arrival_key.json")
         value_schema = avro.load(f"{Path(__file__).parents[0]}/schemas/arrival_value.json")
         cls._producer = Producer(
             'com.udacity.project.chicago_transportation.arrival',
             key_schema=key_schema,
             value_schema=value_schema
         )
Beispiel #3
0
def update_producer(id):
    name = request.form["name"]
    phone_number = request.form["phone_number"]
    email = request.form["email"]
    country = request.form["country"]
    region = request.form["region"]

    producer = Producer(name, phone_number, email, country, region, id)
    producer_repository.update(producer)
    return redirect("/producers")
Beispiel #4
0
def select_all():
    producers = []
    sql = "SELECT * FROM producers"
    results = run_sql(sql)

    for row in results:
        producer = Producer(row['name'], row['phone_number'], row['email'],
                            row['country'], row['region'], row['id'])
        producers.append(producer)
    return producers
Beispiel #5
0
def select(id):
    producer = None
    sql = """
        SELECT *
        FROM producers
        WHERE id = %s
        """
    values = [id]
    result = run_sql(sql, values)[0]

    if result is not None:
        producer = Producer(result['name'], result['phone_number'],
                            result['email'], result['country'],
                            result['region'], result['id'])
    return producer
Beispiel #6
0
def configure_connector():
    """Starts and configures the Kafka Connect connector"""
    logging.debug("creating or updating kafka connect connector...")

    # create required topic for sending data to Kafka
    Producer(topic_name=CtaTopics.STATIONS, num_partitions=1)

    resp = requests.get(f"{KAFKA_CONNECT_URL}/{CONNECTOR_NAME}")
    if resp.status_code == 200:
        logging.debug("connector already created skipping recreation")
        return

    resp = requests.post(
        KAFKA_CONNECT_URL,
        headers={"Content-Type": "application/json"},
        data=json.dumps({
            "name": CONNECTOR_NAME,
            "config": {
                "connector.class":
                "io.confluent.connect.jdbc.JdbcSourceConnector",
                "key.converter": "org.apache.kafka.connect.json.JsonConverter",
                "key.converter.schemas.enable": "false",
                "value.converter":
                "org.apache.kafka.connect.json.JsonConverter",
                "value.converter.schemas.enable": "false",
                "batch.max.rows": 500,
                "connection.url": Connections.POSTGRES.get("connection.url"),
                "connection.user": Connections.POSTGRES.get("user"),
                "connection.password": Connections.POSTGRES.get("password"),
                "table.whitelist": TABLE_NAME,
                "mode": "incrementing",
                "incrementing.column.name": "stop_id",
                "topic.prefix": f"{TOPIC_PREFIX}.",
                "poll.interval.ms": 60000,
            },
        }),
    )

    ## Ensure a healthy response was given
    resp.raise_for_status()
    logging.debug("connector created successfully")
Beispiel #7
0
import pdb
from models.wine import Wine
from models.producer import Producer

import repositories.wine_repository as wine_repository
import repositories.producer_repository as producer_repository

wine_repository.delete_all()
producer_repository.delete_all()

producer1 = Producer("Cloudy Bay", "6435209147", "*****@*****.**", "New Zealand", "Marlborough")
producer_repository.save(producer1)

producer2 = Producer("Châteaux Codéclan", "1312902600", "*****@*****.**", "Scotland", "Edinburgh")
producer_repository.save(producer2)

producer3 = Producer("Penfolds", "1300095930", "*****@*****.**", "Australia", "Barossa Valley")
producer_repository.save(producer3)

producer4 = Producer("Campo Viejo", "34941279900", "*****@*****.**", "Spain", "Rioja")
producer_repository.save(producer4)

producer5 = Producer("Royal Tokaji", "3647548500", "*****@*****.**", "Hungary", "Tokaj")
producer_repository.save(producer5)

producer6 = Producer("Pol Roger", "3332659800", "*****@*****.**", "France", "Champagne")
producer_repository.save(producer6)

producer7 = Producer("Freixenet", "3355191", "*****@*****.**", "Italy", "Veneto")
producer_repository.save(producer7)
 def test_producer(self):
     Producer("topic_test", "schema")