Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

ACI L4-L7 Services (DCNE-155) #186

Open
wants to merge 127 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 126 commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
67f8cae
feat: l4l7 service graph template
timcragg Aug 4, 2021
a0b91c7
feat: l4l7 sgt integration test
timcragg Aug 4, 2021
80e2b69
feat: L4-L7 device
timcragg Aug 4, 2021
9b36a5c
Update main.yml
timcragg Aug 4, 2021
9b4d653
feat: L4-L7 device integration test
timcragg Aug 4, 2021
881602a
feat: L4-L7 concrete device
timcragg Aug 4, 2021
1e25828
Update main.yml
timcragg Aug 4, 2021
17ea490
feat: L4-L7 concrete device integration test
timcragg Aug 4, 2021
9306edf
Update aci_l4l7_concrete_device.py
timcragg Aug 4, 2021
fe33110
feat: L4-L7 concrete interface
timcragg Aug 5, 2021
8d26edf
feat: l4-l7 concrete interface integration test
timcragg Aug 5, 2021
431eb7a
feat: L4-L7 logical interface
timcragg Aug 6, 2021
b0e8d25
feat: L4-L7 logical interface integration test
timcragg Aug 6, 2021
96878d9
feat: L4-L7 concrete interface attach
timcragg Aug 6, 2021
fac5806
Update aci_l4l7_concrete_interface_attach.py
timcragg Aug 6, 2021
4c5047b
feat: L4-L7 concrete intf attach integration test
timcragg Aug 6, 2021
01715ff
feat: L4-L7 dev selection policy
timcragg Aug 6, 2021
7aca91a
feat: L4-L7 dev selection policy integration test
timcragg Aug 6, 2021
b0c08bd
Create aliases
timcragg Aug 9, 2021
84341d5
Rename tests/integration/targets/aci_l4l7_concrete_device/main.yml to…
timcragg Aug 9, 2021
3697cc6
Create aliases
timcragg Aug 9, 2021
bb4f584
Rename tests/integration/targets/aci_l4l7_concrete_interface/main.yml…
timcragg Aug 9, 2021
e8a56d0
Create aliases
timcragg Aug 9, 2021
bf33521
Rename tests/integration/targets/aci_l4l7_concrete_interface_attach/m…
timcragg Aug 9, 2021
4d30e4a
Create aliases
timcragg Aug 9, 2021
30bc0e7
Rename tests/integration/targets/aci_l4l7_device/main.yml to tests/in…
timcragg Aug 9, 2021
6a0752f
Create aliases
timcragg Aug 9, 2021
1face5a
Rename tests/integration/targets/aci_l4l7_device_selection_policy/mai…
timcragg Aug 9, 2021
8d3a596
Create aliases
timcragg Aug 9, 2021
cb04811
Rename tests/integration/targets/aci_l4l7_logical_interface/main.yml …
timcragg Aug 9, 2021
d94d41c
Create aliases
timcragg Aug 9, 2021
c46447d
Rename tests/integration/targets/aci_l4l7_service_graph_template/main…
timcragg Aug 9, 2021
2c3e363
feat: L4-L7 device selection device binding
timcragg Aug 9, 2021
de7363d
feat: L4-L7 device selection device integration
timcragg Aug 9, 2021
5c81e07
Create aliases
timcragg Aug 9, 2021
48a1d0f
feat: L4-L7 device selection policy context
timcragg Aug 10, 2021
ce9abde
feat: L4-L7 service graph node
timcragg Aug 10, 2021
a7950c4
Update aci_l4l7_service_graph_template_node.py
timcragg Aug 10, 2021
4f7b7da
Update aci_l4l7_service_graph_template_node.py
timcragg Aug 10, 2021
a7adefd
Update aci_l4l7_service_graph_template_node.py
timcragg Aug 10, 2021
7af7a51
feat: L4-L7 Service Graph Node integration test
timcragg Aug 10, 2021
588559b
Create aliases
timcragg Aug 10, 2021
e404090
feat: L4-L7 service graph term nodes
timcragg Aug 10, 2021
29f4e9f
feat: L4-L7 SGT term node integration test
timcragg Aug 10, 2021
1bc9f72
Create aliases
timcragg Aug 10, 2021
f05d250
feat: L4-L7 Abs Connection
timcragg Aug 10, 2021
5a97118
Update aci_l4l7_service_graph_template_abs_conn.py
timcragg Aug 11, 2021
f82cdc7
feat: L4-L7 Service Graph Abs Connection Integration Test
timcragg Aug 11, 2021
56ce156
Create aliases
timcragg Aug 11, 2021
904fed6
feat: L4-L7 Abs Connection Conns
timcragg Aug 11, 2021
a2fd009
feat: L4-L7 SGT connection conns integration test
timcragg Aug 11, 2021
f496075
Create aliases
timcragg Aug 11, 2021
bf901c7
feat: L4-L7 Service Graph Func Conn
timcragg Aug 11, 2021
bed30dc
feat: L4-L7 Service Graph Func Conn Integration Test
timcragg Aug 11, 2021
fadaf8a
Create aliases
timcragg Aug 11, 2021
ee98461
feat: L4-L7 policy based redirect
timcragg Aug 12, 2021
f80ba16
feat: L4-L7 PBR Policy Integration Test
timcragg Aug 12, 2021
cf87e80
Create aliases
timcragg Aug 12, 2021
841b08a
feat: L4-L7 PBR destination
timcragg Aug 13, 2021
aa0cc9c
feat: L4-L7 PBR destination integration test
timcragg Aug 13, 2021
c5c49b9
Create aliases
timcragg Aug 13, 2021
8645399
feat: L4-L7 redirect health group
timcragg Aug 13, 2021
19fe744
feat: L4-L7 PBR dest health group
timcragg Aug 25, 2021
d5431de
fix: minor sanity corrections
timcragg Aug 25, 2021
3c21998
fix: minor docs correction
timcragg Aug 25, 2021
8868842
fix: minor docs correction
timcragg Aug 25, 2021
408d2a5
fix: minor docs correction
timcragg Aug 25, 2021
856a051
fix: minor docs correction
timcragg Aug 25, 2021
f40404d
fix: minor docs correction
timcragg Aug 25, 2021
e603ea3
fix: minor fixes
timcragg Aug 25, 2021
7129071
fix: minor fixes
timcragg Aug 25, 2021
01cb859
feat: sla mon policy
timcragg Aug 26, 2021
d7c3047
feat: L4-L7 PBR SLA policy binding
timcragg Aug 26, 2021
14b9c0d
fix: minor corrections
timcragg Aug 26, 2021
1835de2
fix: rename files
timcragg Aug 26, 2021
bd6d216
feat: L4-L7 dev sel context to bd
timcragg Aug 26, 2021
497b1fb
fix: minor bugfix
timcragg Aug 26, 2021
1da519f
L4-L7 dev sel to log intf
timcragg Aug 31, 2021
2a1ced8
chore: minor readability changes
timcragg Aug 31, 2021
bfe1a6d
feat: l4l7 dev sel log intf inteegration test
timcragg Aug 31, 2021
e0e2abe
feat: l4-l7 dev sel to redir pol
timcragg Aug 31, 2021
fc7128c
l4l7 dev sel erdir pol integration test
timcragg Aug 31, 2021
c435a1d
chore: minor comment correction
timcragg Aug 31, 2021
74a4ae8
fix: additional idempotence tests
timcragg Sep 1, 2021
ccaaf24
update doc
timcragg Sep 1, 2021
7d4fc00
fix docs
timcragg Sep 1, 2021
47334fc
fix integration test
timcragg Sep 1, 2021
709b371
fix integration test
timcragg Sep 1, 2021
9557dc7
fix integration test
timcragg Sep 1, 2021
883ecd0
fix integration test
timcragg Sep 1, 2021
f588a99
minor fix
timcragg Sep 1, 2021
46b82de
update integration tests
timcragg Sep 1, 2021
5cd72d5
Update aci_l4l7_service_graph_template.py
timcragg Sep 1, 2021
a43a453
fix integration test
timcragg Sep 1, 2021
a71a7f5
fix integration test
timcragg Sep 1, 2021
e1a05ac
fix integration test
timcragg Sep 1, 2021
cc0999c
fix integration test
timcragg Sep 1, 2021
e56e827
fix integration test
timcragg Sep 1, 2021
922aff2
fix: modifications for v3 integration tests
timcragg Oct 5, 2021
b94af1f
fix: update aliases
timcragg Sep 21, 2021
b1679e3
fix: update aliases
timcragg Sep 21, 2021
6a61b54
fix: correct integration tests
timcragg Oct 5, 2021
5d2bd1f
fix: integration test fixes
timcragg Oct 6, 2021
fb746c7
fix: correct documentation format
timcragg Oct 28, 2021
af62656
fix: Correct documentation format
timcragg Oct 28, 2021
c4ea5a0
fix: Correct documentation
timcragg Oct 28, 2021
b942baf
fix: Sanity check fixes
timcragg Oct 28, 2021
d360749
fix: Sanity check fixes
timcragg Oct 28, 2021
086841f
fix: Update SLA monitoring module
timcragg Apr 11, 2023
1f3c8d0
fix: Update integration test
timcragg Apr 11, 2023
29ac653
fix: Module updates
timcragg Apr 12, 2023
061506d
fix: Sanity fixes
timcragg Apr 14, 2023
7ae3923
fix: Apply black formatting
timcragg Apr 14, 2023
d7a7bb6
fix: Bugfix
timcragg Apr 14, 2023
32cc035
fix: Update integration tests
timcragg Apr 14, 2023
7671c0e
fix: Integration test updates
timcragg Apr 18, 2023
041c729
feat: Re-structure modules
timcragg Jun 14, 2023
d17372d
fix: Bugfixes
timcragg Jun 19, 2023
0bd6eba
fix: minor update
timcragg Jun 19, 2023
ef65850
fix: Bugfixes
timcragg Jun 20, 2023
b4023ca
fix: Minor corrections
timcragg Jun 20, 2023
13dfec3
chore: Rebase constants
timcragg Jun 23, 2023
22df58f
chore: update integration tests
timcragg Jun 23, 2023
68144b3
fix: sanity fixes
timcragg Jun 27, 2023
966aa4d
chore: Update example
timcragg Oct 11, 2023
2c8ec69
[ignore] Rebased to current master Mar 13 2024.
anvitha-jain Mar 13, 2024
5e164a7
[ignore] Removed env folder.
anvitha-jain Mar 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
241 changes: 241 additions & 0 deletions env/bin/Activate.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,241 @@
<#
.Synopsis
Activate a Python virtual environment for the current PowerShell session.
.Description
Pushes the python executable for a virtual environment to the front of the
$Env:PATH environment variable and sets the prompt to signify that you are
in a Python virtual environment. Makes use of the command line switches as
well as the `pyvenv.cfg` file values present in the virtual environment.
.Parameter VenvDir
Path to the directory that contains the virtual environment to activate. The
default value for this is the parent of the directory that the Activate.ps1
script is located within.
.Parameter Prompt
The prompt prefix to display when this virtual environment is activated. By
default, this prompt is the name of the virtual environment folder (VenvDir)
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
.Example
Activate.ps1
Activates the Python virtual environment that contains the Activate.ps1 script.
.Example
Activate.ps1 -Verbose
Activates the Python virtual environment that contains the Activate.ps1 script,
and shows extra information about the activation as it executes.
.Example
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
Activates the Python virtual environment located in the specified location.
.Example
Activate.ps1 -Prompt "MyPython"
Activates the Python virtual environment that contains the Activate.ps1 script,
and prefixes the current prompt with the specified string (surrounded in
parentheses) while the virtual environment is active.
.Notes
On Windows, it may be required to enable this Activate.ps1 script by setting the
execution policy for the user. You can do this by issuing the following PowerShell
command:
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
For more information on Execution Policies:
https://go.microsoft.com/fwlink/?LinkID=135170
#>
Param(
[Parameter(Mandatory = $false)]
[String]
$VenvDir,
[Parameter(Mandatory = $false)]
[String]
$Prompt
)

<# Function declarations --------------------------------------------------- #>

<#
.Synopsis
Remove all shell session elements added by the Activate script, including the
addition of the virtual environment's Python executable from the beginning of
the PATH variable.
.Parameter NonDestructive
If present, do not remove this function from the global namespace for the
session.
#>
function global:deactivate ([switch]$NonDestructive) {
# Revert to original values

# The prior prompt:
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
}

# The prior PYTHONHOME:
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
}

# The prior PATH:
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
}

# Just remove the VIRTUAL_ENV altogether:
if (Test-Path -Path Env:VIRTUAL_ENV) {
Remove-Item -Path env:VIRTUAL_ENV
}

# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
}

# Leave deactivate function in the global namespace if requested:
if (-not $NonDestructive) {
Remove-Item -Path function:deactivate
}
}

<#
.Description
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
given folder, and returns them in a map.
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
two strings separated by `=` (with any amount of whitespace surrounding the =)
then it is considered a `key = value` line. The left hand string is the key,
the right hand is the value.
If the value starts with a `'` or a `"` then the first and last character is
stripped from the value before being captured.
.Parameter ConfigDir
Path to the directory that contains the `pyvenv.cfg` file.
#>
function Get-PyVenvConfig(
[String]
$ConfigDir
) {
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"

# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue

# An empty map will be returned if no config file is found.
$pyvenvConfig = @{ }

if ($pyvenvConfigPath) {

Write-Verbose "File exists, parse `key = value` lines"
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath

$pyvenvConfigContent | ForEach-Object {
$keyval = $PSItem -split "\s*=\s*", 2
if ($keyval[0] -and $keyval[1]) {
$val = $keyval[1]

# Remove extraneous quotations around a string value.
if ("'""".Contains($val.Substring(0, 1))) {
$val = $val.Substring(1, $val.Length - 2)
}

$pyvenvConfig[$keyval[0]] = $val
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
}
}
}
return $pyvenvConfig
}


