func (self *ApiController) TenantCreate(tenant *contivModel.Tenant) error { log.Infof("Received TenantCreate: %+v", tenant) if tenant.TenantName == "" { return errors.New("Invalid tenant name") } // Create private network for the tenant err := contivModel.CreateNetwork(&contivModel.Network{ Key: tenant.TenantName + ":" + "privateNet", IsPublic: false, IsPrivate: true, Encap: "vxlan", Subnet: "10.1.0.0/16", NetworkName: "privateNet", TenantName: tenant.TenantName, }) if err != nil { log.Errorf("Error creating privateNet for tenant: %+v. Err: %v", tenant, err) return err } // Create public network for the tenant err = contivModel.CreateNetwork(&contivModel.Network{ Key: tenant.TenantName + ":" + "publicNet", IsPublic: true, IsPrivate: false, Encap: "vlan", Subnet: "192.168.1.0/24", NetworkName: "publicNet", TenantName: tenant.TenantName, }) if err != nil { log.Errorf("Error creating publicNet for tenant: %+v. Err: %v", tenant, err) return err } // Create a default volume profile for the tenant err = contivModel.CreateVolumeProfile(&contivModel.VolumeProfile{ Key: tenant.TenantName + ":" + "default", VolumeProfileName: "default", TenantName: tenant.TenantName, DatastoreType: "none", PoolName: "", Size: "", MountPoint: "", }) if err != nil { log.Errorf("Error creating default volume profile. Err: %v", err) return err } return nil }
// TenantCreate creates a tenant func (ac *APIController) TenantCreate(tenant *contivModel.Tenant) error { log.Infof("Received TenantCreate: %+v", tenant) if tenant.TenantName == "" { return core.Errorf("Invalid tenant name") } // Get the state driver stateDriver, err := utils.GetStateDriver() if err != nil { return err } // Build tenant config tenantCfg := intent.ConfigTenant{ Name: tenant.TenantName, DefaultNetType: "vlan", DefaultNetwork: tenant.DefaultNetwork, SubnetPool: tenant.SubnetPool, AllocSubnetLen: uint(tenant.SubnetLen), VLANs: tenant.Vlans, VXLANs: tenant.Vxlans, } // Create the tenant err = master.CreateTenant(stateDriver, &tenantCfg) if err != nil { log.Errorf("Error creating tenant {%+v}. Err: %v", tenant, err) return err } // Create private network for the tenant err = contivModel.CreateNetwork(&contivModel.Network{ Key: tenant.TenantName + ":" + "private", IsPublic: false, IsPrivate: true, Encap: "vxlan", PktTag: 1001, Subnet: "10.1.0.0/16", Gateway: "10.1.254.254", NetworkName: "private", TenantName: tenant.TenantName, }) if err != nil { log.Errorf("Error creating privateNet for tenant: %+v. Err: %v", tenant, err) return err } // Create public network for the tenant err = contivModel.CreateNetwork(&contivModel.Network{ Key: tenant.TenantName + ":" + "public", IsPublic: true, IsPrivate: false, Encap: "vlan", PktTag: 1, Subnet: "192.168.1.0/24", Gateway: "192.168.1.254", NetworkName: "public", TenantName: tenant.TenantName, }) if err != nil { log.Errorf("Error creating publicNet for tenant: %+v. Err: %v", tenant, err) return err } return nil }
// TenantCreate creates a tenant func (ac *APIController) TenantCreate(tenant *contivModel.Tenant) error { log.Infof("Received TenantCreate: %+v", tenant) if tenant.TenantName == "" { return errors.New("Invalid tenant name") } // Get the state driver stateDriver, err := utils.GetStateDriver() if err != nil { return err } // Build tenant config tenantCfg := intent.ConfigTenant{ Name: tenant.TenantName, DefaultNetType: "vlan", SubnetPool: tenant.SubnetPool, AllocSubnetLen: uint(tenant.SubnetLen), VLANs: tenant.Vlans, VXLANs: tenant.Vxlans, } // Create the tenant err = master.CreateTenant(stateDriver, &tenantCfg) if err != nil { log.Errorf("Error creating tenant {%+v}. Err: %v", tenant, err) return err } // Create private network for the tenant err = contivModel.CreateNetwork(&contivModel.Network{ Key: tenant.TenantName + ":" + "private", IsPublic: false, IsPrivate: true, Encap: "vxlan", Subnet: "10.1.0.0/16", DefaultGw: "10.1.0.1", NetworkName: "private", TenantName: tenant.TenantName, }) if err != nil { log.Errorf("Error creating privateNet for tenant: %+v. Err: %v", tenant, err) return err } // Create public network for the tenant err = contivModel.CreateNetwork(&contivModel.Network{ Key: tenant.TenantName + ":" + "public", IsPublic: true, IsPrivate: false, Encap: "vlan", Subnet: "192.168.1.0/24", DefaultGw: "192.168.1.1", NetworkName: "public", TenantName: tenant.TenantName, }) if err != nil { log.Errorf("Error creating publicNet for tenant: %+v. Err: %v", tenant, err) return err } // Create a default volume profile for the tenant err = contivModel.CreateVolumeProfile(&contivModel.VolumeProfile{ Key: tenant.TenantName + ":" + "default", VolumeProfileName: "default", TenantName: tenant.TenantName, DatastoreType: "none", PoolName: "", Size: "", MountPoint: "", }) if err != nil { log.Errorf("Error creating default volume profile. Err: %v", err) return err } return nil }