summaryrefslogtreecommitdiffstats
path: root/source/schema/openstack.yang
blob: 6878f7e0303e21649557beb4edc55da0ed3a293f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
module openstack {
  prefix os;

  import nfv-infrastructure { prefix nfvi; }
  import access-control-models { prefix acm; }
  import ietf-yang-types { prefix yang; }
  import ietf-inet-types { prefix inet; }
  import complex-types { prefix ct; }

  description
    "OpenStack controller module";

  revision 2016-01-19 {
    description "Basic coverage of limited intents needed for Promise";
  }
  
  identity openstack { base nfvi:manager; }
  identity release { base openstack; }
  identity distro { base openstack; }

  feature os-system-admin {
    description "OpenStack system administration capability";
  }
  
  grouping os-credentials {
    uses acm:access-credentials {
      refine strategy {
        default keystone;
      }
      refine endpoint {
        default "http://localhost:5000/v2.0";
      }
    }
    container tenant {
      leaf id { type string; }
      leaf name { type string; }
    }
  }
  
  // OpenStack infrastructure platform (PLACEHOLDER)
  container platform {
    uses nfvi:resource-stack;
    
    leaf release { type identityref { base release; } }
    leaf distro  { type identityref { base distro; } }
    
    //ct:instance-list services { ct:instance-type OpenStackService; }
    //ct:instance-list endpoints { ct:instance-type ServiceEndpoint; }
  }

  // OpenStack system administrator configuration tree
  container admin {
    if-feature os-system-admin;
    container auth {
      uses os-credentials;
      leaf token { type yang:uuid; }
    }
  }

  rpc authenticate {
    if-feature os-system-admin;
    input {
      uses os-credentials;
    }
    output {
      leaf token { type yang:uuid; }
    }
  }

  rpc create-tenant {
    if-feature os-system-admin;
    
  }
}