Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[research] discuss GAOM boundaries and design the interface #89

Open
7 of 9 tasks
shadeofblue opened this issue Jan 18, 2023 · 1 comment
Open
7 of 9 tasks

[research] discuss GAOM boundaries and design the interface #89

shadeofblue opened this issue Jan 18, 2023 · 1 comment
Assignees

Comments

@shadeofblue
Copy link
Contributor

shadeofblue commented Jan 18, 2023

  • consult @stranger80 on the behavior of the object model on its boundaries
  • @stranger80 decides on the location of the documentation
  • document the desired interface

boundaries being the places where the "golem deploy" tree ends and where references to structures from outside the "golem deploy" model exist

Example 1 - payload

here is the payload definition:

payloads:
  db:
    runtime: "vm"
    params:
      image_hash: "85021afecf51687ecae8bdc21e10f3b11b82d2e3b169ba44e177340c"

in runtime, each payloads entry is resolved to a Payload object, which is a generic container for any Golem payload and it consists mostly of properties and constraints based on which a Demand is constructed

Example 2 - service

nodes:
  db:
    payload: "db"
    init:
      - run:
          args:
            - "/bin/run_rqlite.sh"
    network: "default"

in runtime, each of the nodes children is resolved to a Cluster object which contains (one or more) instance(s) of the service, each of which is an instance of a DappService class (inheriting from Service) ...

questions:

  • do we want to provide some way to access properties of the underlying objects directly?
  • if yes, what should be the interface?
    • should we try to include all these objects in the GAOM?
    • do we want to provide a generic interface of accessing the properties of the internal objects
  • alternatively, (and preferably?) we may wish to define a set of generic GAOM properties for each of those types which would be internally translated to appropriate objects
    • most (all?) of these will be read-only

e.g. a nodes entry could be described as having the following read-only structure:

    - service:
        agreement_id: str
        activity_id: str
        provider_id: str
        provider_name: str

should we enable access to DappService's queues through GAOM?

the resultant GAOM:

nodes:
  db:
    payload: "db"
    init:
      - run:
          args:
            - "/bin/run_rqlite.sh"
    network: 
        - default:
             ip:
               - "192.168.0.2"
    agreement_id: str
    activity_id: str
    provider_id: str
    provider_name: str
    network: reference
    ip: ip-address
@shadeofblue shadeofblue self-assigned this Jan 18, 2023
@shadeofblue
Copy link
Contributor Author

ok, the current schema is located at https://raw.githubusercontent.com/golemfactory/gaom/v0.0.1/gaom.schema.json?token=GHSAT0AAAAAABYMVESZ5S7QI3GOMGIUZSKSY7MYTCQ

after discussion with @stranger80 we have agreed to proceed with the initial implementation based on this schema and make pull requests against the gaom repo when schema changes need to be adjusted

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant