components/openstack/horizon/files/overrides.py
changeset 6856 356aeea98c39
parent 5640 47302747b363
child 6912 d4b1a12dae66
equal deleted inserted replaced
6855:ea44e7e0ca98 6856:356aeea98c39
    24 from horizon import workflows
    24 from horizon import workflows
    25 
    25 
    26 from openstack_dashboard import api
    26 from openstack_dashboard import api
    27 from openstack_dashboard.dashboards.admin.instances.forms import \
    27 from openstack_dashboard.dashboards.admin.instances.forms import \
    28     LiveMigrateForm
    28     LiveMigrateForm
    29 from openstack_dashboard.dashboards.admin.instances import tables \
    29 from openstack_dashboard.dashboards.admin.instances.tables import \
    30     as admin_tables
    30     AdminInstancesTable, MigrateInstance
    31 from openstack_dashboard.dashboards.admin.networks.forms import CreateNetwork
       
    32 from openstack_dashboard.dashboards.admin.networks.ports.forms import \
       
    33     CreatePort
       
    34 from openstack_dashboard.dashboards.admin.networks.ports.tables import \
       
    35     DeletePort, PortsTable
       
    36 from openstack_dashboard.dashboards.admin.networks.subnets.tables import \
       
    37     DeleteSubnet, SubnetsTable
       
    38 from openstack_dashboard.dashboards.admin.networks.tables import \
       
    39     DeleteNetwork, NetworksTable
       
    40 from openstack_dashboard.dashboards.project.access_and_security.tabs import \
    31 from openstack_dashboard.dashboards.project.access_and_security.tabs import \
    41     AccessAndSecurityTabs, APIAccessTab, FloatingIPsTab, KeypairsTab
    32     AccessAndSecurityTabs, APIAccessTab, FloatingIPsTab, KeypairsTab
    42 from openstack_dashboard.dashboards.project.images.images.tables import \
    33 from openstack_dashboard.dashboards.project.images.images.tables import \
    43     EditImage, DeleteImage, ImagesTable, LaunchImage
    34     ImagesTable, CreateVolumeFromImage
    44 from openstack_dashboard.dashboards.project.instances import tables \
    35 from openstack_dashboard.dashboards.project.instances import tables \
    45     as project_tables
    36     as project_tables
       
    37 from openstack_dashboard.dashboards.project.instances.tables import \
       
    38     InstancesTable, TogglePause, EditInstanceSecurityGroups
    46 from openstack_dashboard.dashboards.project.instances.workflows import \
    39 from openstack_dashboard.dashboards.project.instances.workflows import \
    47     create_instance, update_instance
    40     create_instance, update_instance
    48 from openstack_dashboard.dashboards.project.networks.ports.tables import \
    41 
    49     PortsTable as projectPortsTable
    42 
    50 from openstack_dashboard.dashboards.project.networks.subnets.tables import \
    43 # Remove Security Groups from the LaunchInstance workflow
    51     DeleteSubnet as projectDeleteSubnet
    44 
    52 from openstack_dashboard.dashboards.project.networks.subnets.tables import \
    45 class SolarisSetAccessControlsAction(create_instance.SetAccessControlsAction):
    53     SubnetsTable as projectSubnetsTable
    46     def __init__(self, request, *args, **kwargs):
    54 from openstack_dashboard.dashboards.project.networks.tables import \
    47         super(SolarisSetAccessControlsAction, self).__init__(request,
    55     CreateSubnet as projectCreateSubnet
    48                                                              *args,
    56 from openstack_dashboard.dashboards.project.networks.tables import \
    49                                                              **kwargs)
    57     DeleteNetwork as projectDeleteNetwork
    50 
    58 from openstack_dashboard.dashboards.project.networks.tables import \
    51         del self.fields['groups']
    59     NetworksTable as projectNetworksTable
    52 
    60 from openstack_dashboard.dashboards.project.networks.workflows import \
    53     class Meta(object):
    61     CreateNetworkInfoAction, CreateSubnetDetailAction
    54         name = _("Access & Security")
       
    55         help_text = _("Control access to your instance via key pairs, "
       
    56                       "and other mechanisms.")
       
    57 
       
    58     def populate_groups_choices(self, request, context):
       
    59         return []
       
    60 
       
    61 create_instance.SetAccessControls.action_class = SolarisSetAccessControlsAction
       
    62 
    62 
    63 
    63 # Bootargs feature:
    64 # Bootargs feature:
    64 # Add bootargs feature to 'SetAdvanced' workflow action.
    65 # Add bootargs feature to 'SetAdvanced' workflow action.
    65 # Part of Project/Compute/Instances/Launch Instance
    66 # Part of Project/Compute/Instances/Launch Instance
    66 class SolarisSetAdvancedAction(create_instance.SetAdvancedAction):
    67 class SolarisSetAdvancedAction(create_instance.SetAdvancedAction):
   117 # to Project/Compute/Instances/Launch Instance
   118 # to Project/Compute/Instances/Launch Instance
   118 if getattr(settings, 'SOLARIS_BOOTARGS', True):
   119 if getattr(settings, 'SOLARIS_BOOTARGS', True):
   119     create_instance.LaunchInstance.default_steps += (
   120     create_instance.LaunchInstance.default_steps += (
   120         create_instance.SetAdvanced,
   121         create_instance.SetAdvanced,
   121     )
   122     )
   122 
       
   123 # Disable 'Security Groups' in Project/Instances/Launch Instance/Access &
       
   124 # Security. Note that this is unchecked by default.
       
   125 groups_widget = create_instance.SetAccessControlsAction.base_fields['groups']
       
   126 groups_widget.widget.attrs['disabled'] = True
       
   127 
   123 
   128 
   124 
   129 # Bootargs feature:
   125 # Bootargs feature:
   130 # Add bootargs feature to 'UpdateInstance' workflow action class.
   126 # Add bootargs feature to 'UpdateInstance' workflow action class.
   131 # Part of Project/Compute/Instances/Actions/Edit Instance
   127 # Part of Project/Compute/Instances/Actions/Edit Instance
   189 # Remove 'SecurityGroupsTab' tab from Project/Compute/Access & Security
   185 # Remove 'SecurityGroupsTab' tab from Project/Compute/Access & Security
   190 AccessAndSecurityTabs.tabs = (KeypairsTab, FloatingIPsTab, APIAccessTab)
   186 AccessAndSecurityTabs.tabs = (KeypairsTab, FloatingIPsTab, APIAccessTab)
   191 
   187 
   192 # Remove 'TogglePause', 'MigrateInstance' actions from
   188 # Remove 'TogglePause', 'MigrateInstance' actions from
   193 # Admin/System/Instances/Actions
   189 # Admin/System/Instances/Actions
   194 admin_tables.AdminInstancesTable._meta.row_actions = (
   190 temp = list(AdminInstancesTable._meta.row_actions)
   195     project_tables.ConfirmResize,
   191 temp.remove(MigrateInstance)
   196     project_tables.RevertResize,
   192 temp.remove(TogglePause)
   197     admin_tables.AdminEditInstance,
   193 AdminInstancesTable._meta.row_actions = tuple(temp)
   198     project_tables.ConsoleLink,
       
   199     project_tables.LogLink,
       
   200     project_tables.CreateSnapshot,
       
   201     project_tables.ToggleSuspend,
       
   202     admin_tables.LiveMigrateInstance,
       
   203     project_tables.SoftRebootInstance,
       
   204     project_tables.RebootInstance,
       
   205     project_tables.TerminateInstance
       
   206 )
       
   207 
   194 
   208 # Remove 'EditInstanceSecurityGroups', 'TogglePause' actions from
   195 # Remove 'EditInstanceSecurityGroups', 'TogglePause' actions from
   209 # Project/Compute/Instances/Actions
   196 # Project/Compute/Instances/Actions
   210 project_tables.InstancesTable._meta.row_actions = (
   197 temp = list(InstancesTable._meta.row_actions)
   211     project_tables.StartInstance,
   198 temp.remove(EditInstanceSecurityGroups)
   212     project_tables.ConfirmResize,
   199 temp.remove(TogglePause)
   213     project_tables.RevertResize,
   200 InstancesTable._meta.row_actions = tuple(temp)
   214     project_tables.CreateSnapshot,
       
   215     project_tables.SimpleAssociateIP,
       
   216     project_tables.AssociateIP,
       
   217     project_tables.SimpleDisassociateIP,
       
   218     project_tables.EditInstance,
       
   219     project_tables.DecryptInstancePassword,
       
   220     project_tables.ConsoleLink,
       
   221     project_tables.LogLink,
       
   222     project_tables.ResizeLink,
       
   223     project_tables.ToggleSuspend,
       
   224     project_tables.SoftRebootInstance,
       
   225     project_tables.RebootInstance,
       
   226     project_tables.StopInstance,
       
   227     project_tables.RebuildInstance,
       
   228     project_tables.TerminateInstance
       
   229 )
       
   230 
   201 
   231 # Bootargs feature:
   202 # Bootargs feature:
   232 # If locally configured to do so add 'EditBootargs' to
   203 # If locally configured to do so add 'EditBootargs' to
   233 # Project/Compute/Instances/Actions
   204 # Project/Compute/Instances/Actions
   234 if getattr(settings, 'SOLARIS_BOOTARGS', True):
   205 if getattr(settings, 'SOLARIS_BOOTARGS', True):
   235     project_tables_row_actions = project_tables.InstancesTable._meta.row_actions
   206     project_tables_row_actions = \
       
   207         project_tables.InstancesTable._meta.row_actions
   236     pos = project_tables.InstancesTable._meta.row_actions.index(
   208     pos = project_tables.InstancesTable._meta.row_actions.index(
   237         project_tables.ConsoleLink
   209         project_tables.ConsoleLink
   238     )
   210     )
   239     project_tables.InstancesTable._meta.row_actions = (
   211     project_tables.InstancesTable._meta.row_actions = (
   240         project_tables_row_actions[:pos] + (project_tables.EditBootargs,) +
   212         project_tables_row_actions[:pos] + (project_tables.EditBootargs,) +
   245 # Admin/System/Instances/Actions/Live Migrate Instance. Note that this is
   217 # Admin/System/Instances/Actions/Live Migrate Instance. Note that this is
   246 # unchecked by default.
   218 # unchecked by default.
   247 LiveMigrateForm.base_fields['disk_over_commit'].widget.attrs['disabled'] = True
   219 LiveMigrateForm.base_fields['disk_over_commit'].widget.attrs['disabled'] = True
   248 LiveMigrateForm.base_fields['block_migration'].widget.attrs['disabled'] = True
   220 LiveMigrateForm.base_fields['block_migration'].widget.attrs['disabled'] = True
   249 
   221 
   250 # Disable 'admin_state' in Admin/System/Networks/Create Network
       
   251 admin_state = CreateNetwork.base_fields['admin_state']
       
   252 admin_state.widget.attrs['disabled'] = True
       
   253 admin_state.widget.value_from_datadict = lambda *args: True
       
   254 
       
   255 # Disable 'shared' in Admin/System/Networks/Create Network. Note that this is
       
   256 # unchecked by default.
       
   257 CreateNetwork.base_fields['shared'].widget.attrs['disabled'] = True
       
   258 
       
   259 # Disable 'admin_state' in Admin/System/Networks/Network Name/Create Port
       
   260 admin_state = CreatePort.base_fields['admin_state']
       
   261 admin_state.widget.attrs['disabled'] = True
       
   262 admin_state.widget.value_from_datadict = lambda *args: True
       
   263 
       
   264 # Remove 'UpdatePort' action from Admin/System/Networks/Network Name/Actions
       
   265 PortsTable._meta.row_actions = (DeletePort,)
       
   266 
       
   267 # Remove 'UpdateSubnet' action from
       
   268 # Admin/System/Networks/Network Name/Subnets/Actions
       
   269 SubnetsTable._meta.row_actions = (DeleteSubnet,)
       
   270 
       
   271 # Remove the 'EditNetwork' action from Admin/System/Networks/Actions
       
   272 NetworksTable._meta.row_actions = (DeleteNetwork,)
       
   273 
       
   274 # Remove the 'UpdatePort' action from
       
   275 # Project/Network/Networks/Name/Ports/Actions
       
   276 projectPortsTable._meta.row_actions = ()
       
   277 
       
   278 # Remove the 'UpdateSubnet' action from
       
   279 # Project/Network/Networks/Name/Subnets/Actions
       
   280 projectSubnetsTable._meta.row_actions = (projectDeleteSubnet,)
       
   281 
       
   282 # Remove the 'EditNetwork' action from Project/Network/Networks/Actions
       
   283 projectNetworksTable._meta.row_actions = (projectCreateSubnet,
       
   284                                           projectDeleteNetwork)
       
   285 
       
   286 # Disable 'admin_state' in Project/Network/Networks/Create Network/Network
       
   287 admin_state = CreateNetworkInfoAction.base_fields['admin_state']
       
   288 admin_state.widget.attrs['disabled'] = True
       
   289 admin_state.widget.value_from_datadict = lambda *args: True
       
   290 
       
   291 # Remove 'CreateVolumeFromImage' checkbox from Project/Compute/Images/Actions
   222 # Remove 'CreateVolumeFromImage' checkbox from Project/Compute/Images/Actions
   292 ImagesTable._meta.row_actions = (LaunchImage, EditImage, DeleteImage,)
   223 temp = list(ImagesTable._meta.row_actions)
   293 
   224 temp.remove(CreateVolumeFromImage)
   294 # Change 'host_routes' field to read-only in
   225 ImagesTable._meta.row_actions = tuple(temp)
   295 # Project/Network/Networks/Create Network/Subnet Detail
       
   296 base_fields = CreateSubnetDetailAction.base_fields
       
   297 base_fields['host_routes'].widget.attrs['readonly'] = 'readonly'