| 191 | return hSAS, tSAS, nil |
| 192 | } |
| 193 | |
| 194 | func (p *tableDriver) CreateSession(ctx context.Context, connID string) (SessionTokens, error) { |
| 195 | name := p.cfg.reqPrefix + strings.ReplaceAll(connID, "-", "") |
| 196 | resName := p.cfg.resPrefix + strings.ReplaceAll(connID, "-", "") |
| 197 | if _, err := p.client.CreateTable(ctx, name, nil); err != nil { |
| 198 | return SessionTokens{}, fmt.Errorf("create session table %s: %w", name, err) |
| 199 | } |
| 200 | if _, err := p.client.CreateTable(ctx, resName, nil); err != nil { |
| 201 | return SessionTokens{}, fmt.Errorf("create session table %s: %w", resName, err) |
| 202 | } |
| 203 | reqSAS, err := p.makeSAS(name, aztables.SASPermissions{Add: true}) |
| 204 | if err != nil { |
| 205 | return SessionTokens{}, fmt.Errorf("%w: %v", ErrSASGenerationFailed, err) |
| 206 | } |
| 207 | resSAS, err := p.makeSAS(resName, aztables.SASPermissions{Read: true}) |
| 208 | if err != nil { |
| 209 | return SessionTokens{}, fmt.Errorf("%w: %v", ErrSASGenerationFailed, err) |
| 210 | } |
| 211 | return SessionTokens{Req: reqSAS, Res: resSAS}, nil |
| 212 | } |
| 213 | |
| 214 | func (p *tableDriver) NewTransport(_ context.Context, connID string, tokens SessionTokens, isInitiator bool) (Transport, error) { |