<# Begin Activate script --------------------------------------------------- #>

# Determine the containing directory of this script
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
$VenvExecDir = Get-Item -Path $VenvExecPath

Write-Verbose "Activation script is located in path: '$VenvExecPath'"
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"

# Set values required in priority: CmdLine, ConfigFile, Default
# First, get the location of the virtual environment, it might not be
# VenvExecDir if specified on the command line.
if ($VenvDir) {
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
}
else {
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
Write-Verbose "VenvDir=$VenvDir"
}

# Next, read the `pyvenv.cfg` file to determine any required value such
# as `prompt`.
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir

# Next, set the prompt from the command line, or the config file, or
# just use the name of the virtual environment folder.
if ($Prompt) {
Write-Verbose "Prompt specified as argument, using '$Prompt'"
}
else {
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
$Prompt = $pyvenvCfg['prompt'];
}
else {
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virutal environment)"
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
$Prompt = Split-Path -Path $venvDir -Leaf
}
}

Write-Verbose "Prompt = '$Prompt'"
Write-Verbose "VenvDir='$VenvDir'"

# Deactivate any currently active virtual environment, but leave the
# deactivate function in place.
deactivate -nondestructive

# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
# that there is an activated venv.
$env:VIRTUAL_ENV = $VenvDir

if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {

Write-Verbose "Setting prompt to '$Prompt'"

# Set the prompt to include the env name
# Make sure _OLD_VIRTUAL_PROMPT is global
function global:_OLD_VIRTUAL_PROMPT { "" }
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt

function global:prompt {
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
_OLD_VIRTUAL_PROMPT
}
}

