Ejemplo n.º 1
0
    def __provision_server_group(self):
        if not self.server_group_policy:
            print "    server group disabled"
            return

        try:
            oaw.check_server_group_exists(self.nova_client, self.name, [self.server_group_policy])
        except RuntimeError:
            print
            print "No server group for %s exists, creating one with '%s' policy" % (self.name, self.server_group_policy)
            sg_id = oaw.create_server_group(self.nova_client, self.name, [self.server_group_policy])
            self.__prov_log("create", "server-group", sg_id, self.name)
Ejemplo n.º 2
0
    def __provision_server_group(self):
        if not self.server_group_policy:
            print '    server group disabled'
            return

        try:
            oaw.check_server_group_exists(self.nova_client, self.name,
                                          [self.server_group_policy])
        except RuntimeError:
            print
            print "No server group for %s exists, creating one with '%s' policy" % (
                self.name, self.server_group_policy)
            sg_id = oaw.create_server_group(self.nova_client, self.name,
                                            [self.server_group_policy])
            self.__prov_log('create', 'server-group', sg_id, self.name)
Ejemplo n.º 3
0
    def __provision_vm(self,
                       name,
                       sec_groups,
                       spec,
                       network,
                       server_group_name=None):
        image_id = oaw.check_image_exists(self.nova_client, spec['image'])
        flavor_id = oaw.check_flavor_exists(self.nova_client, spec['flavor'])
        server_group_id = None
        if self.server_group_policy and server_group_name:
            server_group_id = oaw.check_server_group_exists(
                self.nova_client, server_group_name,
                [self.server_group_policy])

        # network needs more logic. We accept the magic keyword 'default', which will then try to use the tenant's
        # default network labeled after the tenant name
        if network == 'default':
            network = os.environ['OS_TENANT_NAME']
        network_id = oaw.check_network_exists(self.nova_client, network)

        print '    creating %s: %s  - %s' % (name, spec['image'],
                                             spec['flavor'])
        print "    using network '%s'" % network
        instance_id = oaw.create_vm(self.nova_client, name, image_id,
                                    flavor_id, spec['sec-key'], sec_groups,
                                    network_id, server_group_id)

        print '    instance %s created' % instance_id
        self.__prov_log('create', 'vm', instance_id, name)

        instance = oaw.get_instance(self.nova_client, instance_id)

        return instance
Ejemplo n.º 4
0
    def __provision_vm(self, name, sec_groups, spec, network, server_group_name=None):
        image_id = oaw.check_image_exists(self.nova_client, spec["image"])
        flavor_id = oaw.check_flavor_exists(self.nova_client, spec["flavor"])
        server_group_id = None
        if self.server_group_policy and server_group_name:
            server_group_id = oaw.check_server_group_exists(
                self.nova_client, server_group_name, [self.server_group_policy]
            )

        # network needs more logic. We accept the magic keyword 'default', which will then try to use the tenant's
        # default network labeled after the tenant name
        if network == "default":
            network = os.environ["OS_TENANT_NAME"]
        network_id = oaw.check_network_exists(self.nova_client, network)

        print "    creating %s: %s  - %s" % (name, spec["image"], spec["flavor"])
        print "    using network '%s'" % network
        print "    and key '%s'" % spec["sec-key"]
        instance_id = oaw.create_vm(
            self.nova_client, name, image_id, flavor_id, spec["sec-key"], sec_groups, network_id, server_group_id
        )

        print "    instance %s created" % instance_id
        self.__prov_log("create", "vm", instance_id, name)

        instance = oaw.get_instance(self.nova_client, instance_id)

        return instance