Changes between Version 112 and Version 113 of GAPI_AM_API_DRAFT
- Timestamp:
- 03/19/14 11:09:51 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GAPI_AM_API_DRAFT
v112 v113 274 274 This change set adds some additional information to the return from `GetVersion`. 275 275 276 This change set was adopted at the GEC15 coding sprint. Aggregates may implement this as part of their AM API v3 implementation, but will be required to do so as part of AM API v4.276 This change set was discussed at the GEC15 coding sprint and '''adopted at GEC19'''. Aggregates may implement this as part of their AM API v3 implementation, but will be required to do so as part of AM API v4. 277 277 278 278 === Change Set N1: Add `geni_am_code_version` === … … 322 322 323 323 == Change Set O: Refine character restrictions == 324 This change set was adopted at the GEC15 coding sprint. Aggregates may implement this as part of their AM API v3 implementation, but will be required to do so as part of AM API v4.324 This change set was dicussed at the GEC15 coding sprint. Aggregates may implement this as part of their AM API v3 implementation, but will be required to do so as part of AM API v4. 325 325 326 326 === Change Set O1: Allow other characters in sliver names === 327 327 Currently we heavily constrain legal characters in the 'name' portion of sliver URNs. See GeniApiIdentifiers. This is awkward. In particular characters like periods, and underscores are not allowed, but are very useful as separators. 328 328 329 '''This change set was adopted at GEC19'''. Aggregates may start using these modified sliver names. 330 329 331 This change set proposes modifying the name portion of the URN rules as follows. Note that these changes loosen existing restrictions, and so are backwards compatible (existing sliver names remain legal). Note also that this change simple allows aggregates to use these other characters in their own identifiers, if they so choose. 330 332 … … 335 337 Various fields in the AM API specification are defined only as strings, without explicit limits on legal characters. This makes it awkward to pass these values to and from scripts. In particular, many fields should only be alphanumeric, plus some limited number of separator characters. 336 338 339 '''This change set was adopted at GEC19'''. This change is required in AM APIv4, optional earlier. 340 337 341 This change set proposes constraining several options/return values that are currently defined only as 'string'. 338 342 … … 352 356 5. From the return of multiple methods, `geni_operational_status`: alphanumeric plus underscore; alphanumeric only in first character: `'^[a-zA-Z0-9][a-zA-Z0-9_]*$'` 353 357 354 === Change Set O3: Allow unicode values ===358 === Deferred: Change Set O3: Allow unicode values === 355 359 Many values defined by this API appear to be limited to ASCII characters - both arguments and returns. We would like to support internationalization. Some values in this API (e.g. those defined as URLs) implicitly support unicode. Currently, a well behaved aggregate should be able to handle unicode values in at least some arguments. Similarly, a well behaved client should be able to handle unicode returns. 360 361 ''This change set was discussed and deferred at GEC19''. We do not yet have sufficient motivation, and their are questions about this proposal. 356 362 357 363 This change would clarify the support for internationalization in this API, and allow aggregates to specify unicode support. This change should not require any clients or aggregates to make changes. This change would specify: … … 367 373 368 374 == Change Set P: Support proxy clients that 'Speak For' an experimenter == 375 376 '''This change set was adopted at GEC19'''. This functionality may be implemented in AM API v2, and is required in AM API v4. 369 377 370 378 GENI tools invoke AM API methods on behalf of experimenters. When that tool instance is well known and trusted by the experimenter, and runs local to a single experimenter, then it is reasonable for that tool to be given the experimenter's private key and public certificate, and 'speak as' the experimenter. But for a hosted tool that might act for multiple experimenters it is both more secure and more clear what is happening for such tools to have their own identity certificate and private key by which each tool instance authenticates to AM API calls, and use a new 'Speaks For' credential (or credential set) to authorize the tool instance to take a given action. The experimenter will issue such credentials to the tool instance (possibly scoped by time, slice, aggregate, or other dimension), and the aggregate can then properly assign the resources to the experimenter, while logging and reporting that the tool performed the operation. This functionality can also be used for an experimenter to authorize a 'proxy' aggregate or an aggregate of aggregates. … … 431 439 == Change Set Q: Support changing users and keys on existing compute slivers == 432 440 441 '''This change set was adopted at GEC19.''' 442 433 443 Experimenters often want to change the users and/or SSH keys installed on existing running compute nodes, in a way that is persistent and consistent with any aggregate manager controlled processes. This is theoretically possible through the use of `Update()`, but the semantics are not clear there. 434 444 … … 508 518 509 519 == Change Set S: More info from `GetVersion` == 510 `GetVersion` should return an additional field indicate the URN(s) of the Aggregate Manager at this endpoint. This corresponds to the URN IDs of the `component_manager` or `component_manager_id` from the advertisement RSpec produced by this aggregate. 511 512 At many aggregates, this is a single URN. But at some aggregates that proxy for multiple component managers, this may be a list of URNs. 513 514 '''FIXME''': 515 - `geni_urn`? `geni_component_manager_urn`? 516 - Presumably this must be a list? 517 - Do aggregates ever have a single URN identifier? 520 `GetVersion` should return an additional field indicate the URN(s) of the Aggregate Manager at this endpoint. This corresponds to the URN in the certificate of the aggregate, or the URN that the aggregate uses if reporting slivers to the Federation SA API. For aggregates that have a single component manager, then this is likely the `component_manager` or `component_manager_id` from the advertisement RSpec produced by this aggregate. Aggregates which have multiple component managers must select a single AM URN, which may be the same as one of the component manager URNs. 521 522 Proposal: `GetVersion` adds the field `geni_am_urn` whose value is the URN of the aggregate manager running at this XMLRPC endpoint. 518 523 519 524 == Change Set T: Long Lived Slices == 520 525 This topic was raised at the [wiki:GEC18Agenda/CodingSprintTutoring#SessionSummary GEC18 Coding Sprint]. 526 527 The topic was later discussed at GEC19. Other proposals have been surfaced, including having aggregates sign credentials to users rather than the SA. 521 528 522 529 This proposal provides a way to support long running experiments that require slices and resource reservations with long lives. This proposal requires changes to Slice Authorities and aggregates.