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")
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)
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)
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)
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)
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