aboutsummaryrefslogtreecommitdiffstats
path: root/testcases/vnf/vIMS/clearwater.py
blob: 7236f4fba13128d2da6c1833dd7abe473a3f8839 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/python
# coding: utf8
#######################################################################
#
#   Copyright (c) 2015 Orange
#   valentin.boucher@orange.com
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
########################################################################


class clearwater:

    def __init__(self, inputs={}, orchestrator=None, logger=None):
        self.config = inputs
        self.orchestrator = orchestrator
        self.logger = logger
        self.deploy = False

    def set_orchestrator(self, orchestrator):
        self.orchestrator = orchestrator

    def set_flavor_id(self, flavor_id):
        self.config['flavor_id'] = flavor_id

    def set_image_id(self, image_id):
        self.config['image_id'] = image_id

    def set_agent_user(self, agent_user):
        self.config['agent_user'] = agent_user

    def set_external_network_name(self, external_network_name):
        self.config['external_network_name'] = external_network_name

    def set_public_domain(self, public_domain):
        self.config['public_domain'] = public_domain

    def deploy_vnf(self, blueprint, bp_name='clearwater',
                   dep_name='clearwater-opnfv'):
        if self.orchestrator:
            self.dep_name = dep_name
            error = self.orchestrator.download_upload_and_deploy_blueprint(
                blueprint, self.config, bp_name, dep_name)
            if error:
                return error

            self.deploy = True

        else:
            if self.logger:
                self.logger.error("Cloudify manager is down or not provide...")

    def undeploy_vnf(self):
        if self.orchestrator:
            if self.deploy:
                self.deploy = False
                self.orchestrator.undeploy_deployment(self.dep_name)
            else:
                if self.logger:
                    self.logger.error("Clearwater isn't already deploy...")
        else:
            if self.logger:
                self.logger.error("Cloudify manager is down or not provide...")
/span> input_report_abs(dev, ABS_Y, 1024 - simple_strtoul(gunze->data + 6, NULL, 10)); input_report_key(dev, BTN_TOUCH, gunze->data[0] == 'T'); input_sync(dev); } static irqreturn_t gunze_interrupt(struct serio *serio, unsigned char data, unsigned int flags) { struct gunze* gunze = serio_get_drvdata(serio); if (data == '\r') { gunze_process_packet(gunze); gunze->idx = 0; } else { if (gunze->idx < GUNZE_MAX_LENGTH) gunze->data[gunze->idx++] = data; } return IRQ_HANDLED; } /* * gunze_disconnect() is the opposite of gunze_connect() */ static void gunze_disconnect(struct serio *serio) { struct gunze *gunze = serio_get_drvdata(serio); input_get_device(gunze->dev); input_unregister_device(gunze->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(gunze->dev); kfree(gunze); } /* * gunze_connect() is the routine that is called when someone adds a * new serio device that supports Gunze protocol and registers it as * an input device. */ static int gunze_connect(struct serio *serio, struct serio_driver *drv) { struct gunze *gunze; struct input_dev *input_dev; int err; gunze = kzalloc(sizeof(struct gunze), GFP_KERNEL); input_dev = input_allocate_device(); if (!gunze || !input_dev) { err = -ENOMEM; goto fail1; } gunze->serio = serio; gunze->dev = input_dev; snprintf(gunze->phys, sizeof(serio->phys), "%s/input0", serio->phys); input_dev->name = "Gunze AHL-51S TouchScreen"; input_dev->phys = gunze->phys; input_dev->id.bustype = BUS_RS232; input_dev->id.vendor = SERIO_GUNZE; input_dev->id.product = 0x0051; input_dev->id.version = 0x0100; input_dev->dev.parent = &serio->dev; input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); input_set_abs_params(input_dev, ABS_X, 24, 1000, 0, 0); input_set_abs_params(input_dev, ABS_Y, 24, 1000, 0, 0); serio_set_drvdata(serio, gunze); err = serio_open(serio, drv); if (err) goto fail2; err = input_register_device(gunze->dev); if (err) goto fail3; return 0; fail3: serio_close(serio); fail2: serio_set_drvdata(serio, NULL); fail1: input_free_device(input_dev); kfree(gunze); return err; } /* * The serio driver structure. */ static struct serio_device_id gunze_serio_ids[] = { { .type = SERIO_RS232, .proto = SERIO_GUNZE, .id = SERIO_ANY, .extra = SERIO_ANY, }, { 0 } }; MODULE_DEVICE_TABLE(serio, gunze_serio_ids); static struct serio_driver gunze_drv = { .driver = { .name = "gunze", }, .description = DRIVER_DESC, .id_table = gunze_serio_ids, .interrupt = gunze_interrupt, .connect = gunze_connect, .disconnect = gunze_disconnect, }; module_serio_driver(gunze_drv);