def test_yaml_fixture(self):
        data = '''---
- &base_release
  model: nailgun.release
  fields:
    name: BaseRelease
    version: 0.0.1
    operating_system: AbstractOS
- pk: 2
  extend: *base_release
  fields:
    name: YAMLFixtureRelease
    version: 1.0.0
    operating_system: CentOS
'''

        upload_fixture(cStringIO.StringIO(data), loader=yaml)
        check = self.db.query(Release).filter(
            Release.name == u"YAMLFixtureRelease"
        )
        self.assertEqual(len(list(check)), 1)
        check = self.db.query(Release).filter(
            Release.name == u"BaseRelease"
        )
        self.assertEqual(len(list(check)), 0)
    def test_yaml_fixture(self):
        data = '''---
- &base_release
  model: nailgun.release
  fields:
    name: BaseRelease
    version: 0.0.1
    operating_system: AbstractOS
- pk: 2
  extend: *base_release
  fields:
    name: YAMLFixtureRelease
    version: 1.0.0
    operating_system: CentOS
'''

        fixman.upload_fixture(StringIO(data), loader=yaml)
        check = self.db.query(Release).filter(
            Release.name == u"YAMLFixtureRelease"
        )
        self.assertEqual(len(list(check)), 1)
        check = self.db.query(Release).filter(
            Release.name == u"BaseRelease"
        )
        self.assertEqual(len(list(check)), 0)
Esempio n. 3
0
def action_loaddata(params):
    from nailgun.db.sqlalchemy import fixman
    from nailgun.logger import logger

    logger.info("Uploading fixture...")
    with open(params.fixture, "r") as fileobj:
        fixman.upload_fixture(fileobj)
    logger.info("Done")
Esempio n. 4
0
def action_loaddata(params):
    from nailgun.db.sqlalchemy import fixman
    from nailgun.logger import logger

    logger.info("Uploading fixture...")
    with open(params.fixture, "r") as fileobj:
        fixman.upload_fixture(fileobj)
    logger.info("Done")
Esempio n. 5
0
 def clear_nailgun_database():
     from nailgun.db import dropdb
     from nailgun.db import syncdb
     from nailgun.db.sqlalchemy import fixman
     dropdb()
     syncdb()
     fixman.upload_fixtures()
     for fixture in NAILGUN_FIXTURES.split(':'):
         if fixture == '':
             continue
         with open(fixture, "r") as fileobj:
             fixman.upload_fixture(fileobj)
Esempio n. 6
0
 def clear_nailgun_database():
     from nailgun.db import dropdb
     from nailgun.db import syncdb
     from nailgun.db.sqlalchemy import fixman
     dropdb()
     syncdb()
     fixman.upload_fixtures()
     for fixture in NAILGUN_FIXTURES.split(':'):
         if fixture == '':
             continue
         with open(fixture, "r") as fileobj:
             fixman.upload_fixture(fileobj)
Esempio n. 7
0
    def test_json_fixture(self):
        data = '''[{
            "pk": 2,
            "model": "nailgun.release",
            "fields": {
                "name": "JSONFixtureRelease",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS"
            }
        }]'''

        upload_fixture(cStringIO.StringIO(data), loader=jsonutils)
        check = self.db.query(Release).filter(
            Release.name == u"JSONFixtureRelease")
        self.assertEqual(len(list(check)), 1)
    def test_json_fixture(self):
        data = '''[{
            "pk": 2,
            "model": "nailgun.release",
            "fields": {
                "name": "JSONFixtureRelease",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS"
            }
        }]'''

        fixman.upload_fixture(StringIO(data), loader=jsonutils)
        check = self.db.query(Release).filter(
            Release.name == u"JSONFixtureRelease"
        )
        self.assertEqual(len(list(check)), 1)
