Exemplo n.º 1
0
    def __check_config_is_right(self):
        config = KSC_Configuration.load(utils.get_context(), self.config.id)
        if not config:
            raise Exception("create config, not write in db")
        
        if self.name != config.name or self.description != config.description:
            raise Exception("create config, name or description bad value")
        
        if self.config.config_type != '1':
            raise Exception("create config, config_type bad value")
        
        overrides = KSC_Configuration.get_configuration_overrides(utils.get_context(), self.config.id)
        
        diffs = {}
        for k, v in self.values.iteritems():
            if overrides[k] != v and float(overrides[k]) != float(v):                
                diffs[k] = (v, overrides[k])
        if len(diffs):
            raise Exception("create config, values error")
            
#         
#         if overrides != self.values:
#             raise Exception("create config, values error")
        
        datastore_version = DatastoreVersion.load_by_uuid(self.config.datastore_version_id)
        if not datastore_version:
            raise Exception("create config, bad value of datastore_version_id")
        
        if datastore_version.name != self.datastore_version:
            raise Exception("create config, bad value of datastore_version_id")
Exemplo n.º 2
0
    def create(self, req, body, tenant_id):
        LOG.debug("Creating a Security Group Rule for tenant '%s'" % tenant_id)

        context = req.environ[wsgi.CONTEXT_KEY]
        self._validate_create_body(body)

        sec_group_id = body['security_group_rule']['group_id']
        sec_group = models.SecurityGroup.find_by(id=sec_group_id,
                                                 tenant_id=tenant_id,
                                                 deleted=False)
        instance_id = (models.SecurityGroupInstanceAssociation.
                       get_instance_id_by_security_group_id(sec_group_id))
        db_info = instance_models.get_db_info(context, id=instance_id)
        manager = (DatastoreVersion.load_by_uuid(
            db_info.datastore_version_id).manager)
        tcp_ports = CONF.get(manager).tcp_ports
        udp_ports = CONF.get(manager).udp_ports

        def _create_rules(sec_group, ports, protocol):
            rules = []
            try:
                for port_or_range in set(ports):
                    from_, to_ = utils.gen_ports(port_or_range)
                    rule = models.SecurityGroupRule.create_sec_group_rule(
                        sec_group, protocol, int(from_), int(to_),
                        body['security_group_rule']['cidr'], context,
                        CONF.os_region_name)
                    rules.append(rule)
            except (ValueError, AttributeError) as e:
                raise exception.BadRequest(msg=str(e))
            return rules

        tcp_rules = _create_rules(sec_group, tcp_ports, 'tcp')
        udp_rules = _create_rules(sec_group, udp_ports, 'udp')

        sec_group.save()

        all_rules = tcp_rules + udp_rules
        view = views.SecurityGroupRulesView(
            all_rules, req, tenant_id).create()
        return wsgi.Result(view, 201)
Exemplo n.º 3
0
    def create(self, req, body, tenant_id):
        LOG.debug("Creating a Security Group Rule for tenant '%s'" % tenant_id)

        context = req.environ[wsgi.CONTEXT_KEY]
        self._validate_create_body(body)

        sec_group_id = body['security_group_rule']['group_id']
        sec_group = models.SecurityGroup.find_by(id=sec_group_id,
                                                 tenant_id=tenant_id,
                                                 deleted=False)
        instance_id = (models.SecurityGroupInstanceAssociation.
                       get_instance_id_by_security_group_id(sec_group_id))
        db_info = instance_models.get_db_info(context, id=instance_id)
        manager = (DatastoreVersion.load_by_uuid(
            db_info.datastore_version_id).manager)
        tcp_ports = CONF.get(manager).tcp_ports
        udp_ports = CONF.get(manager).udp_ports

        def _create_rules(sec_group, ports, protocol):
            rules = []
            try:
                for port_or_range in set(ports):
                    from_, to_ = utils.gen_ports(port_or_range)
                    rule = models.SecurityGroupRule.create_sec_group_rule(
                        sec_group, protocol, int(from_), int(to_),
                        body['security_group_rule']['cidr'], context)
                    rules.append(rule)
            except (ValueError, AttributeError) as e:
                raise exception.BadRequest(msg=str(e))
            return rules

        tcp_rules = _create_rules(sec_group, tcp_ports, 'tcp')
        udp_rules = _create_rules(sec_group, udp_ports, 'udp')

        sec_group.save()

        all_rules = tcp_rules + udp_rules
        view = views.SecurityGroupRulesView(
            all_rules, req, tenant_id).create()
        return wsgi.Result(view, 201)
Exemplo n.º 4
0
 def upgrade_cluster(self, context, cluster_id, datastore_version_id):
     datastore_version = DatastoreVersion.load_by_uuid(datastore_version_id)
     cluster_tasks = models.load_cluster_tasks(context, cluster_id)
     cluster_tasks.upgrade_cluster(context, cluster_id, datastore_version)
Exemplo n.º 5
0
 def upgrade(self, context, instance_id, datastore_version_id):
     instance_tasks = models.BuiltInstanceTasks.load(context, instance_id)
     datastore_version = DatastoreVersion.load_by_uuid(datastore_version_id)
     with EndNotification(context):
         instance_tasks.upgrade(datastore_version)
Exemplo n.º 6
0
 def upgrade(self, context, instance_id, datastore_version_id):
     instance_tasks = models.BuiltInstanceTasks.load(context, instance_id)
     datastore_version = DatastoreVersion.load_by_uuid(datastore_version_id)
     with EndNotification(context):
         instance_tasks.upgrade(datastore_version)
Exemplo n.º 7
0
 def load_configuration_datastore_version(context, id):
     config = Configuration.load(context, id)
     datastore_version = DatastoreVersion.load_by_uuid(
         config.datastore_version_id)
     return datastore_version
Exemplo n.º 8
0
 def upgrade_cluster(self, context, cluster_id, datastore_version_id):
     datastore_version = DatastoreVersion.load_by_uuid(datastore_version_id)
     cluster_tasks = models.load_cluster_tasks(context, cluster_id)
     cluster_tasks.upgrade_cluster(context, cluster_id, datastore_version)
Exemplo n.º 9
0
 def load_configuration_datastore_version(context, id):
     config = Configuration.load(context, id)
     datastore_version = DatastoreVersion.load_by_uuid(
         config.datastore_version_id)
     return datastore_version