def queryset(self, request):
return ControllerPrivilege.select_by_user(request.user)
+class ControllerSiteInline(PlStackTabularInline):
+ model = ControllerSite
+ extra = 0
+ suit_classes = 'suit-tab suit-tab-admin-only'
+ fields = ['controller', 'site_deployment', 'tenant_id']
+
+
class SitePrivilegeInline(PlStackTabularInline):
model = SitePrivilege
extra = 0
def queryset(self, request):
return SitePrivilege.select_by_user(request.user)
-class SiteDeploymentsInline(PlStackTabularInline):
- model = SiteDeployments
+class SiteDeploymentInline(PlStackTabularInline):
+ model = SiteDeployment
extra = 0
suit_classes = 'suit-tab suit-tab-deployments'
fields = ['backend_status_icon', 'deployment','site', 'controller']
if db_field.name == 'controller':
kwargs['queryset'] = Controller.select_by_user(request.user)
- return super(SiteDeploymentsInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
+ return super(SiteDeploymentInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
def queryset(self, request):
- return SiteDeployments.select_by_user(request.user)
+ return SiteDeployment.select_by_user(request.user)
class SlicePrivilegeInline(PlStackTabularInline):
# create/destroy the through models ourselves. There has to be
# a better way...
- self.manipulate_m2m_objs(deployment, self.cleaned_data['sites'], deployment.sitedeployments.all(), SiteDeployments, "deployment", "site")
+ self.manipulate_m2m_objs(deployment, self.cleaned_data['sites'], deployment.sitedeployments.all(), SiteDeployment, "deployment", "site")
self.manipulate_m2m_objs(deployment, self.cleaned_data['images'], deployment.imagedeployments.all(), ImageDeployments, "deployment", "image")
# manipulate_m2m_objs doesn't work for Flavor/Deployment relationship
# so well handle that manually here
class ControllerAdminForm(forms.ModelForm):
site_deployments = forms.ModelMultipleChoiceField(
- queryset=SiteDeployments.objects.all(),
+ queryset=SiteDeployment.objects.all(),
required=False,
help_text="Select which sites deployments are managed by this controller",
widget=FilteredSelectMultiple(
# save_m2m() doesn't seem to work with 'through' relations. So we
# create/destroy the through models ourselves. There has to be
# a better way...
- #self.manipulate_m2m_objs(controller, self.cleaned_data['site_deployments'], controller.controllersitedeployments.all(), ControllerSiteDeployments, "controller", "site_deployment")
+ self.manipulate_m2m_objs(controller, self.cleaned_data['site_deployments'], controller.controllersitedeployments.all(), ControllerSite, "controller", "site_deployment")
pass
self.save_m2m()
model = Controller
fieldList = ['name', 'version', 'backend_type', 'auth_url', 'admin_user', 'admin_tenant','admin_password']
#fieldsets = [(None, {'fields': fieldList, 'classes':['suit-tab suit-tab-general']})]
- inlines = [] # ,ControllerImagesInline]
+ inlines = [ControllerSiteInline] # ,ControllerImagesInline]
list_display = ['backend_status_icon', 'name', 'version', 'backend_type']
list_display_links = ('backend_status_icon', 'name', )
readonly_fields = ('backend_status_text',)
list_display = ('backend_status_icon', 'name', 'login_base','site_url', 'enabled')
list_display_links = ('backend_status_icon', 'name', )
filter_horizontal = ('deployments',)
- inlines = [SliceInline,UserInline,TagInline, SitePrivilegeInline, SiteDeploymentsInline]
+ inlines = [SliceInline,UserInline,TagInline, SitePrivilegeInline, SiteDeploymentInline]
search_fields = ['name']
def queryset(self, request):
raise forms.ValidationError('slice name must begin with %s' % site.login_base)
return cleaned_data
-class ControllerSlicesInline(PlStackTabularInline):
- model = ControllerSlices
+class ControllerSliceInline(PlStackTabularInline):
+ model = ControllerSlice
extra = 0
verbose_name = "Controller Slices"
verbose_name_plural = "Controller Slices"
list_display = ('backend_status_icon', 'name', 'site','serviceClass', 'slice_url', 'max_slivers')
list_display_links = ('backend_status_icon', 'name', )
inlines = [SlicePrivilegeInline,SliverInline, TagInline, ReservationInline,SliceNetworkInline]
- admin_inlines = [ControllerSlicesInline]
+ admin_inlines = [ControllerSliceInline]
user_readonly_fields = fieldList
fields = ['backend_status_icon', 'network','slice']
readonly_fields = ('backend_status_icon', )
-class ControllerNetworksInline(PlStackTabularInline):
- model = ControllerNetworks
+class ControllerNetworkInline(PlStackTabularInline):
+ model = ControllerNetwork
extra = 0
verbose_name_plural = "Controller Networks"
verbose_name = "Controller Network"
readonly_fields = ("subnet", )
inlines = [NetworkParameterInline, NetworkSliversInline, NetworkSlicesInline, RouterInline]
- admin_inlines = [ControllerNetworksInline]
+ admin_inlines = [ControllerNetworkInline]
form=NetworkForm
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:08.253Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 16
},
{
"backend_status": "BadRequest()",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 18
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:28.687Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 19
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:34.657Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 20
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:40.604Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 21
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:47.047Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 22
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:15.908Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 24
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-27T14:51:01.280Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 25
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-27T15:03:49.684Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 26
},
{
"backend_status": "Authorization Failed: unsupported operand type(s) for +: 'NoneType' and 'str'",
"enacted": "2014-08-08T03:49:32.318Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 27
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-08-06T17:46:03.289Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 28
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-08-06T17:46:07.804Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 29
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-08-06T17:46:12.521Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 30
},
{
{
"fields": {
"updated": "2014-09-26T04:06:20.072Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "llptest",
"service": null,
"created": "2014-04-02T18:33:34.260Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-09-26T07:22:41.108Z"
{
"fields": {
"updated": "2014-10-10T14:45:07.177Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "princeton_tmtest",
"service": null,
"created": "2014-04-16T00:04:24.968Z",
"omf_friendly": false,
"network": null,
"max_slivers": 18,
- "mountDataSets": "",
+ "mount_data_sets": "",
"backend_status": "Provisioning in progress",
"creator": 2,
"enacted": "2014-10-10T14:57:29.083Z"
{
"fields": {
"updated": "2014-04-23T01:26:51.982Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "arizona_cassandra",
"service": null,
"created": "2014-04-16T15:56:51.663Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-04-23T01:26:52.036Z"
{
"fields": {
"updated": "2014-04-25T14:54:19.481Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "arizona_kairos",
"service": null,
"created": "2014-04-16T15:58:35.898Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-04-25T14:54:19.531Z"
{
"fields": {
"updated": "2014-05-01T08:29:57.116Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "arizona_tools",
"service": null,
"created": "2014-04-16T15:59:48.251Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-05-01T14:22:10.461Z"
{
"fields": {
"updated": "2014-05-03T23:00:36.236Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "arizona_nagios",
"service": null,
"created": "2014-04-16T16:38:24.914Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-05-05T14:02:24.006Z"
{
"fields": {
"updated": "2014-05-06T20:06:18.290Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "arizona_swift",
"service": null,
"created": "2014-04-16T21:39:16.203Z",
"omf_friendly": false,
"network": null,
"max_slivers": 20,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-05-13T00:37:49.902Z"
{
"fields": {
"updated": "2014-04-21T14:59:04.649Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "onlab_marc",
"service": null,
"created": "2014-04-18T20:32:09.105Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-04-21T14:59:04.712Z"
{
"fields": {
"updated": "2014-10-27T20:51:26.765Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "onlab_dnsdemux",
"service": 10,
"created": "2014-04-29T20:27:46.565Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-10-27T20:55:37.440Z"
{
"fields": {
"updated": "2014-10-27T20:54:10.007Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "onlab_dnsredir",
"service": 10,
"created": "2014-04-29T20:31:12.915Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-10-27T20:55:15.096Z"
{
"fields": {
"updated": "2014-06-17T15:01:34.396Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "acbtest4",
"service": null,
"created": "2014-04-30T21:05:49.535Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 4,
"enacted": null
{
"fields": {
"updated": "2014-07-04T01:08:22.892Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "smbaker-test",
"service": null,
"created": "2014-05-13T00:37:47.561Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank-11-2013",
+ "mount_data_sets": "GenBank-11-2013",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 8,
"enacted": null
{
"fields": {
"updated": "2014-07-16T22:41:49.374Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "llptenant",
"service": null,
"created": "2014-06-19T16:02:12.793Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank-11-2013",
+ "mount_data_sets": "GenBank-11-2013",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-08-02T18:34:48.385Z"
{
"fields": {
"updated": "2014-09-24T16:46:24.962Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "nfv-test",
"service": null,
"created": "2014-07-18T19:50:33.120Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank-11-2013",
+ "mount_data_sets": "GenBank-11-2013",
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-09-26T07:22:57.528Z"
{
"fields": {
"updated": "2014-10-08T14:41:01.523Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "princeton_syndicate",
"service": 5,
"created": "2014-07-24T18:04:58.309Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 100,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 6,
"enacted": "2014-10-09T18:48:00.386Z"
{
"fields": {
"updated": "2014-08-27T21:42:44.586Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "test-dpk-slice",
"service": null,
"created": "2014-07-25T20:18:10.790Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 44,
"enacted": "2014-09-26T07:22:32.959Z"
{
"fields": {
"updated": "2014-10-27T20:47:51.541Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_hpc",
"service": 12,
"created": "2014-08-01T21:13:08.385Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": "2014-10-27T20:55:55.209Z"
{
"fields": {
"updated": "2014-10-13T05:56:08.211Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_smbakertest",
"service": null,
"created": "2014-08-13T01:34:15.782Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 8,
"enacted": null
{
"fields": {
"updated": "2014-10-17T22:01:54.085Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_smbakertest2",
"service": null,
"created": "2014-08-13T01:35:54.970Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 8,
"enacted": null
{
"fields": {
"updated": "2014-09-19T21:12:35.800Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_cmi",
"service": 12,
"created": "2014-08-19T21:40:01.505Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "",
"creator": 8,
"enacted": "2014-09-19T21:20:04.708Z"
{
"fields": {
"updated": "2014-09-11T00:30:17.802Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_test_issue",
"service": null,
"created": "2014-09-09T23:21:40.684Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 44,
"enacted": "2014-09-15T07:52:11.738Z"
{
"fields": {
"updated": "2014-09-10T08:01:21.608Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "us-east-1a_",
"service": null,
"created": "2014-09-10T08:00:53.468Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 5,
"enacted": "2014-09-10T08:02:56.730Z"
{
"fields": {
"updated": "2014-09-16T22:54:04.709Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan2",
"service": null,
"created": "2014-09-12T18:47:53.242Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 5,
"enacted": "2014-09-16T22:59:56.547Z"
{
"fields": {
"updated": "2014-09-12T18:51:31.033Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan3",
"service": null,
"created": "2014-09-12T18:51:31.033Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T07:52:16.231Z"
{
"fields": {
"updated": "2014-09-12T19:04:23.162Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan4",
"service": null,
"created": "2014-09-12T19:04:23.162Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T07:52:18.432Z"
{
"fields": {
"updated": "2014-09-12T19:16:41.990Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan5",
"service": null,
"created": "2014-09-12T19:16:41.990Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T07:52:20.670Z"
{
"fields": {
"updated": "2014-09-15T07:12:57.834Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan6",
"service": null,
"created": "2014-09-15T07:12:57.834Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T07:52:22.908Z"
{
"fields": {
"updated": "2014-09-15T07:15:16.246Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan7",
"service": null,
"created": "2014-09-15T07:15:16.246Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T07:52:25.213Z"
{
"fields": {
"updated": "2014-09-15T07:18:03.925Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan8",
"service": null,
"created": "2014-09-15T07:18:03.925Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T07:52:27.411Z"
{
"fields": {
"updated": "2014-09-15T07:31:12.107Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan9",
"service": null,
"created": "2014-09-15T07:31:12.107Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T07:51:48.950Z"
{
"fields": {
"updated": "2014-09-15T07:42:13.531Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan11",
"service": null,
"created": "2014-09-15T07:42:13.531Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T07:52:07.246Z"
{
"fields": {
"updated": "2014-09-15T07:45:20.779Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan12",
"service": null,
"created": "2014-09-15T07:45:20.779Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T07:52:09.456Z"
{
"fields": {
"updated": "2014-09-15T07:58:58.353Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan13",
"service": null,
"created": "2014-09-15T07:58:58.353Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T08:00:28.796Z"
{
"fields": {
"updated": "2014-09-15T08:02:45.413Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_sapan14",
"service": null,
"created": "2014-09-15T08:02:45.413Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": null,
"enacted": "2014-09-15T08:09:25.299Z"
{
"fields": {
"updated": "2014-09-16T22:58:07.348Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_09_16",
"service": null,
"created": "2014-09-16T22:58:07.348Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 44,
"enacted": "2014-09-16T22:59:58.840Z"
{
"fields": {
"updated": "2014-09-30T22:36:46.871Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_cacti",
"service": null,
"created": "2014-09-30T19:55:59.681Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": "2014-09-30T22:43:42.489Z"
{
"fields": {
"updated": "2014-10-07T21:13:38.926Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "princeton_tmtest2",
"service": null,
"created": "2014-10-07T21:13:38.926Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": null,
"enacted": null
{
"fields": {
"updated": "2014-10-08T20:36:39.879Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "wash_test1",
"service": null,
"created": "2014-10-08T20:36:39.879Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": null,
"enacted": null
{
"fields": {
"updated": "2014-10-08T20:38:05.304Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "wash_test2",
"service": null,
"created": "2014-10-08T20:38:05.304Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": null,
"enacted": null
{
"fields": {
"updated": "2014-10-21T00:54:11.022Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "princeton_publicdata",
"service": 5,
"created": "2014-10-09T16:41:43.157Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 6,
"enacted": "2014-10-21T01:19:40.962Z"
{
"fields": {
"updated": "2014-10-09T18:18:35.616Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_smbakertest3",
"service": null,
"created": "2014-10-09T18:18:35.616Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 8,
"enacted": null
{
"fields": {
"updated": "2014-10-15T23:44:36.199Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_smbaskertest3",
"service": null,
"created": "2014-10-15T23:09:39.090Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 8,
"enacted": null
{
"fields": {
"updated": "2014-10-17T01:28:37.634Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_smbakertest4",
"service": null,
"created": "2014-10-16T06:58:38.654Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 8,
"enacted": null
{
"fields": {
"updated": "2014-10-16T07:41:48.632Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_smbakertest5",
"service": null,
"created": "2014-10-16T07:38:34.933Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 8,
"enacted": null
{
"fields": {
"updated": "2014-10-22T18:00:45.519Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_nagios",
"service": null,
"created": "2014-10-22T03:35:22.689Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": "2014-10-22T18:11:41.748Z"
{
"fields": {
"updated": "2014-10-22T16:39:24.806Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_tmtest",
"service": null,
"created": "2014-10-22T13:28:03.980Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 2,
"enacted": null
{
"fields": {
"updated": "2014-10-22T16:39:34.491Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_tmtest2",
"service": null,
"created": "2014-10-22T15:51:45.792Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 2,
"enacted": null
{
"fields": {
"updated": "2014-10-22T17:26:45.518Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "stanford_tmtest3",
"service": null,
"created": "2014-10-22T17:26:45.518Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 2,
"enacted": null
{
"fields": {
"updated": "2014-10-23T21:39:06.053Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_smbakertest6",
"service": null,
"created": "2014-10-22T17:28:02.779Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": "2014-10-23T21:58:16.184Z"
{
"fields": {
"updated": "2014-10-23T06:39:46.041Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_smbakertest7",
"service": null,
"created": "2014-10-22T17:57:06.157Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": "2014-10-23T07:16:37.324Z"
{
"fields": {
"updated": "2014-10-27T22:39:21.997Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_planetstack",
"service": null,
"created": "2014-10-27T20:41:41.388Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": "2014-10-27T20:56:21.233Z"
"created": "2013-12-09T14:15:16.899Z",
"deleted": false,
"description": "Connect a sliver to the public network using dedicated public IPv4 address",
- "sharedNetworkName": "ext-net",
- "guaranteedBandwidth": 0,
+ "shared_network_name": "ext-net",
+ "guaranteed_bandwidth": 0,
"visibility": "public",
- "sharedNetworkId": "",
+ "shared_network_id": "",
"translation": "none",
"backend_status": "Provisioning in progress",
"enacted": "2014-05-21T15:36:30Z"
"created": "2013-12-09T14:17:29.551Z",
"deleted": false,
"description": "Connect a sliver to the public network via NAT",
- "sharedNetworkName": "nat-net",
- "guaranteedBandwidth": 0,
+ "shared_network_name": "nat-net",
+ "guaranteed_bandwidth": 0,
"visibility": "private",
- "sharedNetworkId": "",
+ "shared_network_id": "",
"translation": "NAT",
"backend_status": "Provisioning in progress",
"enacted": "2014-05-21T15:36:03Z"
"created": "2013-12-09T14:18:02.336Z",
"deleted": false,
"description": "A private virtual network",
- "sharedNetworkName": "",
- "guaranteedBandwidth": 0,
+ "shared_network_name": "",
+ "guaranteed_bandwidth": 0,
"visibility": "private",
- "sharedNetworkId": "",
+ "shared_network_id": "",
"translation": "none",
"backend_status": "Provisioning in progress",
"enacted": "2014-05-21T15:35:54Z"
"created": "2014-04-03T15:27:49.478Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
18
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 18,
"backend_status": "Provisioning in progress",
"created": "2014-04-16T00:08:58.376Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
22
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 22,
"backend_status": "Provisioning in progress",
"created": "2014-04-16T20:29:01.337Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 18,
"backend_status": "Provisioning in progress",
"created": "2014-04-16T21:45:04.633Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
28
],
"labels": "",
- "guaranteedBandwidth": 5,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 5,
+ "permit_all_slices": false,
"template": 4,
"owner": 28,
"backend_status": "Provisioning in progress",
"created": "2014-04-16T21:46:06.015Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
28
],
"labels": "",
- "guaranteedBandwidth": 5,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 5,
+ "permit_all_slices": false,
"template": 3,
"owner": 28,
"backend_status": "Provisioning in progress",
"created": "2014-04-16T21:46:57.274Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
23
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 23,
"backend_status": "Provisioning in progress",
"created": "2014-04-17T17:10:47.637Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 10,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 10,
+ "permit_all_slices": false,
"template": 4,
"owner": 25,
"backend_status": "Provisioning in progress",
"created": "2014-04-17T17:11:39.949Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 10,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 10,
+ "permit_all_slices": false,
"template": 3,
"owner": 25,
"backend_status": "Provisioning in progress",
"created": "2014-04-18T20:59:41.158Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
23
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 23,
"backend_status": "Provisioning in progress",
"created": "2014-04-18T21:01:06.196Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
23
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 23,
"backend_status": "Provisioning in progress",
"created": "2014-04-19T00:36:50.618Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 22,
"backend_status": "Provisioning in progress",
"created": "2014-04-19T17:33:43.205Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
23
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 23,
"backend_status": "Provisioning in progress",
"created": "2014-04-19T23:10:20.430Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 28,
"backend_status": "Provisioning in progress",
"created": "2014-04-19T23:10:47.331Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
28
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 28,
"backend_status": "Provisioning in progress",
"created": "2014-04-20T19:13:21.158Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
24
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 24,
"backend_status": "Provisioning in progress",
"created": "2014-04-20T19:14:15.821Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
24
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 24,
"backend_status": "Provisioning in progress",
"created": "2014-04-21T14:40:42.926Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
29
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 29,
"backend_status": "Provisioning in progress",
"created": "2014-04-21T14:41:07.483Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
29
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 29,
"backend_status": "Provisioning in progress",
"created": "2014-04-21T19:05:26.043Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 26,
"backend_status": "Provisioning in progress",
"created": "2014-04-21T19:05:53.117Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 26,
"backend_status": "Provisioning in progress",
"created": "2014-04-21T22:15:58.724Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 28,
"backend_status": "Provisioning in progress",
"created": "2014-04-21T22:16:12.422Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 28,
"backend_status": "Provisioning in progress",
"created": "2014-04-21T22:16:32.313Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 28,
"backend_status": "Provisioning in progress",
"created": "2014-04-21T22:16:54.315Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 28,
"backend_status": "Provisioning in progress",
"created": "2014-04-30T21:06:35.312Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 33,
"backend_status": "Provisioning in progress",
"created": "2014-04-30T21:07:08.005Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 33,
"backend_status": "Provisioning in progress",
"created": "2014-05-13T00:38:44.910Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 34,
"backend_status": "Provisioning in progress",
"created": "2014-05-13T00:39:22.999Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 34,
"backend_status": "Provisioning in progress",
"created": "2014-06-03T07:15:01.403Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 32,
"backend_status": "Provisioning in progress",
"created": "2014-06-03T07:15:33.377Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 32,
"backend_status": "Provisioning in progress",
"created": "2014-06-19T16:02:14.925Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 35,
"backend_status": "Provisioning in progress",
"created": "2014-06-19T16:02:19.171Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 35,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T03:48:20.878Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
40
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T03:50:31.250Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
40
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T03:51:22.976Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
40
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T03:51:25.979Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
40
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T20:21:52.074Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 41,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T20:23:03.991Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 41,
"backend_status": "Provisioning in progress",
"created": "2014-08-01T23:37:00.625Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 31,
"backend_status": "Provisioning in progress",
"created": "2014-08-01T23:37:47.334Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 31,
"backend_status": "Provisioning in progress",
"created": "2014-08-02T16:43:45.571Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 31,
"backend_status": "Provisioning in progress",
"created": "2014-08-02T17:29:06.716Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 45,
"backend_status": "Provisioning in progress",
"created": "2014-08-02T17:29:38.618Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 45,
"backend_status": "Provisioning in progress",
"created": "2014-08-04T17:24:54.199Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 31,
"backend_status": "Provisioning in progress",
"created": "2014-08-13T01:34:52.241Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 49,
"backend_status": "Provisioning in progress",
"created": "2014-08-13T01:35:22.598Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 49,
"backend_status": "Provisioning in progress",
"created": "2014-08-13T01:36:17.189Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 50,
"backend_status": "Provisioning in progress",
"created": "2014-08-13T01:36:57.559Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 50,
"backend_status": "Provisioning in progress",
"created": "2014-08-19T21:40:48.549Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 53,
"backend_status": "Provisioning in progress",
"created": "2014-08-19T21:41:26.950Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 53,
"backend_status": "Provisioning in progress",
"created": "2014-09-24T02:49:33.357Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
39
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 39,
"backend_status": "Provisioning in progress",
"created": "2014-09-24T02:50:11.179Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
39
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 39,
"backend_status": "Provisioning in progress",
"created": "2014-09-30T19:56:42.970Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 76,
"backend_status": "Provisioning in progress",
"created": "2014-09-30T19:57:30.963Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 76,
"backend_status": "Provisioning in progress",
"created": "2014-10-07T21:13:51.326Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 78,
"backend_status": "Provisioning in progress",
"created": "2014-10-07T21:14:06.175Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 78,
"backend_status": "Provisioning in progress",
"created": "2014-10-08T14:41:03.309Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-10-08T14:41:17.387Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-10-08T20:36:52.970Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 83,
"backend_status": "Provisioning in progress",
"created": "2014-10-08T20:37:09.898Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 83,
"backend_status": "Provisioning in progress",
"created": "2014-10-08T20:38:16.467Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 84,
"backend_status": "Provisioning in progress",
"created": "2014-10-08T20:38:40.508Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 84,
"backend_status": "Provisioning in progress",
"created": "2014-10-09T16:41:54.752Z",
"deleted": true,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 97,
"backend_status": "NameError(\"global name 'Exeption' is not defined\",)",
"created": "2014-10-09T16:42:09.773Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 97,
"backend_status": "Provisioning in progress",
"created": "2014-10-09T18:18:49.879Z",
"deleted": true,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 98,
"backend_status": "NameError(\"global name 'Exeption' is not defined\",)",
"created": "2014-10-10T14:45:07.885Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 22,
"backend_status": "Provisioning in progress",
"created": "2014-10-10T14:45:22.758Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 22,
"backend_status": "Provisioning in progress",
"created": "2014-10-15T17:21:17.959Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 97,
"backend_status": "Provisioning in progress",
"created": "2014-10-15T23:10:01.250Z",
"deleted": true,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 99,
"backend_status": "NameError(\"global name 'Exeption' is not defined\",)",
"created": "2014-10-15T23:10:28.442Z",
"deleted": true,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 99,
"backend_status": "NameError(\"global name 'Exeption' is not defined\",)",
"created": "2014-10-16T06:53:02.247Z",
"deleted": true,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 99,
"backend_status": "NameError(\"global name 'Exeption' is not defined\",)",
"created": "2014-10-16T06:58:50.156Z",
"deleted": true,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 100,
"backend_status": "NameError(\"global name 'Exeption' is not defined\",)",
"created": "2014-10-16T07:38:47.629Z",
"deleted": true,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 101,
"backend_status": "NameError(\"global name 'Exeption' is not defined\",)",
"created": "2014-10-17T17:49:51.499Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 97,
"backend_status": "Provisioning in progress",
"created": "2014-10-22T03:35:41.622Z",
"deleted": true,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 102,
"backend_status": "NameError(\"global name 'Exeption' is not defined\",)",
"created": "2014-10-22T03:36:01.000Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 102,
"backend_status": "Provisioning in progress",
"created": "2014-10-22T03:43:19.845Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 102,
"backend_status": "Provisioning in progress",
"created": "2014-10-22T15:52:02.052Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 104,
"backend_status": "Provisioning in progress",
"created": "2014-10-22T15:52:17.596Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 104,
"backend_status": "Provisioning in progress",
"created": "2014-10-22T17:28:19.354Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 106,
"backend_status": "Provisioning in progress",
"created": "2014-10-22T17:28:37.321Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 106,
"backend_status": "Provisioning in progress",
"created": "2014-10-22T17:57:20.819Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 107,
"backend_status": "Provisioning in progress",
"created": "2014-10-22T17:57:40.327Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 107,
"backend_status": "Provisioning in progress",
"created": "2014-10-22T17:59:13.536Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 107,
"backend_status": "Provisioning in progress",
"created": "2014-10-27T20:42:00.422Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 108,
"backend_status": "Provisioning in progress",
"created": "2014-10-27T20:42:17.975Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 108,
"backend_status": "Provisioning in progress",
"created": "2014-10-27T22:32:31.787Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 108,
"backend_status": "Provisioning in progress",
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:28.687Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 19
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:34.657Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 20
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:40.604Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 21
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:47.047Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 22
},
{
"backend_status": "Authorization Failed: unsupported operand type(s) for +: 'NoneType' and 'str'",
"enacted": "2014-08-08T03:49:32.318Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 27
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-08-06T17:46:03.289Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 28
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-08-06T17:46:07.804Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 29
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-08-06T17:46:12.521Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 30
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 31
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 32
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 33
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 34
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 35
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 36
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 37
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 38
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 39
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 40
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 41
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 42
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 43
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 44
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 45
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 46
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 47
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 48
},
{
{
"fields": {
"updated": "2014-09-19T21:11:00.746Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "onlab_dnsdemux",
"service": 10,
"created": "2014-04-29T20:27:46.565Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-09-19T21:20:35.271Z"
{
"fields": {
"updated": "2014-10-07T06:03:18.962Z",
- "imagePreference": null,
+ "image_preference": null,
"name": "onlab_dnsredir",
"service": 10,
"created": "2014-04-29T20:31:12.915Z",
"omf_friendly": false,
"network": null,
"max_slivers": 10,
- "mountDataSets": null,
+ "mount_data_sets": null,
"backend_status": "Provisioning in progress",
"creator": 7,
"enacted": "2014-10-09T18:47:35.832Z"
{
"fields": {
"updated": "2014-10-08T14:41:01.523Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "princeton_syndicate",
"service": 5,
"created": "2014-07-24T18:04:58.309Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 100,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 6,
"enacted": "2014-10-09T18:48:00.386Z"
{
"fields": {
"updated": "2014-09-23T18:29:58.930Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_hpc",
"service": 12,
"created": "2014-08-01T21:13:08.385Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": "2014-09-23T19:06:55.420Z"
{
"fields": {
"updated": "2014-09-19T21:12:35.800Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_cmi",
"service": 12,
"created": "2014-08-19T21:40:01.505Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "",
"creator": 8,
"enacted": "2014-09-19T21:20:04.708Z"
{
"fields": {
"updated": "2014-09-30T22:36:46.871Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_cacti",
"service": null,
"created": "2014-09-30T19:55:59.681Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": "2014-09-30T22:43:42.489Z"
{
"fields": {
"updated": "2014-10-07T21:13:38.926Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "princeton_tmtest2",
"service": null,
"created": "2014-10-07T21:13:38.926Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": null,
"enacted": null
{
"fields": {
"updated": "2014-10-08T20:36:39.879Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "wash_test1",
"service": null,
"created": "2014-10-08T20:36:39.879Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": null,
"enacted": null
{
"fields": {
"updated": "2014-10-08T20:38:05.304Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "wash_test2",
"service": null,
"created": "2014-10-08T20:38:05.304Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": null,
"enacted": null
{
"fields": {
"updated": "2014-10-10T02:41:49.594Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "princeton_publicdata",
"service": 5,
"created": "2014-10-09T16:41:43.157Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 6,
"enacted": "2014-10-10T14:57:41.282Z"
{
"fields": {
"updated": "2014-10-09T18:18:35.616Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "onlab_smbakertest3",
"service": null,
"created": "2014-10-09T18:18:35.616Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "NameError(\"global name 'User' is not defined\",)",
"creator": 8,
"enacted": null
"created": "2013-12-09T14:15:16.899Z",
"deleted": false,
"description": "Connect a sliver to the public network using dedicated public IPv4 address",
- "sharedNetworkName": "ext-net",
- "guaranteedBandwidth": 0,
+ "shared_network_name": "ext-net",
+ "guaranteed_bandwidth": 0,
"visibility": "public",
- "sharedNetworkId": "",
+ "shared_network_id": "",
"translation": "none",
"backend_status": "Provisioning in progress",
"enacted": "2014-05-21T15:36:30Z"
"created": "2013-12-09T14:17:29.551Z",
"deleted": false,
"description": "Connect a sliver to the public network via NAT",
- "sharedNetworkName": "nat-net",
- "guaranteedBandwidth": 0,
+ "shared_network_name": "nat-net",
+ "guaranteed_bandwidth": 0,
"visibility": "private",
- "sharedNetworkId": "",
+ "shared_network_id": "",
"translation": "NAT",
"backend_status": "Provisioning in progress",
"enacted": "2014-05-21T15:36:03Z"
"created": "2013-12-09T14:18:02.336Z",
"deleted": false,
"description": "A private virtual network",
- "sharedNetworkName": "",
- "guaranteedBandwidth": 0,
+ "shared_network_name": "",
+ "guaranteed_bandwidth": 0,
"visibility": "private",
- "sharedNetworkId": "",
+ "shared_network_id": "",
"translation": "none",
"backend_status": "Provisioning in progress",
"enacted": "2014-05-21T15:35:54Z"
"created": "2014-06-03T07:15:01.403Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 32,
"backend_status": "Provisioning in progress",
"created": "2014-06-03T07:15:33.377Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 32,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T03:48:20.878Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
40
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T03:50:31.250Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
40
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T03:51:22.976Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
40
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-07-25T03:51:25.979Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
40
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-08-01T23:37:00.625Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 31,
"backend_status": "Provisioning in progress",
"created": "2014-08-01T23:37:47.334Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 31,
"backend_status": "Provisioning in progress",
"created": "2014-08-02T16:43:45.571Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 31,
"backend_status": "Provisioning in progress",
"created": "2014-08-02T17:29:06.716Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 45,
"backend_status": "Provisioning in progress",
"created": "2014-08-02T17:29:38.618Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 45,
"backend_status": "Provisioning in progress",
"created": "2014-08-04T17:24:54.199Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 31,
"backend_status": "Provisioning in progress",
"created": "2014-08-19T21:40:48.549Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 53,
"backend_status": "Provisioning in progress",
"created": "2014-08-19T21:41:26.950Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 53,
"backend_status": "Provisioning in progress",
"created": "2014-09-30T19:56:42.970Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 76,
"backend_status": "Provisioning in progress",
"created": "2014-09-30T19:57:30.963Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 76,
"backend_status": "Provisioning in progress",
"created": "2014-10-08T14:41:03.309Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-10-08T14:41:17.387Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 40,
"backend_status": "Provisioning in progress",
"created": "2014-10-09T16:41:54.752Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 97,
"backend_status": "Provisioning in progress",
"created": "2014-10-09T16:42:09.773Z",
"deleted": false,
"network_id": null,
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": null,
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 97,
"backend_status": "Provisioning in progress",
},
{
"pk": 1,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-07T23:52:01.453Z",
"created": "2014-05-07T23:52:01.453Z",
},
{
"pk": 2,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-07T23:52:01.455Z",
"created": "2014-05-07T23:52:01.455Z",
},
{
"pk": 3,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-07T23:52:01.456Z",
"created": "2014-05-07T23:52:01.456Z",
},
{
"pk": 4,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-07T23:52:01.457Z",
"created": "2014-05-07T23:52:01.456Z",
},
{
"pk": 5,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-07T23:52:01.457Z",
"created": "2014-05-07T23:52:01.457Z",
},
{
"pk": 6,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-07T23:52:01.458Z",
"created": "2014-05-07T23:52:01.458Z",
},
{
"pk": 7,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:00:37.305Z",
"created": "2014-05-08T00:00:37.305Z",
},
{
"pk": 8,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:01:18.181Z",
"created": "2014-05-08T00:01:18.181Z",
},
{
"pk": 9,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:01:29.768Z",
"created": "2014-05-08T00:01:29.768Z",
},
{
"pk": 10,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:01:52.173Z",
"created": "2014-05-08T00:01:52.173Z",
},
{
"pk": 11,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:02:03.435Z",
"created": "2014-05-08T00:02:03.435Z",
},
{
"pk": 12,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:02:16.038Z",
"created": "2014-05-08T00:02:16.038Z",
},
{
"pk": 13,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:02:33.626Z",
"created": "2014-05-08T00:02:33.626Z",
},
{
"pk": 14,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:02:46.549Z",
"created": "2014-05-08T00:02:46.549Z",
},
{
"pk": 15,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:03:01.445Z",
"created": "2014-05-08T00:03:01.445Z",
},
{
"pk": 16,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:03:18.238Z",
"created": "2014-05-08T00:03:18.238Z",
},
{
"pk": 17,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:03:32.156Z",
"created": "2014-05-08T00:03:32.156Z",
},
{
"pk": 18,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:03:45.449Z",
"created": "2014-05-08T00:03:45.448Z",
},
{
"pk": 19,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:03:59.510Z",
"created": "2014-05-08T00:03:59.510Z",
},
{
"pk": 20,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:04:12.516Z",
"created": "2014-05-08T00:04:12.516Z",
},
{
"pk": 21,
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"fields": {
"updated": "2014-05-08T00:04:25.576Z",
"created": "2014-05-08T00:04:25.576Z",
"model": "core.slice",
"fields": {
"updated": "2014-08-27T22:40:05.088Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "HyperCache",
"service": 14,
"created": "2013-04-03T23:14:11.072Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 1,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-03-23T23:12:27.541Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "Syndicate",
"service": 5,
"created": "2013-04-03T23:14:11.072Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 1,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-03-23T23:17:33.686Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "DnsRedir",
"service": 4,
"created": "2013-12-04T22:48:35.584Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-03-23T23:18:00.528Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "DnsDemux",
"service": 4,
"created": "2013-12-04T22:49:23.051Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-03-23T23:19:56.253Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "Infrastructure",
"service": null,
"created": "2013-12-09T14:13:15.392Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 1,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-03-23T23:15:29.953Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "Stork",
"service": 8,
"created": "2013-12-13T21:49:59.476Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 1,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-03-23T23:16:01.742Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "Owl",
"service": 8,
"created": "2013-12-13T21:52:15.590Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 1,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-03-23T23:15:02.712Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "Hadoop",
"service": null,
"created": "2013-12-13T21:54:20.895Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 1,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-03-23T23:14:27.648Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "test",
"service": null,
"created": "2013-12-13T21:56:57.299Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 1,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-03-23T23:14:00.911Z",
- "imagePreference": "Ubuntu 12.04 LTS",
+ "image_preference": "Ubuntu 12.04 LTS",
"name": "test2",
"service": null,
"created": "2013-12-13T22:00:03.049Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank",
+ "mount_data_sets": "GenBank",
"backend_status": "Provisioning in progress",
"creator": 1,
"enacted": null
"model": "core.slice",
"fields": {
"updated": "2014-05-27T14:05:40.950Z",
- "imagePreference": "Hadoop 2.4.0",
+ "image_preference": "Hadoop 2.4.0",
"name": "Analytics",
"service": null,
"created": "2014-05-20T17:54:07.100Z",
"omf_friendly": false,
"network": "Private Only",
"max_slivers": 10,
- "mountDataSets": "GenBank-11-2013",
+ "mount_data_sets": "GenBank-11-2013",
"backend_status": "Provisioning in progress",
"creator": 8,
"enacted": null
"created": "2013-12-09T14:15:16.899Z",
"deleted": false,
"description": "Connect a sliver to the public network using dedicated public IPv4 address",
- "sharedNetworkName": "ext-net",
- "guaranteedBandwidth": 0,
+ "shared_network_name": "ext-net",
+ "guaranteed_bandwidth": 0,
"visibility": "public",
- "sharedNetworkId": "",
+ "shared_network_id": "",
"translation": "none",
"backend_status": "Provisioning in progress",
"enacted": "2014-05-12T19:24:09Z"
"created": "2013-12-09T14:17:29.551Z",
"deleted": false,
"description": "Connect a sliver to the public network via NAT, with port forwarding",
- "sharedNetworkName": "nat-net",
- "guaranteedBandwidth": 0,
+ "shared_network_name": "nat-net",
+ "guaranteed_bandwidth": 0,
"visibility": "private",
- "sharedNetworkId": "",
+ "shared_network_id": "",
"translation": "NAT",
"backend_status": "Provisioning in progress",
"enacted": "2014-05-12T19:23:54Z"
"created": "2013-12-09T14:18:02.336Z",
"deleted": false,
"description": "A private virtual network",
- "sharedNetworkName": "",
- "guaranteedBandwidth": 0,
+ "shared_network_name": "",
+ "guaranteed_bandwidth": 0,
"visibility": "private",
- "sharedNetworkId": "",
+ "shared_network_id": "",
"translation": "none",
"backend_status": "Provisioning in progress",
"enacted": "2014-05-12T19:23:30Z"
"created": "2013-12-09T14:24:19.970Z",
"deleted": false,
"network_id": "7cb4291d-f8d3-4797-83b0-8deefd85bdf5",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:31:41.605Z",
"deleted": false,
"network_id": "810b4cb8-9d8e-4eee-becc-676785a07725",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:33:10.312Z",
"deleted": false,
"network_id": "4b37f048-11de-4ddd-acaf-2fc5e8716f0e",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:34:55.754Z",
"deleted": false,
"network_id": "684386d7-1286-4e58-acda-8ff45deac99e",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:36:09.261Z",
"deleted": false,
"network_id": "fa090174-ec59-4b7a-812b-9206d911fb61",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:37:02.420Z",
"deleted": false,
"network_id": "017a3914-5eaf-4bcb-8609-6d17ebcdf075",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:38:11.552Z",
"deleted": false,
"network_id": "fdf0e3b1-439b-4673-b56e-d9dfe52b2bb7",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:39:51.262Z",
"deleted": false,
"network_id": "fdf0e3b1-439b-4673-b56e-d9dfe52b2bb7",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:41:00.237Z",
"deleted": false,
"network_id": "fdf0e3b1-439b-4673-b56e-d9dfe52b2bb7",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:42:03.158Z",
"deleted": false,
"network_id": "ecdbaf66-b659-4d59-b0b7-1bf6d232ccba",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-09T14:42:49.781Z",
"deleted": false,
"network_id": "ae4d42e8-a97c-440d-9533-4bcbd62dfb00",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "public-net",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-13T21:51:04.425Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": true,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": true,
"template": 4,
"owner": 11,
"backend_status": "Provisioning in progress",
"created": "2013-12-13T21:53:07.783Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": true,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": true,
"template": 4,
"owner": 12,
"backend_status": "Provisioning in progress",
"created": "2013-12-13T21:55:51.703Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": true,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": true,
"template": 4,
"owner": 13,
"backend_status": "Provisioning in progress",
"created": "2013-12-13T21:57:38.995Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 14,
"backend_status": "Provisioning in progress",
"created": "2013-12-13T22:00:40.549Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 3,
"owner": 15,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:05:09.944Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:05:50.112Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 10,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:13:17.310Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 9,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:13:38.194Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 9,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:16:19.797Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 8,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:16:38.335Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 8,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:24:19.109Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [
+ "permitted_slices": [
6,
8
],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 4,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:24:38.066Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 4,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:26:46.435Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 4,
"owner": 6,
"backend_status": "Provisioning in progress",
"created": "2013-12-18T22:27:12.647Z",
"deleted": false,
"network_id": "",
- "permittedSlices": [],
+ "permitted_slices": [],
"labels": "",
- "guaranteedBandwidth": 0,
- "permitAllSlices": false,
+ "guaranteed_bandwidth": 0,
+ "permit_all_slices": false,
"template": 1,
"owner": 6,
"backend_status": "Provisioning in progress",
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:28.687Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 19
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:34.657Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 20
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:40.604Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 21
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-06-20T01:53:47.047Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 22
},
{
"backend_status": "Authorization Failed: unsupported operand type(s) for +: 'NoneType' and 'str'",
"enacted": "2014-08-08T03:49:32.318Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 27
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-08-06T17:46:03.289Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 28
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-08-06T17:46:07.804Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 29
},
{
"backend_status": "Provisioning in progress",
"enacted": "2014-08-06T17:46:12.521Z"
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 30
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 31
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 32
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 33
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 34
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 35
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 36
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 37
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 38
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 39
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 40
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 41
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 42
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 43
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 44
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 45
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 46
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 47
},
{
"backend_status": "Provisioning in progress",
"enacted": null
},
- "model": "core.sitedeployments",
+ "model": "core.sitedeployment",
"pk": 48
},
{
('enacted', models.DateTimeField(default=None, null=True)),
('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
('deleted', models.BooleanField(default=False)),
- ('timezone', timezones.fields.TimeZoneField(default=b'America/New_York', max_length=100, choices=[(b'Pacific/Midway', b'(GMT-1100) Pacific/Midway'), (b'Pacific/Niue', b'(GMT-1100) Pacific/Niue'), (b'Pacific/Pago_Pago', b'(GMT-1100) Pacific/Pago_Pago'), (b'America/Adak', b'(GMT-1000) America/Adak'), (b'Pacific/Honolulu', b'(GMT-1000) Pacific/Honolulu'), (b'Pacific/Johnston', b'(GMT-1000) Pacific/Johnston'), (b'Pacific/Rarotonga', b'(GMT-1000) Pacific/Rarotonga'), (b'Pacific/Tahiti', b'(GMT-1000) Pacific/Tahiti'), (b'US/Hawaii', b'(GMT-1000) US/Hawaii'), (b'Pacific/Marquesas', b'(GMT-0930) Pacific/Marquesas'), (b'America/Anchorage', b'(GMT-0900) America/Anchorage'), (b'America/Juneau', b'(GMT-0900) America/Juneau'), (b'America/Nome', b'(GMT-0900) America/Nome'), (b'America/Sitka', b'(GMT-0900) America/Sitka'), (b'America/Yakutat', b'(GMT-0900) America/Yakutat'), (b'Pacific/Gambier', b'(GMT-0900) Pacific/Gambier'), (b'US/Alaska', b'(GMT-0900) US/Alaska'), (b'America/Dawson', b'(GMT-0800) America/Dawson'), (b'America/Los_Angeles', b'(GMT-0800) America/Los_Angeles'), (b'America/Metlakatla', b'(GMT-0800) America/Metlakatla'), (b'America/Santa_Isabel', b'(GMT-0800) America/Santa_Isabel'), (b'America/Tijuana', b'(GMT-0800) America/Tijuana'), (b'America/Vancouver', b'(GMT-0800) America/Vancouver'), (b'America/Whitehorse', b'(GMT-0800) America/Whitehorse'), (b'Canada/Pacific', b'(GMT-0800) Canada/Pacific'), (b'Pacific/Pitcairn', b'(GMT-0800) Pacific/Pitcairn'), (b'US/Pacific', b'(GMT-0800) US/Pacific'), (b'America/Boise', b'(GMT-0700) America/Boise'), (b'America/Cambridge_Bay', b'(GMT-0700) America/Cambridge_Bay'), (b'America/Chihuahua', b'(GMT-0700) America/Chihuahua'), (b'America/Creston', b'(GMT-0700) America/Creston'), (b'America/Dawson_Creek', b'(GMT-0700) America/Dawson_Creek'), (b'America/Denver', b'(GMT-0700) America/Denver'), (b'America/Edmonton', b'(GMT-0700) America/Edmonton'), (b'America/Hermosillo', b'(GMT-0700) America/Hermosillo'), (b'America/Inuvik', b'(GMT-0700) America/Inuvik'), (b'America/Mazatlan', b'(GMT-0700) America/Mazatlan'), (b'America/Ojinaga', b'(GMT-0700) America/Ojinaga'), (b'America/Phoenix', b'(GMT-0700) America/Phoenix'), (b'America/Yellowknife', b'(GMT-0700) America/Yellowknife'), (b'Canada/Mountain', b'(GMT-0700) Canada/Mountain'), (b'US/Arizona', b'(GMT-0700) US/Arizona'), (b'US/Mountain', b'(GMT-0700) US/Mountain'), (b'America/Bahia_Banderas', b'(GMT-0600) America/Bahia_Banderas'), (b'America/Belize', b'(GMT-0600) America/Belize'), (b'America/Cancun', b'(GMT-0600) America/Cancun'), (b'America/Chicago', b'(GMT-0600) America/Chicago'), (b'America/Costa_Rica', b'(GMT-0600) America/Costa_Rica'), (b'America/El_Salvador', b'(GMT-0600) America/El_Salvador'), (b'America/Guatemala', b'(GMT-0600) America/Guatemala'), (b'America/Indiana/Knox', b'(GMT-0600) America/Indiana/Knox'), (b'America/Indiana/Tell_City', b'(GMT-0600) America/Indiana/Tell_City'), (b'America/Managua', b'(GMT-0600) America/Managua'), (b'America/Matamoros', b'(GMT-0600) America/Matamoros'), (b'America/Menominee', b'(GMT-0600) America/Menominee'), (b'America/Merida', b'(GMT-0600) America/Merida'), (b'America/Mexico_City', b'(GMT-0600) America/Mexico_City'), (b'America/Monterrey', b'(GMT-0600) America/Monterrey'), (b'America/North_Dakota/Beulah', b'(GMT-0600) America/North_Dakota/Beulah'), (b'America/North_Dakota/Center', b'(GMT-0600) America/North_Dakota/Center'), (b'America/North_Dakota/New_Salem', b'(GMT-0600) America/North_Dakota/New_Salem'), (b'America/Rainy_River', b'(GMT-0600) America/Rainy_River'), (b'America/Rankin_Inlet', b'(GMT-0600) America/Rankin_Inlet'), (b'America/Regina', b'(GMT-0600) America/Regina'), (b'America/Resolute', b'(GMT-0600) America/Resolute'), (b'America/Swift_Current', b'(GMT-0600) America/Swift_Current'), (b'America/Tegucigalpa', b'(GMT-0600) America/Tegucigalpa'), (b'America/Winnipeg', b'(GMT-0600) America/Winnipeg'), (b'Canada/Central', b'(GMT-0600) Canada/Central'), (b'Pacific/Galapagos', b'(GMT-0600) Pacific/Galapagos'), (b'US/Central', b'(GMT-0600) US/Central'), (b'America/Atikokan', b'(GMT-0500) America/Atikokan'), (b'America/Bogota', b'(GMT-0500) America/Bogota'), (b'America/Cayman', b'(GMT-0500) America/Cayman'), (b'America/Detroit', b'(GMT-0500) America/Detroit'), (b'America/Eirunepe', b'(GMT-0500) America/Eirunepe'), (b'America/Guayaquil', b'(GMT-0500) America/Guayaquil'), (b'America/Havana', b'(GMT-0500) America/Havana'), (b'America/Indiana/Indianapolis', b'(GMT-0500) America/Indiana/Indianapolis'), (b'America/Indiana/Marengo', b'(GMT-0500) America/Indiana/Marengo'), (b'America/Indiana/Petersburg', b'(GMT-0500) America/Indiana/Petersburg'), (b'America/Indiana/Vevay', b'(GMT-0500) America/Indiana/Vevay'), (b'America/Indiana/Vincennes', b'(GMT-0500) America/Indiana/Vincennes'), (b'America/Indiana/Winamac', b'(GMT-0500) America/Indiana/Winamac'), (b'America/Iqaluit', b'(GMT-0500) America/Iqaluit'), (b'America/Jamaica', b'(GMT-0500) America/Jamaica'), (b'America/Kentucky/Louisville', b'(GMT-0500) America/Kentucky/Louisville'), (b'America/Kentucky/Monticello', b'(GMT-0500) America/Kentucky/Monticello'), (b'America/Lima', b'(GMT-0500) America/Lima'), (b'America/Montreal', b'(GMT-0500) America/Montreal'), (b'America/Nassau', b'(GMT-0500) America/Nassau'), (b'America/New_York', b'(GMT-0500) America/New_York'), (b'America/Nipigon', b'(GMT-0500) America/Nipigon'), (b'America/Panama', b'(GMT-0500) America/Panama'), (b'America/Pangnirtung', b'(GMT-0500) America/Pangnirtung'), (b'America/Port-au-Prince', b'(GMT-0500) America/Port-au-Prince'), (b'America/Rio_Branco', b'(GMT-0500) America/Rio_Branco'), (b'America/Thunder_Bay', b'(GMT-0500) America/Thunder_Bay'), (b'America/Toronto', b'(GMT-0500) America/Toronto'), (b'Canada/Eastern', b'(GMT-0500) Canada/Eastern'), (b'Pacific/Easter', b'(GMT-0500) Pacific/Easter'), (b'US/Eastern', b'(GMT-0500) US/Eastern'), (b'America/Caracas', b'(GMT-0430) America/Caracas'), (b'America/Anguilla', b'(GMT-0400) America/Anguilla'), (b'America/Antigua', b'(GMT-0400) America/Antigua'), (b'America/Aruba', b'(GMT-0400) America/Aruba'), (b'America/Barbados', b'(GMT-0400) America/Barbados'), (b'America/Blanc-Sablon', b'(GMT-0400) America/Blanc-Sablon'), (b'America/Boa_Vista', b'(GMT-0400) America/Boa_Vista'), (b'America/Curacao', b'(GMT-0400) America/Curacao'), (b'America/Dominica', b'(GMT-0400) America/Dominica'), (b'America/Glace_Bay', b'(GMT-0400) America/Glace_Bay'), (b'America/Goose_Bay', b'(GMT-0400) America/Goose_Bay'), (b'America/Grand_Turk', b'(GMT-0400) America/Grand_Turk'), (b'America/Grenada', b'(GMT-0400) America/Grenada'), (b'America/Guadeloupe', b'(GMT-0400) America/Guadeloupe'), (b'America/Guyana', b'(GMT-0400) America/Guyana'), (b'America/Halifax', b'(GMT-0400) America/Halifax'), (b'America/Kralendijk', b'(GMT-0400) America/Kralendijk'), (b'America/La_Paz', b'(GMT-0400) America/La_Paz'), (b'America/Lower_Princes', b'(GMT-0400) America/Lower_Princes'), (b'America/Manaus', b'(GMT-0400) America/Manaus'), (b'America/Marigot', b'(GMT-0400) America/Marigot'), (b'America/Martinique', b'(GMT-0400) America/Martinique'), (b'America/Moncton', b'(GMT-0400) America/Moncton'), (b'America/Montserrat', b'(GMT-0400) America/Montserrat'), (b'America/Port_of_Spain', b'(GMT-0400) America/Port_of_Spain'), (b'America/Porto_Velho', b'(GMT-0400) America/Porto_Velho'), (b'America/Puerto_Rico', b'(GMT-0400) America/Puerto_Rico'), (b'America/Santo_Domingo', b'(GMT-0400) America/Santo_Domingo'), (b'America/St_Barthelemy', b'(GMT-0400) America/St_Barthelemy'), (b'America/St_Kitts', b'(GMT-0400) America/St_Kitts'), (b'America/St_Lucia', b'(GMT-0400) America/St_Lucia'), (b'America/St_Thomas', b'(GMT-0400) America/St_Thomas'), (b'America/St_Vincent', b'(GMT-0400) America/St_Vincent'), (b'America/Thule', b'(GMT-0400) America/Thule'), (b'America/Tortola', b'(GMT-0400) America/Tortola'), (b'Atlantic/Bermuda', b'(GMT-0400) Atlantic/Bermuda'), (b'Canada/Atlantic', b'(GMT-0400) Canada/Atlantic'), (b'America/St_Johns', b'(GMT-0330) America/St_Johns'), (b'Canada/Newfoundland', b'(GMT-0330) Canada/Newfoundland'), (b'America/Araguaina', b'(GMT-0300) America/Araguaina'), (b'America/Argentina/Buenos_Aires', b'(GMT-0300) America/Argentina/Buenos_Aires'), (b'America/Argentina/Catamarca', b'(GMT-0300) America/Argentina/Catamarca'), (b'America/Argentina/Cordoba', b'(GMT-0300) America/Argentina/Cordoba'), (b'America/Argentina/Jujuy', b'(GMT-0300) America/Argentina/Jujuy'), (b'America/Argentina/La_Rioja', b'(GMT-0300) America/Argentina/La_Rioja'), (b'America/Argentina/Mendoza', b'(GMT-0300) America/Argentina/Mendoza'), (b'America/Argentina/Rio_Gallegos', b'(GMT-0300) America/Argentina/Rio_Gallegos'), (b'America/Argentina/Salta', b'(GMT-0300) America/Argentina/Salta'), (b'America/Argentina/San_Juan', b'(GMT-0300) America/Argentina/San_Juan'), (b'America/Argentina/San_Luis', b'(GMT-0300) America/Argentina/San_Luis'), (b'America/Argentina/Tucuman', b'(GMT-0300) America/Argentina/Tucuman'), (b'America/Argentina/Ushuaia', b'(GMT-0300) America/Argentina/Ushuaia'), (b'America/Asuncion', b'(GMT-0300) America/Asuncion'), (b'America/Bahia', b'(GMT-0300) America/Bahia'), (b'America/Belem', b'(GMT-0300) America/Belem'), (b'America/Campo_Grande', b'(GMT-0300) America/Campo_Grande'), (b'America/Cayenne', b'(GMT-0300) America/Cayenne'), (b'America/Cuiaba', b'(GMT-0300) America/Cuiaba'), (b'America/Fortaleza', b'(GMT-0300) America/Fortaleza'), (b'America/Godthab', b'(GMT-0300) America/Godthab'), (b'America/Maceio', b'(GMT-0300) America/Maceio'), (b'America/Miquelon', b'(GMT-0300) America/Miquelon'), (b'America/Paramaribo', b'(GMT-0300) America/Paramaribo'), (b'America/Recife', b'(GMT-0300) America/Recife'), (b'America/Santarem', b'(GMT-0300) America/Santarem'), (b'America/Santiago', b'(GMT-0300) America/Santiago'), (b'Antarctica/Palmer', b'(GMT-0300) Antarctica/Palmer'), (b'Antarctica/Rothera', b'(GMT-0300) Antarctica/Rothera'), (b'Atlantic/Stanley', b'(GMT-0300) Atlantic/Stanley'), (b'America/Montevideo', b'(GMT-0200) America/Montevideo'), (b'America/Noronha', b'(GMT-0200) America/Noronha'), (b'America/Sao_Paulo', b'(GMT-0200) America/Sao_Paulo'), (b'Atlantic/South_Georgia', b'(GMT-0200) Atlantic/South_Georgia'), (b'America/Scoresbysund', b'(GMT-0100) America/Scoresbysund'), (b'Atlantic/Azores', b'(GMT-0100) Atlantic/Azores'), (b'Atlantic/Cape_Verde', b'(GMT-0100) Atlantic/Cape_Verde'), (b'Africa/Abidjan', b'(GMT+0000) Africa/Abidjan'), (b'Africa/Accra', b'(GMT+0000) Africa/Accra'), (b'Africa/Bamako', b'(GMT+0000) Africa/Bamako'), (b'Africa/Banjul', b'(GMT+0000) Africa/Banjul'), (b'Africa/Bissau', b'(GMT+0000) Africa/Bissau'), (b'Africa/Casablanca', b'(GMT+0000) Africa/Casablanca'), (b'Africa/Conakry', b'(GMT+0000) Africa/Conakry'), (b'Africa/Dakar', b'(GMT+0000) Africa/Dakar'), (b'Africa/El_Aaiun', b'(GMT+0000) Africa/El_Aaiun'), (b'Africa/Freetown', b'(GMT+0000) Africa/Freetown'), (b'Africa/Lome', b'(GMT+0000) Africa/Lome'), (b'Africa/Monrovia', b'(GMT+0000) Africa/Monrovia'), (b'Africa/Nouakchott', b'(GMT+0000) Africa/Nouakchott'), (b'Africa/Ouagadougou', b'(GMT+0000) Africa/Ouagadougou'), (b'Africa/Sao_Tome', b'(GMT+0000) Africa/Sao_Tome'), (b'America/Danmarkshavn', b'(GMT+0000) America/Danmarkshavn'), (b'Antarctica/Troll', b'(GMT+0000) Antarctica/Troll'), (b'Atlantic/Canary', b'(GMT+0000) Atlantic/Canary'), (b'Atlantic/Faroe', b'(GMT+0000) Atlantic/Faroe'), (b'Atlantic/Madeira', b'(GMT+0000) Atlantic/Madeira'), (b'Atlantic/Reykjavik', b'(GMT+0000) Atlantic/Reykjavik'), (b'Atlantic/St_Helena', b'(GMT+0000) Atlantic/St_Helena'), (b'Europe/Dublin', b'(GMT+0000) Europe/Dublin'), (b'Europe/Guernsey', b'(GMT+0000) Europe/Guernsey'), (b'Europe/Isle_of_Man', b'(GMT+0000) Europe/Isle_of_Man'), (b'Europe/Jersey', b'(GMT+0000) Europe/Jersey'), (b'Europe/Lisbon', b'(GMT+0000) Europe/Lisbon'), (b'Europe/London', b'(GMT+0000) Europe/London'), (b'GMT', b'(GMT+0000) GMT'), (b'UTC', b'(GMT+0000) UTC'), (b'Africa/Algiers', b'(GMT+0100) Africa/Algiers'), (b'Africa/Bangui', b'(GMT+0100) Africa/Bangui'), (b'Africa/Brazzaville', b'(GMT+0100) Africa/Brazzaville'), (b'Africa/Ceuta', b'(GMT+0100) Africa/Ceuta'), (b'Africa/Douala', b'(GMT+0100) Africa/Douala'), (b'Africa/Kinshasa', b'(GMT+0100) Africa/Kinshasa'), (b'Africa/Lagos', b'(GMT+0100) Africa/Lagos'), (b'Africa/Libreville', b'(GMT+0100) Africa/Libreville'), (b'Africa/Luanda', b'(GMT+0100) Africa/Luanda'), (b'Africa/Malabo', b'(GMT+0100) Africa/Malabo'), (b'Africa/Ndjamena', b'(GMT+0100) Africa/Ndjamena'), (b'Africa/Niamey', b'(GMT+0100) Africa/Niamey'), (b'Africa/Porto-Novo', b'(GMT+0100) Africa/Porto-Novo'), (b'Africa/Tunis', b'(GMT+0100) Africa/Tunis'), (b'Arctic/Longyearbyen', b'(GMT+0100) Arctic/Longyearbyen'), (b'Europe/Amsterdam', b'(GMT+0100) Europe/Amsterdam'), (b'Europe/Andorra', b'(GMT+0100) Europe/Andorra'), (b'Europe/Belgrade', b'(GMT+0100) Europe/Belgrade'), (b'Europe/Berlin', b'(GMT+0100) Europe/Berlin'), (b'Europe/Bratislava', b'(GMT+0100) Europe/Bratislava'), (b'Europe/Brussels', b'(GMT+0100) Europe/Brussels'), (b'Europe/Budapest', b'(GMT+0100) Europe/Budapest'), (b'Europe/Busingen', b'(GMT+0100) Europe/Busingen'), (b'Europe/Copenhagen', b'(GMT+0100) Europe/Copenhagen'), (b'Europe/Gibraltar', b'(GMT+0100) Europe/Gibraltar'), (b'Europe/Ljubljana', b'(GMT+0100) Europe/Ljubljana'), (b'Europe/Luxembourg', b'(GMT+0100) Europe/Luxembourg'), (b'Europe/Madrid', b'(GMT+0100) Europe/Madrid'), (b'Europe/Malta', b'(GMT+0100) Europe/Malta'), (b'Europe/Monaco', b'(GMT+0100) Europe/Monaco'), (b'Europe/Oslo', b'(GMT+0100) Europe/Oslo'), (b'Europe/Paris', b'(GMT+0100) Europe/Paris'), (b'Europe/Podgorica', b'(GMT+0100) Europe/Podgorica'), (b'Europe/Prague', b'(GMT+0100) Europe/Prague'), (b'Europe/Rome', b'(GMT+0100) Europe/Rome'), (b'Europe/San_Marino', b'(GMT+0100) Europe/San_Marino'), (b'Europe/Sarajevo', b'(GMT+0100) Europe/Sarajevo'), (b'Europe/Skopje', b'(GMT+0100) Europe/Skopje'), (b'Europe/Stockholm', b'(GMT+0100) Europe/Stockholm'), (b'Europe/Tirane', b'(GMT+0100) Europe/Tirane'), (b'Europe/Vaduz', b'(GMT+0100) Europe/Vaduz'), (b'Europe/Vatican', b'(GMT+0100) Europe/Vatican'), (b'Europe/Vienna', b'(GMT+0100) Europe/Vienna'), (b'Europe/Warsaw', b'(GMT+0100) Europe/Warsaw'), (b'Europe/Zagreb', b'(GMT+0100) Europe/Zagreb'), (b'Europe/Zurich', b'(GMT+0100) Europe/Zurich'), (b'Africa/Blantyre', b'(GMT+0200) Africa/Blantyre'), (b'Africa/Bujumbura', b'(GMT+0200) Africa/Bujumbura'), (b'Africa/Cairo', b'(GMT+0200) Africa/Cairo'), (b'Africa/Gaborone', b'(GMT+0200) Africa/Gaborone'), (b'Africa/Harare', b'(GMT+0200) Africa/Harare'), (b'Africa/Johannesburg', b'(GMT+0200) Africa/Johannesburg'), (b'Africa/Kigali', b'(GMT+0200) Africa/Kigali'), (b'Africa/Lubumbashi', b'(GMT+0200) Africa/Lubumbashi'), (b'Africa/Lusaka', b'(GMT+0200) Africa/Lusaka'), (b'Africa/Maputo', b'(GMT+0200) Africa/Maputo'), (b'Africa/Maseru', b'(GMT+0200) Africa/Maseru'), (b'Africa/Mbabane', b'(GMT+0200) Africa/Mbabane'), (b'Africa/Tripoli', b'(GMT+0200) Africa/Tripoli'), (b'Africa/Windhoek', b'(GMT+0200) Africa/Windhoek'), (b'Asia/Amman', b'(GMT+0200) Asia/Amman'), (b'Asia/Beirut', b'(GMT+0200) Asia/Beirut'), (b'Asia/Damascus', b'(GMT+0200) Asia/Damascus'), (b'Asia/Gaza', b'(GMT+0200) Asia/Gaza'), (b'Asia/Hebron', b'(GMT+0200) Asia/Hebron'), (b'Asia/Jerusalem', b'(GMT+0200) Asia/Jerusalem'), (b'Asia/Nicosia', b'(GMT+0200) Asia/Nicosia'), (b'Europe/Athens', b'(GMT+0200) Europe/Athens'), (b'Europe/Bucharest', b'(GMT+0200) Europe/Bucharest'), (b'Europe/Chisinau', b'(GMT+0200) Europe/Chisinau'), (b'Europe/Helsinki', b'(GMT+0200) Europe/Helsinki'), (b'Europe/Istanbul', b'(GMT+0200) Europe/Istanbul'), (b'Europe/Kaliningrad', b'(GMT+0200) Europe/Kaliningrad'), (b'Europe/Kiev', b'(GMT+0200) Europe/Kiev'), (b'Europe/Mariehamn', b'(GMT+0200) Europe/Mariehamn'), (b'Europe/Riga', b'(GMT+0200) Europe/Riga'), (b'Europe/Sofia', b'(GMT+0200) Europe/Sofia'), (b'Europe/Tallinn', b'(GMT+0200) Europe/Tallinn'), (b'Europe/Uzhgorod', b'(GMT+0200) Europe/Uzhgorod'), (b'Europe/Vilnius', b'(GMT+0200) Europe/Vilnius'), (b'Europe/Zaporozhye', b'(GMT+0200) Europe/Zaporozhye'), (b'Africa/Addis_Ababa', b'(GMT+0300) Africa/Addis_Ababa'), (b'Africa/Asmara', b'(GMT+0300) Africa/Asmara'), (b'Africa/Dar_es_Salaam', b'(GMT+0300) Africa/Dar_es_Salaam'), (b'Africa/Djibouti', b'(GMT+0300) Africa/Djibouti'), (b'Africa/Juba', b'(GMT+0300) Africa/Juba'), (b'Africa/Kampala', b'(GMT+0300) Africa/Kampala'), (b'Africa/Khartoum', b'(GMT+0300) Africa/Khartoum'), (b'Africa/Mogadishu', b'(GMT+0300) Africa/Mogadishu'), (b'Africa/Nairobi', b'(GMT+0300) Africa/Nairobi'), (b'Antarctica/Syowa', b'(GMT+0300) Antarctica/Syowa'), (b'Asia/Aden', b'(GMT+0300) Asia/Aden'), (b'Asia/Baghdad', b'(GMT+0300) Asia/Baghdad'), (b'Asia/Bahrain', b'(GMT+0300) Asia/Bahrain'), (b'Asia/Kuwait', b'(GMT+0300) Asia/Kuwait'), (b'Asia/Qatar', b'(GMT+0300) Asia/Qatar'), (b'Asia/Riyadh', b'(GMT+0300) Asia/Riyadh'), (b'Europe/Minsk', b'(GMT+0300) Europe/Minsk'), (b'Europe/Moscow', b'(GMT+0300) Europe/Moscow'), (b'Europe/Simferopol', b'(GMT+0300) Europe/Simferopol'), (b'Europe/Volgograd', b'(GMT+0300) Europe/Volgograd'), (b'Indian/Antananarivo', b'(GMT+0300) Indian/Antananarivo'), (b'Indian/Comoro', b'(GMT+0300) Indian/Comoro'), (b'Indian/Mayotte', b'(GMT+0300) Indian/Mayotte'), (b'Asia/Tehran', b'(GMT+0330) Asia/Tehran'), (b'Asia/Baku', b'(GMT+0400) Asia/Baku'), (b'Asia/Dubai', b'(GMT+0400) Asia/Dubai'), (b'Asia/Muscat', b'(GMT+0400) Asia/Muscat'), (b'Asia/Tbilisi', b'(GMT+0400) Asia/Tbilisi'), (b'Asia/Yerevan', b'(GMT+0400) Asia/Yerevan'), (b'Europe/Samara', b'(GMT+0400) Europe/Samara'), (b'Indian/Mahe', b'(GMT+0400) Indian/Mahe'), (b'Indian/Mauritius', b'(GMT+0400) Indian/Mauritius'), (b'Indian/Reunion', b'(GMT+0400) Indian/Reunion'), (b'Asia/Kabul', b'(GMT+0430) Asia/Kabul'), (b'Antarctica/Mawson', b'(GMT+0500) Antarctica/Mawson'), (b'Asia/Aqtau', b'(GMT+0500) Asia/Aqtau'), (b'Asia/Aqtobe', b'(GMT+0500) Asia/Aqtobe'), (b'Asia/Ashgabat', b'(GMT+0500) Asia/Ashgabat'), (b'Asia/Dushanbe', b'(GMT+0500) Asia/Dushanbe'), (b'Asia/Karachi', b'(GMT+0500) Asia/Karachi'), (b'Asia/Oral', b'(GMT+0500) Asia/Oral'), (b'Asia/Samarkand', b'(GMT+0500) Asia/Samarkand'), (b'Asia/Tashkent', b'(GMT+0500) Asia/Tashkent'), (b'Asia/Yekaterinburg', b'(GMT+0500) Asia/Yekaterinburg'), (b'Indian/Kerguelen', b'(GMT+0500) Indian/Kerguelen'), (b'Indian/Maldives', b'(GMT+0500) Indian/Maldives'), (b'Asia/Colombo', b'(GMT+0530) Asia/Colombo'), (b'Asia/Kolkata', b'(GMT+0530) Asia/Kolkata'), (b'Asia/Kathmandu', b'(GMT+0545) Asia/Kathmandu'), (b'Antarctica/Vostok', b'(GMT+0600) Antarctica/Vostok'), (b'Asia/Almaty', b'(GMT+0600) Asia/Almaty'), (b'Asia/Bishkek', b'(GMT+0600) Asia/Bishkek'), (b'Asia/Dhaka', b'(GMT+0600) Asia/Dhaka'), (b'Asia/Novosibirsk', b'(GMT+0600) Asia/Novosibirsk'), (b'Asia/Omsk', b'(GMT+0600) Asia/Omsk'), (b'Asia/Qyzylorda', b'(GMT+0600) Asia/Qyzylorda'), (b'Asia/Thimphu', b'(GMT+0600) Asia/Thimphu'), (b'Asia/Urumqi', b'(GMT+0600) Asia/Urumqi'), (b'Indian/Chagos', b'(GMT+0600) Indian/Chagos'), (b'Asia/Rangoon', b'(GMT+0630) Asia/Rangoon'), (b'Indian/Cocos', b'(GMT+0630) Indian/Cocos'), (b'Antarctica/Davis', b'(GMT+0700) Antarctica/Davis'), (b'Asia/Bangkok', b'(GMT+0700) Asia/Bangkok'), (b'Asia/Ho_Chi_Minh', b'(GMT+0700) Asia/Ho_Chi_Minh'), (b'Asia/Hovd', b'(GMT+0700) Asia/Hovd'), (b'Asia/Jakarta', b'(GMT+0700) Asia/Jakarta'), (b'Asia/Krasnoyarsk', b'(GMT+0700) Asia/Krasnoyarsk'), (b'Asia/Novokuznetsk', b'(GMT+0700) Asia/Novokuznetsk'), (b'Asia/Phnom_Penh', b'(GMT+0700) Asia/Phnom_Penh'), (b'Asia/Pontianak', b'(GMT+0700) Asia/Pontianak'), (b'Asia/Vientiane', b'(GMT+0700) Asia/Vientiane'), (b'Indian/Christmas', b'(GMT+0700) Indian/Christmas'), (b'Antarctica/Casey', b'(GMT+0800) Antarctica/Casey'), (b'Asia/Brunei', b'(GMT+0800) Asia/Brunei'), (b'Asia/Chita', b'(GMT+0800) Asia/Chita'), (b'Asia/Choibalsan', b'(GMT+0800) Asia/Choibalsan'), (b'Asia/Hong_Kong', b'(GMT+0800) Asia/Hong_Kong'), (b'Asia/Irkutsk', b'(GMT+0800) Asia/Irkutsk'), (b'Asia/Kuala_Lumpur', b'(GMT+0800) Asia/Kuala_Lumpur'), (b'Asia/Kuching', b'(GMT+0800) Asia/Kuching'), (b'Asia/Macau', b'(GMT+0800) Asia/Macau'), (b'Asia/Makassar', b'(GMT+0800) Asia/Makassar'), (b'Asia/Manila', b'(GMT+0800) Asia/Manila'), (b'Asia/Shanghai', b'(GMT+0800) Asia/Shanghai'), (b'Asia/Singapore', b'(GMT+0800) Asia/Singapore'), (b'Asia/Taipei', b'(GMT+0800) Asia/Taipei'), (b'Asia/Ulaanbaatar', b'(GMT+0800) Asia/Ulaanbaatar'), (b'Australia/Perth', b'(GMT+0800) Australia/Perth'), (b'Australia/Eucla', b'(GMT+0845) Australia/Eucla'), (b'Asia/Dili', b'(GMT+0900) Asia/Dili'), (b'Asia/Jayapura', b'(GMT+0900) Asia/Jayapura'), (b'Asia/Khandyga', b'(GMT+0900) Asia/Khandyga'), (b'Asia/Pyongyang', b'(GMT+0900) Asia/Pyongyang'), (b'Asia/Seoul', b'(GMT+0900) Asia/Seoul'), (b'Asia/Tokyo', b'(GMT+0900) Asia/Tokyo'), (b'Asia/Yakutsk', b'(GMT+0900) Asia/Yakutsk'), (b'Pacific/Palau', b'(GMT+0900) Pacific/Palau'), (b'Australia/Darwin', b'(GMT+0930) Australia/Darwin'), (b'Antarctica/DumontDUrville', b'(GMT+1000) Antarctica/DumontDUrville'), (b'Asia/Magadan', b'(GMT+1000) Asia/Magadan'), (b'Asia/Sakhalin', b'(GMT+1000) Asia/Sakhalin'), (b'Asia/Ust-Nera', b'(GMT+1000) Asia/Ust-Nera'), (b'Asia/Vladivostok', b'(GMT+1000) Asia/Vladivostok'), (b'Australia/Brisbane', b'(GMT+1000) Australia/Brisbane'), (b'Australia/Lindeman', b'(GMT+1000) Australia/Lindeman'), (b'Pacific/Chuuk', b'(GMT+1000) Pacific/Chuuk'), (b'Pacific/Guam', b'(GMT+1000) Pacific/Guam'), (b'Pacific/Port_Moresby', b'(GMT+1000) Pacific/Port_Moresby'), (b'Pacific/Saipan', b'(GMT+1000) Pacific/Saipan'), (b'Australia/Adelaide', b'(GMT+1030) Australia/Adelaide'), (b'Australia/Broken_Hill', b'(GMT+1030) Australia/Broken_Hill'), (b'Antarctica/Macquarie', b'(GMT+1100) Antarctica/Macquarie'), (b'Asia/Srednekolymsk', b'(GMT+1100) Asia/Srednekolymsk'), (b'Australia/Currie', b'(GMT+1100) Australia/Currie'), (b'Australia/Hobart', b'(GMT+1100) Australia/Hobart'), (b'Australia/Lord_Howe', b'(GMT+1100) Australia/Lord_Howe'), (b'Australia/Melbourne', b'(GMT+1100) Australia/Melbourne'), (b'Australia/Sydney', b'(GMT+1100) Australia/Sydney'), (b'Pacific/Efate', b'(GMT+1100) Pacific/Efate'), (b'Pacific/Guadalcanal', b'(GMT+1100) Pacific/Guadalcanal'), (b'Pacific/Kosrae', b'(GMT+1100) Pacific/Kosrae'), (b'Pacific/Noumea', b'(GMT+1100) Pacific/Noumea'), (b'Pacific/Pohnpei', b'(GMT+1100) Pacific/Pohnpei'), (b'Pacific/Norfolk', b'(GMT+1130) Pacific/Norfolk'), (b'Asia/Anadyr', b'(GMT+1200) Asia/Anadyr'), (b'Asia/Kamchatka', b'(GMT+1200) Asia/Kamchatka'), (b'Pacific/Funafuti', b'(GMT+1200) Pacific/Funafuti'), (b'Pacific/Kwajalein', b'(GMT+1200) Pacific/Kwajalein'), (b'Pacific/Majuro', b'(GMT+1200) Pacific/Majuro'), (b'Pacific/Nauru', b'(GMT+1200) Pacific/Nauru'), (b'Pacific/Tarawa', b'(GMT+1200) Pacific/Tarawa'), (b'Pacific/Wake', b'(GMT+1200) Pacific/Wake'), (b'Pacific/Wallis', b'(GMT+1200) Pacific/Wallis'), (b'Antarctica/McMurdo', b'(GMT+1300) Antarctica/McMurdo'), (b'Pacific/Auckland', b'(GMT+1300) Pacific/Auckland'), (b'Pacific/Enderbury', b'(GMT+1300) Pacific/Enderbury'), (b'Pacific/Fakaofo', b'(GMT+1300) Pacific/Fakaofo'), (b'Pacific/Fiji', b'(GMT+1300) Pacific/Fiji'), (b'Pacific/Tongatapu', b'(GMT+1300) Pacific/Tongatapu'), (b'Pacific/Chatham', b'(GMT+1345) Pacific/Chatham'), (b'Pacific/Apia', b'(GMT+1400) Pacific/Apia'), (b'Pacific/Kiritimati', b'(GMT+1400) Pacific/Kiritimati')])),
+ ('timezone', timezones.fields.TimeZoneField(default=b'America/New_York', max_length=100, choices=[(b'Pacific/Midway', b'(GMT-1100) Pacific/Midway'), (b'Pacific/Niue', b'(GMT-1100) Pacific/Niue'), (b'Pacific/Pago_Pago', b'(GMT-1100) Pacific/Pago_Pago'), (b'America/Adak', b'(GMT-1000) America/Adak'), (b'Pacific/Honolulu', b'(GMT-1000) Pacific/Honolulu'), (b'Pacific/Johnston', b'(GMT-1000) Pacific/Johnston'), (b'Pacific/Rarotonga', b'(GMT-1000) Pacific/Rarotonga'), (b'Pacific/Tahiti', b'(GMT-1000) Pacific/Tahiti'), (b'US/Hawaii', b'(GMT-1000) US/Hawaii'), (b'Pacific/Marquesas', b'(GMT-0930) Pacific/Marquesas'), (b'America/Anchorage', b'(GMT-0900) America/Anchorage'), (b'America/Juneau', b'(GMT-0900) America/Juneau'), (b'America/Nome', b'(GMT-0900) America/Nome'), (b'America/Sitka', b'(GMT-0900) America/Sitka'), (b'America/Yakutat', b'(GMT-0900) America/Yakutat'), (b'Pacific/Gambier', b'(GMT-0900) Pacific/Gambier'), (b'US/Alaska', b'(GMT-0900) US/Alaska'), (b'America/Dawson', b'(GMT-0800) America/Dawson'), (b'America/Los_Angeles', b'(GMT-0800) America/Los_Angeles'), (b'America/Metlakatla', b'(GMT-0800) America/Metlakatla'), (b'America/Santa_Isabel', b'(GMT-0800) America/Santa_Isabel'), (b'America/Tijuana', b'(GMT-0800) America/Tijuana'), (b'America/Vancouver', b'(GMT-0800) America/Vancouver'), (b'America/Whitehorse', b'(GMT-0800) America/Whitehorse'), (b'Canada/Pacific', b'(GMT-0800) Canada/Pacific'), (b'Pacific/Pitcairn', b'(GMT-0800) Pacific/Pitcairn'), (b'US/Pacific', b'(GMT-0800) US/Pacific'), (b'America/Boise', b'(GMT-0700) America/Boise'), (b'America/Cambridge_Bay', b'(GMT-0700) America/Cambridge_Bay'), (b'America/Chihuahua', b'(GMT-0700) America/Chihuahua'), (b'America/Creston', b'(GMT-0700) America/Creston'), (b'America/Dawson_Creek', b'(GMT-0700) America/Dawson_Creek'), (b'America/Denver', b'(GMT-0700) America/Denver'), (b'America/Edmonton', b'(GMT-0700) America/Edmonton'), (b'America/Hermosillo', b'(GMT-0700) America/Hermosillo'), (b'America/Inuvik', b'(GMT-0700) America/Inuvik'), (b'America/Mazatlan', b'(GMT-0700) America/Mazatlan'), (b'America/Ojinaga', b'(GMT-0700) America/Ojinaga'), (b'America/Phoenix', b'(GMT-0700) America/Phoenix'), (b'America/Shiprock', b'(GMT-0700) America/Shiprock'), (b'America/Yellowknife', b'(GMT-0700) America/Yellowknife'), (b'Canada/Mountain', b'(GMT-0700) Canada/Mountain'), (b'US/Arizona', b'(GMT-0700) US/Arizona'), (b'US/Mountain', b'(GMT-0700) US/Mountain'), (b'America/Bahia_Banderas', b'(GMT-0600) America/Bahia_Banderas'), (b'America/Belize', b'(GMT-0600) America/Belize'), (b'America/Cancun', b'(GMT-0600) America/Cancun'), (b'America/Chicago', b'(GMT-0600) America/Chicago'), (b'America/Costa_Rica', b'(GMT-0600) America/Costa_Rica'), (b'America/El_Salvador', b'(GMT-0600) America/El_Salvador'), (b'America/Guatemala', b'(GMT-0600) America/Guatemala'), (b'America/Indiana/Knox', b'(GMT-0600) America/Indiana/Knox'), (b'America/Indiana/Tell_City', b'(GMT-0600) America/Indiana/Tell_City'), (b'America/Managua', b'(GMT-0600) America/Managua'), (b'America/Matamoros', b'(GMT-0600) America/Matamoros'), (b'America/Menominee', b'(GMT-0600) America/Menominee'), (b'America/Merida', b'(GMT-0600) America/Merida'), (b'America/Mexico_City', b'(GMT-0600) America/Mexico_City'), (b'America/Monterrey', b'(GMT-0600) America/Monterrey'), (b'America/North_Dakota/Beulah', b'(GMT-0600) America/North_Dakota/Beulah'), (b'America/North_Dakota/Center', b'(GMT-0600) America/North_Dakota/Center'), (b'America/North_Dakota/New_Salem', b'(GMT-0600) America/North_Dakota/New_Salem'), (b'America/Rainy_River', b'(GMT-0600) America/Rainy_River'), (b'America/Rankin_Inlet', b'(GMT-0600) America/Rankin_Inlet'), (b'America/Regina', b'(GMT-0600) America/Regina'), (b'America/Resolute', b'(GMT-0600) America/Resolute'), (b'America/Swift_Current', b'(GMT-0600) America/Swift_Current'), (b'America/Tegucigalpa', b'(GMT-0600) America/Tegucigalpa'), (b'America/Winnipeg', b'(GMT-0600) America/Winnipeg'), (b'Canada/Central', b'(GMT-0600) Canada/Central'), (b'Pacific/Galapagos', b'(GMT-0600) Pacific/Galapagos'), (b'US/Central', b'(GMT-0600) US/Central'), (b'America/Atikokan', b'(GMT-0500) America/Atikokan'), (b'America/Bogota', b'(GMT-0500) America/Bogota'), (b'America/Cayman', b'(GMT-0500) America/Cayman'), (b'America/Detroit', b'(GMT-0500) America/Detroit'), (b'America/Eirunepe', b'(GMT-0500) America/Eirunepe'), (b'America/Grand_Turk', b'(GMT-0500) America/Grand_Turk'), (b'America/Guayaquil', b'(GMT-0500) America/Guayaquil'), (b'America/Havana', b'(GMT-0500) America/Havana'), (b'America/Indiana/Indianapolis', b'(GMT-0500) America/Indiana/Indianapolis'), (b'America/Indiana/Marengo', b'(GMT-0500) America/Indiana/Marengo'), (b'America/Indiana/Petersburg', b'(GMT-0500) America/Indiana/Petersburg'), (b'America/Indiana/Vevay', b'(GMT-0500) America/Indiana/Vevay'), (b'America/Indiana/Vincennes', b'(GMT-0500) America/Indiana/Vincennes'), (b'America/Indiana/Winamac', b'(GMT-0500) America/Indiana/Winamac'), (b'America/Iqaluit', b'(GMT-0500) America/Iqaluit'), (b'America/Jamaica', b'(GMT-0500) America/Jamaica'), (b'America/Kentucky/Louisville', b'(GMT-0500) America/Kentucky/Louisville'), (b'America/Kentucky/Monticello', b'(GMT-0500) America/Kentucky/Monticello'), (b'America/Lima', b'(GMT-0500) America/Lima'), (b'America/Montreal', b'(GMT-0500) America/Montreal'), (b'America/Nassau', b'(GMT-0500) America/Nassau'), (b'America/New_York', b'(GMT-0500) America/New_York'), (b'America/Nipigon', b'(GMT-0500) America/Nipigon'), (b'America/Panama', b'(GMT-0500) America/Panama'), (b'America/Pangnirtung', b'(GMT-0500) America/Pangnirtung'), (b'America/Port-au-Prince', b'(GMT-0500) America/Port-au-Prince'), (b'America/Rio_Branco', b'(GMT-0500) America/Rio_Branco'), (b'America/Thunder_Bay', b'(GMT-0500) America/Thunder_Bay'), (b'America/Toronto', b'(GMT-0500) America/Toronto'), (b'Canada/Eastern', b'(GMT-0500) Canada/Eastern'), (b'Pacific/Easter', b'(GMT-0500) Pacific/Easter'), (b'US/Eastern', b'(GMT-0500) US/Eastern'), (b'America/Caracas', b'(GMT-0430) America/Caracas'), (b'America/Anguilla', b'(GMT-0400) America/Anguilla'), (b'America/Antigua', b'(GMT-0400) America/Antigua'), (b'America/Aruba', b'(GMT-0400) America/Aruba'), (b'America/Barbados', b'(GMT-0400) America/Barbados'), (b'America/Blanc-Sablon', b'(GMT-0400) America/Blanc-Sablon'), (b'America/Boa_Vista', b'(GMT-0400) America/Boa_Vista'), (b'America/Curacao', b'(GMT-0400) America/Curacao'), (b'America/Dominica', b'(GMT-0400) America/Dominica'), (b'America/Glace_Bay', b'(GMT-0400) America/Glace_Bay'), (b'America/Goose_Bay', b'(GMT-0400) America/Goose_Bay'), (b'America/Grenada', b'(GMT-0400) America/Grenada'), (b'America/Guadeloupe', b'(GMT-0400) America/Guadeloupe'), (b'America/Guyana', b'(GMT-0400) America/Guyana'), (b'America/Halifax', b'(GMT-0400) America/Halifax'), (b'America/Kralendijk', b'(GMT-0400) America/Kralendijk'), (b'America/La_Paz', b'(GMT-0400) America/La_Paz'), (b'America/Lower_Princes', b'(GMT-0400) America/Lower_Princes'), (b'America/Manaus', b'(GMT-0400) America/Manaus'), (b'America/Marigot', b'(GMT-0400) America/Marigot'), (b'America/Martinique', b'(GMT-0400) America/Martinique'), (b'America/Moncton', b'(GMT-0400) America/Moncton'), (b'America/Montserrat', b'(GMT-0400) America/Montserrat'), (b'America/Port_of_Spain', b'(GMT-0400) America/Port_of_Spain'), (b'America/Porto_Velho', b'(GMT-0400) America/Porto_Velho'), (b'America/Puerto_Rico', b'(GMT-0400) America/Puerto_Rico'), (b'America/Santo_Domingo', b'(GMT-0400) America/Santo_Domingo'), (b'America/St_Barthelemy', b'(GMT-0400) America/St_Barthelemy'), (b'America/St_Kitts', b'(GMT-0400) America/St_Kitts'), (b'America/St_Lucia', b'(GMT-0400) America/St_Lucia'), (b'America/St_Thomas', b'(GMT-0400) America/St_Thomas'), (b'America/St_Vincent', b'(GMT-0400) America/St_Vincent'), (b'America/Thule', b'(GMT-0400) America/Thule'), (b'America/Tortola', b'(GMT-0400) America/Tortola'), (b'Atlantic/Bermuda', b'(GMT-0400) Atlantic/Bermuda'), (b'Canada/Atlantic', b'(GMT-0400) Canada/Atlantic'), (b'America/St_Johns', b'(GMT-0330) America/St_Johns'), (b'Canada/Newfoundland', b'(GMT-0330) Canada/Newfoundland'), (b'America/Araguaina', b'(GMT-0300) America/Araguaina'), (b'America/Argentina/Buenos_Aires', b'(GMT-0300) America/Argentina/Buenos_Aires'), (b'America/Argentina/Catamarca', b'(GMT-0300) America/Argentina/Catamarca'), (b'America/Argentina/Cordoba', b'(GMT-0300) America/Argentina/Cordoba'), (b'America/Argentina/Jujuy', b'(GMT-0300) America/Argentina/Jujuy'), (b'America/Argentina/La_Rioja', b'(GMT-0300) America/Argentina/La_Rioja'), (b'America/Argentina/Mendoza', b'(GMT-0300) America/Argentina/Mendoza'), (b'America/Argentina/Rio_Gallegos', b'(GMT-0300) America/Argentina/Rio_Gallegos'), (b'America/Argentina/Salta', b'(GMT-0300) America/Argentina/Salta'), (b'America/Argentina/San_Juan', b'(GMT-0300) America/Argentina/San_Juan'), (b'America/Argentina/San_Luis', b'(GMT-0300) America/Argentina/San_Luis'), (b'America/Argentina/Tucuman', b'(GMT-0300) America/Argentina/Tucuman'), (b'America/Argentina/Ushuaia', b'(GMT-0300) America/Argentina/Ushuaia'), (b'America/Asuncion', b'(GMT-0300) America/Asuncion'), (b'America/Bahia', b'(GMT-0300) America/Bahia'), (b'America/Belem', b'(GMT-0300) America/Belem'), (b'America/Campo_Grande', b'(GMT-0300) America/Campo_Grande'), (b'America/Cayenne', b'(GMT-0300) America/Cayenne'), (b'America/Cuiaba', b'(GMT-0300) America/Cuiaba'), (b'America/Fortaleza', b'(GMT-0300) America/Fortaleza'), (b'America/Godthab', b'(GMT-0300) America/Godthab'), (b'America/Maceio', b'(GMT-0300) America/Maceio'), (b'America/Miquelon', b'(GMT-0300) America/Miquelon'), (b'America/Paramaribo', b'(GMT-0300) America/Paramaribo'), (b'America/Recife', b'(GMT-0300) America/Recife'), (b'America/Santarem', b'(GMT-0300) America/Santarem'), (b'America/Santiago', b'(GMT-0300) America/Santiago'), (b'Antarctica/Palmer', b'(GMT-0300) Antarctica/Palmer'), (b'Antarctica/Rothera', b'(GMT-0300) Antarctica/Rothera'), (b'Atlantic/Stanley', b'(GMT-0300) Atlantic/Stanley'), (b'America/Montevideo', b'(GMT-0200) America/Montevideo'), (b'America/Noronha', b'(GMT-0200) America/Noronha'), (b'America/Sao_Paulo', b'(GMT-0200) America/Sao_Paulo'), (b'Atlantic/South_Georgia', b'(GMT-0200) Atlantic/South_Georgia'), (b'America/Scoresbysund', b'(GMT-0100) America/Scoresbysund'), (b'Atlantic/Azores', b'(GMT-0100) Atlantic/Azores'), (b'Atlantic/Cape_Verde', b'(GMT-0100) Atlantic/Cape_Verde'), (b'Africa/Abidjan', b'(GMT+0000) Africa/Abidjan'), (b'Africa/Accra', b'(GMT+0000) Africa/Accra'), (b'Africa/Bamako', b'(GMT+0000) Africa/Bamako'), (b'Africa/Banjul', b'(GMT+0000) Africa/Banjul'), (b'Africa/Bissau', b'(GMT+0000) Africa/Bissau'), (b'Africa/Casablanca', b'(GMT+0000) Africa/Casablanca'), (b'Africa/Conakry', b'(GMT+0000) Africa/Conakry'), (b'Africa/Dakar', b'(GMT+0000) Africa/Dakar'), (b'Africa/El_Aaiun', b'(GMT+0000) Africa/El_Aaiun'), (b'Africa/Freetown', b'(GMT+0000) Africa/Freetown'), (b'Africa/Lome', b'(GMT+0000) Africa/Lome'), (b'Africa/Monrovia', b'(GMT+0000) Africa/Monrovia'), (b'Africa/Nouakchott', b'(GMT+0000) Africa/Nouakchott'), (b'Africa/Ouagadougou', b'(GMT+0000) Africa/Ouagadougou'), (b'Africa/Sao_Tome', b'(GMT+0000) Africa/Sao_Tome'), (b'America/Danmarkshavn', b'(GMT+0000) America/Danmarkshavn'), (b'Atlantic/Canary', b'(GMT+0000) Atlantic/Canary'), (b'Atlantic/Faroe', b'(GMT+0000) Atlantic/Faroe'), (b'Atlantic/Madeira', b'(GMT+0000) Atlantic/Madeira'), (b'Atlantic/Reykjavik', b'(GMT+0000) Atlantic/Reykjavik'), (b'Atlantic/St_Helena', b'(GMT+0000) Atlantic/St_Helena'), (b'Europe/Dublin', b'(GMT+0000) Europe/Dublin'), (b'Europe/Guernsey', b'(GMT+0000) Europe/Guernsey'), (b'Europe/Isle_of_Man', b'(GMT+0000) Europe/Isle_of_Man'), (b'Europe/Jersey', b'(GMT+0000) Europe/Jersey'), (b'Europe/Lisbon', b'(GMT+0000) Europe/Lisbon'), (b'Europe/London', b'(GMT+0000) Europe/London'), (b'GMT', b'(GMT+0000) GMT'), (b'UTC', b'(GMT+0000) UTC'), (b'Africa/Algiers', b'(GMT+0100) Africa/Algiers'), (b'Africa/Bangui', b'(GMT+0100) Africa/Bangui'), (b'Africa/Brazzaville', b'(GMT+0100) Africa/Brazzaville'), (b'Africa/Ceuta', b'(GMT+0100) Africa/Ceuta'), (b'Africa/Douala', b'(GMT+0100) Africa/Douala'), (b'Africa/Kinshasa', b'(GMT+0100) Africa/Kinshasa'), (b'Africa/Lagos', b'(GMT+0100) Africa/Lagos'), (b'Africa/Libreville', b'(GMT+0100) Africa/Libreville'), (b'Africa/Luanda', b'(GMT+0100) Africa/Luanda'), (b'Africa/Malabo', b'(GMT+0100) Africa/Malabo'), (b'Africa/Ndjamena', b'(GMT+0100) Africa/Ndjamena'), (b'Africa/Niamey', b'(GMT+0100) Africa/Niamey'), (b'Africa/Porto-Novo', b'(GMT+0100) Africa/Porto-Novo'), (b'Africa/Tunis', b'(GMT+0100) Africa/Tunis'), (b'Arctic/Longyearbyen', b'(GMT+0100) Arctic/Longyearbyen'), (b'Europe/Amsterdam', b'(GMT+0100) Europe/Amsterdam'), (b'Europe/Andorra', b'(GMT+0100) Europe/Andorra'), (b'Europe/Belgrade', b'(GMT+0100) Europe/Belgrade'), (b'Europe/Berlin', b'(GMT+0100) Europe/Berlin'), (b'Europe/Bratislava', b'(GMT+0100) Europe/Bratislava'), (b'Europe/Brussels', b'(GMT+0100) Europe/Brussels'), (b'Europe/Budapest', b'(GMT+0100) Europe/Budapest'), (b'Europe/Copenhagen', b'(GMT+0100) Europe/Copenhagen'), (b'Europe/Gibraltar', b'(GMT+0100) Europe/Gibraltar'), (b'Europe/Ljubljana', b'(GMT+0100) Europe/Ljubljana'), (b'Europe/Luxembourg', b'(GMT+0100) Europe/Luxembourg'), (b'Europe/Madrid', b'(GMT+0100) Europe/Madrid'), (b'Europe/Malta', b'(GMT+0100) Europe/Malta'), (b'Europe/Monaco', b'(GMT+0100) Europe/Monaco'), (b'Europe/Oslo', b'(GMT+0100) Europe/Oslo'), (b'Europe/Paris', b'(GMT+0100) Europe/Paris'), (b'Europe/Podgorica', b'(GMT+0100) Europe/Podgorica'), (b'Europe/Prague', b'(GMT+0100) Europe/Prague'), (b'Europe/Rome', b'(GMT+0100) Europe/Rome'), (b'Europe/San_Marino', b'(GMT+0100) Europe/San_Marino'), (b'Europe/Sarajevo', b'(GMT+0100) Europe/Sarajevo'), (b'Europe/Skopje', b'(GMT+0100) Europe/Skopje'), (b'Europe/Stockholm', b'(GMT+0100) Europe/Stockholm'), (b'Europe/Tirane', b'(GMT+0100) Europe/Tirane'), (b'Europe/Vaduz', b'(GMT+0100) Europe/Vaduz'), (b'Europe/Vatican', b'(GMT+0100) Europe/Vatican'), (b'Europe/Vienna', b'(GMT+0100) Europe/Vienna'), (b'Europe/Warsaw', b'(GMT+0100) Europe/Warsaw'), (b'Europe/Zagreb', b'(GMT+0100) Europe/Zagreb'), (b'Europe/Zurich', b'(GMT+0100) Europe/Zurich'), (b'Africa/Blantyre', b'(GMT+0200) Africa/Blantyre'), (b'Africa/Bujumbura', b'(GMT+0200) Africa/Bujumbura'), (b'Africa/Cairo', b'(GMT+0200) Africa/Cairo'), (b'Africa/Gaborone', b'(GMT+0200) Africa/Gaborone'), (b'Africa/Harare', b'(GMT+0200) Africa/Harare'), (b'Africa/Johannesburg', b'(GMT+0200) Africa/Johannesburg'), (b'Africa/Kigali', b'(GMT+0200) Africa/Kigali'), (b'Africa/Lubumbashi', b'(GMT+0200) Africa/Lubumbashi'), (b'Africa/Lusaka', b'(GMT+0200) Africa/Lusaka'), (b'Africa/Maputo', b'(GMT+0200) Africa/Maputo'), (b'Africa/Maseru', b'(GMT+0200) Africa/Maseru'), (b'Africa/Mbabane', b'(GMT+0200) Africa/Mbabane'), (b'Africa/Tripoli', b'(GMT+0200) Africa/Tripoli'), (b'Africa/Windhoek', b'(GMT+0200) Africa/Windhoek'), (b'Asia/Amman', b'(GMT+0200) Asia/Amman'), (b'Asia/Beirut', b'(GMT+0200) Asia/Beirut'), (b'Asia/Damascus', b'(GMT+0200) Asia/Damascus'), (b'Asia/Gaza', b'(GMT+0200) Asia/Gaza'), (b'Asia/Hebron', b'(GMT+0200) Asia/Hebron'), (b'Asia/Jerusalem', b'(GMT+0200) Asia/Jerusalem'), (b'Asia/Nicosia', b'(GMT+0200) Asia/Nicosia'), (b'Europe/Athens', b'(GMT+0200) Europe/Athens'), (b'Europe/Bucharest', b'(GMT+0200) Europe/Bucharest'), (b'Europe/Chisinau', b'(GMT+0200) Europe/Chisinau'), (b'Europe/Helsinki', b'(GMT+0200) Europe/Helsinki'), (b'Europe/Istanbul', b'(GMT+0200) Europe/Istanbul'), (b'Europe/Kiev', b'(GMT+0200) Europe/Kiev'), (b'Europe/Mariehamn', b'(GMT+0200) Europe/Mariehamn'), (b'Europe/Riga', b'(GMT+0200) Europe/Riga'), (b'Europe/Sofia', b'(GMT+0200) Europe/Sofia'), (b'Europe/Tallinn', b'(GMT+0200) Europe/Tallinn'), (b'Europe/Uzhgorod', b'(GMT+0200) Europe/Uzhgorod'), (b'Europe/Vilnius', b'(GMT+0200) Europe/Vilnius'), (b'Europe/Zaporozhye', b'(GMT+0200) Europe/Zaporozhye'), (b'Africa/Addis_Ababa', b'(GMT+0300) Africa/Addis_Ababa'), (b'Africa/Asmara', b'(GMT+0300) Africa/Asmara'), (b'Africa/Dar_es_Salaam', b'(GMT+0300) Africa/Dar_es_Salaam'), (b'Africa/Djibouti', b'(GMT+0300) Africa/Djibouti'), (b'Africa/Juba', b'(GMT+0300) Africa/Juba'), (b'Africa/Kampala', b'(GMT+0300) Africa/Kampala'), (b'Africa/Khartoum', b'(GMT+0300) Africa/Khartoum'), (b'Africa/Mogadishu', b'(GMT+0300) Africa/Mogadishu'), (b'Africa/Nairobi', b'(GMT+0300) Africa/Nairobi'), (b'Antarctica/Syowa', b'(GMT+0300) Antarctica/Syowa'), (b'Asia/Aden', b'(GMT+0300) Asia/Aden'), (b'Asia/Baghdad', b'(GMT+0300) Asia/Baghdad'), (b'Asia/Bahrain', b'(GMT+0300) Asia/Bahrain'), (b'Asia/Kuwait', b'(GMT+0300) Asia/Kuwait'), (b'Asia/Qatar', b'(GMT+0300) Asia/Qatar'), (b'Asia/Riyadh', b'(GMT+0300) Asia/Riyadh'), (b'Europe/Kaliningrad', b'(GMT+0300) Europe/Kaliningrad'), (b'Europe/Minsk', b'(GMT+0300) Europe/Minsk'), (b'Indian/Antananarivo', b'(GMT+0300) Indian/Antananarivo'), (b'Indian/Comoro', b'(GMT+0300) Indian/Comoro'), (b'Indian/Mayotte', b'(GMT+0300) Indian/Mayotte'), (b'Asia/Tehran', b'(GMT+0330) Asia/Tehran'), (b'Asia/Baku', b'(GMT+0400) Asia/Baku'), (b'Asia/Dubai', b'(GMT+0400) Asia/Dubai'), (b'Asia/Muscat', b'(GMT+0400) Asia/Muscat'), (b'Asia/Tbilisi', b'(GMT+0400) Asia/Tbilisi'), (b'Asia/Yerevan', b'(GMT+0400) Asia/Yerevan'), (b'Europe/Moscow', b'(GMT+0400) Europe/Moscow'), (b'Europe/Samara', b'(GMT+0400) Europe/Samara'), (b'Europe/Simferopol', b'(GMT+0400) Europe/Simferopol'), (b'Europe/Volgograd', b'(GMT+0400) Europe/Volgograd'), (b'Indian/Mahe', b'(GMT+0400) Indian/Mahe'), (b'Indian/Mauritius', b'(GMT+0400) Indian/Mauritius'), (b'Indian/Reunion', b'(GMT+0400) Indian/Reunion'), (b'Asia/Kabul', b'(GMT+0430) Asia/Kabul'), (b'Antarctica/Mawson', b'(GMT+0500) Antarctica/Mawson'), (b'Asia/Aqtau', b'(GMT+0500) Asia/Aqtau'), (b'Asia/Aqtobe', b'(GMT+0500) Asia/Aqtobe'), (b'Asia/Ashgabat', b'(GMT+0500) Asia/Ashgabat'), (b'Asia/Dushanbe', b'(GMT+0500) Asia/Dushanbe'), (b'Asia/Karachi', b'(GMT+0500) Asia/Karachi'), (b'Asia/Oral', b'(GMT+0500) Asia/Oral'), (b'Asia/Samarkand', b'(GMT+0500) Asia/Samarkand'), (b'Asia/Tashkent', b'(GMT+0500) Asia/Tashkent'), (b'Indian/Kerguelen', b'(GMT+0500) Indian/Kerguelen'), (b'Indian/Maldives', b'(GMT+0500) Indian/Maldives'), (b'Asia/Colombo', b'(GMT+0530) Asia/Colombo'), (b'Asia/Kolkata', b'(GMT+0530) Asia/Kolkata'), (b'Asia/Kathmandu', b'(GMT+0545) Asia/Kathmandu'), (b'Antarctica/Vostok', b'(GMT+0600) Antarctica/Vostok'), (b'Asia/Almaty', b'(GMT+0600) Asia/Almaty'), (b'Asia/Bishkek', b'(GMT+0600) Asia/Bishkek'), (b'Asia/Dhaka', b'(GMT+0600) Asia/Dhaka'), (b'Asia/Qyzylorda', b'(GMT+0600) Asia/Qyzylorda'), (b'Asia/Thimphu', b'(GMT+0600) Asia/Thimphu'), (b'Asia/Yekaterinburg', b'(GMT+0600) Asia/Yekaterinburg'), (b'Indian/Chagos', b'(GMT+0600) Indian/Chagos'), (b'Asia/Rangoon', b'(GMT+0630) Asia/Rangoon'), (b'Indian/Cocos', b'(GMT+0630) Indian/Cocos'), (b'Antarctica/Davis', b'(GMT+0700) Antarctica/Davis'), (b'Asia/Bangkok', b'(GMT+0700) Asia/Bangkok'), (b'Asia/Ho_Chi_Minh', b'(GMT+0700) Asia/Ho_Chi_Minh'), (b'Asia/Hovd', b'(GMT+0700) Asia/Hovd'), (b'Asia/Jakarta', b'(GMT+0700) Asia/Jakarta'), (b'Asia/Novokuznetsk', b'(GMT+0700) Asia/Novokuznetsk'), (b'Asia/Novosibirsk', b'(GMT+0700) Asia/Novosibirsk'), (b'Asia/Omsk', b'(GMT+0700) Asia/Omsk'), (b'Asia/Phnom_Penh', b'(GMT+0700) Asia/Phnom_Penh'), (b'Asia/Pontianak', b'(GMT+0700) Asia/Pontianak'), (b'Asia/Vientiane', b'(GMT+0700) Asia/Vientiane'), (b'Indian/Christmas', b'(GMT+0700) Indian/Christmas'), (b'Antarctica/Casey', b'(GMT+0800) Antarctica/Casey'), (b'Asia/Brunei', b'(GMT+0800) Asia/Brunei'), (b'Asia/Choibalsan', b'(GMT+0800) Asia/Choibalsan'), (b'Asia/Chongqing', b'(GMT+0800) Asia/Chongqing'), (b'Asia/Harbin', b'(GMT+0800) Asia/Harbin'), (b'Asia/Hong_Kong', b'(GMT+0800) Asia/Hong_Kong'), (b'Asia/Kashgar', b'(GMT+0800) Asia/Kashgar'), (b'Asia/Krasnoyarsk', b'(GMT+0800) Asia/Krasnoyarsk'), (b'Asia/Kuala_Lumpur', b'(GMT+0800) Asia/Kuala_Lumpur'), (b'Asia/Kuching', b'(GMT+0800) Asia/Kuching'), (b'Asia/Macau', b'(GMT+0800) Asia/Macau'), (b'Asia/Makassar', b'(GMT+0800) Asia/Makassar'), (b'Asia/Manila', b'(GMT+0800) Asia/Manila'), (b'Asia/Shanghai', b'(GMT+0800) Asia/Shanghai'), (b'Asia/Singapore', b'(GMT+0800) Asia/Singapore'), (b'Asia/Taipei', b'(GMT+0800) Asia/Taipei'), (b'Asia/Ulaanbaatar', b'(GMT+0800) Asia/Ulaanbaatar'), (b'Asia/Urumqi', b'(GMT+0800) Asia/Urumqi'), (b'Australia/Perth', b'(GMT+0800) Australia/Perth'), (b'Australia/Eucla', b'(GMT+0845) Australia/Eucla'), (b'Asia/Dili', b'(GMT+0900) Asia/Dili'), (b'Asia/Irkutsk', b'(GMT+0900) Asia/Irkutsk'), (b'Asia/Jayapura', b'(GMT+0900) Asia/Jayapura'), (b'Asia/Pyongyang', b'(GMT+0900) Asia/Pyongyang'), (b'Asia/Seoul', b'(GMT+0900) Asia/Seoul'), (b'Asia/Tokyo', b'(GMT+0900) Asia/Tokyo'), (b'Pacific/Palau', b'(GMT+0900) Pacific/Palau'), (b'Australia/Darwin', b'(GMT+0930) Australia/Darwin'), (b'Antarctica/DumontDUrville', b'(GMT+1000) Antarctica/DumontDUrville'), (b'Asia/Yakutsk', b'(GMT+1000) Asia/Yakutsk'), (b'Australia/Brisbane', b'(GMT+1000) Australia/Brisbane'), (b'Australia/Lindeman', b'(GMT+1000) Australia/Lindeman'), (b'Pacific/Chuuk', b'(GMT+1000) Pacific/Chuuk'), (b'Pacific/Guam', b'(GMT+1000) Pacific/Guam'), (b'Pacific/Port_Moresby', b'(GMT+1000) Pacific/Port_Moresby'), (b'Pacific/Saipan', b'(GMT+1000) Pacific/Saipan'), (b'Australia/Adelaide', b'(GMT+1030) Australia/Adelaide'), (b'Australia/Broken_Hill', b'(GMT+1030) Australia/Broken_Hill'), (b'Antarctica/Macquarie', b'(GMT+1100) Antarctica/Macquarie'), (b'Asia/Sakhalin', b'(GMT+1100) Asia/Sakhalin'), (b'Asia/Vladivostok', b'(GMT+1100) Asia/Vladivostok'), (b'Australia/Currie', b'(GMT+1100) Australia/Currie'), (b'Australia/Hobart', b'(GMT+1100) Australia/Hobart'), (b'Australia/Lord_Howe', b'(GMT+1100) Australia/Lord_Howe'), (b'Australia/Melbourne', b'(GMT+1100) Australia/Melbourne'), (b'Australia/Sydney', b'(GMT+1100) Australia/Sydney'), (b'Pacific/Efate', b'(GMT+1100) Pacific/Efate'), (b'Pacific/Guadalcanal', b'(GMT+1100) Pacific/Guadalcanal'), (b'Pacific/Kosrae', b'(GMT+1100) Pacific/Kosrae'), (b'Pacific/Noumea', b'(GMT+1100) Pacific/Noumea'), (b'Pacific/Pohnpei', b'(GMT+1100) Pacific/Pohnpei'), (b'Pacific/Norfolk', b'(GMT+1130) Pacific/Norfolk'), (b'Asia/Anadyr', b'(GMT+1200) Asia/Anadyr'), (b'Asia/Kamchatka', b'(GMT+1200) Asia/Kamchatka'), (b'Asia/Magadan', b'(GMT+1200) Asia/Magadan'), (b'Pacific/Funafuti', b'(GMT+1200) Pacific/Funafuti'), (b'Pacific/Kwajalein', b'(GMT+1200) Pacific/Kwajalein'), (b'Pacific/Majuro', b'(GMT+1200) Pacific/Majuro'), (b'Pacific/Nauru', b'(GMT+1200) Pacific/Nauru'), (b'Pacific/Tarawa', b'(GMT+1200) Pacific/Tarawa'), (b'Pacific/Wake', b'(GMT+1200) Pacific/Wake'), (b'Pacific/Wallis', b'(GMT+1200) Pacific/Wallis'), (b'Antarctica/McMurdo', b'(GMT+1300) Antarctica/McMurdo'), (b'Antarctica/South_Pole', b'(GMT+1300) Antarctica/South_Pole'), (b'Pacific/Auckland', b'(GMT+1300) Pacific/Auckland'), (b'Pacific/Enderbury', b'(GMT+1300) Pacific/Enderbury'), (b'Pacific/Fakaofo', b'(GMT+1300) Pacific/Fakaofo'), (b'Pacific/Fiji', b'(GMT+1300) Pacific/Fiji'), (b'Pacific/Tongatapu', b'(GMT+1300) Pacific/Tongatapu'), (b'Pacific/Chatham', b'(GMT+1345) Pacific/Chatham'), (b'Pacific/Apia', b'(GMT+1400) Pacific/Apia'), (b'Pacific/Kiritimati', b'(GMT+1400) Pacific/Kiritimati')])),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
- name='ControllerNetworks',
+ name='ControllerNetwork',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
bases=(models.Model,),
),
migrations.CreateModel(
- name='ControllerSlices',
+ name='ControllerSite',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
+ ('updated', models.DateTimeField(default=django.utils.timezone.now, auto_now=True)),
+ ('enacted', models.DateTimeField(default=None, null=True, blank=True)),
+ ('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
+ ('deleted', models.BooleanField(default=False)),
+ ('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, db_index=True, blank=True)),
+ ('controller', models.ForeignKey(related_name=b'controllersite', blank=True, to='core.Controller', null=True)),
+ ],
+ options={
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='ControllerSlice',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
('deleted', models.BooleanField(default=False)),
('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, blank=True)),
- ('controller', models.ForeignKey(related_name=b'controllerslices', to='core.Controller')),
+ ('controller', models.ForeignKey(related_name=b'controllerslice', to='core.Controller')),
],
options={
'abstract': False,
bases=(models.Model,),
),
migrations.CreateModel(
- name='ControllerUsers',
+ name='ControllerUser',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
('subnet', models.CharField(max_length=32, blank=True)),
('ports', models.CharField(blank=True, max_length=1024, null=True, validators=[core.models.network.ValidateNatList])),
('labels', models.CharField(max_length=1024, null=True, blank=True)),
- ('guaranteedBandwidth', models.IntegerField(default=0)),
- ('permitAllSlices', models.BooleanField(default=False)),
- ('topologyParameters', models.TextField(null=True, blank=True)),
- ('controllerUrl', models.CharField(max_length=1024, null=True, blank=True)),
- ('controllerParameters', models.TextField(null=True, blank=True)),
+ ('guaranteed_bandwidth', models.IntegerField(default=0)),
+ ('permit_all_slices', models.BooleanField(default=False)),
+ ('topology_parameters', models.TextField(null=True, blank=True)),
+ ('controller_url', models.CharField(max_length=1024, null=True, blank=True)),
+ ('controller_parameters', models.TextField(null=True, blank=True)),
('network_id', models.CharField(help_text=b'Quantum network', max_length=256, null=True, blank=True)),
('router_id', models.CharField(help_text=b'Quantum router id', max_length=256, null=True, blank=True)),
('subnet_id', models.CharField(help_text=b'Quantum subnet id', max_length=256, null=True, blank=True)),
('deleted', models.BooleanField(default=False)),
('name', models.CharField(max_length=32)),
('description', models.CharField(max_length=1024, null=True, blank=True)),
- ('guaranteedBandwidth', models.IntegerField(default=0)),
+ ('guaranteed_bandwidth', models.IntegerField(default=0)),
('visibility', models.CharField(default=b'private', max_length=30, choices=[(b'public', b'public'), (b'private', b'private')])),
('translation', models.CharField(default=b'none', max_length=30, choices=[(b'none', b'none'), (b'NAT', b'NAT')])),
- ('sharedNetworkName', models.CharField(max_length=30, null=True, blank=True)),
- ('sharedNetworkId', models.CharField(help_text=b'Quantum network', max_length=256, null=True, blank=True)),
- ('topologyKind', models.CharField(default=b'BigSwitch', max_length=30, choices=[(b'bigswitch', b'BigSwitch'), (b'physical', b'Physical'), (b'custom', b'Custom')])),
- ('controllerKind', models.CharField(default=None, max_length=30, null=True, blank=True, choices=[(None, b'None'), (b'onos', b'ONOS'), (b'custom', b'Custom')])),
+ ('shared_network_name', models.CharField(max_length=30, null=True, blank=True)),
+ ('shared_network_id', models.CharField(help_text=b'Quantum network', max_length=256, null=True, blank=True)),
+ ('topology_kind', models.CharField(default=b'BigSwitch', max_length=30, choices=[(b'bigswitch', b'BigSwitch'), (b'physical', b'Physical'), (b'custom', b'Custom')])),
+ ('controller_kind', models.CharField(default=None, max_length=30, null=True, blank=True, choices=[(None, b'None'), (b'onos', b'ONOS'), (b'custom', b'Custom')])),
],
options={
'abstract': False,
bases=(models.Model,),
),
migrations.CreateModel(
- name='SiteDeployments',
+ name='SiteDeployment',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('created', models.DateTimeField(default=django.utils.timezone.now, auto_now_add=True)),
('enacted', models.DateTimeField(default=None, null=True, blank=True)),
('backend_status', models.CharField(default=b'Provisioning in progress', max_length=140)),
('deleted', models.BooleanField(default=False)),
- ('tenant_id', models.CharField(help_text=b'Keystone tenant id', max_length=200, null=True, blank=True)),
('availability_zone', models.CharField(help_text=b'OpenStack availability zone', max_length=200, null=True, blank=True)),
- ('controller', models.ForeignKey(related_name=b'sitedeployments', blank=True, to='core.Controller', null=True)),
- ('deployment', models.ForeignKey(related_name=b'sitedeployments', to='core.Deployment')),
- ('site', models.ForeignKey(related_name=b'sitedeployments', to='core.Site')),
+ ('controller', models.ForeignKey(related_name=b'sitedeployment', blank=True, to='core.Controller', null=True)),
+ ('deployment', models.ForeignKey(related_name=b'sitedeployment', to='core.Deployment')),
+ ('site', models.ForeignKey(related_name=b'sitedeployment', to='core.Site')),
],
options={
'abstract': False,
('description', models.TextField(help_text=b'High level description of the slice and expected activities', max_length=1024, blank=True)),
('slice_url', models.URLField(max_length=512, blank=True)),
('max_slivers', models.IntegerField(default=10)),
- ('imagePreference', models.CharField(default=b'Ubuntu 12.04 LTS', max_length=256, null=True, blank=True)),
('network', models.CharField(default=b'Private Only', max_length=256, null=True, blank=True)),
- ('mountDataSets', models.CharField(default=b'GenBank', max_length=256, null=True, blank=True)),
+ ('image_preference', models.CharField(default=b'Ubuntu 12.04 LTS', max_length=256, null=True, blank=True)),
+ ('mount_data_sets', models.CharField(default=b'GenBank', max_length=256, null=True, blank=True)),
('creator', models.ForeignKey(related_name=b'slices', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
('service', models.ForeignKey(related_name=b'service', blank=True, to='core.Service', null=True)),
('serviceClass', models.ForeignKey(related_name=b'slices', default=core.models.serviceclass.get_default_serviceclass, to='core.ServiceClass', null=True)),
migrations.AddField(
model_name='site',
name='deployments',
- field=models.ManyToManyField(help_text=b'Select which sites are allowed to host nodes in this deployment', related_name=b'sites', through='core.SiteDeployments', to='core.Deployment', blank=True),
+ field=models.ManyToManyField(help_text=b'Select which sites are allowed to host nodes in this deployment', related_name=b'sites', through='core.SiteDeployment', to='core.Deployment', blank=True),
preserve_default=True,
),
migrations.AddField(
migrations.AddField(
model_name='node',
name='site_deployment',
- field=models.ForeignKey(related_name=b'nodes', to='core.SiteDeployments'),
+ field=models.ForeignKey(related_name=b'nodes', to='core.SiteDeployment'),
preserve_default=True,
),
migrations.AddField(
),
migrations.AddField(
model_name='network',
- name='permittedSlices',
+ name='permitted_slices',
field=models.ManyToManyField(related_name=b'availableNetworks', to='core.Slice', blank=True),
preserve_default=True,
),
preserve_default=True,
),
migrations.AddField(
- model_name='controllerslices',
+ model_name='controllerslice',
name='slice',
- field=models.ForeignKey(related_name=b'controllerslices', to='core.Slice'),
+ field=models.ForeignKey(related_name=b'controllerslice', to='core.Slice'),
preserve_default=True,
),
migrations.AddField(
- model_name='controllersitedeployments',
- name='site_deployment',
- field=models.ForeignKey(related_name=b'controllersitedeployments', to='core.SiteDeployments'),
+ model_name='controllersite',
+ name='site',
+ field=models.ForeignKey(related_name=b'controllersite', to='core.Site'),
preserve_default=True,
),
migrations.AddField(
preserve_default=True,
),
migrations.AddField(
- model_name='controllernetworks',
+ model_name='controllernetwork',
name='network',
field=models.ForeignKey(related_name=b'controllernetworks', to='core.Network'),
preserve_default=True,
+++ /dev/null
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import timezones.fields
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('core', '0001_initial'),
- ]
-
- operations = [
- migrations.RenameField(
- model_name='networktemplate',
- old_name='controllerKind',
- new_name='controller_kind',
- ),
- migrations.RenameField(
- model_name='networktemplate',
- old_name='guaranteedBandwidth',
- new_name='guaranteed_bandwidth',
- ),
- migrations.RenameField(
- model_name='networktemplate',
- old_name='sharedNetworkId',
- new_name='shared_network_id',
- ),
- migrations.RenameField(
- model_name='networktemplate',
- old_name='sharedNetworkName',
- new_name='shared_network_name',
- ),
- migrations.RenameField(
- model_name='networktemplate',
- old_name='topologyKind',
- new_name='topology_kind',
- ),
- ]
+++ /dev/null
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import timezones.fields
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('core', '0002_network_field_case'),
- ]
-
- operations = [
- migrations.RenameField(
- model_name='network',
- old_name='controllerParameters',
- new_name='controller_parameters',
- ),
- migrations.RenameField(
- model_name='network',
- old_name='controllerUrl',
- new_name='controller_url',
- ),
- migrations.RenameField(
- model_name='network',
- old_name='guaranteedBandwidth',
- new_name='guaranteed_bandwidth',
- ),
- migrations.RenameField(
- model_name='network',
- old_name='permitAllSlices',
- new_name='permit_all_slices',
- ),
- migrations.RenameField(
- model_name='network',
- old_name='permittedSlices',
- new_name='permitted_slices',
- ),
- migrations.RenameField(
- model_name='network',
- old_name='topologyParameters',
- new_name='topology_parameters',
- ),
- ]
+++ /dev/null
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-import timezones.fields
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('core', '0003_network_field_case'),
- ]
-
- operations = [
- migrations.RenameField(
- model_name='slice',
- old_name='imagePreference',
- new_name='image_preference',
- ),
- migrations.RenameField(
- model_name='slice',
- old_name='mountDataSets',
- new_name='mount_data_sets',
- ),
- ]
from .service import ServiceAttribute
from .tag import Tag
from .role import Role
-from .site import Site, Deployment, DeploymentRole, DeploymentPrivilege, Controller, ControllerRole, ControllerPrivilege, SiteDeployments
+from .site import Site, Deployment, DeploymentRole, DeploymentPrivilege, Controller, ControllerRole, ControllerPrivilege, ControllerSite, SiteDeployment
from .dashboard import DashboardView, ControllerDashboardView
from .user import User, UserDashboardView
from .serviceclass import ServiceClass
from .site import ControllerManager, ControllerDeletionManager, ControllerLinkManager,ControllerLinkDeletionManager
-from .slice import Slice, ControllerSlices
-from .controllerusers import ControllerUsers
+from .slice import Slice, ControllerSlice
+from .controlleruser import ControllerUser
from .image import Image, ImageDeployments, ControllerImages
from .node import Node
from .serviceresource import ServiceResource
from .sliver import Sliver
from .reservation import ReservedResource
from .reservation import Reservation
-from .network import Network, NetworkParameterType, NetworkParameter, NetworkSliver, NetworkTemplate, Router, NetworkSlice, ControllerNetworks
+from .network import Network, NetworkParameterType, NetworkParameter, NetworkSliver, NetworkTemplate, Router, NetworkSlice, ControllerNetwork
from .billing import Account, Invoice, Charge, UsableObject, Payment
from core.models import PlCoreBase,User,Controller
from core.models import Controller,ControllerLinkManager,ControllerLinkDeletionManager
-class ControllerUsers(PlCoreBase):
+class ControllerUser(PlCoreBase):
objects = ControllerLinkManager()
deleted_objects = ControllerLinkDeletionManager()
@staticmethod
def select_by_user(user):
if user.is_admin:
- qs = ControllerUsers.objects.all()
+ qs = ControllerUser.objects.all()
else:
users = Users.select_by_user(user)
- qs = ControllerUsers.objects.filter(user__in=users)
+ qs = ControllerUser.objects.filter(user__in=users)
return qs
qs = Network.objects.filter(owner__in=slices)
return qs
-class ControllerNetworks(PlCoreBase):
+class ControllerNetwork(PlCoreBase):
objects = ControllerLinkManager()
deleted_objects = ControllerLinkDeletionManager()
import os
from django.db import models
from core.models import PlCoreBase
-from core.models import SiteDeployments
+from core.models import SiteDeployment
from core.models import Tag
from django.contrib.contenttypes import generic
class Node(PlCoreBase):
name = models.CharField(max_length=200, unique=True, help_text="Name of the Node")
- site_deployment = models.ForeignKey(SiteDeployments, related_name='nodes')
+ site_deployment = models.ForeignKey(SiteDeployment, related_name='nodes')
tags = generic.GenericRelation(Tag)
def __unicode__(self): return u'%s' % (self.name)
abbreviated_name = models.CharField(max_length=80)
#deployments = models.ManyToManyField('Deployment', blank=True, related_name='sites')
- deployments = models.ManyToManyField('Deployment', through='SiteDeployments', blank=True, help_text="Select which sites are allowed to host nodes in this deployment", related_name='sites')
+ deployments = models.ManyToManyField('Deployment', through='SiteDeployment', blank=True, help_text="Select which sites are allowed to host nodes in this deployment", related_name='sites')
tags = generic.GenericRelation(Tag)
def __unicode__(self): return u'%s' % (self.name)
def __unicode__(self): return u'%s %s %s' % (self.name, self.backend_type, self.version)
-class SiteDeployments(PlCoreBase):
+class SiteDeployment(PlCoreBase):
objects = ControllerLinkManager()
deleted_objects = ControllerLinkDeletionManager()
- site = models.ForeignKey(Site,related_name='sitedeployments')
- deployment = models.ForeignKey(Deployment,related_name='sitedeployments')
- controller = models.ForeignKey(Controller, null=True, blank=True, related_name='sitedeployments')
+ site = models.ForeignKey(Site,related_name='sitedeployment')
+ deployment = models.ForeignKey(Deployment,related_name='sitedeployment')
+ controller = models.ForeignKey(Controller, null=True, blank=True, related_name='sitedeployment')
availability_zone = models.CharField(max_length=200, null=True, blank=True, help_text="OpenStack availability zone")
- tenant_id = models.CharField(null=True, blank=True, max_length=200, db_index=True, help_text="Keystone tenant id")
def __unicode__(self): return u'%s %s' % (self.deployment, self.site)
+
+class ControllerSite(PlCoreBase):
+
+ site = models.ForeignKey(Site,related_name='controllersite')
+ controller = models.ForeignKey(Controller, null=True, blank=True, related_name='controllersite')
+ tenant_id = models.CharField(null=True, blank=True, max_length=200, db_index=True, help_text="Keystone tenant id")
nets = Network.objects.filter(slices=self)
nets.delete()
# delete slice controllers
- slice_controllers = ControllerSlices.objects.filter(slice=self)
+ slice_controllers = ControllerSlice.objects.filter(slice=self)
slice_controllers.delete()
# delete slice privilege
slice_privileges = SlicePrivilege.objects.filter(slice=self)
qs = SlicePrivilege.objects.filter(id__in=sp_ids)
return qs
-class ControllerSlices(PlCoreBase):
+class ControllerSlice(PlCoreBase):
objects = ControllerLinkManager()
deleted_objects = ControllerLinkDeletionManager()
@staticmethod
def select_by_user(user):
if user.is_admin:
- qs = ControllerSlices.objects.all()
+ qs = ControllerSlice.objects.all()
else:
slices = Slice.select_by_user(user)
- qs = ControllerSlices.objects.filter(slice__in=slices)
+ qs = ControllerSlice.objects.filter(slice__in=slices)
return qs
def get_cpu_stats(self):
});
define_model(this, {urlRoot: SITEDEPLOYMENT_API,
- relatedCollections: {"controllerSiteDeployments": "site_deployment"},
+ relatedCollections: {"controllerSiteDeployment": "site_deployment"},
foreignCollections: ["sites", "deployments", "controllers"],
foreignFields: {"site": "sites", "deployment": "deployments", "controller": "controllers"},
modelName: "siteDeployment",
except AttributeError:
if not missing_links.has_key(model+'.'+link):
print "Model %s missing link for dependency %s"%(model, link)
+ logger.log_exc("Model %s missing link for dependency %s"%(model, link))
missing_links[model+'.'+link]=True
if (peer):
-from core.models import Site, SiteDeployments
+from core.models import Site, SiteDeployment
from observer.deleter import Deleter
-from observer.deleters.site_deployment_deleter import SiteDeploymentsDeleter
+from observer.deleters.site_deployment_deleter import SiteDeploymentDeleter
class SiteDeleter(Deleter):
model='Site'
def call(self, pk):
site = Site.objects.get(pk=pk)
- site_deployments = SiteDeployments.objects.filter(site=site)
- site_deployment_deleter = SiteDeploymentsDeleter()
+ site_deployments = SiteDeployment.objects.filter(site=site)
+ site_deployment_deleter = SiteDeploymentDeleter()
for site_deployment in site_deployments:
site_deployment_deleter(site_deployment.id)
site.delete()
-from core.models import Site, SiteDeployments
+from core.models import Site, SiteDeployment
from observer.deleter import Deleter
-class SiteDeploymentsDeleter(Deleter):
- model='SiteDeployments'
+class SiteDeploymentDeleter(Deleter):
+ model='SiteDeployment'
def call(self, pk):
- site_deployment = SiteDeployments.objects.get(pk=pk)
+ site_deployment = SiteDeployment.objects.get(pk=pk)
if site_deployment.tenant_id:
driver = self.driver.admin_driver(deployment=site_deployment.deployment.name)
driver.delete_tenant(site_deployment.tenant_id)
return ig
class PlanetStackObserver:
- #sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivileges,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
+ #sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivilege,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
sync_steps = []
#from .sync_network_slivers import SyncNetworkSlivers
#from .sync_networks import SyncNetworks
#from .sync_network_deployments import SyncNetworkDeployments
-#from .sync_site_privileges import SyncSitePrivileges
+#from .sync_site_privileges import SyncSitePrivilege
#from .sync_slice_memberships import SyncSliceMemberships
#from .sync_slices import SyncSlices
#from .sync_sliver_ips import SyncSliverIps
return []
deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
- current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
+ current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
zone_ret = aws_run('ec2 describe-availability-zones')
zones = zone_ret['AvailabilityZones']
from ec2_observer.awslib import *
import pdb
-class SyncSiteDeployments(SyncStep):
+class SyncSiteDeployment(SyncStep):
requested_interval=86400
- provides=[SiteDeployments]
+ provides=[SiteDeployment]
def fetch_pending(self, deletion):
if (deletion):
# The syncstep should catch it
# At any rate, we should not run if there are no deployments
deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
- current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
+ current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
site_dict = {}
for sd in current_site_deployments:
try:
site_record = site_dict[site]
except KeyError:
- sd = SiteDeployments(site=site,deployment=deployment,tenant_id=base64.urlsafe_b64encode(os.urandom(12)))
+ sd = SiteDeployment(site=site,deployment=deployment,tenant_id=base64.urlsafe_b64encode(os.urandom(12)))
updated_site_deployments.append(sd)
return updated_site_deployments
return []
deployment = Deployment.objects.filter(Q(name="Amazon EC2"))[0]
- current_site_deployments = SiteDeployments.objects.filter(Q(deployment=deployment))
+ current_site_deployments = SiteDeployment.objects.filter(Q(deployment=deployment))
zone_ret = aws_run('ec2 describe-availability-zones')
zones = zone_ret['AvailabilityZones']
url(r'plstackapi/serviceclasses/$', ServiceClassList.as_view(), name='serviceclass-list'),
url(r'plstackapi/serviceclasses/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceClassDetail.as_view(), name ='serviceclass-detail'),
- url(r'plstackapi/controllernetworks/$', ControllerNetworksList.as_view(), name='controllernetworks-list'),
- url(r'plstackapi/controllernetworks/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerNetworksDetail.as_view(), name ='controllernetworks-detail'),
+ url(r'plstackapi/controllernetworks/$', ControllerNetworkList.as_view(), name='controllernetworks-list'),
+ url(r'plstackapi/controllernetworks/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerNetworkDetail.as_view(), name ='controllernetworks-detail'),
url(r'plstackapi/charges/$', ChargeList.as_view(), name='charge-list'),
url(r'plstackapi/charges/(?P<pk>[a-zA-Z0-9\-]+)/$', ChargeDetail.as_view(), name ='charge-detail'),
url(r'plstackapi/deploymentprivileges/$', DeploymentPrivilegeList.as_view(), name='deploymentprivilege-list'),
url(r'plstackapi/deploymentprivileges/(?P<pk>[a-zA-Z0-9\-]+)/$', DeploymentPrivilegeDetail.as_view(), name ='deploymentprivilege-detail'),
- url(r'plstackapi/controllerusers/$', ControllerUsersList.as_view(), name='controllerusers-list'),
- url(r'plstackapi/controllerusers/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerUsersDetail.as_view(), name ='controllerusers-detail'),
+ url(r'plstackapi/controllerusers/$', ControllerUserList.as_view(), name='controllerusers-list'),
+ url(r'plstackapi/controllerusers/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerUserDetail.as_view(), name ='controllerusers-detail'),
url(r'plstackapi/deploymentroles/$', DeploymentRoleList.as_view(), name='deploymentrole-list'),
url(r'plstackapi/deploymentroles/(?P<pk>[a-zA-Z0-9\-]+)/$', DeploymentRoleDetail.as_view(), name ='deploymentrole-detail'),
url(r'plstackapi/usercredentials/$', UserCredentialList.as_view(), name='usercredential-list'),
url(r'plstackapi/usercredentials/(?P<pk>[a-zA-Z0-9\-]+)/$', UserCredentialDetail.as_view(), name ='usercredential-detail'),
- url(r'plstackapi/sitedeployments/$', SiteDeploymentsList.as_view(), name='sitedeployments-list'),
- url(r'plstackapi/sitedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteDeploymentsDetail.as_view(), name ='sitedeployments-detail'),
+ url(r'plstackapi/sitedeployments/$', SiteDeploymentList.as_view(), name='sitedeployments-list'),
+ url(r'plstackapi/sitedeployments/(?P<pk>[a-zA-Z0-9\-]+)/$', SiteDeploymentDetail.as_view(), name ='sitedeployments-detail'),
url(r'plstackapi/slicetags/$', SliceTagList.as_view(), name='slicetag-list'),
url(r'plstackapi/slicetags/(?P<pk>[a-zA-Z0-9\-]+)/$', SliceTagDetail.as_view(), name ='slicetag-detail'),
url(r'plstackapi/serviceresources/$', ServiceResourceList.as_view(), name='serviceresource-list'),
url(r'plstackapi/serviceresources/(?P<pk>[a-zA-Z0-9\-]+)/$', ServiceResourceDetail.as_view(), name ='serviceresource-detail'),
- url(r'plstackapi/controllerslices/$', ControllerSlicesList.as_view(), name='controllerslices-list'),
- url(r'plstackapi/controllerslices/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerSlicesDetail.as_view(), name ='controllerslices-detail'),
+ url(r'plstackapi/controllerslices/$', ControllerSliceList.as_view(), name='controllerslices-list'),
+ url(r'plstackapi/controllerslices/(?P<pk>[a-zA-Z0-9\-]+)/$', ControllerSliceDetail.as_view(), name ='controllerslices-detail'),
)
-class ControllerNetworksSerializer(serializers.HyperlinkedModelSerializer):
+class ControllerNetworkSerializer(serializers.HyperlinkedModelSerializer):
id = IdField()
humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
except:
return None
class Meta:
- model = ControllerNetworks
+ model = ControllerNetwork
fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','network','controller','net_id','router_id','subnet_id','subnet',)
-class ControllerNetworksIdSerializer(XOSModelSerializer):
+class ControllerNetworkIdSerializer(XOSModelSerializer):
id = IdField()
humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
except:
return None\r
class Meta:\r
- model = ControllerNetworks
+ model = ControllerNetwork
fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','network','controller','net_id','router_id','subnet_id','subnet',)
-class ControllerUsersSerializer(serializers.HyperlinkedModelSerializer):
+class ControllerUserSerializer(serializers.HyperlinkedModelSerializer):
id = IdField()
humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
except:
return None
class Meta:
- model = ControllerUsers
+ model = ControllerUser
fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','user','controller','kuser_id',)
-class ControllerUsersIdSerializer(XOSModelSerializer):
+class ControllerUserIdSerializer(XOSModelSerializer):
id = IdField()
humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
except:
return None\r
class Meta:\r
- model = ControllerUsers
+ model = ControllerUser
fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','user','controller','kuser_id',)
-class SiteDeploymentsSerializer(serializers.HyperlinkedModelSerializer):
+class SiteDeploymentSerializer(serializers.HyperlinkedModelSerializer):
id = IdField()
humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
except:
return None
class Meta:
- model = SiteDeployments
+ model = SiteDeployment
fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','site','deployment','controller','availability_zone',)
-class SiteDeploymentsIdSerializer(XOSModelSerializer):
+class SiteDeploymentIdSerializer(XOSModelSerializer):
id = IdField()
humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
except:
return None\r
class Meta:\r
- model = SiteDeployments
+ model = SiteDeployment
fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','site','deployment','controller','availability_zone',)
-class ControllerSlicesSerializer(serializers.HyperlinkedModelSerializer):
+class ControllerSliceSerializer(serializers.HyperlinkedModelSerializer):
id = IdField()
humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
except:
return None
class Meta:
- model = ControllerSlices
+ model = ControllerSlice
fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','controller','slice','tenant_id',)
-class ControllerSlicesIdSerializer(XOSModelSerializer):
+class ControllerSliceIdSerializer(XOSModelSerializer):
id = IdField()
humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
except:
return None\r
class Meta:\r
- model = ControllerSlices
+ model = ControllerSlice
fields = ('humanReadableName', 'validators', 'id','created','updated','enacted','backend_status','deleted','controller','slice','tenant_id',)
ServiceClass: ServiceClassSerializer,
- ControllerNetworks: ControllerNetworksSerializer,
+ ControllerNetwork: ControllerNetworkSerializer,
Charge: ChargeSerializer,
DeploymentPrivilege: DeploymentPrivilegeSerializer,
- ControllerUsers: ControllerUsersSerializer,
+ ControllerUser: ControllerUserSerializer,
DeploymentRole: DeploymentRoleSerializer,
UserCredential: UserCredentialSerializer,
- SiteDeployments: SiteDeploymentsSerializer,
+ SiteDeployment: SiteDeploymentSerializer,
SliceTag: SliceTagSerializer,
ServiceResource: ServiceResourceSerializer,
- ControllerSlices: ControllerSlicesSerializer,
+ ControllerSlice: ControllerSliceSerializer,
None: None,
}
-class ControllerNetworksList(generics.ListCreateAPIView):
- queryset = ControllerNetworks.objects.select_related().all()
- serializer_class = ControllerNetworksSerializer
- id_serializer_class = ControllerNetworksIdSerializer
+class ControllerNetworkList(generics.ListCreateAPIView):
+ queryset = ControllerNetwork.objects.select_related().all()
+ serializer_class = ControllerNetworkSerializer
+ id_serializer_class = ControllerNetworkIdSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('id','created','updated','enacted','backend_status','deleted','network','controller','net_id','router_id','subnet_id','subnet',)
return self.serializer_class
def get_queryset(self):
- return ControllerNetworks.select_by_user(self.request.user)
+ return ControllerNetwork.select_by_user(self.request.user)
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA, files=request.FILES)
obj = serializer.object
obj.caller = request.user
if obj.can_update(request.user):
- return super(ControllerNetworksList, self).create(request, *args, **kwargs)
+ return super(ControllerNetworkList, self).create(request, *args, **kwargs)
else:
raise Exception("failed obj.can_update")
- ret = super(ControllerNetworksList, self).create(request, *args, **kwargs)
+ ret = super(ControllerNetworkList, self).create(request, *args, **kwargs)
if (ret.status_code%100 != 200):
raise Exception(ret.data)
return ret
-class ControllerNetworksDetail(PlanetStackRetrieveUpdateDestroyAPIView):
- queryset = ControllerNetworks.objects.select_related().all()
- serializer_class = ControllerNetworksSerializer
- id_serializer_class = ControllerNetworksIdSerializer
+class ControllerNetworkDetail(PlanetStackRetrieveUpdateDestroyAPIView):
+ queryset = ControllerNetwork.objects.select_related().all()
+ serializer_class = ControllerNetworkSerializer
+ id_serializer_class = ControllerNetworkIdSerializer
def get_serializer_class(self):
no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
return self.serializer_class
def get_queryset(self):
- return ControllerNetworks.select_by_user(self.request.user)
+ return ControllerNetwork.select_by_user(self.request.user)
# update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
-class ControllerUsersList(generics.ListCreateAPIView):
- queryset = ControllerUsers.objects.select_related().all()
- serializer_class = ControllerUsersSerializer
- id_serializer_class = ControllerUsersIdSerializer
+class ControllerUserList(generics.ListCreateAPIView):
+ queryset = ControllerUser.objects.select_related().all()
+ serializer_class = ControllerUserSerializer
+ id_serializer_class = ControllerUserIdSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('id','created','updated','enacted','backend_status','deleted','user','controller','kuser_id',)
return self.serializer_class
def get_queryset(self):
- return ControllerUsers.select_by_user(self.request.user)
+ return ControllerUser.select_by_user(self.request.user)
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA, files=request.FILES)
obj = serializer.object
obj.caller = request.user
if obj.can_update(request.user):
- return super(ControllerUsersList, self).create(request, *args, **kwargs)
+ return super(ControllerUserList, self).create(request, *args, **kwargs)
else:
raise Exception("failed obj.can_update")
- ret = super(ControllerUsersList, self).create(request, *args, **kwargs)
+ ret = super(ControllerUserList, self).create(request, *args, **kwargs)
if (ret.status_code%100 != 200):
raise Exception(ret.data)
return ret
-class ControllerUsersDetail(PlanetStackRetrieveUpdateDestroyAPIView):
- queryset = ControllerUsers.objects.select_related().all()
- serializer_class = ControllerUsersSerializer
- id_serializer_class = ControllerUsersIdSerializer
+class ControllerUserDetail(PlanetStackRetrieveUpdateDestroyAPIView):
+ queryset = ControllerUser.objects.select_related().all()
+ serializer_class = ControllerUserSerializer
+ id_serializer_class = ControllerUserIdSerializer
def get_serializer_class(self):
no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
return self.serializer_class
def get_queryset(self):
- return ControllerUsers.select_by_user(self.request.user)
+ return ControllerUser.select_by_user(self.request.user)
# update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
-class SiteDeploymentsList(generics.ListCreateAPIView):
- queryset = SiteDeployments.objects.select_related().all()
- serializer_class = SiteDeploymentsSerializer
- id_serializer_class = SiteDeploymentsIdSerializer
+class SiteDeploymentList(generics.ListCreateAPIView):
+ queryset = SiteDeployment.objects.select_related().all()
+ serializer_class = SiteDeploymentSerializer
+ id_serializer_class = SiteDeploymentIdSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('id','created','updated','enacted','backend_status','deleted','site','deployment','controller','availability_zone',)
return self.serializer_class
def get_queryset(self):
- return SiteDeployments.select_by_user(self.request.user)
+ return SiteDeployment.select_by_user(self.request.user)
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA, files=request.FILES)
obj = serializer.object
obj.caller = request.user
if obj.can_update(request.user):
- return super(SiteDeploymentsList, self).create(request, *args, **kwargs)
+ return super(SiteDeploymentList, self).create(request, *args, **kwargs)
else:
raise Exception("failed obj.can_update")
- ret = super(SiteDeploymentsList, self).create(request, *args, **kwargs)
+ ret = super(SiteDeploymentList, self).create(request, *args, **kwargs)
if (ret.status_code%100 != 200):
raise Exception(ret.data)
return ret
-class SiteDeploymentsDetail(PlanetStackRetrieveUpdateDestroyAPIView):
- queryset = SiteDeployments.objects.select_related().all()
- serializer_class = SiteDeploymentsSerializer
- id_serializer_class = SiteDeploymentsIdSerializer
+class SiteDeploymentDetail(PlanetStackRetrieveUpdateDestroyAPIView):
+ queryset = SiteDeployment.objects.select_related().all()
+ serializer_class = SiteDeploymentSerializer
+ id_serializer_class = SiteDeploymentIdSerializer
def get_serializer_class(self):
no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
return self.serializer_class
def get_queryset(self):
- return SiteDeployments.select_by_user(self.request.user)
+ return SiteDeployment.select_by_user(self.request.user)
# update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
-class ControllerSlicesList(generics.ListCreateAPIView):
- queryset = ControllerSlices.objects.select_related().all()
- serializer_class = ControllerSlicesSerializer
- id_serializer_class = ControllerSlicesIdSerializer
+class ControllerSliceList(generics.ListCreateAPIView):
+ queryset = ControllerSlice.objects.select_related().all()
+ serializer_class = ControllerSliceSerializer
+ id_serializer_class = ControllerSliceIdSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('id','created','updated','enacted','backend_status','deleted','controller','slice','tenant_id',)
return self.serializer_class
def get_queryset(self):
- return ControllerSlices.select_by_user(self.request.user)
+ return ControllerSlice.select_by_user(self.request.user)
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA, files=request.FILES)
obj = serializer.object
obj.caller = request.user
if obj.can_update(request.user):
- return super(ControllerSlicesList, self).create(request, *args, **kwargs)
+ return super(ControllerSliceList, self).create(request, *args, **kwargs)
else:
raise Exception("failed obj.can_update")
- ret = super(ControllerSlicesList, self).create(request, *args, **kwargs)
+ ret = super(ControllerSliceList, self).create(request, *args, **kwargs)
if (ret.status_code%100 != 200):
raise Exception(ret.data)
return ret
-class ControllerSlicesDetail(PlanetStackRetrieveUpdateDestroyAPIView):
- queryset = ControllerSlices.objects.select_related().all()
- serializer_class = ControllerSlicesSerializer
- id_serializer_class = ControllerSlicesIdSerializer
+class ControllerSliceDetail(PlanetStackRetrieveUpdateDestroyAPIView):
+ queryset = ControllerSlice.objects.select_related().all()
+ serializer_class = ControllerSliceSerializer
+ id_serializer_class = ControllerSliceIdSerializer
def get_serializer_class(self):
no_hyperlinks = self.request.QUERY_PARAMS.get('no_hyperlinks', False)
return self.serializer_class
def get_queryset(self):
- return ControllerSlices.select_by_user(self.request.user)
+ return ControllerSlice.select_by_user(self.request.user)
# update() is handled by PlanetStackRetrieveUpdateDestroyAPIView
"Node",
"Flavor"
],
- "ControllerNetworks": [
+ "ControllerNetwork": [
"Network",
"Controller"
],
"ServiceAttribute": [
"Service"
],
- "ControllerSiteDeployments": [
+ "ControllerSites": [
"Controller"
],
"SlicePrivilege": [
"Site",
"Role"
],
- "ControllerUsers": [
+ "ControllerUser": [
"User",
"Controller"
],
"SiteCredential": [
"Site"
],
- "ControllerSlices": [
+ "ControllerSlice": [
"Controller",
"Slice",
- "ControllerUsers"
+ "ControllerUser"
],
"SiteDeployments": [
"Site",
from .model_policy_Slice import *
from .model_policy_User import *
from .model_policy_Network import *
+from .model_policy_Site import *
from core.models import *
def handle(network):
- from core.models import ControllerSlices,ControllerNetworks
+ from core.models import ControllerSlice,ControllerNetwork
from collections import defaultdict
# network controllers are not visible to users. We must ensure
# networks are deployed at all deploymets available to their slices.
- slice_controllers = ControllerSlices.objects.all()
+ slice_controllers = ControllerSlice.objects.all()
slice_deploy_lookup = defaultdict(list)
for slice_controller in slice_controllers:
slice_deploy_lookup[slice_controller.slice].append(slice_controller.controller)
- network_controllers = ControllerNetworks.objects.all()
+ network_controllers = ControllerNetwork.objects.all()
network_deploy_lookup = defaultdict(list)
for network_controller in network_controllers:
network_deploy_lookup[network_controller.network].append(network_controller.controller)
for expected_controller in expected_controllers:
if network not in network_deploy_lookup or \
expected_controller not in network_deploy_lookup[network]:
- nd = ControllerNetworks(network=network, controller=expected_controller)
+ nd = ControllerNetwork(network=network, controller=expected_controller)
nd.save()
--- /dev/null
+from core.models import *
+
+def handle(site):
+ # make sure site has a ControllerSite record for each controller
+ ctrl_sites = ControllerSite.objects.filter(site=site)
+ existing_controllers = [cs.controller for cs in ctrl_sites]
+
+ all_controllers = Controller.objects.all()
+ for ctrl in all_controllers:
+ if ctrl not in existing_controllers:
+ ctrl_site = ControllerSite(controller=ctrl, site=site)
+ ctrl_site.save()
def handle(slice):
- from core.models import Controller,ControllerSlices,Controller,Network,NetworkSlice,NetworkTemplate
- from collections import defaultdict
- ctrl_site_deployments = SiteDeployments.objects.all()
-
- slice_controllers = ControllerSlices.objects.all()
- slice_deploy_lookup = defaultdict(list)
- for slice_controller in slice_controllers:
- slice_deploy_lookup[slice_controller.slice].append(slice_controller)
-
- all_controllers = Controller.objects.all()
- for expected_controller in all_controllers:
- if slice not in slice_deploy_lookup or \
- expected_controller not in slice_deploy_lookup[slice]:
- sd = ControllerSlices(slice=slice, controller=expected_controller)
- sd.save()
+ from core.models import Controller, ControllerSlice, SiteDeployment, Network, NetworkSlice,NetworkTemplate
+ from collections import defaultdict
+ controller_slices = ControllerSlice.objects.filter(slice=slice)
+ existing_controllers = [cs.controller for cs in controller_slices]
+
+ all_controllers = Controller.objects.all()
+ for controller in all_controllers:
+ if controller not in existing_controllers:
+ sd = ControllerSlice(slice=slice, controller=controller_controller)
+ sd.save()
- # make sure slice has at least 1 public and 1 private networkd
- public_nets = []
- private_net = None
- networks = Network.objects.filter(owner=slice)
- for network in networks:
- if network.template.name == 'Public dedicated IPv4':
- public_nets.append(network)
- elif network.template.name == 'Public shared IPv4':
- public_nets.append(network)
- elif network.template.name == 'Private':
- private_net = network
- if not public_nets:
+ # make sure slice has at least 1 public and 1 private networkd
+ public_nets = []
+ private_net = None
+ networks = Network.objects.filter(owner=slice)
+ for network in networks:
+ if network.template.name == 'Public dedicated IPv4':
+ public_nets.append(network)
+ elif network.template.name == 'Public shared IPv4':
+ public_nets.append(network)
+ elif network.template.name == 'Private':
+ private_net = network
+ if not public_nets:
# ensure there is at least one public network, and default it to dedicated
- nat_net = Network(
- name = slice.name+'-nat',
- template = NetworkTemplate.objects.get(name='Public shared IPv4'),
- owner = slice
- )
- nat_net.save()
- public_nets.append(nat_net)
+ nat_net = Network(
+ name = slice.name+'-nat',
+ template = NetworkTemplate.objects.get(name='Public shared IPv4'),
+ owner = slice
+ )
+ nat_net.save()
+ public_nets.append(nat_net)
- if not private_net:
- private_net = Network(
- name = slice.name+'-private',
- template = NetworkTemplate.objects.get(name='Private'),
- owner = slice
- )
- private_net.save()
- # create slice networks
- public_net_slice = None
- private_net_slice = None
- net_slices = NetworkSlice.objects.filter(slice=slice, network__in=[private_net]+public_nets)
- for net_slice in net_slices:
- if net_slice.network in public_nets:
- public_net_slice = net_slice
- elif net_slice.network == private_net:
- private_net_slice = net_slice
- if not public_net_slice:
- public_net_slice = NetworkSlice(slice=slice, network=public_nets[0])
- public_net_slice.save()
- if not private_net_slice:
- private_net_slice = NetworkSlice(slice=slice, network=private_net)
- private_net_slice.save()
+ if not private_net:
+ private_net = Network(
+ name = slice.name+'-private',
+ template = NetworkTemplate.objects.get(name='Private'),
+ owner = slice
+ )
+ private_net.save()
+ # create slice networks
+ public_net_slice = None
+ private_net_slice = None
+ net_slices = NetworkSlice.objects.filter(slice=slice, network__in=[private_net]+public_nets)
+ for net_slice in net_slices:
+ if net_slice.network in public_nets:
+ public_net_slice = net_slice
+ elif net_slice.network == private_net:
+ private_net_slice = net_slice
+ if not public_net_slice:
+ public_net_slice = NetworkSlice(slice=slice, network=public_nets[0])
+ public_net_slice.save()
+ if not private_net_slice:
+ private_net_slice = NetworkSlice(slice=slice, network=private_net)
+ private_net_slice.save()
from core.models import *
def handle(user):
- from core.models import Controller, ControllerSiteDeployments, ControllerUsers
+ from core.models import Controller, ControllerSite, ControllerUser
from collections import defaultdict
- ctrl_site_deployments = ControllerSiteDeployments.objects.all()
+ ctrl_site_deployments = ControllerSite.objects.all()
controller_lookup = defaultdict(list)
for ctrl_site_deployment in ctrl_site_deployments:
controller_site_lookup[ctrl_site_deployment.site_deployment].append(ctrl_site_deployment)
controller_user_lookup = defaultdict(list)
- for controller_user in ControllerUsers.objects.all():
+ for controller_user in ControllerUser.objects.all():
controller_user_lookup[controller_user.user].append(controller_user.controller)
if user.is_admin:
if not user in controller_user_lookup or \
expected_controller not in controller_user_lookup[user]:
# add new record
- ud = ControllerUsers(user=user, controller=expected_controller)
+ ud = ControllerUser(user=user, controller=expected_controller)
ud.save()
from core.models import *
from dependency_walker import *
import model_policies
+from util.logger import logger
modelPolicyEnabled = True
if policy_handler is not None:
policy_handler.handle(instance)
except:
- pass
+ logger.log_exc("Model Policy Error:")
elif 'deleted' in kwargs['update_fields']:
walk_inv_deps(delete_if_inactive, instance)
return ig
class PlanetStackObserver:
- #sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivileges,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
+ #sync_steps = [SyncNetworks,SyncNetworkSlivers,SyncSites,SyncSitePrivilege,SyncSlices,SyncSliceMemberships,SyncSlivers,SyncSliverIps,SyncExternalRoutes,SyncUsers,SyncRoles,SyncNodes,SyncImages,GarbageCollector]
sync_steps = []
-from .sync_controller_site_deployments import SyncControllerSiteDeployments
-from .sync_network_slivers import SyncNetworkSlivers
-from .sync_networks import SyncNetworks
-from .sync_controller_networks import SyncControllerNetworks
-from .sync_site_privileges import SyncSitePrivileges
-from .sync_sites import SyncSites
-from .sync_slice_memberships import SyncSliceMemberships
-from .sync_slices import SyncSlices
-from .sync_slivers import SyncSlivers
-from .sync_users import SyncUsers
-from .sync_roles import SyncRoles
-from .sync_nodes import SyncNodes
-from .sync_images import SyncImages
-from .sync_controller_images import SyncControllerImages
+from .sync_controller_sites import SyncControllerSite
logger = Logger(level=logging.INFO)
-class SyncControllerNetworks(OpenStackSyncStep):
+class SyncControllerNetwork(OpenStackSyncStep):
requested_interval = 0
- provides=[Network, ControllerNetworks, Sliver]
+ provides=[Network, ControllerNetwork, Sliver]
def alloc_subnet(self, uuid):
a = 10
def fetch_pending(self, deleted):
if (deleted):
- return ControllerNetworks.deleted_objects.all()
+ return ControllerNetwork.deleted_objects.all()
else:
- return ControllerNetworks.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+ return ControllerNetwork.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
def save_controller_network(self, controller_network):
+++ /dev/null
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.site import *
-from observer.ansible import *
-
-class SyncControllerSiteDeployments(OpenStackSyncStep):
- requested_interval=0
- provides=[SiteDeployments]
-
- def fetch_pending(self, deleted=False):
- pending = super(OpenStackSyncStep, self).fetch_pending(deleted)
- return pending.filter(controller__isnull=False)
-
- def sync_record(self, site_deployment):
-
- template = os_template_env.get_template('sync_controller_site_deployments.yaml')
- tenant_fields = {'endpoint':site_deployment.controller.auth_url,
- 'admin_user': site_deployment.controller.admin_user,
- 'admin_password': site_deployment.controller.admin_password,
- 'admin_tenant': site_deployment.controller.admin_tenant,
- 'ansible_tag': '%s@%s'%(site_deployment.site.login_base,site_deployment.deployment.name), # name of ansible playbook
- 'tenant': site_deployment.site.login_base,
- 'tenant_description': site_deployment.site.name}
-
- rendered = template.render(tenant_fields)
- res = run_template('sync_controller_site_deployments.yaml', tenant_fields, path='controller_site_deployments')
-
- if (len(res)==1):
- site_deployment.tenant_id = res[0]['id']
- site_deployment.save()
- elif (len(res)):
- raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
- else:
- raise Exception('Could not create or update user %s'%tenant_fields['tenant'])
-
- def delete_record(self, site_deployment):
- if site_deployment.tenant_id:
- driver = self.driver.admin_driver(controller=site_deployment.controller)
- driver.delete_tenant(site_deployment.tenant_id)
-
- """
- Ansible does not support tenant deletion yet
-
- import pdb
- pdb.set_trace()
- template = os_template_env.get_template('delete_site_deployments.yaml')
- tenant_fields = {'endpoint':site_deployment.controller.auth_url,
- 'admin_user': site_deployment.controller.admin_user,
- 'admin_password': site_deployment.controller.admin_password,
- 'admin_tenant': 'admin',
- 'ansible_tag': 'site_deployments/%s@%s'%(site_deployment.site_deployment.site.login_base,site_deployment.site_deployment.deployment.name), # name of ansible playbook
- 'tenant': site_deployment.site_deployment.site.login_base,
- 'delete': True}
-
- rendered = template.render(tenant_fields)
- res = run_template('sync_site_deployments.yaml', tenant_fields)
-
- if (len(res)!=1):
- raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
- """
--- /dev/null
+import os
+import base64
+from django.db.models import F, Q
+from planetstack.config import Config
+from observer.openstacksyncstep import OpenStackSyncStep
+from core.models.site import *
+from observer.ansible import *
+
+class SyncControllerSite(OpenStackSyncStep):
+ requested_interval=0
+ provides=[ControllerSite]
+
+ def fetch_pending(self, deleted=False):
+ pending = super(OpenStackSyncStep, self).fetch_pending(deleted)
+ return pending.filter(controller__isnull=False)
+
+ def sync_record(self, controller_site):
+
+ template = os_template_env.get_template('sync_controller_sites.yaml')
+ tenant_fields = {'endpoint':controller_site.controller.auth_url,
+ 'admin_user': controller_site.controller.admin_user,
+ 'admin_password': controller_site.controller.admin_password,
+ 'admin_tenant': controller_site.controller.admin_tenant,
+ 'ansible_tag': '%s@%s'%(controller_site.site.login_base,controller_site.deployment.name), # name of ansible playbook
+ 'tenant': controller_site.site.login_base,
+ 'tenant_description': controller_site.site.name}
+
+ rendered = template.render(tenant_fields)
+ res = run_template('sync_controller_sites.yaml', tenant_fields, path='controller_sites')
+
+ if (len(res)==1):
+ controller_site.tenant_id = res[0]['id']
+ controller_site.save()
+ elif (len(res)):
+ raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
+ else:
+ raise Exception('Could not create or update user %s'%tenant_fields['tenant'])
+
+ def delete_record(self, controller_site):
+ if controller_site.tenant_id:
+ driver = self.driver.admin_driver(controller=controller_site.controller)
+ driver.delete_tenant(controller_site.tenant_id)
+
+ """
+ Ansible does not support tenant deletion yet
+
+ import pdb
+ pdb.set_trace()
+ template = os_template_env.get_template('delete_controller_sites.yaml')
+ tenant_fields = {'endpoint':controller_site.controller.auth_url,
+ 'admin_user': controller_site.controller.admin_user,
+ 'admin_password': controller_site.controller.admin_password,
+ 'admin_tenant': 'admin',
+ 'ansible_tag': 'controller_sites/%s@%s'%(controller_site.controller_site.site.login_base,controller_site.controller_site.deployment.name), # name of ansible playbook
+ 'tenant': controller_site.controller_site.site.login_base,
+ 'delete': True}
+
+ rendered = template.render(tenant_fields)
+ res = run_template('sync_controller_sites.yaml', tenant_fields)
+
+ if (len(res)!=1):
+ raise Exception('Could not assign roles for user %s'%tenant_fields['tenant'])
+ """
from django.db.models import F, Q
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.slice import Slice, ControllerSlices
-from core.models.controllerusers import ControllerUsers
+from core.models.slice import Slice, ControllerSlice
+from core.models.controllerusers import ControllerUser
from util.logger import Logger, logging
from observer.ansible import *
logger = Logger(level=logging.INFO)
-class SyncControllerSlices(OpenStackSyncStep):
- provides=[ControllerSlices]
+class SyncControllerSlice(OpenStackSyncStep):
+ provides=[ControllerSlice]
requested_interval=0
def fetch_pending(self, deleted):
if (deleted):
- return ControllerSlices.deleted_objects.all()
+ return ControllerSlice.deleted_objects.all()
else:
- return ControllerSlices.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+ return ControllerSlice.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
def sync_record(self, controller_slice):
logger.info("sync'ing slice controller %s" % controller_slice)
logger.info("controller %r has no admin_user, skipping" % controller_slice.controller)
return
- controller_users = ControllerUsers.objects.filter(user=controller_slice.slice.creator,
+ controller_users = ControllerUser.objects.filter(user=controller_slice.slice.creator,
controller=controller_slice.controller)
if not controller_users:
raise Exception("slice createor %s has not accout at controller %s" % (controller_slice.slice.creator, controller_slice.controller.name))
--- /dev/null
+import os
+import base64
+from collections import defaultdict
+from django.db.models import F, Q
+from planetstack.config import Config
+from observer.openstacksyncstep import OpenStackSyncStep
+from core.models.site import Controller, SitePrivilege
+from core.models.user import User
+from core.models.controlleruser import ControllerUser
+from util.logger import Logger, logging
+
+from observer.ansible import *
+
+logger = Logger(level=logging.INFO)
+
+class SyncControllerUser(OpenStackSyncStep):
+ provides=[SitePrivilege]
+ requested_interval=0
+
+ def fetch_pending(self, deleted):
+
+ if (deleted):
+ return SitePrivilege.deleted_objects.all()
+ else:
+ return ControllerUser.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+
+ def sync_record(self, controller_user):
+ logger.info("sync'ing user %s at controller %s" % (controller_user.user, controller_user.controller))
+
+ if not controller_user.controller.admin_user:
+ logger.info("controller %r has no admin_user, skipping" % controller_user.controller)
+ return
+
+ template = os_template_env.get_template('sync_controller_users.yaml')
+
+ # All users will have at least the 'user' role at their home site/tenant.
+ # We must also check if the user should have the admin role
+ roles = ['user']
+ if controller_user.user.is_admin:
+ roles.append('admin')
+
+ # setup user home site roles at controller
+ if not controller_user.user.site:
+ raise Exception('Siteless user %s'%controller_user.user.email)
+ else:
+ # look up tenant id for the user's site at the controller
+ #ctrl_site_deployments = SiteDeployment.objects.filter(
+ # site_deployment__site=controller_user.user.site,
+ # controller=controller_user.controller)
+
+ #if ctrl_site_deployments:
+ # # need the correct tenant id for site at the controller
+ # tenant_id = ctrl_site_deployments[0].tenant_id
+ # tenant_name = ctrl_site_deployments[0].site_deployment.site.login_base
+ user_fields = {
+ 'endpoint':controller_user.controller.auth_url,
+ 'name': controller_user.user.email,
+ 'email': controller_user.user.email,
+ 'password': controller_user.user.remote_password,
+ 'admin_user': controller_user.controller.admin_user,
+ 'admin_password': controller_user.controller.admin_password,
+ 'ansible_tag':'%s@%s'%(controller_user.user.email.replace('@','-at-'),controller_user.controller.name),
+ 'admin_tenant': controller_user.controller.admin_tenant,
+ 'roles':roles,
+ 'tenant':controller_user.user.site.login_base}
+
+ rendered = template.render(user_fields)
+ res = run_template('sync_controller_users.yaml', user_fields,path='controller_users')
+
+ # results is an array in which each element corresponds to an
+ # "ok" string received per operation. If we get as many oks as
+ # the number of operations we issued, that means a grand success.
+ # Otherwise, the number of oks tell us which operation failed.
+ expected_length = len(roles) + 1
+ if (len(res)==expected_length):
+ controller_user.kuser_id = res[0]['id']
+ controller_user.save()
+ elif (len(res)):
+ raise Exception('Could not assign roles for user %s'%user_fields['name'])
+ else:
+ raise Exception('Could not create or update user %s'%user_fields['name'])
+
+ def delete_record(self, controller_user):
+ if controller_user.kuser_id:
+ driver = self.driver.admin_driver(controller=controller_user.controller)
+ driver.delete_user(controller_user.kuser_id)
--- /dev/null
+import os
+import base64
+from collections import defaultdict
+from django.db.models import F, Q
+from planetstack.config import Config
+from observer.openstacksyncstep import OpenStackSyncStep
+from core.models.site import Controller, SiteDeployment
+from core.models.user import User
+from core.models.controllerusers import ControllerUser
+from util.logger import Logger, logging
+
+from observer.ansible import *
+
+logger = Logger(level=logging.INFO)
+
+class SyncControllerUser(OpenStackSyncStep):
+ provides=[ControllerUser, User]
+ requested_interval=0
+
+ def fetch_pending(self, deleted):
+
+ if (deleted):
+ return ControllerUser.deleted_objects.all()
+ else:
+ return ControllerUser.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+
+ def sync_record(self, controller_user):
+ logger.info("sync'ing user %s at controller %s" % (controller_user.user, controller_user.controller))
+
+ if not controller_user.controller.admin_user:
+ logger.info("controller %r has no admin_user, skipping" % controller_user.controller)
+ return
+
+ template = os_template_env.get_template('sync_controller_users.yaml')
+
+ # All users will have at least the 'user' role at their home site/tenant.
+ # We must also check if the user should have the admin role
+ roles = ['user']
+ if controller_user.user.is_admin:
+ roles.append('admin')
+
+ # setup user home site roles at controller
+ if not controller_user.user.site:
+ raise Exception('Siteless user %s'%controller_user.user.email)
+ else:
+ # look up tenant id for the user's site at the controller
+ #ctrl_site_deployments = SiteDeployment.objects.filter(
+ # site_deployment__site=controller_user.user.site,
+ # controller=controller_user.controller)
+
+ #if ctrl_site_deployments:
+ # # need the correct tenant id for site at the controller
+ # tenant_id = ctrl_site_deployments[0].tenant_id
+ # tenant_name = ctrl_site_deployments[0].site_deployment.site.login_base
+ user_fields = {
+ 'endpoint':controller_user.controller.auth_url,
+ 'name': controller_user.user.email,
+ 'email': controller_user.user.email,
+ 'password': controller_user.user.remote_password,
+ 'admin_user': controller_user.controller.admin_user,
+ 'admin_password': controller_user.controller.admin_password,
+ 'ansible_tag':'%s@%s'%(controller_user.user.email.replace('@','-at-'),controller_user.controller.name),
+ 'admin_tenant': controller_user.controller.admin_tenant,
+ 'roles':roles,
+ 'tenant':controller_user.user.site.login_base}
+
+ rendered = template.render(user_fields)
+ res = run_template('sync_controller_users.yaml', user_fields,path='controller_users')
+
+ # results is an array in which each element corresponds to an
+ # "ok" string received per operation. If we get as many oks as
+ # the number of operations we issued, that means a grand success.
+ # Otherwise, the number of oks tell us which operation failed.
+ expected_length = len(roles) + 1
+ if (len(res)==expected_length):
+ controller_user.kuser_id = res[0]['id']
+ controller_user.save()
+ elif (len(res)):
+ raise Exception('Could not assign roles for user %s'%user_fields['name'])
+ else:
+ raise Exception('Could not create or update user %s'%user_fields['name'])
+
+ def delete_record(self, controller_user):
+ if controller_user.kuser_id:
+ driver = self.driver.admin_driver(controller=controller_user.controller)
+ driver.delete_user(controller_user.kuser_id)
from django.db.models import F, Q
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.site import Controller, SiteDeployments, SiteDeployments
+from core.models.site import Controller, SiteDeployment, SiteDeployment
from core.models.user import User
-from core.models.controllerusers import ControllerUsers
+from core.models.controllerusers import ControllerUser
from util.logger import Logger, logging
from observer.ansible import *
logger = Logger(level=logging.INFO)
-class SyncControllerUsers(OpenStackSyncStep):
- provides=[ControllerUsers, User]
+class SyncControllerUser(OpenStackSyncStep):
+ provides=[ControllerUser, User]
requested_interval=0
def fetch_pending(self, deleted):
if (deleted):
- return ControllerUsers.deleted_objects.all()
+ return ControllerUser.deleted_objects.all()
else:
- return ControllerUsers.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
+ return ControllerUser.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
def sync_record(self, controller_user):
logger.info("sync'ing user %s at controller %s" % (controller_user.user, controller_user.controller))
raise Exception('Siteless user %s'%controller_user.user.email)
else:
# look up tenant id for the user's site at the controller
- #ctrl_site_deployments = SiteDeployments.objects.filter(
+ #ctrl_site_deployments = SiteDeployment.objects.filter(
# site_deployment__site=controller_user.user.site,
# controller=controller_user.controller)
network.save()
def delete_record(self, network):
- controller_networks_deleter = SyncControllerNetworks().delete_record
- for controller_network in ControllerNetworks.objects.filter(network=network):
+ controller_networks_deleter = SyncControllerNetwork().delete_record
+ for controller_network in ControllerNetwork.objects.filter(network=network):
try:
controller_network_deleter(controller_network)
except Exception,e:
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
from core.models.node import Node
-from core.models.site import SiteDeployments, Controller, SiteDeployments
+from core.models.site import SiteDeployment, Controller
from util.logger import Logger, logging
logger = Logger(level=logging.INFO)
new_nodes = []
for controller in controllers:
try:
- controller_site_deployments = SiteDeployments.objects.filter(controller=controller)[0]
+ controller_site_deployments = SiteDeployment.objects.filter(controller=controller)[0]
except IndexError:
raise Exception("Controller %s not bound to any site deployments"%controller.name)
from django.db.models import F, Q
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
-from core.models import User, ControllerUsers, SitePrivilege, SiteDeployments
+from core.models import User, ControllerUser, SitePrivilege, SiteDeployment
-class SyncSitePrivileges(OpenStackSyncStep):
+class SyncSitePrivilege(OpenStackSyncStep):
requested_interval=0
provides=[SitePrivilege]
def sync_record(self, site_priv):
# sync site privileges at all site controllers
- ctrl_site_deployments = SiteDeployments.objects.filter(site_deployment__site=site_priv.site)
+ ctrl_site_deployments = SiteDeployment.objects.filter(site_deployment__site=site_priv.site)
for ctrl_site_deployment in ctrl_site_deployments:
- controller_users = ControllerUsers.objects.filter(controller=ctrl_site_deployment.controller,
+ controller_users = ControllerUser.objects.filter(controller=ctrl_site_deployment.controller,
user=site_priv.user)
if controller_users:
kuser_id = controller_users[0].kuser_id
+++ /dev/null
-import os
-import base64
-from django.db.models import F, Q
-from planetstack.config import Config
-from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.site import Site, SiteDeployments, SiteDeployments
-from observer.steps.sync_controller_site_deployments import *
-
-class SyncSites(OpenStackSyncStep):
- provides=[Site]
- requested_interval=0
-
- def sync_record(self, site):
- site.save()
-
- def delete_record(self, site):
- # delete associated controllers site deployments
- site_deployments = SiteDeployments.objects.filter(site=site)
- site_deploy_deleter = SyncControllerSiteDeployments().delete_record
- for site_deployment in site_deployments:
- site_deployment_deleter(site_deployment)
-
-
-
-
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
from core.models.slice import *
-from core.models.controllerusers import ControllerUsers
+from core.models.controllerusers import ControllerUser
from util.logger import Logger, logging
logger = Logger(level=logging.INFO)
def sync_record(self, slice_memb):
# sync slice memberships at all slice controllers
logger.info("syncing slice privilege: %s %s" % (slice_memb.slice.name, slice_memb.user.email))
- slice_controllers = ControllerSlices.objects.filter(slice=slice_memb.slice)
+ slice_controllers = ControllerSlice.objects.filter(slice=slice_memb.slice)
for slice_controller in slice_controllers:
if not slice_controller.tenant_id:
continue
- controller_users = ControllerUsers.objects.filter(controller=slice_controller.controller,
+ controller_users = ControllerUser.objects.filter(controller=slice_controller.controller,
user=slice_memb.user)
if controller_users:
kuser_id = controller_users[0].kuser_id
from django.db.models import F, Q
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
-from core.models.slice import Slice, ControllerSlices
+from core.models.slice import Slice, ControllerSlice
from util.logger import Logger, logging
from observer.steps.sync_controller_slices import *
requested_interval=0
def sync_record(self, slice):
- for controller_slice in ControllerSlices.objects.filter(slice=slice):
+ for controller_slice in ControllerSlice.objects.filter(slice=slice):
# bump the 'updated' timestamp and trigger observer to update
# slice across all controllers
controller_slice.save()
def delete_record(self, slice):
- controller_slice_deleter = SyncControllerSlices().delete_record
- for controller_slice in ControllerSlices.objects.filter(slice=slice):
+ controller_slice_deleter = SyncControllerSlice().delete_record
+ for controller_slice in ControllerSlice.objects.filter(slice=slice):
try:
controller_slice_deleter(controller_slice)
except Exception,e:
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
from core.models.sliver import Sliver
-from core.models.slice import Slice, SlicePrivilege, ControllerSlices
-from core.models.network import Network, NetworkSlice, ControllerNetworks
+from core.models.slice import Slice, SlicePrivilege, ControllerSlice
+from core.models.network import Network, NetworkSlice, ControllerNetwork
from util.logger import Logger, logging
from observer.ansible import *
nics = []
networks = [ns.network for ns in NetworkSlice.objects.filter(slice=sliver.slice)]
- controller_networks = ControllerNetworks.objects.filter(network__in=networks,
+ controller_networks = ControllerNetwork.objects.filter(network__in=networks,
controller=sliver.node.site_deployment.controller)
for controller_network in controller_networks:
from planetstack.config import Config
from observer.openstacksyncstep import OpenStackSyncStep
from core.models.user import User
-from core.models.controllerusers import ControllerUsers
-from observer.steps.sync_controller_users import SyncControllerUsers
+from core.models.controllerusers import ControllerUser
+from observer.steps.sync_controller_users import SyncControllerUser
class SyncUsers(OpenStackSyncStep):
provides=[User]
requested_interval=0
def sync_record(self, user):
- for controller_user in ControllerUsers.objects.filter(user=user):
+ for controller_user in ControllerUser.objects.filter(user=user):
# bump the 'updated' field so user account are updated across
# controllers.
controller_user.save()
def delete_record(self, user):
- controller_user_deleter = SyncControllerUsers().delete_record
- for controller_user in ControllerUsers.objects.filter(user=user):
+ controller_user_deleter = SyncControllerUser().delete_record
+ for controller_user in ControllerUser.objects.filter(user=user):
controller_user_deleter(controller_user)