# Clear PYTHONHOME
if (Test-Path -Path Env:PYTHONHOME) {
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
Remove-Item -Path Env:PYTHONHOME
}

# Add the venv to the PATH
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
66 changes: 66 additions & 0 deletions env/bin/activate
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly

deactivate () {
# reset old environment variables
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
PATH="${_OLD_VIRTUAL_PATH:-}"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi

# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
hash -r 2> /dev/null
fi

if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
PS1="${_OLD_VIRTUAL_PS1:-}"
export PS1
unset _OLD_VIRTUAL_PS1
fi

unset VIRTUAL_ENV
if [ ! "${1:-}" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}

# unset irrelevant variables
deactivate nondestructive

VIRTUAL_ENV="/Users/anvjain/Ansible/ansible-aci/env"
export VIRTUAL_ENV

_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH

# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "${PYTHONHOME:-}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
unset PYTHONHOME
fi

if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1:-}"
PS1="(env) ${PS1:-}"
export PS1
fi

# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
hash -r 2> /dev/null
fi
25 changes: 25 additions & 0 deletions env/bin/activate.csh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# This file must be used with "source bin/activate.csh" *from csh*.
# You cannot run it directly.
# Created by Davide Di Blasi <[email protected]>.
# Ported to Python 3.3 venv by Andrew Svetlov <[email protected]>

alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate'

# Unset irrelevant variables.
deactivate nondestructive

setenv VIRTUAL_ENV "/Users/anvjain/Ansible/ansible-aci/env"

set _OLD_VIRTUAL_PATH="$PATH"
setenv PATH "$VIRTUAL_ENV/bin:$PATH"


set _OLD_VIRTUAL_PROMPT="$prompt"

if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
set prompt = "(env) $prompt"
endif

alias pydoc python -m pydoc

rehash
64 changes: 64 additions & 0 deletions env/bin/activate.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
# (https://fishshell.com/); you cannot run it directly.

function deactivate -d "Exit virtual environment and return to normal shell environment"
# reset old environment variables
if test -n "$_OLD_VIRTUAL_PATH"
set -gx PATH $_OLD_VIRTUAL_PATH
set -e _OLD_VIRTUAL_PATH
end
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
set -e _OLD_VIRTUAL_PYTHONHOME
end

if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
functions -e fish_prompt
set -e _OLD_FISH_PROMPT_OVERRIDE
functions -c _old_fish_prompt fish_prompt
functions -e _old_fish_prompt
end

set -e VIRTUAL_ENV
if test "$argv[1]" != "nondestructive"
# Self-destruct!
functions -e deactivate
end
end

# Unset irrelevant variables.
deactivate nondestructive

set -gx VIRTUAL_ENV "/Users/anvjain/Ansible/ansible-aci/env"

set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/bin" $PATH

# Unset PYTHONHOME if set.
if set -q PYTHONHOME
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
set -e PYTHONHOME
end

if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
# fish uses a function instead of an env var to generate the prompt.

# Save the current fish_prompt function as the function _old_fish_prompt.
functions -c fish_prompt _old_fish_prompt

# With the original prompt function renamed, we can override with our own.
function fish_prompt
# Save the return status of the last command.
set -l old_status $status

# Output the venv prompt; color taken from the blue of the Python logo.
printf "%s%s%s" (set_color 4B8BBE) "(env) " (set_color normal)

# Restore the return status of the previous command.
echo "exit $old_status" | .
# Output the original/"old" prompt.
_old_fish_prompt
end

set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
end
Loading
Loading