Esempio n. 9
0
    def test_fixture_roles_order(self):
        data = '''[{
            "pk": 1,
            "model": "nailgun.release",
            "fields": {
                "name": "CustomFixtureRelease1",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS",
                "roles": ["controller", "compute", "cinder", "ceph-osd"]
            }
        }]'''
        upload_fixture(cStringIO.StringIO(data), loader=jsonutils)
        rel = self.db.query(Release).filter(
            Release.name == u"CustomFixtureRelease1").all()
        self.assertEqual(len(rel), 1)
        self.assertEqual(list(rel[0].roles),
                         ["controller", "compute", "cinder", "ceph-osd"])

        data = '''[{
            "pk": 2,
            "model": "nailgun.release",
            "fields": {
                "name": "CustomFixtureRelease2",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS",
                "roles": ["compute", "ceph-osd", "controller", "cinder"]
            }
        }]'''
        upload_fixture(cStringIO.StringIO(data), loader=jsonutils)
        rel = self.db.query(Release).filter(
            Release.name == u"CustomFixtureRelease2").all()
        self.assertEqual(len(rel), 1)
        self.assertEqual(list(rel[0].roles),
                         ["compute", "ceph-osd", "controller", "cinder"])

        data = '''[{
            "pk": 3,
            "model": "nailgun.release",
            "fields": {
                "name": "CustomFixtureRelease3",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS",
                "roles": ["compute", "cinder", "controller", "cinder"]
            }
        }]'''
        upload_fixture(cStringIO.StringIO(data), loader=jsonutils)
        rel = self.db.query(Release).filter(
            Release.name == u"CustomFixtureRelease3").all()
        self.assertEqual(len(rel), 1)
        self.assertEqual(list(rel[0].roles),
                         ["compute", "cinder", "controller"])
        # check previously added release roles
        prev_rel = self.db.query(Release).filter(
            Release.name == u"CustomFixtureRelease2").all()
        self.assertEqual(len(prev_rel), 1)
        self.assertEqual(list(prev_rel[0].roles),
                         ["compute", "ceph-osd", "controller", "cinder"])
    def test_fixture_roles_order(self):
        data = '''[{
            "pk": 1,
            "model": "nailgun.release",
            "fields": {
                "name": "CustomFixtureRelease1",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS",
                "roles": ["controller", "compute", "cinder", "ceph-osd"]
            }
        }]'''
        upload_fixture(cStringIO.StringIO(data), loader=json)
        rel = self.db.query(Release).filter(
            Release.name == u"CustomFixtureRelease1"
        ).all()
        self.assertEqual(len(rel), 1)
        self.assertEqual(list(rel[0].roles),
                         ["controller", "compute", "cinder", "ceph-osd"])

        data = '''[{
            "pk": 2,
            "model": "nailgun.release",
            "fields": {
                "name": "CustomFixtureRelease2",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS",
                "roles": ["compute", "ceph-osd", "controller", "cinder"]
            }
        }]'''
        upload_fixture(cStringIO.StringIO(data), loader=json)
        rel = self.db.query(Release).filter(
            Release.name == u"CustomFixtureRelease2"
        ).all()
        self.assertEqual(len(rel), 1)
        self.assertEqual(list(rel[0].roles),
                         ["compute", "ceph-osd", "controller", "cinder"])

        data = '''[{
            "pk": 3,
            "model": "nailgun.release",
            "fields": {
                "name": "CustomFixtureRelease3",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS",
                "roles": ["compute", "cinder", "controller", "cinder"]
            }
        }]'''
        upload_fixture(cStringIO.StringIO(data), loader=json)
        rel = self.db.query(Release).filter(
            Release.name == u"CustomFixtureRelease3"
        ).all()
        self.assertEqual(len(rel), 1)
        self.assertEqual(list(rel[0].roles),
                         ["compute", "cinder", "controller"])
