def configure(memory, cpu, disk, down_threshold, label): """Create, get or modify partition configuration""" cell = context.GLOBAL.cell admin_part = admin.Partition(context.GLOBAL.ldap.conn) attrs = {} if memory: attrs['memory'] = memory if cpu: attrs['cpu'] = cpu if disk: attrs['disk'] = disk if down_threshold: attrs['down-threshold'] = down_threshold if attrs: try: admin_part.create([label, cell], attrs) except ldap3.LDAPEntryAlreadyExistsResult: admin_part.update([label, cell], attrs) try: cli.out(formatter(admin_part.get([label, cell]))) except ldap3.LDAPNoSuchObjectResult: click.echo('Partition does not exist: %s' % label, err=True)
def delete(label): """Delete a partition""" cell = context.GLOBAL.cell admin_part = admin.Partition(context.GLOBAL.ldap.conn) try: admin_part.delete([label, cell]) except ldap_exceptions.LDAPNoSuchObjectResult: click.echo('Partition does not exist: %s' % label, err=True)
def configure_partition_cmd(autoscale_max, autoscale_max_broken, autoscale_max_on_demand, autoscale_min, app_ratio, idle_server_ttl, image, image_accounts, disk_size, instance_types, spot_instance_types, spot_duration, hostgroups, secgroup, instance_profile, subnets, s3_registry_bucket, partition): """Configure partition data.""" cell = context.GLOBAL.cell admin_part = admin.Partition(context.GLOBAL.ldap.conn) try: part_data = admin_part.get([partition, cell], dirty=True) data = part_data.get('data', {}) except admin_exceptions.NoSuchObjectResult: data = {} autoscale = data.get('autoscale', {}) _set(autoscale, 'max_servers', autoscale_max, unset_value=-1) _set(autoscale, 'max_broken_servers', autoscale_max_broken, unset_value=-1) _set(autoscale, 'max_on_demand_servers', autoscale_max_on_demand, unset_value=-1) _set(autoscale, 'min_servers', autoscale_min, unset_value=-1) _set(autoscale, 'server_app_ratio', app_ratio, unset_value=0.0) _set(autoscale, 'idle_server_ttl', idle_server_ttl, unset_value=-1) modified = _set(data, 'autoscale', autoscale) modified = _set(data, 'image', image) or modified modified = _set(data, 'image_accounts', image_accounts) or modified modified = _set(data, 'disk_size', disk_size) or modified modified = _set(data, 'instance_types', instance_types) or modified modified = _set(data, 'spot_instance_types', spot_instance_types) or modified if spot_duration is not None: spot_duration = int(spot_duration) modified = _set(data, 'spot_duration', spot_duration, unset_value=0) or modified modified = _set(data, 'hostgroups', hostgroups) or modified modified = _set(data, 'secgroup', secgroup) or modified modified = _set(data, 'instance_profile', instance_profile) or modified modified = _set(data, 'subnets', subnets) or modified modified = _set(data, 's3_registry_bucket', s3_registry_bucket) or modified if modified: admin_part.update([partition, cell], {'data': data}) cli.out(formatter(data))
def configure(memory, cpu, disk, systems, down_threshold, reboot_schedule, data, partition): """Create, get or modify partition configuration""" # Disable too many branches. # # pylint: disable=R0912 cell = context.GLOBAL.cell admin_part = admin.Partition(context.GLOBAL.ldap.conn) attrs = {} if memory: attrs['memory'] = memory if cpu: attrs['cpu'] = cpu if disk: attrs['disk'] = disk if systems: if systems == ['-']: attrs['systems'] = None else: attrs['systems'] = list(six.moves.map(int, systems)) if down_threshold: if down_threshold.endswith('%'): attrs['down-threshold'] = _resolve_partition_threshold( cell, partition, int(down_threshold[:-1])) else: attrs['down-threshold'] = int(down_threshold) if reboot_schedule: attrs['reboot-schedule'] = reboot_schedule if data: with io.open(data, 'rb') as fd: attrs['data'] = yaml.load(stream=fd) if attrs: try: admin_part.create([partition, cell], attrs) except ldap_exceptions.LDAPEntryAlreadyExistsResult: admin_part.update([partition, cell], attrs) try: cli.out( formatter(admin_part.get([partition, cell], dirty=bool(attrs)))) except ldap_exceptions.LDAPNoSuchObjectResult: click.echo('Partition does not exist: %s' % partition, err=True)
def setUp(self): self.part = admin.Partition( admin.Admin(None, 'dc=xx,dc=com'))
def _admin_partition(): """Lazily return admin partition object. """ return admin.Partition(context.GLOBAL.ldap.conn)