Esempio n. 11
0
     logger.info("Done")
 elif params.action == "dropdb":
     logger.info("Dropping database...")
     from nailgun.db import dropdb
     dropdb()
     logger.info("Done")
 elif params.action == "test":
     logger.info("Running tests...")
     from nailgun.unit_test import TestRunner
     TestRunner.run()
     logger.info("Done")
 elif params.action == "loaddata":
     logger.info("Uploading fixture...")
     from nailgun.db.sqlalchemy import fixman
     with open(params.fixture, "r") as fileobj:
         fixman.upload_fixture(fileobj)
     logger.info("Done")
 elif params.action == "loaddefault":
     logger.info("Uploading fixture...")
     from nailgun.db.sqlalchemy import fixman
     fixman.upload_fixtures()
     logger.info("Done")
 elif params.action == "dump_settings":
     sys.stdout.write(settings.dump())
 elif params.action in ("run", ):
     settings.update({
         'LISTEN_PORT': int(params.port),
         'LISTEN_ADDRESS': params.address,
     })
     for attr in [
             'FAKE_TASKS', 'FAKE_TASKS_TICK_COUNT',
Esempio n. 12
0
 def upload_fixtures(self, fxtr_names):
     for fxtr_path in self.fxtr_paths_by_names(fxtr_names):
         with open(fxtr_path, "r") as fxtr_file:
             upload_fixture(fxtr_file)
    def test_custom_fixture(self):
        data = '''[{
            "pk": 2,
            "model": "nailgun.release",
            "fields": {
                "name": "CustomFixtureRelease",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS",
                "networks_metadata": {
                    "nova_network": {
                        "networks": [
                            {
                                "name": "floating",
                                "cidr": "172.16.0.0/24",
                                "netmask": "255.255.255.0",
                                "gateway": "172.16.0.1",
                                "ip_range": ["172.16.0.128", "172.16.0.254"],
                                "vlan_start": 100,
                                "network_size": 256,
                                "assign_vip": false
                            },
                            {
                                "name": "public",
                                "cidr": "172.16.0.0/24",
                                "netmask": "255.255.255.0",
                                "gateway": "172.16.0.1",
                                "ip_range": ["172.16.0.2", "172.16.0.127"],
                                "vlan_start": 100,
                                "assign_vip": true
                            },
                            {
                                "name": "management",
                                "cidr": "192.168.0.0/24",
                                "netmask": "255.255.255.0",
                                "gateway": "192.168.0.1",
                                "ip_range": ["192.168.0.1", "192.168.0.254"],
                                "vlan_start": 101,
                                "assign_vip": true
                            },
                            {
                                "name": "storage",
                                "cidr": "192.168.1.0/24",
                                "netmask": "255.255.255.0",
                                "gateway": "192.168.1.1",
                                "ip_range": ["192.168.1.1", "192.168.1.254"],
                                "vlan_start": 102,
                                "assign_vip": false
                            },
                            {
                                "name": "fixed",
                                "cidr": "10.0.0.0/16",
                                "netmask": "255.255.0.0",
                                "gateway": "10.0.0.1",
                                "ip_range": ["10.0.0.2", "10.0.255.254"],
                                "vlan_start": 103,
                                "assign_vip": false
                            }
                        ]
                    }
                }
            }
        }]'''

        upload_fixture(cStringIO.StringIO(data), loader=json)
        check = self.db.query(Release).filter(
            Release.name == u"CustomFixtureRelease"
        )
        self.assertEqual(len(list(check)), 1)
Esempio n. 14
0
 def upload_fixtures(self, fxtr_names):
     for fxtr_path in self.fxtr_paths_by_names(fxtr_names):
         with open(fxtr_path, "r") as fxtr_file:
             upload_fixture(fxtr_file)
Esempio n. 15
0
     logger.info("Done")
 elif params.action == "dropdb":
     logger.info("Dropping database...")
     from nailgun.db import dropdb
     dropdb()
     logger.info("Done")
 elif params.action == "test":
     logger.info("Running tests...")
     from nailgun.unit_test import TestRunner
     TestRunner.run()
     logger.info("Done")
 elif params.action == "loaddata":
     logger.info("Uploading fixture...")
     from nailgun.db.sqlalchemy import fixman
     with open(params.fixture, "r") as fileobj:
         fixman.upload_fixture(fileobj)
     logger.info("Done")
 elif params.action == "loaddefault":
     logger.info("Uploading fixture...")
     from nailgun.db.sqlalchemy import fixman
     fixman.upload_fixtures()
     logger.info("Done")
 elif params.action == "dump_settings":
     sys.stdout.write(settings.dump())
 elif params.action in ("run",):
     settings.update({
         'LISTEN_PORT': int(params.port),
         'LISTEN_ADDRESS': params.address,
     })
     for attr in ['FAKE_TASKS', 'FAKE_TASKS_TICK_COUNT',
                  'FAKE_TASKS_TICK_INTERVAL', 'FAKE_TASKS_AMQP']:
Esempio n. 16
0
    def test_custom_fixture(self):
        data = '''[{
            "pk": 2,
            "model": "nailgun.release",
            "fields": {
                "name": "CustomFixtureRelease",
                "version": "0.0.1",
                "description": "Sample release for testing",
                "operating_system": "CentOS",
                "networks_metadata": {
                    "nova_network": {
                        "networks": [
                            {
                                "name": "floating",
                                "cidr": "172.16.0.0/24",
                                "netmask": "255.255.255.0",
                                "gateway": "172.16.0.1",
                                "ip_range": ["172.16.0.128", "172.16.0.254"],
                                "vlan_start": 100,
                                "network_size": 256,
                                "assign_vip": false
                            },
                            {
                                "name": "public",
                                "cidr": "172.16.0.0/24",
                                "netmask": "255.255.255.0",
                                "gateway": "172.16.0.1",
                                "ip_range": ["172.16.0.2", "172.16.0.127"],
                                "vlan_start": 100,
                                "assign_vip": true
                            },
                            {
                                "name": "management",
                                "cidr": "192.168.0.0/24",
                                "netmask": "255.255.255.0",
                                "gateway": "192.168.0.1",
                                "ip_range": ["192.168.0.1", "192.168.0.254"],
                                "vlan_start": 101,
                                "assign_vip": true
                            },
                            {
                                "name": "storage",
                                "cidr": "192.168.1.0/24",
                                "netmask": "255.255.255.0",
                                "gateway": "192.168.1.1",
                                "ip_range": ["192.168.1.1", "192.168.1.254"],
                                "vlan_start": 102,
                                "assign_vip": false
                            },
                            {
                                "name": "fixed",
                                "cidr": "10.0.0.0/16",
                                "netmask": "255.255.0.0",
                                "gateway": "10.0.0.1",
                                "ip_range": ["10.0.0.2", "10.0.255.254"],
                                "vlan_start": 103,
                                "assign_vip": false
                            }
                        ]
                    }
                }
            }
        }]'''

        upload_fixture(cStringIO.StringIO(data), loader=json)
        check = self.db.query(Release).filter(
            Release.name == u"CustomFixtureRelease")
        self.assertEqual(len(list(check)), 1)